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 Źródło danych Provider DataAdapter DataSet
Przykład
DataSet Zbiór danych DataSet Kolekcja tablic Tables Tablica DataTable Kolekcja kolumn Columns Kolekcja wierszy Rows Kolumna DataColumn Wiersz DataRow
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ść Formularze i kontrolki Grafika 2D Grafika 3D Strumienie wideo Technologia Windows Forms GDI+ DirectX Windows Media Player
.Net 3.0 Funkcjonalność Formularze i kontrolki Grafika 2D Grafika 3D Strumienie wideo Technologia WPF WPF WPF 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 StartupUri - strona bądź okno, które ma być otwarte przy starcie aplikacji Windows - kolekcja wszystkich okien należących do 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
Historia Silverlight Wersja 1.0 - grudzień 2006 r. Windows Presentation Foundation/Everywhere Składała się z: obsługa wejścia (klawiatura, mysz,...) UI core - obsługa grafiki rastrowej i wektorowej Media - odtwarzanie mediów XAML - projekt interfejsu użytkownika Kod skryptowy w JavaScript Obsługa XML i JSON
Historia Silverlight wersja 2.0 - Beta marzec 2008, RTW 14.10.2008 dodano: obsługę języków.net uproszczoną bibliotekę bazową klas CoreCLR (Common Language Runtime) obsługę DeepZoom Dynamic Language Runtime poprawioną obsługę mediów
Historia Silverlight wersja 3.0 - beta 18 marzec 2009, końcowa 9.7.2009 dodano: nowe kontrolki, poprawiono obsługę mediów, poprawiono wsparcie dla animacji i obsługę UI umożliwiono instalację aplikacji poza przeglądarką dostęp do lokalnych plików
Historia Silverlight wersja 4.0 - beta 18 listopada 2009, finalna 15 kwietnia 2010 dodano: wsparcie dla drukowania nowe kontrolki poprawiono wsparcie dla lokalizacji aplikacji obsługa kamer, aparatów i mikrofonu wsparcie dla multicast,...
Historia Silverlight Aktualna wersja 5.0, 9 grudnia 2011 wsparcie dla akceleracji GPU grafika 3D wsparcie dla 64-bitów
Architektura Dane: LINQ Kolekcje Generics Biblioteka bazowa klas Sieć: Web Service Http Request CLR SILVERLIGHT WPF: Control Media UI 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
Kompatybilność Stan na listopad 2010: Windows XP - IE6,7,8, FireFox, Safari, Chrome, Opera* MacOS X 10.4 (Intel) - Safari, FireFox, Chrome* Windows Phone 7 Planowane Nokia Symbian Series 60, Series 40 Linux - projekt Mono Moonlight *nieoficjalnie
Kompatybilność FireFox Windows IE Windows Safari Mac OS FireFox Mac OS
Narzędzia Visual Studio 2010 lub Visual Web Developer 2010 Zainstalowane SilverlightTools for Visual Studio opcjonalnie: Expression Blend 4 Silverlight Toolkit (dodatkowe kontrolki) Deep Zoom Composer
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
Technologia Deep Zoom umożliwia przeglądanie obrazów w wysokiej rozdzielczości minimalizując ilość przesłanych danych pochodzi od technologii Live Labs Photosynth do tworzenia obrazów konieczne jest użycie Deep Zoom Composer (tylko Windows) Seadragon - aplikacja dla iphone korzystająca z tej technologii
Deep zoom
Deep zoom Osadzenie obrazu Obraz z zoomowaniem
Deep zoom
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
Wykresy Elementy z Silverlight Toolkit XAML
Wykresy
Wykresy
Drukowanie od wersji 4.0 klasa PrintDocument można drukować fragment XAML a drukowanie na zasadzie bitmapy