Moderni trendy ve_vyvoji_aplikaci
-
Upload
renestein -
Category
Technology
-
view
11.536 -
download
1
description
Transcript of Moderni trendy ve_vyvoji_aplikaci
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