WF és ASP.NET: hosting

A novemberi konferenciánkon elhangzott, hogy a Windows Workflow Foundationt bármilyen CLR appdomainben lehet hosztolni. Mivel valójában egy .NET-es osztálykönyvtárról van szó, ez valójában nem is meglepő. Említettem azt is, hogy a hosztolás lényegében a WorkflowRuntime osztály megpéldányosítását jelenti.

Csakhogy ez nem mindig ilyen egyszerű.

Ebből az objektumból appdomainenként maximum egyetlen példány lehet és ez elég is, másként fogalmazva, a Workflow Foundationt egy alkalmazásban elég "egyszer hosztolni". Ha webalkalmazásban gondolkodunk, akkor ez Application szintű objektum referenciát jelent. A WF egyik utolsó bétájában ennek segítésére még volt egy segédosztály, a WorkflowWebRequestContext. Dino Esposito 2006. áprilisi MSDN Magazine cikkében remekbe szabott példát láthatunk arról, hogy ez az osztály implicit módon képes kezelni a runtime felparaméterezését, elindítását és az aktuális (egyetlen) példány visszaadását.

Ez így szép is lenne, de nincs így. Hosszú Reflectorozás után arra jutottam, hogy ez az osztály még internal változatban sincs benne a WF RTM verzióban. Marad tehát a körülményes global.asax-os, Application objektumos körbekódolásos megközelítés.

Na de miért? Miért? MIÉRT??? Nem tudom, hogy miért, csak arra tudok gondolni, hogy így teljesen ugyanúgy működik a WF runtime hosztolása webalkalmazásban, mint bármely más típusú alkalmazásban, nem kell hozzá tudni semmi extrát, nincsenek trükkös metódus hívások és minden átlátható. Persze az jó kérdés, hogy egy "körbekódolásos megközelítés" miért számít átláthatóbbnak egyetlen framework metódus hívásnál…

Advertisements

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s