Tworzenie usug sieci Web Witold Bot Witold Boltkolor
Tworzenie usług sieci Web Witold Bołt (Witold. Bolt@kolor. univ. gda. pl) 04 kwietnia 2007 / Koło Naukowe Kolor / Uniwersytet Gdański © 2007 Witold Bołt
Agenda 1. 2. 3. 4. Wprowadzenie - o co chodzi? Wymagania / Instalacja Powtórka z podstawowych technologii Tworzymy nasz (nie)prosty web serwis • Dostęp do bazy danych • Przetwarzanie danych • Wewnętrzna i zewnętrzna reprezentacja (konwersje) 5. Podsumowanie 6. Gdzie szukać pomocy Proszę o zadawanie pytań gdy tylko pojawią się w waszych głowach; )
Wymagania / Instalacja Web Service Software Factory do dodatek do Visual Studio, który działa w wersjach 2005 Standard i lepszych i wymaga: • Guidance Automation Extensions • Guidance Automation Toolkit • Enterprise Library for. NET Framework 2. 0 • Composite UI Application Block in C# (opcja) Linki na stronie: http: //www. codeplex. com/servicefactory Do zrobienia przykładów z prezentacji potrzebny jest też serwer bazodanowy MS SQL Server.
Krok 0: Co to jest web service? • XML e. Xtensible Markup Language • RPC Remote Procedure Call • SOAP Simple Object Access Protocol • WSDL Web Service Definition Language • SOA Service Oriented Architecture • AJAX Asynchronous Java. Script and XML
Krok 1: Projekt i co trzeba zrobić wcześniej 1. Decyzja: co będzie robić nasz serwis? Jakie będą komunikaty/wiadomości? 2. Projekt: struktura bazy danych, struktura i opis wiadomości. . . 3. Inicjalizacja: tworzymy pustą bazę danych i testowe dane, tworzymy projekt w Visual Studio.
Demo Krok 1: Projekt
Krok 2: Warstwa biznesowa - dane • • Typy wewnętrzne i zewnętrzne. Po co tyle komplikacji? Powtórka z podstawowych idei OOP. Powtórka z wzorców projektowych: facade, proxy, bridge, factory.
Demo Krok 2: Warstwa biznesowa - dane
Krok 3: CRUD • • Procedury CRUD w języku T-SQL. Co to znaczy CRUD? Po co pisać procedury SQL? Unikanie wielu dostępów do bazy, czyli po co nam algorytmy i struktury danych.
Demo Krok 3: CRUD
Krok 4: Dostęp do bazy danych • Warstwa Data Access – repozytorium obiektów. Czyli o tym jak ukryć bazę danych przed programistą? • Część Data Access Layer jako najbardziej schematyczna część oprogramowania. • Inny pomysły to O/R mapping: np. NHibernate, Soda i WIELE innych.
Demo Krok 4: Dostęp do bazy danych
Krok 5: Zewnętrzne typy danych • To co mówimy stanowi o tym kim jesteśmy? Sens zewnętrznych typów danych. • Analogia: nie mówimy wszystkiego co myślimy, nie myślimy wszystkiego co mówimy.
Demo Krok 5: Zewnętrzne typy danych
Krok 6: Opakowania. . . • Po co nam tyle klas? . . . • . . . Zróbmy ich jeszcze więcej! • Ponownie: podstawy OOP.
Demo Krok 6: Opakowania
Krok 7: Service Contracts • Definiujemy interfejs naszego serwisu. • Co to jest interfejs? Po co są interfejsy? • Podejście: Projektowanie przez interfejsy (dobre przykłady: Spring, CORBA).
Demo Krok 7: Service Contracts
Krok 8: Tłumaczenie typów • Do you speak polisz? • Ta część może być bardzo trywialna lub bardzo skomplikowana! Trzeba uważać! Duża błędogenność.
Demo Krok 8: Tłumaczenie typów
Krok 9: Logika biznesowa • Zróbmy coś w końcu! • Główny cel współczesnego projektowania i architektury oprogramowania: oddzielić logikę biznesową od „całej reszty” i maksymalnie zautomatyzować „całą resztę”. • Ideał: programista pisze tylko tą część i dalej klika już tylko w kilka przycisków. • Tak jak to zwykle bywa z ideałami, póki co fajnie wygląda tylko na slajdzie.
Demo Krok 9: Logika biznesowa
Krok 10: I co dalej? • Zabezpieczenia: autoryzacja, autentykacja, szyfrowanie, . . . • Debugowanie, logowanie, kontrola. • Sprytne łapanie wyjątków – Exception Shielding. • WCF – Windows Communication Foundation – przyszłość web services pod Windows!
Materiały • Code. Guru i artykuł Adama Stramskiego • Strona WSSF: http: //www. codeplex. com/servicefactory • Najlepsza strona w sieci ; ) http: //www. hope. art. pl/wyklady/
Pytania i odpowiedzi być może. . .
Dziękuję, że słuchaliście, albo przynajmniej udawaliście!
- Slides: 26