Decyzje projektowe w .NET Framework Seminarium magisterskie 10.I.2005 Piotr Tamowicz 1 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 Wrażenia Użytkownika Rozmieszczenie Trudność tworzenia dynamicznej zawartości DHTML. Relatywnie łatwe. Jedynie na serwerze Aktualizacja Shadow copying Bezpieczeństwo Technologie Mobilne MS Mobile Internet Toolkit Windows Forms Dynamiczne, łatwość interakcji, szerokie możliwości. Bardziej uciążliwe. Konieczność instalacji na każdej stacji roboczej. Nieprzezroczysta dla użytkownika. Podobne mechanizmy autentykacji i autoryzacji .NET Compact Framework Fizyczny podział systemu Wpływ decyzji Możliwe rozwiązania Rozmieszczenie Bezpieczeństwo Skalowalność Wydajność Aplikacja monolityczna Aplikacja rozproszona Wpływ na warstwy logiczne Fizyczny podział systemu Perspektywa rozmieszczenia Warstwa logiki Warstwa prezentacji WS Façade WIN Service 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 Warstwa Danych WS Façade Pojedyncza maszyna or Biz Services ES Façade Skalowalność Bezpieczeństwo D A L S P Fizyczny podział systemu Perspektywa rozmieszczenia Warstwa logiki Warstwa prezentacji WS Façade WS Façade Serwer WWW rówineż jako WIN Biz Serwer Aplikacji or Service Services ASP .NET UI Warstwa Danych ES Façade Ł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 D Serwer SQL S A L P Fizyczny podział systemu Perspektywa rozmieszczenia Warstwa logiki Warstwa prezentacji WS Façade Serwer WIN WWW Service ASP .NET UI Warstwa Danych WS Façade Serwer Biz Aplikacji or Services D Serwer SQL S A L ES Façade Skalowalność Bezpieczeństwo Serwer Aplikacji może być serwerem dla wielu klientów Wydajność Komplikacje przy autentykacji Koszty, koszty, koszty… P 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 Na podstawie roli przypisanej Dane przesyłane w użytkownikowi nagłówku SOAP zwracany jest Użytkownik Warstwa Prezentacji Warstwa Logiki Warstwa Danych connection string. wprowadza UserID i Password WS Façade WS Façade Biz Services Dane przesyłane w ASP .NET nagłówku SOAP UI D A L S P Custom HTTP Handler rozpakowuje dane użytkownika i wywołuje ES Façade metodę z fasady która tworzy obiekt principal. Fizyczny podział systemu Perspektywa wydajności 35 Wykonywanie indywidualnych testów Uwzględnienie potencjalnego zapotrzebowania Okresowe powtarzanie testów wydajności .aspx page method 30 25 Serviced Component (Lib) 20 Class Lib R P S 15 10 5 0 Serviced Component (Server) Web Service 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 Warstwa prezentacji + Rozmieszczenie + Możliwość Warstwa Logiki ponownego użycia Warstwa Danych WS Façade (asmx) WS Façade ASP .NET UI (aspx) Biz Services - Wydajność - X-proces przy każdym żądaniu D A L S P Udostępnienie warstwy logiki biznesowej Enterprise Services Façade Warstwa Prezentacji + Łatwe wykorzystanie MS Remoting Warstwa Logiki + Wydajność Warstwa Danych WS Façade (asmx) ES Façade hosted in IIS ASP .NET UI (aspx) Biz Services - Konieczność rejestracji - X-Process przy każdym żądaniu D A L S P Udostępnienie warstwy logiki biznesowej Enterprise Services Façade Warstwa Prezentacji + Warstwa wydajność Logiki Warstwa Danych WS Façade (asmx) ES Façade. Library app. Loaded on client process ASP .NET UI (aspx) Biz Services - Autoryzacja i autentykacja dokonywana w warstwie prezentacji D A L S P Udostępnienie warstwy logiki biznesowej Enterprise Services Façade Warstwa Prezentacji Warstwa Logiki + możliwości COM+ Warstwa Danych WS Façade (asmx) ES Façade hosted in DLLHost (server app) ASP .NET UI (aspx) Biz Services - Konieczność rejestracji - X-Proces przy każdym żądaniu D A L S P 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