SlideShare uma empresa Scribd logo
1 de 31
Moderní trendy ve Vývoji aplikací René Stein Senior Software Architect
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í?
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í“, …)
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)
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
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…)
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:
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)
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
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
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“
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.
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.
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
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
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.
MVC   -zpracování požadavku I Controller Model
MVC   -zpracování požadavku II Controller View
MVC Flow Controller View
MVC Flow Controller View Response
Srovnání ASP.Net MVC a ASP.NetWeBForms
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ě
.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“.
Ovládací prvky Windows Mobile Standard
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
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
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
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
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?
Workflow Vlastní řešení Výhrady k WorkflowFoundation od Microsoftu
Dotazy? A možná odpovědi

Mais conteúdo relacionado

Semelhante a Moderni trendy ve_vyvoji_aplikaci

Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíRené Stein
 
Interaktivní 3D služby v cloudu
Interaktivní 3D služby v clouduInteraktivní 3D služby v cloudu
Interaktivní 3D služby v clouduJiri Danihelka
 
Vývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyVývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyMartin Maly
 
View5 technicka 2011
View5 technicka 2011View5 technicka 2011
View5 technicka 2011Vladan Laxa
 
Vyvoj api xpages_mobily
Vyvoj api xpages_mobilyVyvoj api xpages_mobily
Vyvoj api xpages_mobilyTCL DigiTrade
 
Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...
Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...
Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...Ludek Trefny
 
Moderní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHPModerní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHPMichalMajer2
 
Přednáška V3C jaro 2010 (IIVOS 1)
Přednáška V3C jaro 2010 (IIVOS 1)Přednáška V3C jaro 2010 (IIVOS 1)
Přednáška V3C jaro 2010 (IIVOS 1)Jaroslav Prodelal
 
Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)
Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)
Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)Jaroslav Prodelal
 

Semelhante a Moderni trendy ve_vyvoji_aplikaci (20)

TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikací
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
Interaktivní 3D služby v cloudu
Interaktivní 3D služby v clouduInteraktivní 3D služby v cloudu
Interaktivní 3D služby v cloudu
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 
Vývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyVývojářské Nástroje a Techniky
Vývojářské Nástroje a Techniky
 
TNPW2-2016-05
TNPW2-2016-05TNPW2-2016-05
TNPW2-2016-05
 
View5 technicka 2011
View5 technicka 2011View5 technicka 2011
View5 technicka 2011
 
TNPW2-2016-02
TNPW2-2016-02TNPW2-2016-02
TNPW2-2016-02
 
TNPW2-2014-02
TNPW2-2014-02TNPW2-2014-02
TNPW2-2014-02
 
Vyvoj api xpages_mobily
Vyvoj api xpages_mobilyVyvoj api xpages_mobily
Vyvoj api xpages_mobily
 
ASP.NET 3.5 / futures
ASP.NET 3.5 / futuresASP.NET 3.5 / futures
ASP.NET 3.5 / futures
 
Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...
Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...
Využití TFS jako jednotného úložiště pro heterogenní vývoj (Android, iOS, Win...
 
Zaverecny ukol
Zaverecny ukolZaverecny ukol
Zaverecny ukol
 
Moderní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHPModerní Server Side UI Rendering v PHP
Moderní Server Side UI Rendering v PHP
 
Přednáška V3C jaro 2010 (IIVOS 1)
Přednáška V3C jaro 2010 (IIVOS 1)Přednáška V3C jaro 2010 (IIVOS 1)
Přednáška V3C jaro 2010 (IIVOS 1)
 
Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)
Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)Přednáška Virtualizace, clustery a cloud computing (V3C) (zkrácená)
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.
  • 17. MVC -zpracování požadavku I Controller Model
  • 18. MVC -zpracování požadavku II Controller View
  • 20. MVC Flow Controller View Response
  • 21. Srovnání ASP.Net MVC a ASP.NetWeBForms
  • 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“.
  • 24. Ovládací prvky Windows Mobile Standard
  • 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?
  • 30. Workflow Vlastní řešení Výhrady k WorkflowFoundation od Microsoftu
  • 31. Dotazy? A možná odpovědi