Současný web a technologie Microsoft Michael Juřek Software Architect Microsoft s.r.o.
Agenda Úvod – Web 2.0 Trendy ve vytváření webů Pevné základy Budoucnost – připravujeme
Web 1.0 – kdo nabídne lepší informace? Poskytovatel obsahu, obchodníci (velkorysí, mocní) Uživatelé (pokorní, vděční)
Web 2.0 – kdo lépe uspokojí uživatele? Intermediaries (brokers, networks, search engines) Uživatelé (sebevědomí, tvůrčí, spolupracující) Poskytovatelé obsahu (zmatení, ponížení) Obchodníci (nadšení, lehce zoufalí)
Web 2.0 není a je... NENÍ nový, ale JE moderní Buzzword, chcete-li NENÍ změnou technologie, JE změnou formy Cílem je loajální, spokojený, pobavený uživatel Převažuje marketingová složka NENÍ pouze pro prohlížeč, JE směřován na celou škálu zařízení a stylů Prohlížeč, desktop aplikace, mobil, PDA, herní konzola, počítač v autě,... (rozhoduje uživatel) NENÍ Ajax, JE důraz na uživatelskou zkušenost Rozhoduje pohodlí, inovativnost, kreativita
Web 2.0 – změna formy Zapojení uživatelů Wikipedia, recenze v online obchodě,... Personalizace Uživatel musí mít pocit, že je to web právě pro něj Klíčovou roli začíná hrát emoční stránka Spolupráce Zapojení uživatelů do komunity zlepšuje jejich vnímání Demokratizace přístupu k trhu Např. billboardy vs. výměnná inzerce Bohatší funkčnost aplikací Uživatelé vyžadují větší komfort, pak jsou spokojenější
Agenda Úvod – Web 2.0 Trendy ve vytváření webů Pevné základy Budoucnost – připravujeme
Co je AJAX? Asynchronous JavaScript and XML – interakce: Asynchronní požadavek na data ze serveru Zpracování výsledku Aktualizace stránky „Server-centrický“ AJAX Inkrementální obohacení uživatelského rozhraní Víceméně bez psaní JavaScriptu Hlavní část logiky zůstává na serveru „Klient-centrický“ AJAX Využití plného potenciálu JavaScriptu a DHTML Bohatší a interaktivnější uživatelská zkušenost
Úvahy o AJAXu... AJAX je pouze jeden ze způsobů interakcí: Nehodí se ve všech situacích Typicky je nutné ho kombinovat s dalšími AJAX je nákladný: Komfort uživatelů je zaplacen komplikacemi při vývoji Ďábel je v prvním A (asynchronní) – ladění je noční můra „Klient-centrický“ je dražší než „server-centrický“ Webová aplikace (i s AJAXem) nebude nikdy tak dobrá jako klientská: Instalace klientských aplikací již není problém jako býval Nepoužívejte AJAX jenom proto, že je to trend: Buďte si vědomi, co získáte a co za to zaplatíte
Microsoft Confidential ASP.NET AJAX Technologie pro vytváření AJAX aplikací založených na standardech a fungujících ve všech prohlížečích ASP.NET AJAX Extensions ASP.NET 2.0 AJAX Extensions – pro „server-centrický“ AJAX AJAX Library – JavaScript knihovna pro „klient-centrický“ AJAX ASP.NET AJAX Toolkit Přes 40 ovládacích prvků pro ASP.NET Komunitní projekt, zcela zdarma, otevřený zdrojový kód ASP.NET AJAX Futures Vývojové a inkubační projekty a technologie, které (možná) budou součástí příštích verzí AJAX Extensions
Demo Jedna z nejstarších AJAX aplikací Jedna z nejlepších AJAX aplikací
RIA – Rich Internet Applications Nasazení prostřednictvím webu Běží na více platformách Jsou spouštěny v bezpečném sandboxu Uživatelská zkušenost za hranicemi (D)HTML Pokročilý model interakce a uživatelského rozhraní Značná část logiky typicky na klientovi: Nutnost produktivního vývojového prostředí
Silverlight 1.0 – Microsoft platforma pro RIA 2D Graphics Animations Input (mouse, keyboard, ink) Media (WMV, WMA, MP3) Imaging (JPEG, PNG) Text HTTP Downloader XAML Parser JavaScript DOM
Více o Silverlight... Instalace a nasazení Běžné prohlížeče na Windows a Mac (port pro Linux od Novellu) Snadná a bezproblémová instalace (cca 2 MB) Rychlý a snadný vývoj a produkce Kvalitní nástroje – Visual Studio a Expression Studio Integrace s JavaScriptem a AJAX frameworky Mimořádná podpora médií Až do HD kvality (720p) Doručení – streaming nebo progresivní HTTP stažení Video: WMV V7, V8, V9, VC-1 Audio: WMA V7, V8, V9 (standard), MP3
Demo SilverLight Showcase
„Míchanice“ (mashup) Jídlo (stránka) smíchané z více různých zdrojů. K tomu budete potřebovat: 1.Hrnec (platformu) Vaše aplikace Popfly platforma 2.Ingredience (služby) Vaše služby Microsoft Live služby Služby kohokoliv jiného
Popfly Demokratizace vývoje – mashup dokáže vytvořit i nevývojář (neříkáme, že každý ) Snadné vytváření stránek, fragmentů, gadgetů,... Sociální aspekt – snadné spojení s online komunitou neprofesionálních vývojářů sdílejících svoje projekty Sdílení – hotových míchanic na libovolném blogu, na jakékoliv stránce (IFRAME), ve Vista Sidebar,...
Nástroje a součásti Popfly Popfly Creator Vytváření mashupů interaktivním vizuálním propojováním předpřipravených bloků Vytváření stránek z Možnost modifikace HTML, JavaScriptu, CSS,... Popfly Explorer Add-in do Visual Studia Express (vše zdarma) pro vytváření vlastních bloků (pouze pro pokročilé) Popfly Space Online komunita tvůrců Popfly bloků a stránek
Windows Live Sada integrovaných služeb a platforma pro vývoj WebDAV SOAP REST HTTP/SO AP LiveSearch Live ID REST LiveContacts VirtualEarth Silverlight Streaming SpacesPhoto
Microsoft Confidential Windows Live – obchodní model Volné využití Individuální smluvní podmínky Hranice 1M unikátních uživatelů za měsíc Velikost audience (UU) Další služby/SLA/placená podpora – dostupné každému Komerční i nekomerční použití Počet webů
Demo ???TBD PopFly, Live, SilverLight Streaming
OBA – Office Business Applications Prostředí intranetu a internetu je jiné Řada aplikací je potřeba, ale vývoj není ekonomicky únosný Vývojář je příliš, nutnost většího zapojení pokročilých uživatelů „nevývojářů“ Častá práce s dokumenty – nutnost jejich zapojení. Windows SharePoint Services 2.0: Platforma pro tvorbu intranetových řešení – nad ASP.NET Doplněk zdarma k Windows Serveru Jednoduché aplikace lze vytvořit pouhou úpravou šablon, webů, seznamů,... Bohatá funkčnost – verzované úložiště dat, vyhledávání, workflow, personalizace, správa oprávnění,... Integrace a spolupráce s aplikacemi Office
Agenda Úvod – Web 2.0 Trendy ve vytváření webů Pevné základy Budoucnost – připravujeme
Produktivita – Visual Studio 2008 a HTML Nový návrhář HTML 100%ní WYSIWYG Stejný jako v produktu Expression Web Některé nové možnosti: Okamžité přepínání mezi pohledy HTML a vzhled Split view designer Podpora zřetězených šablon (nested master page) Umožňuje lepší spolupráci mezi vývojářem a designérem: Vynucuje korektní práci s CSS styly Vizuální návrh CSS
Produktivita – Visual Studio 2008 a AJAX IntelliSense pro JavaScript Pomáhá při psaní klientského JavaScriptu Podpora v editoru pro JS knihovnu v ASP.NET AJAX IntelliSense pro volání JSON web služeb z klienta Kontrola syntaxe JavaScriptu již při buildu Ladění a profilování JavaScriptu Snazší ovládání Body přerušení v ASPX stránkách anebo v JavaScript fragmentech v prohlížeči Nové možnosti vizualizace proměnných Podpora pro extendery v ASP.NET AJAX Snadné připojení a nastavení vlastností
Demo Ladění JavaScriptu pro ASP.NET stránku Ladění JavaScriptu pro PHP stránku
Produktivita – Visual Studio 2008 a LINQ DBASE (80. léta) – datový přístup USE empl LIST ALL fname, lname, salary FOR Supervises > 0 Práce s daty v OOP – krok vpřed? SqlCommand cmd = new fname, lname, salary FROM Empl WHERE supervises ); 0); SqlConnection c = new SqlConnection(…); c.Open(); DataReader people = c.Execute(cmd); while (people.Read()) { string fname = (string) people[“fname”]; string lname = (string) people[“lname”]; double salary = (double) people[“salary”]; } dr.Close(); LINQ – datový přístup pro OOP using (NWContext nw = new NWContext(connectString) { var result = from e in nw.Empl where e.Supervises > 0 select new {e.FirstName, e.LastName, e.Salary} }
Kvalita – Visual Studio 2008 Test Edition Testy jednotek Kód testující funkci jiného kódu Integrované měření pokrytí kódu testy Funkční testy web aplikací (web testy) Důležité zejména pro údržbu aplikací Nahrání uživatelské interakce na úrovni HTTP a její opakování se zapnutými kontrolními mechanismy Podpora i pro AJAX a pop-up okna Zátěžové testy Multi-threadové provádění web testů s měřením výkonnnostních charakteristik a bohatou analýzou Nejen pro ASP.NET
Demo Vytvoření a spuštění funkčního testu Vytvoření a spuštění zátěžového testu
Team Foundation Server Integrovaná platforma pro spolupráci na projektech softwarového vývoje. Správa změn: Verzování Seznamy pracovních položek Automatický build Týmová komunikace Reporty
Demo Oprava chyby v týmu
Bezpečnost Chyby v prvních 6 měsících od uvedení
IIS7 – architektura Classic Mode Integrated Mode
IIS 7 – pro ASP.NET vývojáře Více možností pro ASP.NET runtime ASP.NET služby a moduly mohou zpracovávat libovolný požadavek na IIS Pomocí ASP.NET tříd lze rozšiřovat funkčnost IIS Integrovaná konfigurace ASP.NET a IIS Jednotné místo pro nastavení (web.config) Jednotná konzole pro správu Jednotný objektový model pro programovou konfiguraci
Důsledek – jednoduché vytvoření farmy App Web.config Farma bezstavových webových serverů Sdílená konfigurace, obsah, kód,...
Demo Rozšiřitelnost IIS 7: Nahrazení DirectoryListing modulu Vytvoření vlastního modulu
IIS 7 – pro PHP a další vývojáře Škálovatelné hostování PHP na Windows platformě Vývoj i provoz na stejném, dobře spravovatelném OS Výkonnost FastCGI srovnatelná s alternativami: Nejen pro PHP, pro vše co užívá CGI (PHP, Ruby, PERL,...) CGI procesy jsou využívány pro více požadavků Optimalizace na vysokou výkonnost a spolehlivost (až 25x rychlejší než klasické CGI na Windows) Testováno s PHP 5.2.1, ale dobře funguje i PHP 4.x PHP a.NET framework – zajímavé styčné body Míchání.NET částí s existujícími PHP částmi Využití knihovny.NET tříd z PHP kódu
IIS 7 – pro všechny Flexibilní a rozšiřitelná architektura umožňuje prakticky neomezenou modifikaci funkce Rychlá cache v rámci kernelu pro veškerý dynamický obsah FTP/SSL pro bezpečné publikování Snadná vzdálená administrace s možností delegace Ideální pro média: Bit Rate Throttling – na základě metadat média Windows Media Services – skutečný streaming Stejný web server v klientském i serverovém OS
Agenda Úvod – Web 2.0 Trendy ve vytváření webů Pevné základy Budoucnost – připravujeme
Host Tomáš Petříček Microsoft MVP
Silverlight 1.1 2D Graphics Animations Input (mouse, keyboard, ink) Media (WMV, WMA, MP3) Imaging (JPEG, PNG) Text HTTP Downloader XAML Parser JavaScript DOM CLR DLR Controls Layout Editing SOAP, WCF, RSS, REST XMLReader / XMLWriter LINQ DRM
SilverLight 1.1 a.NET FX – ideální spojení Součástí SilverLight 1.1 bude podmnožina.NET frameworku ~ 4 MB velikost Vysoce produktivní vývoj Libovolný.NET jazyk Poslední jazykové inovace (např. LINQ) Nástroje – Visual Studio a/nebo Expression Studio Interoperabilita, přenositelnost Internet Explorer, Firefox, Safari Windows, Mac OS, Unix/Linux (řešení Novell) Libovolný web server Rychlá a snadná instalace
ASP.NET „Futures“ knihovna První náhled na připravované technologie Budou uvolňovány během roku 2008 ASP.NET ovládací prvky pro podporu SilverLight a Snadné začlenění médií/XAML bez nutnosti psát HTML značky anebo JavaScript (stačí uvést cestu) Dynamic Data Controls Dynamické generování stránek na základě datového modelu (LINQ to SQL) Modifikace výchozího zobrazení v C#, Visual Basic,... Jazykové inovace (viz dále) Další prvky:,,...
Jazykové inovace Nenutíme vás k žádné změně Snažíme se rozšířit spektrum.NET jazyků o nové alternativy, které jsou v některých skupinách populární Dynamické jazyky Využívají nový Dynamic Language Runtime Generování a kompilace tříd za běhu IronPython, managed JScript a VBScript, IronRuby,... Scénáře použití: SilverLight, ASP.NET stránky Funkcionální jazyky Lambda výrazy v.NET 3.5 jsou také funkcionální prvek F# bude součást platformy, podpora ve Visual Studiu
Demo Webový framework v F#
Závěrem Současná sada technologií odpovídá trendům ve vývoji webových aplikací IIS 7 na Windows Serveru 2008 nabízí stabilní, ověřenou, bezpečnou a výkonnou platformu Microsoft má kompletní sadu produktů pro individuální i týmovou produktivitu webového vývoje Zajímavé inovace připravované pro nejbližší budoucnost
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.