IIS 7.0

Ač uplynul nějaký ten den od okamžiku, kdy jsem se na vlastní oči potkal s IIS7 nedalo mi to, abych nenapsal pár slov.

Vše se událo 28. února, ten den se toho událo o něco málo víc, ale o tom chci ještě napsat jeden samostatný příspěvek. Ono úterý Michal Juřek prezentoval velice pěkně přednášku na téma Introducing IIS7.0. Sdělených informací bylo dost a dost, ale jedna oblast mě zaujala, možná i proto, že i v současné době s ní (ne)úspěšně bojuji - je to konfigurace aplikace.

web.config skutečná konfigurace webu

Již nyní je umožněno pomocí souboru web.config nakonfigurovat vytvořenou web aplikaci. IIS7 jde v této oblasti ještě o další krok dál a nechává vše "v rukách" xml. Teď možná zarmoutím všechny vyznavače příkazové řádky a notepadu, ale i pro editaci xml je k dispozici grafický nástroj, kam je možné doplnit vlastní rozhraní pro uživatelské sekce. Co je ovšem důležité, že skutečně celá konfigurace aplikace může být umístěna do jednoho souboru. A tady je právě to co mě trochu trápí a s čím jsem se v současné době dokázal vypořádat.

Nevím jak vám, ale poměrně často se mi stává, že potřebuji rozlišit, zda konfiguruji aplikaci nebo web. Je mi jasné, že ten rozdíl je velice malý a i já sám si občas říkám, zda skutečně takové rozdělení, které mám na mysli je nutné a dobré. Ale jistě to znáte také, máte jisté části web.config souboru pevně dané - např. způsob autentikace. Jenže pak jsou sekce, které se liší podle toho, kde je daná instance aplikace umístěna. Co se nejčastěji mění u nás je connection string, případně definice a hodnoty umístěné ve vlastních konfiguračních sekcích.

Uložení konfigurace mimo web.config

Výše zmíněný problém nutnosti různých konfigurací se vyskytl již několikrát. V modelu, kdy bude konfigurován kompletní web, pravda nejen přes web.config, ale dá se tak předpokládat, bude potřeba konfigurace částí aplikace umístěné mimo tento soubor ještě vzrůstat. Alespoň to je můj osobní názor, který budu rád, pokud mi někdo bude chtít vyvrátit. Již nyní mám napsány providery, kteří dokáží načíst konfigurace z databáze. Přeci jen se tak jednotlivé části snáze administrují a případná změna některé části je snadnější. Pokud pak nemáte fyzický přístup k danému souboru a je nutné provést přenastavení části aplikace, je postačující zaslat příslušný extrakt xml a administrátor systému na klientově straně dokáže přes dodanou winform aplikaci provést příslušnou změnu. Zároveň s tím je možné zajistit historii takových změn i s časovým razítkem promítnutí takové změny.

Také proto mě nemile překvapilo, že se kompletní konfigurace přesunula do jednoho souboru a přibyly další sekce, které více ztíží možnost ruční editace. Ano vím, existuje grafický nástroj, ale i tak mi to nepřijde příliš vhodné - i díky možnosti zaslat klientovi nově nakonfigurovanou celou sekci.

Je nějaké řešení

Je mi jasné, že sám nejspíš nic nezmohu. Vím, že najít ten správný rozdíl mezi tím, co zůstane neměnné a co bude nutné občas změnit je obtížné a každý může mít jiné požadavky. Přesto si myslím, že v době, kdy existuje SQL 2005 Express případně jiný databázový engine by stálo za zvážení, zda jednotlivé konfigurační sekce nepřenést do tabulky - klidně stále v xml čitelném formátu, pro možnost vytvářet vlastní složitější konfigurace. Celkem si také dovedu představit, že by taková tabulka ve webové databázi byla provázána přímo s jádrem IIS a dokázala by reagovat na změny, případně hlídat časové razítko od kdy je daná změna platná a to pro všechny vytvořené a běžící webové aplikace.

Možná je můj požadavek směšný, je možné že jsem jednostranně zaměřený a vidím pouze to, co využiji sám a nevidím i druhou stranu. Přesto jsem se pokusil sepsat to, co bych od připravovaného IIS7 očekával a zároveň své pohnutky zdůvodnil. Třeba se v některé z příštích verzí potkám s navrženým řešením :-)

Add a Comment