Decyzje projektowe w .NET Framework Seminarium magisterskie 10.I.2005 Piotr Tamowicz
Wstęp Cel prezentacji Zakres omówionych tematów Aplikacja klasy Enterprise Przedstawione sytuacje decyzyjne Rodzaj aplikacji klienckiej Fizyczny Podział systemu Udostępnienie środkowej warstwy (logiki biznesowej) Reprezentacja danych Podsumowanie
Aplikacja klasy Enterprise Czym jest? Jakimi cechami się charakteryzuje? Dostępność Wydajność Bezpieczeństwo Skalowalność Możliwość pracy w różnych warunkach sprzętowych
Rodzaj aplikacji klienckiej Aplikacja Windows czy aplikacja Internetowa Web Forms Windows Forms Wrażenia Użytkownika Trudność tworzenia dynamicznej zawartości DHTML. Dynamiczne, łatwość interakcji, szerokie możliwości. Rozmieszczenie Relatywnie łatwe. Jedynie na serwerze Bardziej uciążliwe. Konieczność instalacji na każdej stacji roboczej. Aktualizacja Shadow copying Nieprzezroczysta dla użytkownika. Bezpieczeństwo Podobne mechanizmy autentykacji i autoryzacji Technologie Mobilne MS Mobile Internet Toolkit .NET Compact Framework
Fizyczny podział systemu Wpływ decyzji Rozmieszczenie Bezpieczeństwo Skalowalność Wydajność Możliwe rozwiązania Aplikacja monolityczna Aplikacja rozproszona Wpływ na warstwy logiczne
Fizyczny podział systemu Perspektywa rozmieszczenia Warstwa prezentacji Pojedyncza maszyna Warstwa logiki Warstwa Danych WS Façade WS Façade Biz Services D A L WIN Service SP or ES Façade ASP .NET UI Łatwe w zarządzaniu Wydajność nie jest obniżona przez komunikację w sieci Rozwiązanie dostępne przez firmy dzierżawiące serwery Skalowalność Bezpieczeństwo
Fizyczny podział systemu Perspektywa rozmieszczenia Warstwa prezentacji Serwer WWW rówineż jako Serwer Aplikacji Warstwa logiki Serwer SQL Warstwa Danych WS Façade WS Façade Biz Services D A L WIN Service SP or ES Façade ASP .NET UI Łatwe w zarządzaniu Wydajność nieznacznie obniżona przez odwołania do BD Więcej możliwości skalowania Rozwiązanie bardziej bezpieczne Skalowalność Bezpieczeństwo Koszty
Fizyczny podział systemu Perspektywa rozmieszczenia Warstwa prezentacji Serwer WWW Serwer Aplikacji Warstwa logiki Warstwa Danych Serwer SQL WS Façade WS Façade Biz Services D A L WIN Service SP or ES Façade ASP .NET UI Skalowalność Bezpieczeństwo Serwer Aplikacji może być serwerem dla wielu klientów Wydajność Komplikacje przy autentykacji Koszty, koszty, koszty…
Fizyczny podział systemu Perspektywa bezpieczeństwa Zależność od rozmieszczenia Przykładowe ograniczenia DMZ Dzierżawa Serwera Wybór mechanizmu zabezpieczeń Perspektywiczne podejście
Autentykacja i Autoryzacja Dane przesyłane w nagłówku SOAP Na podstawie roli przypisanej użytkownikowi zwracany jest connection string. Użytkownik wprowadza UserID i Password Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade WS Façade Biz Services D A L SP Dane przesyłane w nagłówku SOAP ES Façade Custom HTTP Handler rozpakowuje dane użytkownika i wywołuje metodę z fasady która tworzy obiekt principal. ASP .NET UI
Fizyczny podział systemu Perspektywa wydajności Wykonywanie indywidualnych testów Uwzględnienie potencjalnego zapotrzebowania Okresowe powtarzanie testów wydajności
Udostępnienie warstwy logiki biznesowej Dostępne scenariusze Web Services Façade Enterprise Services Façade Obsługiwane przez proces IIS, komunikacja poprzez Remoting Uruchamiane w procesie klienta COM+ Server application Windows Service
Udostępnienie warstwy logiki biznesowej Web Services Façade + Rozmieszczenie + Możliwość ponownego użycia Warstwa prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) WS Façade Biz Services D A L SP ASP .NET UI (aspx) Wydajność X-proces przy każdym żądaniu
Udostępnienie warstwy logiki biznesowej Enterprise Services Façade + Łatwe wykorzystanie MS Remoting + Wydajność Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) ES Façade hosted in IIS Biz Services D A L SP ASP .NET UI (aspx) Konieczność rejestracji X-Process przy każdym żądaniu
Façade. Library app. Loaded on client process Udostępnienie warstwy logiki biznesowej Enterprise Services Façade + wydajność Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) ES Façade. Library app. Loaded on client process Biz Services D A L SP ASP .NET UI (aspx) - Autoryzacja i autentykacja dokonywana w warstwie prezentacji
Udostępnienie warstwy logiki biznesowej Enterprise Services Façade + możliwości COM+ Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) ES Façade hosted in DLLHost (server app) Biz Services D A L SP ASP .NET UI (aspx) Konieczność rejestracji X-Proces przy każdym żądaniu
Reprezentacja Danych Forma przesyłania między warstwami Dostępne Możliwości Datasets Typed Datasets XML Kolekcje Kryteria wyboru Wymagania funkcjonalne Wydajność Łatwość utrzymania Możliwości niezależnej modyfikacji
Reprezentacja Danych Datasets Za Praca w środowisku odłączonym Wydajne Abstrakcja Databinding Czytelność kodu Przeciw Późna Kontrola typów Diffgrams Zależność od schematu bazy danych
Reprezentacja Danych Typed Datasets Za Praca w środowisku odłączonym XSD Databinding Wczesna kontrola typów Czytelność kodu Przeciw Diffgrams Wolniejsze niż Datasets Niedostępne w Compact Framework Zależność od schematu bazy danych
Reprezentacja Danych XML Za Standard Elastyczna struktura Przeciw Brak semantyki Konieczność manualnej edycji
Reprezentacja Danych Kolekcje Za OO Przeciw Złożoność kodu Wydajność
Podsumowanie, bibliografia MSDN Library P&P: Application Architecture for .NET Building Secure ASP .NET Solutions http://www.microsoft.com/downloads/ release.asp?ReleaseID=44047