Moderni trendy ve_vyvoji_aplikaci

Post on 18-Nov-2014

11,534 views 1 download

description

 

transcript

MODERNÍ TRENDY VE VÝVOJI APLIKACÍ

René SteinSenior 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 – Workflow Foundation 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 CLOUD Computingu)

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

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í.

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

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ů

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

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

Response

Controller

View

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

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ě

.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“.

OVLÁDACÍ PRVKY

Standard

Windows Mobile

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é) 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

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 Workflow Foundation od

Microsoftu

DOTAZY? A MOŽNÁ ODPOVĚDI