UIP Application Block
-
Upload
yoshi-walls -
Category
Documents
-
view
39 -
download
0
description
Transcript of UIP Application Block
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
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”
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
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();
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.