webForumDet fria alternativet

Hel sida i .DLL fil?

.NET

11 svar · 837 visningar · startad av thevice

Medlem sedan dec. 2005198 inlägg
Frågan#1

Hejsan!
jag ska försöka förklara vad jag vill så gått det går. Tänk er att man har en simpel hemsida med en startsida och inget mer. Sedan så vill man ha en gästbok på ens hemsida. Skulle det då vara möjligt att på något vänster enbart lägga in en .DLL fil som innehåller en gästboks funktion?
Man skulle ju kunna göra så att man laddar upp en guestbook.aspx fil till servern och sedan så ligger guestbook.aspx.cs i en DLL som heter ex Guestbook.dll.
Jag vill dock att man inte ska behöva ladda upp .aspx filen alls utan enbart en .DLL fil för att få tillgång till den funktionen.

Går detta? Jag vill ju även att gästboken ska kunna använda sig utav javascript och andra filer och de vill jag också ha med i DLL filen för att slippa lägga in flera filer.

Om ni inte förstår vad jag menar så är det bara att säga till. Tack på förhand!

Medlem sedan apr. 2004778 inlägg
#2

Förstår vad du menar men du kommer inte ifrån att du måste ha minst en .aspx-sida där du i alla fall lägger in en kontroll.
Det är .aspx-sidan som gör att något visas i webbläsaren.

Medlem sedan maj 2009250 inlägg
#3

men frågan är väl om det räcker med en .aspx fil och inte flera för varje dll han lägger in ......

Medlem sedan apr. 2004778 inlägg
#4

"Jag vill dock att man inte ska behöva ladda upp .aspx filen alls utan enbart en .DLL fil för att få tillgång till den funktionen"

Jag tolkar detta som att han inte vill ladda upp någon .aspx-fil.
Däremot så kan man givetvis lägga all funktionalitet i en .dll, i server-side-kontroller och sedan på den befintliga startsidan bara lägga in en kontroll-tagg för att få in gästboken. I det fallet så behövs ingen ny .aspx-sida.

Medlem sedan dec. 2005198 inlägg
#5

Hejsan,
Min tanke var att man skulle kunna ha en fil som har hand om alla plugins som jag vill göra och sedan skriver i gästboken i den. Skulle detta fungera? Går det att man har javascript filer i en DLL som man kan skriva ut?

Glad midsommar!

Medlem sedan apr. 2004778 inlägg
#6

Vad menar du med en fil som har hand om alla plugins?

Ja det går att ha javascript-filer, bildfiler m.m. i en dll. Det du gör är att du sätter dessa som Embedded Resources. Finns lite grundläggande info på http://www.eggheadcafe.com/conversation.aspx?messageid=31160924&threadid=31160916 och det finns mycket mer info om du googlar på Embedded Resources.

Medlem sedan dec. 2005198 inlägg
#7

Jag menar att man kan ha en plugins.aspc fil eller liknande som alla DLL använder. Skulle detta fungera? Jag vill dock använda MVC men antar att det inte blir några större problem?

Tack för länken ska kolla på det.
Glad midsommar!

Medlem sedan apr. 2004778 inlägg
#8

Ja det funkar att ha en sida där du lägger in alla server-side-kontroller som finns i dina x antal dll-er. Däremot så måste du i den sidan lägga till en assembly-referens och sen en kontrolltagg varje gång du ska lägga till en ny dll.

Vet inte riktigt hur du tänkte använda MVC i det här scenariot.

Glad Midsommar!

Medlem sedan maj 20011 312 inlägg
#9

Jag läste bara hastigt igenom inlägget men det borde gå att bygga en dynamisk generell aspx-sida som använder sig av olika dll:er beroende på vad man tex skickar in via en querystring. Exempelvis när användaren har följande url: DynamicPage.aspx?Load=Guestbook så öppnar du upp guestbook-assemblyn och lägger till Gästboks-kontrollen på din sida (Page.Controls.Add(din gästbok eller annan kontrol)). Om du kräver att dina kontroller använder sig av ett specifikt interface så kan du få till en rätt nice dynamisk funktionalitet.

Medlem sedan dec. 2005198 inlägg
#10

Lukaspojken skrev:

Jag läste bara hastigt igenom inlägget men det borde gå att bygga en dynamisk generell aspx-sida som använder sig av olika dll:er beroende på vad man tex skickar in via en querystring. Exempelvis när användaren har följande url: DynamicPage.aspx?Load=Guestbook så öppnar du upp guestbook-assemblyn och lägger till Gästboks-kontrollen på din sida (Page.Controls.Add(din gästbok eller annan kontrol)). Om du kräver att dina kontroller använder sig av ett specifikt interface så kan du få till en rätt nice dynamisk funktionalitet.

Det låter som det jag vill göra. Skulle du kunna visa lite exempel kod på hur du menar?

Medlem sedan maj 20011 312 inlägg
#11

Jag googlade lite snabbt men hittade inte något bra men det som du får använda dig av är reflection. Det första du får göra är att via reflection försöka identifiera och ladda din assembly. På denna sida står det lite hur du gör:
http://www.codeproject.com/KB/dotnet/Console_NET_Reflection.aspx

Fast detta är för console apps men det är samma princip för web. När du laddat assemblyn måste du leta fram den specifika typ du vill ladda upp tex Guestbook. När du hittat den så får du skapa en instans av den typen, sätta eventuella värden init-värden m.m. och därefter addar du den till din sida. Det var en grov beskrivning på hur du gör.

En sak som kan vara bra att veta är att dynamiska kontroller inte fungerar klockrent vid postbacks. Så det kan krävas att addar din kontroll vid varje postback för att få det att fungera.

Lycka till :)

Medlem sedan dec. 2005198 inlägg
#12

Jag har nu börjat lite smått och tänkte bara dela med mig utav den här artikeln som verkar lovande: http://www.wynia.org/wordpress/2008/12/05/aspnet-mvc-plugins/

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)