Transkrypt
PDF
Usługa systemowa Usługa systemowa Specyficzna aplikacja działająca na komputerze cały czas, nawet bez zalogowania Nie ma dostępu do interfejsu użytkownika Wymaga zainstalowania i skonfigurowania za pomocą panelu Administracyjnego Tworzymy projekt Log Ponieważ usługa ma ograniczony interfejs użytkownika, powinna posługiwać się LOG’iem Dodajemy do projektu obiekt EventLog Pusty kod Inicjalizacja Ustawiamy parametry EventLog w konstruktorze Metoda OnStart Metoda OnStop Inne metody On… OnPause - gdy usługa zostanie wstrzymana OnContinue - gdy usługa zostanie wznowiona OnShutdown - gdy system jest zamykany OnCustomCommand - polecenie z menedżera usług OnPowerEvent - zdarzenie zasilania OnSessionChange - zmiana sesji usług zdalnych Zdarzenie OnTime Tu będziemy realizować logikę usługi Uwaga!!! - to nie może być zwykły Timer z WinForms nie działa! Testy Usługę najlepiej testować za pomocą testów jednostkowych Wybieramy polecenie „New Test” z menu „Test” Testy W tej klasie możemy dopisywać metody testowe i je uruchamiać Instalacja Serwis musi zostać zainstalowany na maszynie docelowej. Można skorzystać z polecenia InstallUtil lub stworzyć Setup Instalacja Serwis należy dalej skonfigurować. ADO.NET Historia Biblioteki specjalizowane. ODBC (Open Database Connectivity) – języki niskiego poziomu – C++. DAO (Data Access Objects) – Visual Basic 3. RDO (Remote Data Objects) – Visual Basic 4 Enterprise – opakowane ODBC. OLE DB – podobne do ODBC z interfejsem COM. ADO (ActiveX Data Objects) – OLE DB dostosowane dla języków wysokiego poziomu. ADO .NET to zestaw klas umożliwiających odczyt i obróbkę danych z różnych źródeł zgodny z platformą .NET i posiadający wszystkie jej cechy: wielojęzyczność, zarządzany kod, garbage-collection, kompilator JIT, model w pełni obiektowy. ADO .NET ActiveX Data Objects .NET Następca ADO (ActiveX Data Objects) Celem ADO .NET jest abstrakcja różnych źródeł danych ADO .NET jest oparte na XML’u. ADO .NET jest oparte na trybie „bezpołączenia” (connection-less) Przestrzenie nazw System.Data – podstawowe klasy System.Data.Common – klasy współdzielone przez różne modele dostępu do danych System.Data.OleDb – klasy dostępu do różnych baz danych System.Data.SqlClient – klasy specjalizowane dla SQL Server System.Data.ODBC – klasy specjalizowany pod bazy danych łączone przez ODBC System.Data.SqlTypes – klasy z typami danych optymalizowanymi dla SQL Server Dostawcy danych Dane są dostarczane przez klasy będące dostawcami (providers) Dostępni są dostawcy dla: OLE DB, SQL Server, ODBC, MySQL, ORACLE, …. Dostawcy danych Dostawca danych DataProvider Połączenie Connection Źródło danych Polecenie Command Czytnik danych DataReader Adapter danych DataAdapter Podstawowe klasy Connection – klasa odpowiedzialna za połączenie z bazą danych Command – wykorzystywane do wywoływania poleceń dla źródła danych DataReader – zbiór danych typu read-only DataAdapter – odpowiada za wczytanie danych i ich aktualizację W zależności od dostawcy danych klasy te mają inną implementację. Connection ✦ ✦ ✦ Podobna do klasy w klasycznym ADO. Zawiera informacje o połączeniu z bazą danych w postaci łańcucha połączenia (connection string). Określa źródło danych, nazwę użytkownika i hasło oraz inne parametry połączenia. Zawiera metody obsługujące połączenie i transakcje. Command ✦ ✦ ✦ Klasa polecenia jest też podobna do poprzedniczki w ADO. Przechowuje informacje dotyczące poleceń, które mogą być wykonywane, np. w postaci poleceń SQL. Polecenia SQL mogą być parametryzowane. Można się też odwoływać do procedur zapisanych w bazie danych (stored procedures). DataReader ✦ Służy tylko do odczytu danych i to tylko sekwencyjnie – nie ma możliwości nawigowania w zbiorze danych. ✦ Zaletą jest szybkość działania. ✦ Wymaga aktywnego połączenia. DataAdapter ✦ ✦ ✦ Stanowi łącznik pomiędzy odłączonym źródłem danych i zbiorem danych. Między innymi składają się na niego polecenia umożliwiające pobranie danych, uaktualnienie danych, dodanie danych i ich usunięcie. Jeżeli adapter nie zawiera któregoś z tych poleceń, próba np. aktualizacji danych spowoduje błąd (zostanie zgłoszony wyjątek). DataAdapter Adapter SELECT Polecenie SQL INSERT Polecenie SQL UPDATE Polecenie SQL DELETE Polecenie SQL DataSet zbiór danych, jest zawsze rozłączony (disconnected), nie jest zależny od źródła danych (baza danych, dokument XML, plik tekstowy), wymaga pośrednictwa adaptera, może zawierać wiele tabel (relacji), zawiera informacje o powiązaniach. DataSet Provider Źródło danych DataAdapter DataSet Przykład DataSet Zbiór danych DataSet Kolekcja tablic Tables Kolekcja kolumn Columns Kolumna DataColumn Kolekcja wierszy Rows Wiersz DataRow Tablica DataTable Przykład Do takiego zastosowania należałoby raczej użyć obiektu DataReader. Uaktualnienie danych Obsługa XML Dane ze zbioru danych można zapisać do pliku XML Zbiór danych można wczytać z dobrze sformułowanego pliku XML Zbiory danych z typem Można definiować zbiory danych (DataSet) dostosowane do konkretnych relacji. Wykorzystywany jest mechanizm XML Schema. Odpowiednia klasa jest generowana automatycznie. Ułatwia pisanie programu w inteligentnym środowisku. Zbiory danych z typem Zbiór danych jest opisywany za pomocą XML Schema Definition (XSD) Automatyczne generowanie XSD XSD XSD Po wydaniu polecenia: xsd Employees.xsd /d otrzymamy plik CS zawierający klasę reprezentującą zbiór danych z typem. Zbiory danych z typem Typowany DataAdapter Może mieć wiele metod typu Fill lub Get Metody mogą być parametryzowane DataReader DataReader służy do odczytu kolejnych rekordów, tworzony jest przez obiekt klasy Command, automatycznie przechodzi do kolejnego wiersza, zaczyna w stanie BOF. DataReader Zdarzenia Klasy ADO .NET generują zdarzenia. W kodzie można dodać metody zajmujące się obsługą tych zdarzeń. DataView Reprezentuje różne widoki na dane. Można ograniczyć dostęp do danych. Wywoływanie poleceń SQL Można za pomocą klasy Command wywołać dowolne polecenie SQL, nie będące kwerendą. Windows Forms i ADO .NET Większość kontrolek w Windows Forms może zostać skojarzona ze zbiorem danych (DataSet). Bardzo interesująca jest kontrolka DataGrid umożliwiająca edycję danych w postaci arkusza; można ją wykorzystać w oderwaniu od fizycznej bazy danych. DataGrid DataGrid DataGrid Windows Presentation Foundation Dotychczasowe technologie w .Net 2.0 Funkcjonalność Technologia Formularze i kontrolki Windows Forms Grafika 2D GDI+ Grafika 3D DirectX Strumienie wideo Windows Media Player .Net 3.0 Funkcjonalność Technologia Formularze i kontrolki WPF Grafika 2D WPF Grafika 3D WPF Strumienie wideo WPF Windows Presentation Foundation Jest to nowy zbiór funkcji API do tworzenia aplikacji desktopowych integrujący wiele technologii w jednym modelu obiektowym i umożliwiający separację wartswy prezentacji i kodu. Podstawowe usługi • zbiór obiektów rozmieszczających elementy na obszarze (np. kontrolki w formularzu), • rozszerzony silnik powiązań z danymi, • wbudowany mechanizm stylów umożliwiający tworzenie skórek w aplikacjach Podstawowe usługi • wykorzystanie grafiki wektorowej umożliwiające skalowanie interfejsu aplikacji • wspomaganie dla grafiki 2D, 3D, animacji, odtwarzania wideo i dźwięku, • bogate API typograficzne, np. dla dokumentów XPS, • możliwość współpracy ze starszymi technologiami Rodzaje aplikacji WPF • zwykła aplikacja desktopowa, • aplikacja oparta na nawigacji • aplikacja desktopowa zachowująca się podobnie jak przeglądarka WWW • aplikacja typu XBAP • uruchamiana w środowisku przeglądarki Silverlight • technologia pokrewna do WPF • umożliwia tworzenie wieloplatformowych aplikacji (Windows, Mac OS X, ...) • można korzystać z podzbioru klas .Net i części technologii WPF Najważniejsze pakiety PresentationCore Odpowiedzialny za klasy tworzące interfejs użytkownika PresentationFoundation Kontrolki, dodatkowe typy odpowiedzialne za animację, media, dostęp do danych, dostęp do XAML WindowsBase API niższej warstwy, wątki, bezpieczeństwo, konwersja typów, prymitywy Przestrzenie nazw • System.Windows • System.Windows.Controls • System.Windows.Markup • System.Windows.Media • System.Windows.Navigation • System.Windows.Shapes Klasa Application • najistotniejsze właściwości: • Current - dostęp do obiektu klasy z dowolnego miejsca kodu • MainWindow - umożliwia pobranie bądź ustawienie głównego okna aplikacji • • Properties - rodzaj zmiennych globalnych aplikacji • Windows - kolekcja wszystkich okien należących do aplikacji StartupUri - strona bądź okno, które ma być otwarte przy starcie aplikacji Klasa Windows • reprezentuje dowolne okno należące do aplikacji (także dialogi) Program w WPF Projekt w VisualStudio Przestrzenie nazw Program w WPF Klasa aplikacji Program w WPF Klasa głównego okna Program w WPF Działający program XAML • Extensible Application Markup Language • Język opisu wyglądu aplikacji oparty na XML [zæ:mɛl] • ściśle powiązany z WPF, choć można się bez niego obyć • XAML w momencie kompilacji jest zapisywany w postaci binarnej BAML • aplikację można stworzyć tylko w XAML Aplikacja w XAML Opis aplikacji Aplikacja w XAML Opis okna Aplikacja w XAML Projekt okna w VisualStudio Rozdzielenie kodu i projektu interfejsu • WPF sugeruje oddzielenie wartstwy projektu interfejsu od kodu • XAML opisuje interfejs • kod w C# (lub inny) definiuje logikę aplikacji Separacja kodu i interfejsu • interfejs projektuje grafik • np. Microsoft Expression Blend • logikę biznesową tworzy programista • interfejs jest niezależny od rozdzielczości ekranu (resolution independent) Aplikacja CS i XAML Opis aplikacji Aplikacja CS i XAML Kod aplikacji Aplikacja CS i XAML Opis okna Aplikacja CS i XAML Kod okna Visual Studio 2008 Typowy projekt w VS2008 Proces kompilacji Kontrolki WPF Kontrolki WPF • Podobne do kontrolek Windows Forms • Właściwości definiowane w XAML • Ważną rolę pełnią kontrolki odpowiedzialne za rozmieszczanie innych (layout managers) Obsługa komunikatów • inny niż w Windows Forms • komunikat jest iterowany przez wszystkie obiekty w poszukiwaniu odpowiedniej procedury obsługi (handler) • różne strategie przesyłania komunikatów Grafika 2D • to WPF zapewnia właściwe odświeżanie grafiki na ekranie • System.Windows.Shapes • System.Windows.Media.Drawing • System.Windows.Media.Visual • możliwość tworzenia animacji SILVERLIGHT Co to jest Silverlight? Technologia tworzenia bogatych (rich) aplikacji webowych W założeniu wielosystemowa Konkurencja dla Adobe Flash Wywodzi się z Windows Presentation Foundation Architektura SILVERLIGHT Biblioteka bazowa klas Dane: LINQ Kolekcje Generics Sieć: Web Service Http Request WPF: Control Media UI CLR DLR języki dynamiczne: Python Ruby VBx Jscript Silnik kodu zarządzanego UI Core grafika animacje obrazy tekst Wejście Kontrolki Media DRM Silnik obsługi JavaScript Presentation Core XAML Przeglądarka warstwa sieciowa DOM Skrypty Funkcjonalność bibliotek kolekcje mechanizm refleksji wyrażenia regularne dostęp do danych LINQ obsługa XML, RSS, JSON Zdalne wywołania Web Services REST Windows Communication Foundation Services ADO .Net Services Tworzenie projektu Tworzenie projektu Pusty projekt Pusta aplikacja Opis strony w XAML Pusta aplikacja Kod aplikacji w C# Pusta aplikacja Pusta aplikacja Kod strony w C# Kontrolki XAML Kontrolki wbudowane Kontrolki XAML Po zainstalowaniu ToolKit’u Przykład Opis XAML Kod strony Efekt końcowy Bezpieczeństwo Aplikacje Silverlight działają w obszarze ograniczonego zaufania (sandbox): można otwierać pliki lokalne (tylko przez dialog) od wersji 3 może zapisywać w systemie plików można przechowywać dane w Isolated Storage socket’y mogą tylko inicjować połączenia w wersji 4 aplikacje OOB mogą być uznane za zaufane Wczytanie z pliku Wczytanie z pliku Wczytanie z pliku Isolatad Storage katalog w profilu użytkownika współdzielony przez wszystkie aplikacje identyfikowane poprzez URL aplikacji domyślny limit 1MB na URL niezależne od przeglądarki Zapis do pliku Odczyt z pliku Zwiększenie pojemności Zapis do pliku w FS Zapis do pliku w FS Aplikacje poza przeglądarką Aplikacje można zapisać lokalnie i korzystać jak z aplikacji desktopowej Należy odpowiednio ustawić opcje Aplikacje poza przeglądarką Animacja Animacje można tworzyć modyfikując własności elementów, np. przezroczystość Definicja animacji w XAML Animacja Uruchomienie animacji Animacja koloru Animacja koloru Sterowanie animacją Sterowanie animacją Sterowanie animacją Multimedia Element Media Obrazy Element Image Nałożenie obrazu na tekst Obrazy Opcje skalowania Stosowanie maski Obrazy Maska gradientowa Powiązanie z danymi Klasa z danymi Powiązanie z danymi XAML Konstruktor strony Powiązanie z danymi Efekt Powiązanie z kolekcją XAML Kod strony Powiązanie z kolekcją Efekt Drukowanie od wersji 4.0 klasa PrintDocument można drukować fragment XAML’a drukowanie na zasadzie bitmapy