Před několika málo lety se firma Microsoft rozhodla uvolnit radikální produkt. Tím produktem byla dnes již dobře známá platforma .NET . Nestydím se použít slova platforma, protože vlastně o platformu jde. Laicky a střízlivě řečeno se jedná o sadu knihoven, které se importují do systému a ten se v některých případech začne chovat úplně jinak. Uff, složité že? Zdá se, ale ve skutečnosti je to velmi zajímavá problematika, která však překračuje všechny hranice tohoto článku, pokud bude zájem, můžeme v nějakém samostatném článku. Dnes si v rychlosti řekněme, co nám Microsoft nabízí pro řešení problému s web aplikacemi, mezi které patří i online hry.
IIS jako webový server.
I nadále Microsoft upřednostňuje svůj IIS web server. A není divu. .NET proniká tak hluboko do systému zpracování požadavků od uživatelů, že je velmi těžké představit si jeho spolupráci třeba s apachem tak, aby byla využitá plná síla .NET technologie. V poslední verzi se Microsoft rozhodl radikálně předělat konfigurační soubory IIS a udělat z něj mechanismus postavený na síle modulárního přístupu. Nejnovější IIS tedy lze nakonfigurovat tak, že bude zpracovávat pouze konkrétní druh požadavku, pouze konkrétní druh souborů. Navíc ve spolupráci s .NET technologií lze dosáhnout vyššího výkonu, protože zpracování požadavků vedoucích na .NET byl zkrácen a spolupráce IIS s aplikacemi doznala také určitých změn. Pro administrátory serverů však asi nejdůležitější změnou bude zmiňovaná modularita a zjednodušení konfigurace.
ASP.NET jako výkonné jádro
Použití funkcí .NET frameworku pro webové technologie je obecně označováno jako ASP.NET, přičemž je odhlédnuto od jazyka ve kterém je daný skript napsán. Běžně je aplikace totiž kompilována do IL jazyka, tedy do univerzálního jazyka jádra. Ve chvíli spuštění stránky prochází aplikace druhou úrovní kompilace, kdy se IL jazyk kompiluje do instrukcí té či oné hardwarové sestavy. Výsledná podoba aplikace je uložena a používána pro běh. Zde se skrývá jedna z výhod proti interpretovaným jazykům. ASP.NET aplikace jsou totiž kompilované, což s sebou přináší kromě optimalizací kódů také snížení režie samotného jazyka pro porozumění zdrojovému textu. Ovšem zároveň je zde videt jedna z největších slabin ASP.NET aplikací, tedy samotná kompilace z IL do běhové podoby. Jedná se o časově a i zdrojově náročnou operaci a tak ona pověstná první stránka ASP.NET aplikace trvá opravdu dlouho a server se v té chvíli opravdu nefláká. Další slabinou ASP.NET aplikací je datový tok. Při vývoji aplikace sice může vývojář použít mnoho předpřipravených ovládacích prvků a zároveň i samotná obsluha chování uživatele je řádově jednodušší, pro příklad, pokud chceme mít na stránce tlačítko a pokud na něj uživatel klikne, chceme vypsat nějaké hlášení na stránku, zabere nám tvorba takové aplikace asi 2 minuty, přičemž napíšeme jedinou řádku kódu. Zbývající čas nám zabere umístění ovládacích prvků a kompilace projektu. Ovšem k tomu, aby aplikace poznala změny, které uživatel udělal, ukládá si stránka (v jazyce ASP.NET: formulář) některá nastavení do skrytého pole formuláře a velikost tohoto pole umí dosahovat opravdu zajímavých hodnot, podle závislosti formuláře a jeho složitosti. Toto řešení má ale také své výhody, například uživatel nemusí být vázán na session apod. Pro vývojáře má tato platforma kromě rychlého vývoje ještě několik dalších výhod, počínaje výhodami konfigurace, modularitou aplikace, přes možnosti až po různé nestandardní stavy.
Jako příklad modularity aplikace uvedu oblíbený příklad s autentikací uživatele. Představme si aplikaci, která autentikuje uživatele pomocí standardní autentikace. Po nějaké době přijde nadřízený, že chce uživatele autentikovat podle databáze uživatelů. Po nějaké době rozhodne, že vlastně nechce tu databázi na Oracle ale na MSSQL . Pro vývojáře ASP.NET aplikace to neznamená nic víc, než napsat modul autentikace uživatele s ověřováním nad oracle datatabází a tím nahradit standardní mechanismy. V druhé fázi pak tento modul napojí místo providera pracujícího s Oradlem na providera pracujícího s MSSQL.
ASP.NET zároveň umožňuje používat několik úrovní cacheování, umožňuje používat mechanismy jinak z webu nepoužitelné.
Dobrým počinem Microsoftu je, že vývojový nástroj pro tvorbu aplikací jak pro windows tak i pro web je možné v Express edici stáhnout legálně ze stránek Microsoftu a to zcela zdarma.
Autentikace – mechanismus pro rozlišení uživatele
Autorizace – mechanismus pro určení, zda uživatel má, či nemá právo provést danou akci
Provider – mechanismus delegování operací na odpovědnou část kódu. Aplikace pak používá providera bez znalosti, jak konkrétně je její požadavek vykonán. Jeden provider pak může být zaměněn za jiného, aniž by aplikace musela být informována nebo upravována.
MSSQL2005 jako databázový zdroj
MSSQL má své mouchy i výhody. Celá platforma .NET má v sobě mnoho podpory pro mimo jiné i tento databázový zdroj. SQL2005 zároveň přichází s dalšími výhodami. Ze stránek Microsoftu stejně jako jiné Express nástroje, můžete stáhnout i Express edici tohoto databázového serveru. Jeho omezení je přitom jediné (více pocititelné) a to omezení na jeden procesor. I když tedy použijete víceprocesorovou mašinu, SQL2005 Express vám poběží pouze na jednom z nich. Není zde ale ani omezení počtem dotazů v čase, ani objemem dat ani bezpečnostní či datové omezení (nevím teď jak je to s oněmi 4GB na databázi). Navíc SQL2005 umí pracovat i s userinstance databází. Tedy aplikace si může s sebou nést databázový soubor a ve chvíli potřeby si prostě půjčí SQL aby jí umožnil přístup do jejího datového souboru. Nevýhody SQL2005 zůstávají víceméně shodné s předchozími verzemi. Jedná se tedy o paměťovou náročnost, specifickou implementaci SQL jazyka. V porovnání s MySQL jako jiným databázovým zdrojem zdarma, však hraje SQL2005 v jiné váhové kategorii a MySQL i přes významné změny prostě nestíhá krok.
Pokud nebudete lenit a stáhnete si sice Express edici ale rozšířenou, získáte zároveň i administrační nástroj s grafickým prostředím, kde se dají databáze navrhovat, spravovat, ale také se dají kreslit schémata apod. Novinkou se kterou verze 2005 přišla je možnost integrovat kus kódu přímo do databáze. Typicky různé kontroly vstupních dat, pokud máte v databázi pole, kam lze zadat opravdu jen emailovou adresu, existuje několik možností jak to hlídat, třeba validací v aplikaci. Jenže to vám bude k ničemu, když správce databáze prostě vleze do tabulky a napíše tam nesprávnou hodnotu. SQL2005 umožňuje pověsit triggery na změnu záznamu, vložit do db vlastní typ a vlastní validační funkce a ty zavolat, pokud se záznam změní a v případě, že kontroly neprojdou proste stornovat transakci. Tento mechanismus pak ubrání databázi i proti chybám adminů.
Kromě těchto vychytávek existuje v SQL2005 možnost různých replikací dat mezi servery, reportovaní služby apod.
Ve srovnání s MySQL poskytuje Express edice SQL2005 možnost sofistikovaných uložených procedur a funkcí, bezpečnost systémové databáze, protože uživatel z ní může jen číst pomocí pohledů (view) a nedostane se na tabulky samotné, lze drobněji přidělovat práva, oddělit jednotlivé části databáze pomocí schémat, ovlivňovat chování pomocí triggerů, importovat do databáze rozšíření napsaná v .NETu a tím výrazně upravit prostředí databáze. Řídit databázi a celý server pomocí objektů z .NET aplikací. apod…..
Validace – označení pro mechanismus ověřující správnost dat
Triggery – akce volané v závislosti na nějaké jiné akci typicky vložení, mazání nebo úpravě záznamu v tabulce
Závěrem bych rád řekl, že .NET stále ještě je marketingový tahoun, těmto čtyřem písmenům jsou připisovány magické schopnosti, faktem je, že tato technologie posunula hranice možností, ale vždy je něco za něco, proto je třeba i k této technologii přistupovat se zdravým rozumem a určitým nadhledem. Ať tak či tak, jedná se o přínosný počin, který jednak umožňuje zrychlit vývoj aplikací jednak provádět dříve nemožné akce a spojení, umožňuje mnoho nových programátorských praktik a je nutné uznat, výkonově umí výrazně zahýbat, ovšem v dobrém i špatném. .NET je vzato kolem a kolem dobrý sluha ale zlý pán. Proto je třeba s ním pracovat s rozumem a mít na paměti, že to je jen technologie a ne zaklínadlo pro zázrak.



