C# asp.net code oproepen in andere asp.net code

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • reapher
  • Registratie: Augustus 1999
  • Laatst online: 22-09 10:39
Misschien klinkt dit vaag.

Maar ik vroeg mij af of het mogelijk is om een "Web application" aan te roepen in een andere "Web application"

Je heb dus web application 1 waarin bijv een simpele dropdown zit die word gevuld met data.
Nu heb je een basis web applicatie (bijv een site met alle menutje etc, wat content enz enz). Via deze basis web applicatie wil ik het liefst dynamisch andere code uitvoeren.

Ik snap dat je vrij gemakkelijk User controles kan aanmaken, maar het leek mij handig als je kan kiezen uit compleet gecompilde "Web applications". En deze dan dus dynamisch kan runnen.

Click hier niet


Acties:
  • 0 Henk 'm!

  • asfaloth_arwen
  • Registratie: Februari 2005
  • Laatst online: 06:03
Sorry het is mij niet helemaal duidelijk. Snap ik het goed en wil je een statische site en daarin code aanroepen (dus richting dynamische site)?

Anyways, ASP.NET is bedoeld voor dynamische pagina's, voor statische inhoud kun je net zo goed een HTML pagina serveren. Wat je wel kunt doen is pagina's precompiled in je webserver zetten. Verder kun je natuurlijk ook statische elementen in je ASP.NET pagina zetten. Zou je e.e.a. misschien kunnen toelichten met een concreet voorbeeld.

Specs


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 10-09 20:32
reapher schreef op woensdag 21 januari 2009 @ 22:09:

Maar ik vroeg mij af of het mogelijk is om een "Web application" aan te roepen in een andere "Web application"
Dat kan.
Je heb dus web application 1 waarin bijv een simpele dropdown zit die word gevuld met data.
Nu heb je een basis web applicatie (bijv een site met alle menutje etc, wat content enz enz). Via deze basis web applicatie wil ik het liefst dynamisch andere code uitvoeren.

Ik snap dat je vrij gemakkelijk User controles kan aanmaken, maar het leek mij handig als je kan kiezen uit compleet gecompilde "Web applications". En deze dan dus dynamisch kan runnen.
Definieer, "dynamisch uitvoeren". Wat bedoel je precies. Wil je pagina's uit een externe web applicatie tonen in jou eigen web applicatie ? Of wil je gewoon dezelfde soort layout en gedrag makkelijk door je hele applicatie kunnen gebruiken. ?

Kortom. Wat bedoel je nou precies 8)7

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

asp.net ondersteund geen remote controls via HTTP. Zelfs via remoting of WCF is dit niet mogelijk omdat http STATELESS is. De events zullen werken tot de postback. Want de webserver zal geen enkel idee hebben hoe deze de remote events weer moet aanmaken.

Je zou kunnen probleren een dergelijk remote control een eigen webserver wide uniek ID te geven en de control vervolgens ook op te slaan in de application dictionary (HttpContext.Application). De application dictionary staat in het geheugen van de computer, dus behoud eventuele references. Bij de postback, kun je via de page viewstate load override weer het ID opvragen, controleren of deze aanwezig is in de application dictionary en vervolgens de postback van de page control doorzetten naar het oorspronkelijke control en het control verwijderen uit de application dictionary.

Dat laatste is erg belangrijk omdat anders de scope van het control gelijk wordt aan de webapplication scope en op een drukke webserver kan dat voor een memory leak zorgen (omdat de controls niet worden verwijderd zal de webapplication steeds meer geheugen vragen aan IIS en op een gegeven moment een OutOfMemoryException geven.

Het 'complexe' antwoord is 'ja, het is mogelijk'. Kort: Nee. Misschien kun je beter kijken naar een ajax webcontrol welke als webservice een remote webserver gebruikt. Wil je toch een remote native webcontrol gebruiken, dan raad ik je aan erg veel documentatie over viewstate control, application- en page lifecycle, threading en IIS resource management te lezen. Immers een best practice is om de lifetime van een object te beperken tot de score waar het nodig is (if/for/foreach statements, method, page, (web)application).

If it isn't broken, fix it until it is..