560 likes | 664 Views
Microsoftí technologie pro webový vývoj. ASP.NET 3.5 / Futures. Aleš Roubíček www. rarous.net. Borek Bernard www. borber.com. ASP.NET. ASP.NET = webová technologie Microsoftu. Historie. Prototyp „XSP“ naprogramoval Scott Guthrie přes vánoční svátky pomocí Javy. 1997. Historie.
E N D
Microsoftí technologie pro webový vývoj ASP.NET 3.5 / Futures Aleš Roubíček www.rarous.net Borek Bernard www.borber.com
ASP.NET ASP.NET = webová technologie Microsoftu
Historie • Prototyp „XSP“ • naprogramoval ScottGuthrie přes vánoční svátky • pomocí Javy 1997
Historie • První beta verze • Přejmenováno na ASP+ • … a po vytvoření marketingové značky .NET na ASP.NET 1997 2000
Historie • ASP.NET 1.0 • ScottGu se stává Product Unit Managerem 1997 2000 2002
Historie • Vlastnosti ASP.NET: • model web forms • ASMX web services • silná podpora OOP • výkon 1997 2000 2002
Historie • ASP.NET 1.1 • Visual Studio .NET 2003 • dolaďuje se řada základních věcí 1997 2000 2002 2003
Historie • ASP.NET 2.0 • Významné změny v .NET frameworku • CLR 2.0 tvoří základ dodnes 1997 2000 2002 2003 2005
Historie • novinky v ASP.NET 2.0: • Master Pages, Web Parts • Automatická kompilace • Podpora XHTML • Themes, Skins • Navigace, SiteMap • Membership, Profiles 1997 2000 2002 2003 2005
Historie • ASP.NET 3.5 • Visual Studio 2008 • C# 3.0, VB9 • ScottGu vice president 1997 2000 2002 2003 2005 2007/8
Historie • ASP.NET 3.5: • AJAX • integrace s IIS7 • nové controly (ListView) • Agilní vývoj 1997 2000 2002 2003 2005 2007/8
Historie • ASP.NET 3.5 SP1 • Dynamic Data • URL routing • Podpora Entity Frameworku 1997 2000 2002 2003 2005 2008
ASP.NET v roce 2008 Konfigurace IIS Přístup k datům ASP.NET Membership API Deployment Visual Studio Debugging Cachování
ASP.NET v roce 2008 Languages lambda výrazy var (type inference) extensionmethods LINQ XML literály anonymní typy Ruby Python WPF WCF ASP.NET WF LINQ Core System.AddIn JSON serialization System.Diagnostics.Eventing
ASP.NET Web Forms Komponentový přístup k tvorbě aplikací
Komponentový model Flex HTML ASP.NET WPF
Výhody • 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
Nevýhody • Je jich celá řada • O nich později
ASP.NET Ukázka
ASP.NET AJAX Oživujeme nejen komponenty
ASP.NET AJAX • OpenAJAX • Serverová a klientská část • Snadné navázání na serverové komponenty • Konzumace a tvorba webových služeb
ASP.NET AJAX v-next • 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
ASP.NET AJAX v-next <body xmlns:sys="javascript:Sys" xmlns:dv="javascript:Sys.UI.DataView"> <div id="tripList" sys:attach="dv" dv:data="{{myData}}" dv:template="{{$get('template2')}}"></div> <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) }}" /> </div> </body>
ADO.NET Data Services Přístup k datům pomocí REST služeb
ADO.NET Data Services • Patří do rodiny ADO.NET - přístup k datům • Framework pro snadnou tvorbu REST služeb • Primárně staví nad Entity Frameworkema WCF • Podpora JSON a ATOM
ADO.NET Data Services • Dotazování • GET parametr $filter • /Orders?$filter=Customers/CustomerIDeq 'ALFKI' or Customers/CustomerIDeq 'WOLZA'
ADO.NET Data Services • Klientské knihovny • MS AJAX • MS Silverlight • Service Reference ve Visual Studiu • Snadná konzumace REST • XmlHttpRequest • HttpWebRequest
Data Services a AJAX Ukázka
ASP.NET Dynamic Data Rychlá tvorba administračních rozhraní
ASP.NET Dynamic Data • Č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
ASP.NET MVC Zjednodušený model stránky
Problémy Web Forms • Komplikovaný sled událostí („pagelifecycle“) • PostBack model závislý na JavaScriptu • ViewState • Generovaná klientská ID • „Leakyabstraction“ ASP.NET MVC
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
Nevýhody oproti Web Forms • Větší pracnost • Nulový ekosystém komponent • Riziko spaghetti kódu
Koexistence • 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 ViewController Ukázka
ASP.NET vNext Na co se těšit
ASP.NET vNext • Obecný trend: postupná integrace technologií vydávaných v „preview“ verzích • AJAX preview 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í
Obecné novinky • Podpora dynamických jazyků • IronPython, IronRuby, JScript, VisualBasic… • Integrace jQuery
Web Forms vNext • URL routing • Lepší podpora CSS • Kontrola nad ClientID a ViewState • AJAX • DynamicImagecontrol
MVC a Dynamic Data vNext • Scaffolding pro MVC (integrace Dynamic Data)
Klíčové výhody ASP.NET • Součást .NETu • rozsáhlý framework • výkonné běhové prostředí • výběr programovacích jazyků • statické • dynamické • přenositelnost znalostí • QA
Klíčové výhody ASP.NET • „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 earlyadoptery
Klíčové výhody ASP.NET • Visual Studio • plus řada doplňků třetích stran (Resharper, CodeRush , TDD.net…) • Express edice zdarma
Klíčové výhody ASP.NET • Rozsáhlý ekosystém komponent • opensource • komerční
Klíčové výhody ASP.NET • Podpora více modelů vývoje • web forms • MVC • home-grown • third-party (MonoRail) • vyberte si, který vám vyhovuje