Moderni trendy ve_vyvoji_aplikaci

31
MODERNÍ TRENDY VE VÝVOJI APLIKACÍ René Stein Senior Software Architect

description

 

Transcript of Moderni trendy ve_vyvoji_aplikaci

Page 1: Moderni trendy ve_vyvoji_aplikaci

MODERNÍ TRENDY VE VÝVOJI APLIKACÍ

René SteinSenior Software Architect

Page 2: Moderni trendy ve_vyvoji_aplikaci

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 – Workflow Foundation nebo vlastní řešení?

Page 3: Moderni trendy ve_vyvoji_aplikaci

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í“, …)

Page 4: Moderni trendy ve_vyvoji_aplikaci

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 CLOUD Computingu)

Page 5: Moderni trendy ve_vyvoji_aplikaci

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

Page 6: Moderni trendy ve_vyvoji_aplikaci

SILVERLIGHT (VERZE 4)

Plugin (nejen) v prohlížeči pro spouštění aplikací (IE 6, 7, 8, Firefox 2, 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…)

Page 7: Moderni trendy ve_vyvoji_aplikaci

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:

Page 8: Moderni trendy ve_vyvoji_aplikaci

SILVERLIGHT – VLASTNOSTI, KTERÉ SI ZAMILUJETE I

Konečně použitelný „binding“ dat na uživatelské rozhraní.

<Image Source="{Binding CurrentImage, 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)

Page 9: Moderni trendy ve_vyvoji_aplikaci

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

Page 10: Moderni trendy ve_vyvoji_aplikaci

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ů

Control toolkit od Microsoftu Komerční knihovny dalších dodavatelů

(DevXpress) PRISM a Silverlight - silná dvojka Silverlight a MEF - další nerozlučná

dvojice

Page 11: Moderni trendy ve_vyvoji_aplikaci

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“

Page 12: Moderni trendy ve_vyvoji_aplikaci

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.

Page 13: Moderni trendy ve_vyvoji_aplikaci

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.

Page 14: Moderni trendy ve_vyvoji_aplikaci

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 Forms designer)

XBAP (XAML Browser Application) v prohlížeči

Page 15: Moderni trendy ve_vyvoji_aplikaci

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

Page 16: Moderni trendy ve_vyvoji_aplikaci

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.

Page 17: Moderni trendy ve_vyvoji_aplikaci

MVC -ZPRACOVÁNÍ POŽADAVKU I

Controller Model

Page 18: Moderni trendy ve_vyvoji_aplikaci

MVC -ZPRACOVÁNÍ POŽADAVKU II

Controller

View

Page 19: Moderni trendy ve_vyvoji_aplikaci

MVC FLOW

Controller

View

Page 20: Moderni trendy ve_vyvoji_aplikaci

MVC FLOW

Response

Controller

View

Page 21: Moderni trendy ve_vyvoji_aplikaci

SROVNÁNÍ ASP.NET MVC A ASP.NET WEB FORMS

MVC Web Forms

Plná kontrola nad generovaným html.

Serverové ovládací prvky

Nesnášíte designer ASP.NET Web Forms, skrytá pole pro ViewState, občas podivné HTML generované serverovými ovládacími prvky.

Serverové ovládací prvky používáte rádi, místo ručního psaní <table> přetáhnete na design formuláře GridView/Listview.

TDD je absolutní priorita, všechny části frameworku musíte být schopni jednoduše nahradit MOCK objekty

Jste spokojeni s testováním MVP ve Web Forms

Page 22: Moderni trendy ve_vyvoji_aplikaci

KDY POUŽÍT <DOSAĎTE TECHNOLOGII>

Kdy použí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ě

Page 23: Moderni trendy ve_vyvoji_aplikaci

.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šinou Compact .Net Framework pouze „obaluje“ nativní kód.

Zlé jazyky říkají, že i pro verzi 3.5 platí: „Tenký obal nad výjimkou NotSupportedException“.

Page 24: Moderni trendy ve_vyvoji_aplikaci

OVLÁDACÍ PRVKY

Standard

Windows Mobile

Page 25: Moderni trendy ve_vyvoji_aplikaci

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

Page 26: Moderni trendy ve_vyvoji_aplikaci

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

Page 27: Moderni trendy ve_vyvoji_aplikaci

WINDOWS PHONE 7 (NEDÁVNO JEŠTĚ SERIES)

Náhrada za (údajně zastaralé) Windows Mobile 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

Page 28: Moderni trendy ve_vyvoji_aplikaci

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

Page 29: Moderni trendy ve_vyvoji_aplikaci

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?

Page 30: Moderni trendy ve_vyvoji_aplikaci

WORKFLOW

Vlastní řešení Výhrady k Workflow Foundation od

Microsoftu

Page 31: Moderni trendy ve_vyvoji_aplikaci

DOTAZY? A MOŽNÁ ODPOVĚDI