ADOfcds.cs.put.poznan.pl/myweb/praca/zpo/ZPO02.pdfDAO (Data Access Objects) – Visual Basic 3. RDO...
-
Upload
duongnguyet -
Category
Documents
-
view
232 -
download
0
Transcript of ADOfcds.cs.put.poznan.pl/myweb/praca/zpo/ZPO02.pdfDAO (Data Access Objects) – Visual Basic 3. RDO...
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 „bez-połączenia” (connection-less)
Przestrzenie nazwSystem.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 danychDane są dostarczane przez klasy będące dostawcami (providers)
Dostępni są dostawcy dla:
OLE DB,
SQL Server,
ODBC,
MySQL,
ORACLE,
….
Dostawcy danych
Źródło danych
Dostawca danych DataProvider
Połączenie Connection
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
Polecenie SQLDELETE
Polecenie SQLUPDATE
Polecenie SQLINSERT
Polecenie SQLSELECT
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
DataSetZbió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 Filllub 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ń.
DataViewReprezentuje 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
PresentationCoreOdpowiedzialny za klasy tworzące
interfejs użytkownika
PresentationFoundationKontrolki, dodatkowe typy
odpowiedzialne za animację, media, dostęp do danych, dostęp do XAML
WindowsBaseAPI 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 2008Typowy
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 SilverlightWersja 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 Silverlightwersja 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
Przeglądarka
SILVERLIGHT
warstwa sieciowa DOM Skrypty
XAML
Presentation Core
UI Core grafika
animacje obrazy tekst
Wejście Kontrolki
Media DRM
Silnik obsługi JavaScript
Silnik kodu zarządzanego
CLR
DLR języki dynamiczne:
Python Ruby VBx
Jscript
Biblioteka bazowa klas
Dane: LINQ
Kolekcje Generics
Sieć: Web Service Http Request
WPF: Control Media
UI
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 FireFox Mac OSSafari Mac OSIE Windows
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ładOpis XAML
Kod stronyEfekt końcowy
BezpieczeństwoAplikacje 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ą
AnimacjaAnimacje 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ą
MultimediaElement Media
ObrazyElement Image
Nałożenie obrazu na tekst
Obrazy
Opcje skalowania
Stosowanie maski
ObrazyMaska 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 zoomOsadzenie 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
WykresyElementy z Silverlight Toolkit
XAML
Wykresy
Wykresy
Drukowanie
od wersji 4.0
klasa PrintDocument
można drukować fragment XAML’a
drukowanie na zasadzie bitmapy