E N D
ASPNET 3.5 Jiří Strach
Při surfování na Internetu se setkáváme s více druhy webových aplikací. Pod pojmem webová aplikace, rozumíme aplikaci, která je umístěna na serveru, přičemž ve většině případů na serveru běží i jádro výkonného kódu aplikace a zpravidla taková aplikace využívá pro svou činnost i nějakou databázi. Pokud se pokusíme webové aplikace kategorizovat, dospějeme k "hrubému" rozdělení na klientské a serverové aplikace
Klientské aplikace Tyto aplikace jsou na serveru pouze umístěny využívají HTML kód, případně skripty, které se vyhodnocují na straně klienta. Mohou být statické (HTML) a dynamické (DHTML). Tyto jednoduché aplikace, hlavně dynamické dokáží při vhodném využití možnosti HTML a skriptových jazyků na straně klienta vytvořit určitou míru informační funkcionality a poměrně zajímavé efekty.
Serverové aplikace Začínající programátor HTML stránek, okouzlen možnostmi DHTML kódu a skriptů na straně klienta, zvláště když má k dispozici kvalitní nástroj, například Microsoft FrontPage si možná myslí, že s pomocí skriptů na straně klienta se dá zvládnout prakticky všechno. Bohužel to není pravda. Některé, na první pohled jednoduché a běžné věci se bez podpory skriptů na straně serveru realizovat nedají. Nedokážeme na straně klienta naprogramovat dokonce ani jednoduché počítadlo přístupů na naše stránky. Mezi neřešitelné úkoly by také zahrnoval také všechny ty ankety, publikační portály internetové obchody, seznamky, chaty a jiné aplikace s nimiž se na webu denně setkáváme .. Hlavním problémem totiž je, že ve všech uvedených typech aplikací potřebujeme většinu stránek generovat dynamicky na základě vybraných údajů, například objednávky a podobně. Pro ukládání dat se využívají databáze. Vybudování internetové aplikace typu e-bussiness s automatickým zpracováním objednávek, sledování stavu zásob, případně s řízením marketingové strategie bez výkonného databázového serveru není možné a jak si ukážeme později budeme potřebovat i výkonnou serverovou technologickou platformu a dobré vývojové prostředí. Z hlediska financování provozu webové aplikace rozdělují na komerční, aplikace různých instituci a aplikace typu hobby. Náklady na webové sídlo můžeme rozdělit na dvě části, jednak jsou to jednorázové náklady na jeho zřízení a pak pravidelné náklady na provoz. Z technického hlediska potřebujeme na vývoj a následné fungování webové aplikace serverový operační systém, ve většině případů i databázový server a aplikační logika je vytvořena pomocí nějakého skriptovacím systému. Pojďme ale pěkně po pořádku a zkusme analyzovat které konkrétní produkty v jednotlivých segmentech používají nejvíce.
Co potřebujeme pro provoz jednoduché webové aplikace Webová aplikace potřebuje na straně serveru tyto služby: • Operační systém podporující síťové služby • Webový server • Databázový server Mohou to být například prostředky od Microsoftu: Operační systém Windows /XP/ Vista 2003 Server, Internet Information Server a databázový server Microsoft SQL Server 2005/7. Některé z těchto programů jsou nebo byly poměrně drahé, proto se používají i volně šiřitelné programy pod operačním systémem LINUX, například Apache web server a databázový server MySQL. Následující tabulka přehledně zobrazuje popsány možnosti. Není to žádné pevné pravidlo, existuje například Windows verze populárního webového serveru APACHE a databázového serveru MySQL. Také pod operačním systémem LINUX můžeme použít (v omezeném rozsahu) engine pro ASP stránky.
Kód aplikace na straně serveru Zatím jsme se nedostali k vlastnímu jádru kódu webové aplikace. Kromě HTML kódu a případně databázového jazyka SQL budeme potřebovat i nějaký programovací jazyk nebo skriptový systém. V nedávné historii se nejčastěji používaly ASP stránky a PHP skripty. S nástupem nových technologických platforem a komplexních aplikačních prostředí například Microsoft. NET Framework, Oracle 9i AS, IBM WebSphere ... vystupují do popředí programovací jazyky JAVA (Microsoft nabízí Visual J #), Visual Basic a Visual C #. Závisí to také na použité softwarové platformy. Na serverech s operačním systémem Windows NT/2000/XP se používá nejčastěji webový server IIS (Internet Information Server) s ASP, případně novější ASP.NET stránky. Pod operačním systémem UNIX nebo LINUX se nejčastěji používá web server APACHE a PHP skripty, případně Java.
Princip činnosti skriptových serverových stránek (ASP, PHP ...) spočívá v postupné analýze kódu této stránky. Pokud některý řádek obsahuje skriptový kód, tento se interpretuje a jeho výstupy jsou vloženy do HTML stránky, která se dynamicky generuje pro klienta. Pokud řádek neobsahuje skriptový kód, je zpravidla vložen do HTML stránky přímo. A aby to nebylo tak jednoduché, i HTML stránky, generované serverem, které se pak zobrazují u klienta obsahují zpravidla kromě HTML kódu i kódy v skriptovacím jazyce, které se provádějí pro změnu na klientském počítači. Na straně klienta jsou nejrozšířenější Skriptovací jazyk JScript a VB Script.
ASP stránky a PHP skripty ASP stránky pracují na principu vkládání kódu odděleného oddělovači, párovými znaky <% ... %>. Soubory mají zpravidla příponu. ASP, Skriptový jazyk pro ASP stránky může být VBScript nebo JScript. VBScript je Skriptovací jazyk odvozený od Visual Basic for Aplications. JScript je implementace Java Scriptu. Teoreticky je možné na jedné stránce použít oba Skriptovací jazyk, z hlediska výkonu to není dobré řešení, protože server musí použít dva skriptové stroje na zpracování jedné stránky. Dokonce ani tehdy, pokud nám nezáleží na rychlosti, nemůžeme se spolehnout, že skriptové stroje ukončí svou práci a uloží výsledky do HTML stránky v takovém pořadí v jakém byly spuštěny.
Pokud řádek na ASP stránce obsahuje skriptový kód, tento se interpretuje a jeho výstupy jsou vloženy do HTML stránky pro klienta. Pokud řádek neobsahuje skriptový kód, je vložen do HTML stránky přímo. Novější verze serverů nejprve zkontrolují celý soubor a pokud tento neobsahuje žádný skriptový kód, přímo ho vloží do HTML stránky. V našem případě by výpis oznamní zvládl HTML příkaz, proto nejdříve uložíme text do proměnné a pak vypíšeme do HTML stránky její obsah. Hello.asp <HTML> <BODY> <% txt = "Ahoj svet" Response.write (txt) %> </BODY> </HTML> Hello.php <HTML> <BODY> <? $txt = "Ahoj svet"; echo $txt; ?> </BODY> </HTML>
Nevýhody ASP, PHP, JSP .. Abychom mohli dostatečně ocenit novou platformu, musíme uvést i hlavní nevýhody ASP stránek, PHP skriptů a JSP stránek. Nevýhody uvedeme ve formě heslovitě přehledu: • kód vytvořený ve zmíněných skriptových systémech představuje lineární bezestavový programový modul, se všemi nevýhodami s tím spojenými. • skriptový kód ASP, PHP a JSP se v těchto systémech míchá s HTML kódem. Nevýhoda je zřejmá. Na větších webových projektech pracují obvykle týmy vývojářů, designérů, grafiků a podobně. Pro vývojáře může představovat problém kód vytvořený grafikem, zejména pokud je webová stránka rozdělená do několika rámců, případně pokud se používají moderní technologie, jako například Macromedia Flash. Pro grafika webových stránek je zase záhadou skriptový kód, který nacházejí ve svých dříve vytvořených stránkách, a to na těch nejočekávanějších místech, například uvnitř HTML kódu pro vytvoření tabulek. • dochází k míšení jednotlivých architektonických vrstev projektu • vytvořit vývojové prostředí pro tuto technologii ne je právě jednoduché. Vývoj webových aplikací na zmíněných platformách může být poměrně náročný a zdlouhavý a tedy i drahý. • programátoři jsou zvyklí používat osvědčené moduly v různých projektech. Zmíněné technologie však takovou modularitu neumožňují, jedine kopírování zdrojového kódu z jednoho zdrojového souboru do nového souboru a jeho následné přizpůsobení. • Po vygenerování HTML kódu na straně serveru, byl tento kód odeslán ke klientovi a následně server na všechno zapomněl.
Základy architektury ASP.NET Přesto, že se jedná o poměrně novou technologii, má už se sebou určitou krátkou historii. Poprvé se technologie ASP.NET, tehdy ještě pod označením ASP + objevila před více než sedmi lety jako součást první beta verze vývojového prostředí Visual Studio. NET. V dalších beta verzích a samozřejmě i ve finální verzi Visual Studia. NET je označení této technologie ustálilo na ASP.NET. Pro své výhodné vlastnosti technologie ASP.NET zřejmě postupně nahradí klasické ASP stránky. ASP.NET používají stejnou technologii oken, dialogů a formulářů jako běžné Windows aplikace. K jednotlivým vizuálním prvkem se vážou procedury pro ošetření stavů a událostí. Hlavní rozdíl mezi technologií ASP a ASP.NET je ten, že kódy na stránkách ASP.NET jsou kompilované. Tím se odstranila nutnost analýzy a interpretace jednotlivých řádků při každém přístupu klienta. Vznikne kompilované kód, který je samozřejmě mnohem rychlejší. Klasické ASP stránky pomocí skriptů na straně serveru přímo generují HTML stránky, která se zašlou klientovi. Stránky se interpretují od začátku do konce bez možnosti ošetřovat vzniklé stavy a události.
V současné době přichází z dílny společnosti Microsoft nová verze vývojového prostředí s označením Visual Studio 2008. Novinky se týkají především vývoje webových, intranetových a "smart" aplikací pro Office 2007. Nová verze již tradičně nabízí efektivnější nástroje pro vizuální návrh uživatelského prostředí a vylepšené možnosti ladění, takže si oprávněně zaslouží přívlastek "RAD" (Rapid ApplicationDevelopment). Když vývojáři odhalí a budou plně využívat nové vlastnosti prostředí Visual Studio 2008 podstatně vzroste efektivnost jejich práce. Přináší mnohé nové rysy a vylepšení, reagující na nové trendy jako například Web 2.0 nebo rostoucí význam orientace na služby, komfortu uživatelského rozhraní, do hry vstupuje i modelování obchodních procesů a správa digitálních identit a podobně. S některými novými rysy jsme již měli možnost se setkat ve formě různých doplňků a servisních balíčků na konci pontifikatu předchozí verze Visual Studio 2005, jiné jsou zcela nové. Vývojové prostředí je úzce spojeno s technologickou platformou. NET Framework 3.5
Resumé šestileté historie platformy. NET Framework. NET Framework umožňuje rychlou tvorbu aplikací připojených k datům, s nimiž jsou koncoví uživatelé velmi spokojeni. Poskytuje totiž stavební bloky (prefabrikovaný software) pro řešení častých programátorských úkolů. Přiložené aplikace využívající. NET Framework efektivně modelují procesy podnikatelské sféry a usnadňují integraci systémů v heterogenních prostředích. Visual Studio a. NET Framework společně snižují potřebu každodenního psaní programového kódu, zkracují čas vývoje a dovolují vývojářům soustředit se na řešení vlastního problému. Číslice 3 před desetinnou čárkou prozrazuje, že se jedná minimálně o třetí verzi, no číslice za desetinnou čárkou dává tušit, že exitovali-li mezi - verze. Podívejme se tedy na historii, na postupný vývoj verzí platformy. NET Framework.. Vývojáři nemusí znovu a znovu programovat základní elementy aplikací, počínaje přihlašovacím dialogem, rozhraním pro administraci aplikace a jejích uživatelů zobrazením obsahu databázové tabulky, platbu kreditní kartou a podobně. Verze 3.5 prostředí. NET Framework - vlajkové technologické platformy společnosti Microsoft nám prozradí, že. NET Framework má už za sebou poměrně bohatou historii.
. NET Framework 1.0 (2002) Tato verze je spojena s vývojovým prostředím Visual Studio. NET 2002, které bylo následníkem populárního "klasického" vývojového prostředí Visual Studio 6.0. Poprvé se objevují "řízené" (managed) jazyky C # 1.0 a Visual Basic. NET, dokonce i Managed C + +. Předtím byl kód napsán v programovacím jazyce Visual Basic překládané ve dvou krocích. Nejprve se generoval medzikód, na který se aplikoval kompilátor jazyka C + +. Na scénu přichází i platforma ASP. NET 1.0 pro vývoj webových aplikací. Překlad zdrojového kódu do MSIL (Microsoft Intermediate Language)
. NET Framework 2.0 (2005) Verze je spojena s vývojovým prostředím Visual Studio 2005. Toto technologické rozhraní ve srovnání s první verzí přinesla o v 2372 nových objektových tříd více (dosavadní počet 4482 se rozrostl 6854), přičemž přibyla velká množina tříd pro SQL Server 2005. Rozrostla se i paleta dostupných ovládacích prvků ať už pro ASP.NET nebo WindowsForms aplikace. Významnou novinkou je i možnost vývoje aplikací s využitím technologie ASP.NET 2.0, podpora sériového portu, objektové prostory, přístupová práva k souborům a práce s certikatm el. S novou verzí frameworku přišli i nové verze programovacích jazyků C # 2.0, Visual Basic 2005, nové třídy v BCL (BasedClassLibrary), podpora pro generika v CLR ... S platformou .NET Framework 2.0 je spojena i platforma ASP.NET 2.0 pro vývoj webových a intranetových aplikací..
. NET Framework 3.0 (2006) Verze je spojena s vývojovým prostředím Visual Studio 2008. Nosnou ideou pro tuto "novou" verzi technologické platformy. NET Framework je jednoduchý a efektivní vývoj aplikací propojení byznysu s lidmi, informacemi a procesy. V dalším popise vysvětlíme proč jsme dali slovo "novou" do uvozovek. Zatímco předchozí inkrementální verze platformy. NET Framework (1.1 a 2.0) obsahovaly vždy nové, zcela přepracované verze CLR (CommonLanguage Runtime) a BCL (Base ClassLibrary), verze . NET Framework 3.0 využívá CLR i BCL ze starší verze 2.0. Nové technologie, tedy: • Windows PresentationFoundation (WPF, dříve Avalon), • - Windows CommunicationFoundation (WCF, dříve Indigo), - Windows WorkflowFoundation (WF), • - Windows CardSpace (dříve InfoCard), jsou implementovány nad jádrem ze starší verze 2.0.
. NET Framework 3.0 má implementovány nové technologie na jádře CLR a BCL z verze 2.0
Nová verze již tradičně nabízí efektivnější nástroje pro vizuální návrh uživatelského prostředí a vylepšené možnosti ladění, takže si oprávněně zaslouží přívlastek "RAD" (Rapid ApplicationDevelopment). Když vývojáři odhalí a budou plně využívat nové vlastnosti prostředí Visual Studio 2008 podstatně vzroste efektivnost jejich práce. Vývojové prostředí je úzce spojeno s technologickou platformou. NET Framework 3.5. V současné době je k dispozici opravný balíček SP1 pro Visual Studio 2008 i pro platformu. NET Framework 3.5. Shrňme novinky: - ADO.NET Entity Framework, - ASP.NET Silverlightcontrols • ADO.NET Data Services, • ASP.NET Dynamic Data • - Podpora pro SQL Server 2008 • - LINQ • - NET Framework ClientRelease ( "Arrowhead"), - 2007 Ribbons
NA tomto schématu můžeme sledovat cestu požadavky klienta. Požadavek klienta postupuje přes jednotlivé vrstvy zdola nahoru, přičemž handler pro větvení kódu k jednotlivým blokům je téměř až na samém konci tohoto procesu.
Pro ASP.NET stránky je vyčleněna souborový přípona ASPX (ASP stránky měly příponu souborů ASP). Tyto stránky jednak zabudovány vizuální elementy pro komunikaci s uživatelem které generují příslušné události, například reakci na kliknutí na tlačítko a podobně. Tím je dosaženo nelineární, událostmi řízené zpracování kódu. Vymenitzakladnu HTTP handlery, to jest bloky v nichž se zpracovává obsah kódu ze souborů různých typů. Web Forms (*. aspx) - System.Web.UI.PageHandler Webové služby (*. asmx ) • System.Web.Services.Protocols.WebServiceHandlerFactoryTracing (Trace.axd) • System.Web.Handlers.Tracehandler. NET Remoting (*. rem, *. soap) • System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory Soubory ze zákazem přístupu (asax, ascx, config, vb, vbproj, cs, csproj, webinfo, asp, licx, resx, resources) • System.Web.HttpForbiddenHandlerSystem.Web.StaticFileHandler (GET, HEAD) • System.Web.HttpMethodNotAllowedHandler (zbytek)
Hlavní výhody technologie ASP.NET • rychlost aplikaci, protože veškerý kód je předkompilovanými. ASP.NET aplikace jsou několikrát rychleji než klasické ASP aplikace • striktní objektové programování • využití klasických programovacích jazyků, např. C #, Visual Basic, JScript ... • striktní oddělení jednotlivých vrstev aplikace. Vývoj aplikačního kódu může být důsledně oddělen od designového a grafického návrhu HTML stránek • vývoj je mnohem efektivnější, hlavně díky tomu, že není nutné neustále programovat stejné záležitosti jako například autentizaci a autorizaci klientů, konektivitu k databázím, ošetřování nejčastěji se vyskytujících chybových stavů , stránkovaný výpis údajů z databází, .. ale vždyť to jako vývojáři sami z vlastní praxe znáte • při změnách aplikace se na rozdíl od technologie ISAPI nevyžadují žádné restarty, takže webový projekt můžeme velmi snadno spravovat na dálku. • Změna aplikace můžeme realizovat jednoduchým nakopírován souborů bez zastavování webového serveru. • Konfigurační údaje jsou uloženy v XML souborech Nevýhody technologie ASP.NET Podobně jako tomu bylo u technologie ASP kdy jsme její hlavní nevýhody jmenovaly na konci předchozí kapitoly, i ASP.NET má určitě nějaké nevýhody a můžete se spolehnout, že budou jmenované při propagaci nové nástupnické technologie.
Nevýhody technológie ASP.NET • Podobně jako tomu bylo u technologie ASP kdy jsme její hlavní nevýhody jmenovaly na konci předchozí kapitoly, i ASP.NET má určitě nějaké nevýhody a můžete se spolehnout, že budou jmenované při propagaci nové nástupnické technologie. Literarura: • Lacko,L. ASP.NET pre začiatočníkov . Microsoft 2008 http://msdn.microsoft.com/cs-cz/dd727769.aspx • Lacko,L. Nová vlna technológií pre Visual Studio 2008 a .Net Framework 3.5 Microsoft 2008. http://msdn.microsoft.com/cs-cz/dd727769.aspx