Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło 1
Nota autorska. Znaczna część ilustracji w tej prezentacji została zaczerpnięta z wielu źródeł ogólnie dostępnych w internecie. Oto główne źródła: Tomasz Kopacz, Ciekawostki w WinFX, tkopacz@tomaszkopacz.com David Chappell, Introducing the.net Framework 3.5, September 2007 Introducing the Microsoft.NET Framework 3.0: ( http://wf.netfx3.com/files/folders/6677/download.aspx) 2
Wyzwania tworząc nowoczesne aplikacje Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tych danych jest jednak różnorodna. Aplikacje komunikują się ze sobą zarówno wewnątrz korporacji jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją procesów biznesowych. Niektóre elementy procesów są automatyzowane. Zasadne zatem jest tworzenie kodu który umożliwia planowanie kroków poszczególnych procesów (support for workflow based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, grafika, wideo) Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 3
Odpowiedzi.NET Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tych danych jest jednak różnorodna. Aplikacje komunikują się ze sobą zarówno wewnątrz korporacji jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) ASP.NET AJAX: Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją Support Niektóre for Responsive procesów biznesowych. elementy Browser procesów Applications są automatyzowane. Zasadne zatem jest tworzenie kodu który umożliwia planowanie kroków poszczególnych procesów (support for workflow based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, grafika, wideo) Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 4
Odpowiedzi.NET Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tych danych jest jednak różnorodna. Aplikacje komunikują się ze sobą zarówno wewnątrz korporacji jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją procesów biznesowych. Niektóre elementy procesów są automatyzowane. Zasadne zatem jest tworzenie kodulinq: który umożliwia Language-Integrated Query: planowanie kroków Consistent poszczególnych procesów (supportdata for workflow Access to Diverse based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, grafika, wideo) Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 5
Odpowiedzi.NET Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tych danych jest jednak różnorodna. Aplikacje komunikują się ze sobą zarówno wewnątrz korporacji jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją procesów biznesowych. Niektóre elementy procesów są automatyzowane. Zasadne zatem jest tworzenie kodu który umożliwia planowanie kroków poszczególnych procesów (support for workflow based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, Windows Communication Foundation: grafika, wideo) Support for Service-Oriented Applications Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 6
Odpowiedzi.NET Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tychworkflow danych jestfoundation: jednak różnorodna. Windows Support for Workflow-Based Aplikacje komunikują się ze sobą zarówno wewnątrzapplications korporacji jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją procesów biznesowych. Niektóre elementy procesów są automatyzowane. Zasadne zatem jest tworzenie kodu który umożliwia planowanie kroków poszczególnych procesów (support for workflow based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, grafika, wideo) Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 7
Odpowiedzi.NET Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tychpresentation danych jest jednak różnorodna. Windows Foundation: A Unified Approach Diversekorporacji User Interfaces Aplikacje komunikują się ze sobą zarównotowewnątrz jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją procesów biznesowych. Niektóre elementy procesów są automatyzowane. Zasadne zatem jest tworzenie kodu który umożliwia planowanie kroków poszczególnych procesów (support for workflow based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, grafika, wideo) Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 8
Odpowiedzi.NET Użytkownicy oczekują aby aplikacje internetowe działały podobnie do aplikacji zainstalowanych na stacjach roboczych. Przechowywanie i reprezentacja danych pozostaje kluczowa dla większości aplikacji. Reprezentacja tych danych jest jednak różnorodna. Aplikacje komunikują się ze sobą zarówno wewnątrz korporacji jak i z dostawcami zewnętrznymi. Współczesne systemy powinny wspierać SOA (Service Oriented Architecture) Organizacje coraz częściej funkcjonują zgodnie z pewna koncepcją procesów biznesowych. Niektóre elementy procesów są Windows CardSpace: automatyzowane. Zasadne zatem jest tworzenie kodu który umożliwia Consistent User Control of Digital Identities planowanie kroków poszczególnych procesów (support for workflow based applications) Znacznie wzrosły wymagania odnośnie interfejsu użytkownika. (dokumenty, grafika, wideo) Osoby intensywnie korzystające z aplikacji potrzebują możliwości identyfikacji w różnych systemach. Istnieje wiele technologii. 9
10
Win FX? nowe API WinFX czyli.net Framework 3.0 następca Win32, przeznaczony tylko dla kodu zarządzalnego: Windows Workflow Foundation (WF) Windows Communication Foundation (WCF) Maszyna stanów + sekwencje + DESIGNER Web Services, Remoting, MSMQ w jednym pudełku API Windows Presentation Foundation (WPF) Wektorowe Windows Forms Deklaratywny UI; XAML; inna filozofia i architektura 11
12
Windows Workflow Foundation 13
Windows Workflow Foundation Jedna technologia workflow na Windows Ale rozszerzalna Framework zarówno do budowy systemowych (automatycznych) przepływów jak i tych sterowanych przez człowieka (wybór; UI itp.) Nie jest to serwer - framework, API, DLL Serwer można zbudować Przykład: SharePoint 3.0 W środku: Tylko maszyna stanu + sekwencje +Designer Lub XAML +Usługi (services) 14
WF podstawowe pojęcia Activity (Aktywność) Diagram stanów Wykonywana operacja w danym systemie EscalateToManager CheckInventory Gotowe: Wywołaj kod, usługę Web, 2 typy definicji przepływów: Diagram przepływów Diagram stanów + zdarzenia Modele można łączyć Reguła (Rule) parametryzuje Host - uruchamia przepływ Używa usług (Runtime Services) Zaplecze usługowe: transakcje, stan Diagram przepływów 15
Architektura 16
Przepływy i zastosowania Human Workflow System Workflow Akceptacja dokumentu EDI Akceptacja płatności przez 10 departamentów Przetwarzanie zamówienia Produkcja Konsygnacja towaru Wewnętrzna logika aplikacji W tym przepływ w sensie kolejności formatek Zatwierdzanie kosztów Zgłoszenia serwisowe Główny problem:transakcja żyjąca 30 dni Kompensacja Różnica tylko formalna. Warstwa usługowa zapewnia infrastrukturę 17
Windows Presentation Foundations 18
Windows Presentation Foundation Jednolity zestaw narzędzi do tworzenia nowoczesnych interfejsów użytkownika zintegrowanego z dokumentami i multimediami. 19
Windows Presentation Foundation Wykorzystanie XAMLa pozwala odseparować kompetencje dewelopera i projektanta 20
21
Windows Presentation Foundation Rozdzielona definicja UI i obsługa XAML + code behind Ale przekształcane do CS/VB.NET XAML: Szybsze niż GDI+ Dużo nowych możliwości <Window x:class="obiekt" <Button Name ="button١" Click="bC >Kliknij</Button> private void bc(object sender, RoutedEventArgs e) { } Obiekty 2D i 3D, kontrolki, okna, pojemniki automatycznie rozkładające zawartość Transformacje 2D/3D (skalowania/obroty) Animacje; wideo (transformacje itp.) Rozmiary metryczne Pixel w WPF = 1/96 cala Prezentacja potok Longhorn Server + klient terminalowy z bogatym UI Nie ma wszędzie uchwytu okna Wiele wątków! DispatcherObject.VerifyAccess 22
Windows Communication Foundation Jednolity zestaw narzędzi do błyskawicznego wytwarzania aplikacji zorientowanych na usługach (ang. service oriented applications). 23
Windows CardSpace Technologia upraszczająca i poprawiająca bezpieczeństwo procesów logowania i autentykacji. 24
Prywatny pulpit Oddziela konteksty użytkownika Zabezpiecza przed przechwyceniem haseł Self-issued cards (samodzielnie wystawione karty) Nie potwierdzane Przechowywane lokalnie Karty zarządzalne (Managed cards) Potwierdzane Przechowywane jako STS 25
Ewolucja.NET Framework 26
27
Scenariusz zastosowania.net 3.5 28
ASP.NET AJAX 29
Language-Integrated Query Przykładowe zapytanie w LINQ w języku C#: kwerenda zwraca Czym LINQ różni się od SQL? LINQ to ADO.NET: LINQ to Objects: LINQ to XML: Ciekawe przykłady: http://weblogs.asp.net/scottgu/archive/2006/05/14/using-linq-with-asp.net-_2800_part-1_2900_.aspx 30
LINQ przykład ASP 31
Windows Communication Foundation 32
Windows Workflow Foundation 33
Base Activity Library IfElse: executes the activities contained in two or more possible paths based on whether a condition is met. While: repeatedly executes one or more activities as long as a condition is true. Sequence: executes a group of activities one at a time in a defined order. Parallel: executes two or more groups of activities in parallel. Code: executes a defined chunk of code. Listen: waits for a specific event, then executes one or more activities when that event is received. InvokeWebService: calls a Web service using ASP.NET Web Services. State: represents a state in a workflow s state machine. EventDriven: defines a transition containing one or more activities that should be executed when a specific event is received while in a particular state. Policy: allows executing business rules using a WF-supplied rules engine. 34
Narzędzia... 35
Interakcja Dziękuję za uwagę. Chcemy być coraz lepsi! Jeżeli coś cię zainteresowało napisz e-maila: robert@iem.pw.edu.pl Jeżeli coś cię bardzo znudziło napisz e-maila: robert@iem.pw.edu.pl Jeżeli zauważyłeś błąd napisz e-maila: robert@iem.pw.edu.pl 36