Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)
Moderni trendy ve_vyvoji_aplikaci
1. Moderní trendy ve Vývoji aplikací René Stein Senior Software Architect
2. Agenda Proměny aplikací psaných pro .Net Framework Silverlight – (mini) .Net platforma v prohlížeči (versus webové aplikace) WPF (versus Windows Forms) ASP.NET MVC (versus ASP.NET WebForms) Mobilní klienti (Compact .Net Framework X Windows Phone 7 (Series)) Řešení workflow – WorkflowFoundation nebo vlastní řešení?
3. Proměny aplikací psaných pro .Net Framework - všehoChuť „Tencí“ klienti versus „tlustí“ klienti – stírání rozdílů mezi oběma typy klientů (ClickOnce, Silverlight…) Vždy online versus občas „offline“klienti aplikací (mobilní připojení). Nové typy zařízení – mobilní telefony (smartphony), tablety. Uživatelské rozhraní (animace, „zoomování“, …)
4. Proměny aplikací psaných pro .Net Framework - všehoChuť II Distribuované aplikace versus aplikace připojující se přímo do databáze. Generické mappery místo přímého použití ADO.NET – Entity Framework, Nhibernate. Napojení aplikací na sociální sítě (Twitter, FB, Posterous). Lokalizace polohy Integrace s webovými službami (Na MS platformě s “Live”službami – SKYDRIVE, MESH) => platforma AZURE (povyk kolem CLOUDComputingu)
5. Proměny aplikací psaných pro .Net Framework – změny z pohledu .Net vývojáře Snadná(?) paralelizace zpracování úloh (využití počítače s více jádry/procesory) Určitě se budeme zabývat C# 3.0 (LINQ, Lambda výrazy, extenzní metody, anonymní datové typy …) C# 4.0 - dynamic (.NET 4 - Linq2Parallel, Linq2RX) Testy (chováním) řízený vývoj (lahůdka – Mock/Stub objekty a lambda výrazy v C# 3.0) Aspektově orientované programování (AOP) – ContextBoundObject, Castle – Dynamic Proxy
6. SilverligHT (verze 4) Plugin (nejen) v prohlížeči pro spouštění aplikací (IE 6, 7, 8, Firefox2, 3, Safari, Google Chrome). Projekt Moonlight pro Linux. Mini .Net běhové prostředí (GC etc.) Alternativa k webové aplikaci („aplikace se nesmí instalovat“). Snadná instalace pluginu. Menší a binárně kompatibilní „bratranec“ WPF – stejné postupy pro vývoj (ale SL není podmnožinou WPF, má své unikátní vlastnosti…)
7. Silverlight - XAML Návrh uživatelského rozhraní v jazyce XAML (dialekt XML s mnoha rozšířeními pro snazší definici UI) Názory na XAML se liší – někdo jej miluje, někdo křičí, že je vhodný jen na automatizované - strojové zpracování. Vizuální designer ve Visual studiu 2010 Ukázka XAMLU:
8. Silverlight – vlastnosti, které si zamilujete I Konečně použitelný „binding“ dat na uživatelské rozhraní. <ImageSource="{BindingCurrentImage, Mode=OneWay}"Stretch="Uniform"></Image> Podpora pro rychlý návrh složitého layoutu formuláře (viz Visual Studio 2010) Jednoduchá změna výchozího vzhledu prvků (srovnejme s martýriem metody OnPaint ve Windows Forms)
9. Silverlight – vlastnosti, které si zamilujete II Aplikace může být aktivována i mimo prohlížeč (OutOfBrowser režim). Podpora“elevace“ práv. Možnost volat COM komponenty. Styly (znáte CSS?) a podpora skinů. Implicitní (výchozí) témata prvků. Bezbolestné (i pro vývojáře) animace. Silverlight+ WCF RIA Services –vícevrstvé distribuované aplikace Podpora pro dotykové displeje Podpora tisku
10. Silverlight – vlastnosti, které si zamilujete III Oboustranná komunikace s HTML (ASP.NET stránkou) (Asynchronní) volání webových služeb Bohatá knihovna ovládacích prvků Controltoolkit od Microsoftu Komerční knihovny dalších dodavatelů (DevXpress) PRISM a Silverlight - silná dvojka Silverlight a MEF - další nerozlučná dvojice
11. SilverlIght - nevýhody Mladá platforma a Microsoft rád uvádí nové technologie a ještě raději je po (krátkém) čase „zařízne“. Občas podivné chyby, o kterých se na rozjásaných prezentacích nemluví. Rychlý vývoj Silverlightu. Složitější návrh UI raději v BLENDu – ne ve Visual Studiu (dle Microsoftu) Designer občas vyhodí chybu „E_FAIL“ a vývojáři říká „hledej příčinu sám“
12. SilverlIght – nevýhody II Jedná se o .Net mini runtime. Nelze očekávat, že budete mít k dispozici všechny třídy z „velkého“ .Net Frameworku. Instalace Silverlight runtimu – nestačí jen prohlížeč jako u webové aplikace. Na aplikací s přímým připojením do databáze zapomeňte. Chvíli trvá, než si na XAML a na návrh aplikací v Silverlightu zvyknete.
13. WPF Většina věcí o Silverlightu platí i pro WPF Náhrada Windows Forms (dnes má WPF i datagrid) Ve WPF máte k dispozici celý .Net Framework (!!Client profile – 28 MB!!) WPF je v některých rysech vyspělejší (DynamicResource) Hlavní výhrada vůči WPF –nečitelné fonty - dnes neplatí (viz Visual Studio 2010 ). Nový textstack.
14. WPF – co vás nadchne Oboustranná integrace Windows Forms-WPF Možnost napsat aplikaci přímo přistupující do databáze. Podpora pro ribbon Integrace s taskbarem ve Windows 7 ve WPF 4.0 Lepší designer ve VS 2010 (alespoň částečná náhrada za Windows Formsdesigner) XBAP (XAML Browser Application) v prohlížeči
15. WPF nevýhody Stejně jako u SL – zpočátku strmá učební křivka a postupné zvykání na nové „móresy“ ve WPF. Komerční ovládací prvky pro WPF jsou, ale řekl bych, že Windows Forms jsou prozatím podporovány více. WPF nepoběží na WIN 2000
16. ASP.NET MVC Alternativa (ne náhrada!) ASP.NET Web Forms Návrhový vzor Model-View-Controller Pro lidi, co nesnáší ASP.NET postback, životní cyklus stránky, ViewState „Ruční“ řazení (MVC) versus „automat“ (Web Forms) Některé vlastnosti ASP.NET MVC zpětně portovány do Web Forms.
22. KDY Použít <dosaĎte technologii> Kdypoužít Silverlight? Kdy je nejvhodnější ASP.NET Web Forms? Má smysl zabývat se ASP.NET MVC? Role a postavení WPF v .Net světě
23. .NET Compact Framework „Ořezaný“ .NET Framework Speciální jmenné prostory pouze pro compact edici (IrDa) Vývoj ve Visual studiu (2008) – ve VS 2010 ne Pro mobilní zařízení neexistuje „Express“ edice Rychlý vývoj „business“ aplikací Přechod na Compact .Net Framework z velkého .Net Frameworku se zdá být snadný. Staré známé Windows Forms. VětšinouCompact .Net Framework pouze „obaluje“ nativní kód. Zlé jazyky říkají, že i pro verzi 3.5 platí: „Tenký obal nad výjimkou NotSupportedException“.
25. nevýhoda - Podpora různých rozlišení a orientacÍ displeje Změna prvků za běhu aplikace Využití vlastnosti Anchor „Znásilnění“ lokalizace (localizable) ke změně vzhledu formuláře
26. Hlavní nevýhoda Microsoft investuje (prozatím) pouze do Windows Phone 7 (WP 7) CNF aplikace nebudou oficiálně ve WP 7 podporovány Pro Windows CE (business aplikace na specializovaných zařízeních) by ale měl být CNF stále podporován. Ukázka toho, jak Microsoft umí zařezávat projekty
27. Windows Phone 7 (nedávno jeŠtěSeries) Náhrada za (údajně zastaralé) WindowsMobile 6.5 Založeny stále na OS Windows CE (multitasking chybí…) Cíleny hlavně na zákazníky, kteří mají rádi fotky, jsou neustále online a v sociálních sítích… Vývoj v Silverlightu (!!) a XNA Frameworku – Express edice VS/plugin do VS
28. Změny v SILVERLIGHTU pro WP 7 První verze bude pravděpodobně založena na SL 3 (dohady o clipboardu) Podpora „multitouch“ API pro určení polohy (lokace) - GSM, WIFI? PUSH notifikace HW akcelerace pro video a grafiku v mobilu
29. Nevýhody (Nejistota) Telefony nejsou, měly by být dostupné na přelomu roku 2010/2011 Podaří se Microsoftu WP7 prosadit? MS nepotřebuje multitasking, konkurence (iPhone OS 4.0) multitasking uvádí. Jak se budou vyvíjet „business“ aplikace? Kde je např. náhrada za SNAPI v CNF?