Decyzje projektowe w .NET Framework

advertisement
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
Download
Study collections