uip application block

17
UIP Application Block Bartosz Rybak

Upload: yoshi-walls

Post on 01-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

UIP Application Block. Bartosz Rybak. Agenda. Kilka słów o problematyce Co to jest APPLICATION BLOCK Czemu UIP jest dobry Jak dokładnie to działa Czy są minusy. Trudne zadania w aplikacjach. Rozdzielenie kodu nawigacji od widoku Dostępność tablicy stanu (STATE) - PowerPoint PPT Presentation

TRANSCRIPT

UIP Application Block

Bartosz Rybak

Agenda

• Kilka słów o problematyce

• Co to jest APPLICATION BLOCK

• Czemu UIP jest dobry

• Jak dokładnie to działa

• Czy są minusy

Trudne zadania w aplikacjach

• Rozdzielenie kodu nawigacji od widoku

• Dostępność tablicy stanu (STATE)

• Przechowywanie chwilowego stanu

• Elastyczność i ponowne użycie

Building Blocks

• Gotowe Rozwiązania

• Komponenty

• Klocki gotowe do ponownego użycia

Microsoft Building Blocks

• Aggregation Application Block for .NET• Asynchronous Invocation Application Block for .NET• Authorization and Profile Application Block• Caching Application Block for .NET• Configuration Management Application Block for .NET• Data Access Application Block for .NET• Exception Management Application Block for .NET• Logging Application Block• Smart Client Offline Application Block• Updater Application Block for .NET• User Interface Process Application Block for .NET

Założenia UIP

• Rozdzielenie Aplikacji na warstwy

• Nawigacja oparta na TASKach

• Ułatwione zarządzanie stanem

• Możliwość przechowywania tzw „snapshots of state”

Jak UIP dzieli na warstwy

• Klasyczne MVC

State Persistence Providers

• IsolatedStoragePersistence

• SecureIsolatedStoragePersistence

• SqlServerPersistState

• SecureSqlServerPersistState

• SessionStatePersistence

• MemoryStatePersistence

Jakie korzyści daje UIP

• Odzielenie nawigacji i logiki od interfejsu

• Możliwość użycia tego samego Modelu dla różnych typów aplikacji

• Usunięcie zarządzania stanem z interfejsu

• Snapshots

Jak to wszystko działa

• View

• Controller

• Pliki konfiguracyjne

Navigation Graphs

<navigationGraph iViewManager="WinFormViewManager" name="Shopping" state="State" statePersist="SqlServerPersistState" startView="cart"> <node view="cart"> <navigateTo

navigateValue="resume"view="browsecatalog" /> <navigateTo navigateValue="checkout"

view="checkout" /> <navigateTo navigateValue="fail" view="error" /> </node> <node view="browsecatalog">

<navigateTo navigateValue="addItem" view="cart"/> <navigateTo navigateValue="fail" view="error" /> </node>…</navigationGraph>

Nawigacja

• Startowanie Taska (zależnie od navigatora)– StartNavigationTask– StartOpenNavigationTask– StartUserControlsTask

• Navigowanie– State.NavigateValue = „back”;– Navigate();

Przesyłanie parametrów

• TaskArgumentsHolder

• EnterTask()

Minusy niestety są

• Uzależnienie od dostawcy Bloku

• Konieczność stosowania się do założeń Bloku lub czasochłonna przebudowa (nadbudowa)

• Pliki konfiguracyjne!!!!

Podsumowanie

• Korzyści bardzo zależą od umiejętności wykorzystania.

• Istnieje ryzyko uzależnienia się

• Możliwe jest przyspieszenie procesu produkcyjnego

• Możliwe też jest jego drastyczne spowolnienie

Podsumowanie c.d.

• Pliki konfiguracyjne nie są częścią kodu

• Wspomaga podział oprogramowania na warstwy

• Bardzo zwiększa elastyczność i reużywalność kodu.

DZIĘKUJĘ