Microsoftí technologie pro webový vývoj Borek Bernard Aleš Roubíček
ASP.NET = webová technologie Microsoftu
Prototyp „XSP“ naprogramoval Scott Guthrie přes vánoční svátky pomocí Javy 1997
První beta verze Přejmenováno na ASP+ … a po vytvoření marketingové značky.NET na ASP.NET
ASP.NET 1.0 ScottGu se stává Product Unit Managerem
Vlastnosti ASP.NET: model web forms ASMX web services silná podpora OOP výkon
ASP.NET 1.1 Visual Studio.NET 2003 dolaďuje se řada základních věcí
ASP.NET 2.0 Významné změny v.NET frameworku CLR 2.0 tvoří základ dodnes
novinky v ASP.NET 2.0: Master Pages, Web Parts Automatická kompilace Podpora XHTML Themes, Skins Navigace, SiteMap Membership, Profiles
ASP.NET 3.5 Visual Studio 2008 C# 3.0, VB9 ScottGu vice president /8
ASP.NET 3.5: AJAX integrace s IIS7 nové controly (ListView) Agilní vývoj /8
ASP.NET 3.5 SP1 Dynamic Data URL routing Podpora Entity Frameworku
Web Forms Web services MobileAJAX Dynamic Data MVC ASP.NET Konfigurace Membership API IIS Přístup k datům Visual Studio Deployment Debugging Cachování
Web Forms Web services MobileAJAX Dynamic Data MVC ASP.NET WPF WCF WF LINQ Languages lambda výrazy Ruby var (type inference) var (type inference) extension methods anonymní typy LINQ XML literály Python System.AddIn JSON serialization System.Diagnostics.Eventing Core
Komponentový přístup k tvorbě aplikací
HTML Flex WPF ASP.NET
komponenty jsou inteligentní samy si určují, jak se vyrenderují ▪ mohou generovat různý výstup pro různé klienty komponenty jsou znovupoužitelné žádný „spaghetti-code“ událostmi řízené programování schovávají bezstavovost HTTP silná podpora v nástrojích
Je jich celá řada O nich později
ASP.NET Ukázka
Oživujeme nejen komponenty
OpenAJAX Serverová a klientská část Snadné navázání na serverové komponenty Konzumace a tvorba webových služeb
Klientské komponenty Podpora šablonování DataBinding Deklarativní skriptování (xmlns) CSS selektory Integrace jQuery Integrální součást ASP.NET Plná podpora ve Visual Studiu (Intellisense) Patche od MS, Support
<div id="tripList" sys:attach="dv" dv:data="{{myData}}" dv:template="{{$get('template2')}}"> <div id="template2" class="sys-template" xmlns:ac="javascript:Sys.UI.AutoComplete" xmlns:wm="javascript:Sys.UI.Watermark" xmlns:dp="javascript:Sys.UI.DatePicker"> <input type="text" value="{Binding airport, mode=twoWay}" sys:id="{{ 'airport' + $index }}" sys:attach="ac,wm" ac:serviceUrl="airportList.asmx" ac:minimumPrefixLength="{{1}}" wm:text="Type the name of an airport" /> <input type="text" value="{Binding flight, mode=twoWay}" sys:id="{{ 'flight' + $index }}" /> <input type="text" value="{Binding date, mode=twoWay}" sys:id="{{ 'date' + $index }}" sys:attach="dp" dp:lowerBound="{{ new Date(1970, 4, 21) }}" dp:upperBound="{{ new Date(2050, 1, 1) }}" />
Přístup k datům pomocí REST služeb
Patří do rodiny ADO.NET - přístup k datům Framework pro snadnou tvorbu REST služeb Primárně staví nad Entity Frameworkem a WCF Podpora JSON a ATOM
Dotazování GET parametr $filter /Orders?$filter=Customers/CustomerID eq 'ALFKI' or Customers/CustomerID eq 'WOLZA'
Klientské knihovny MS AJAX MS Silverlight Service Reference ve Visual Studiu Snadná konzumace REST XmlHttpRequest HttpWebRequest
Data Services a AJAX Ukázka
Rychlá tvorba administračních rozhraní
Čerstvý přírůstek do rodiny ASP.NET .NET 3.5 SP1 Pro tvorbu „data-driven“ webů typicky administrační rozhraní pro databázi
Dynamic Data Ukázka
Zjednodušený model stránky
Komplikovaný sled událostí („page lifecycle“) PostBack model závislý na JavaScriptu ViewState Generovaná klientská ID „Leaky abstraction“ ASP.NET MVC
Ruší událostmi řízený model stránky Přináší: Starý známý Model-View-Controller Dokonalá kontrola nad odesílaným HTML URL routing Volitelné ViewEngines Mockovatelné třídy Snazší testovatelnost … při zachování většiny výhod ASP.NET
Větší pracnost Nulový ekosystém komponent Riziko spaghetti kódu
Microsoft vyvíjí a podporuje oba modely Každý si může vybrat, co mu vyhovuje Každý se hodí na něco jiného Web Forms a MVC budou koexistovat
Model View Controller Ukázka
Na co se těšit
Obecný trend: postupná integrace technologií vydávaných v „preview“ verzích AJAXpreview ASP.NET 3.5 Dynamic Data:preview ASP.NET 3.5 SP1 MVC:preview ASP.NET 4.0 Pro.NET 4 se neočekává žádná další převratná technologie spíše řada menších a velmi užitečných vylepšení
Podpora dynamických jazyků IronPython, IronRuby, JScript, VisualBasic… Integrace jQuery
URL routing Lepší podpora CSS Kontrola nad ClientID a ViewState AJAX DynamicImage control
Scaffolding pro MVC (integrace Dynamic Data)
Web forms AJAX Dynamic Data MVC
Součást.NETu rozsáhlý framework výkonné běhové prostředí výběr programovacích jazyků ▪ statické ▪ dynamické přenositelnost znalostí QA
„Tak akorát“ rychlý vývoj nových verzí major release každé 2-3 roky mezitím několik menších vylepšení preview verze pro early adoptery
Visual Studio plus řada doplňků třetích stran (Resharper, CodeRush, TDD.net…) Express edice zdarma
Rozsáhlý ekosystém komponent open source komerční
Podpora více modelů vývoje web forms MVC home-grown third-party (MonoRail) vyberte si, který vám vyhovuje
Vazba na Windows Server (IIS) horší dostupnost hostingů …?
Visual Web Developer Express - zdarma Visual Web Developer Express nebo plné Visual Studio
Web Platform Installer - nainstaluje vše, snadno a rychle Web Platform Installer VWD Express SQL Server Express IIS7 volitené IIS moduly (URL rewrite, ARR, …) podpora pro PHP (!!)
Web Applications Installer Web Applications Installer