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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s