Microsoft .NET Compact Framework - wstęp Tomasz Cieplak
Agenda „ Ekosystem” urządzeń mobilnych Warsztat programisty – środowisko deweloperskie, narzędzia i sposoby ich wykorzystania Platforma .NET Compact Framework Charakterystyczne cechy urządzeń typu Pocket PC – ich oprogramowanie Operacje wejścia/wyjścia – pliki, korzystanie z zasobów sieciowych Lokalizacja aplikacji Dostęp do danych – pliki XML, SQL Server 2000, SQL Server CE 2.0
„ Ekosystem” urządzeń mobilnych
Urządzenia mobilne Funkcjonalność Notebook PC Tablet PC Pocket PC Phone Smartphone Smart Personal Objects Windows CE+ Windows XP
Przykłady urządzeń – Tablet PC
Przykłady urządzeń – telefony komórkowe (SmartPhone) Audiovox SMT5600  – Październik 2004, Windows CE, aparat cyfrowy rozdzielczość VGA, pierwszy telefon z Windows Media Player 10, USA  Gotive H41 mobile communicator  – May 2003, Windows CE .NET, GPS, czytnik kodów kreskowych, pełna (wirtualna) klawiatura QWERTY, USA
Przykłady urządzeń – telefony VoIP Inter-tel  Model 8690  – Marzec 2004, Windows CE.NET, ekran dotykowy LCD, funkcje telefonu stacjonarnego, USB, 3xEthernet, PCMCIA, gniazdo CompactFlash, USA  RV Tec   dwa modele Wi-Fi VoIP  – Grudzień 2004, Windows CE 5.0, proc. Intel PXA, ekran TFT LCD, aparat, sieć 802.11b, wsparcie dla kodu zarządzanego i niezarządzanego.
Przykłady – urządzenia typu „Smart Display” ViewSonic  A irpanel V110 ,  V150  (Listopad 2002):  Windows CE for Smart Display (host Windows XP),  proc. Intel XScale 400 MHz,  SDRAM 128 MB, ROM 64 MB ekran TFT LCD (10” lub 15”),  sieć 802.11b,
Przykłady – komputery specjalnego przeznaczenia PSC Int.  Falcon 4620  (Maj 2004): Windows XP Embedded, Proc. VIA C3 800 MHz, RAM 128MB, HDD 20 GB, Sieć  802.11b , Montowany w pojazdach, Praca w zakresie temp. -20C do +50C MICROFLEX CE8640  (Wrzesień 2002): Windows CE.NET, Proc. SA-1110, Czytnik kodów kreskowych, Sieć Ethernet, Wzmocniona obudowa, pełna klawiatura.
Przykłady – komputery „bardzo” specjalne Microsoft   (Czerwiec  2002): Windows XP Embedded, Proc. AMD Duron 800 MB, RAM 128MB, HDD 20 GB, Sieć  802.11b , Oparty na systemie do gier. Pozwala na monitorowanie stanu zdrowia oraz postępów w treningu. Wersja jedynie testowa.
Przykłady - roboty University of Freiburg (Niemcy)   (Wrzesień  2004): Windows CE .NET, Pocket PC  Toshiba e755 został użyty jako mózg robota (komercyjnie produkowany przez RoboSapien), zastępując dotychczasowy mózg „firmowy”. Cornell University (USA)   (Sierpień  2004): Windows CE .NET, Robot potrafi jedynie grać w piłkę nożną – do tego został stworzony.
Przykłady – zegarek? (SPOT - Smart Personal Object Technology ) Microsoft   (Styczeń 2004): Wsparcie dla .NET – zawiera: CLR – Common Language Runtime (132KB), HAL – Hardware Abstraction Layer (40 KB), Możliwość tworzenia aplikacji  z wykorzystaniem C# i VS.NET. Wsparcie dla wątkowości, typy: string, liczbowe, datetime, fonty, bitmapy itp.  Obecnie odbiór informacji z MSN.
Systemy operacyjne i narzędzia Visual Studio 6.0 eMbedded Visual Tools Windows CE 3.0 Windows NT Embedded Windows XP Professional
Platforma uruchomieniowa a funkcjonalność aplikacji „ Gruby klient” „ Cienki klient” Zdalne strony sieciowe Mobilna  przeglądarka  internetowa Kod lokalny .NET Compact Framework Kod lokalny .NET Framework
Warsztat programisty – środowisko deweloperskie, narzędzia i sposoby ich wykorzystania
Warsztat programisty ActiveSync 3.5  lub późniejsze Emulatory SQL Server CE 2.0 (Developer Edition) .NET Compact Framework .NET Framework Tworzenie aplikacji grubego klienta Tworzenie aplikacji cienkiego klienta Mobile Internet Toolkit Visual Studio .NET Smart Device Extensions
Warsztat programisty Środowisko programistyczne  Visual Studio .NET 2003 .NET Framework, .NET Compact Framework Pakiety SDK i emulatory urządzeń Pocket PC 2003 SDK, Tablet PC SDK 1.7 Serwery bazodanowe SQL Server CE 2.0 – na urządzeniu SQL Server 2000 Zdalne wdrażanie aplikacji  IIS 5.0 lub IIS 6.0 Pocket Internet Explorer, Internet Explorer 5.0
Platforma .NET Compact Framework
Założenia projektowe (I) Przenośny i mały .NET CLR na potrzeby urządzeń Efektywne wykorzystanie pamięci i przestrzeni Taki sam format binarny jak w przypadku aplikacji desktopowych Zastosowanie istniejących narzędzi deweloperskich (Visual Studio .NET) Praca programisty jak w przypadku tworzenia aplikacji desktopowych „ Odpluskwianie” i wdrażanie aplikacji przy pomocy Visual Studio .NET
Założenia projektowe (II) Tworzenie aplikacji typu „Gruby klient”, wykorzystanie Usług Internetowych XML C#, VB.NET, Windows Forms, sieciowość aplikacji, dostęp do danych, XML „ Pokojowe” współistnienie z systemem operacyjnym Wykorzystanie systemu plików systemu operacyjnego, rysowanie, kontrolki, wielowątkowość, sieciowość Wdrażany na większość istniejących platform sprzętowych Wiernie odtworzone urządzenie na emulatorach – pozwala łatwe eksperymentowanie
Założenia projektowe (III) Kompatybilność Pełna kompatybilność z .NET Famework Podzbiór funkcjonalności Rozmiar / funkcjonalność .NET Framework .NET Compact Framework
Podstawowe biblioteki klas dostępne z .NET Compact Framework Klasy  SQL  Server CE   i  IrDA  Dostępne jedynie  w .NET Compact  Framework  SqlServerCe Text Drawing2D System.Drawing SqlClient ADO.NET System.Data Readers/Writers XmlDocument System.Xml ComponentModel Design System.Windows.Forms Protocols Security System.Web.Services System.Web Discovery Services Description UI Diagnostics Security Threading Resources System Reflection IO Globalization Text Net (IrDA classes) Collections
Główne różnice pomiędzy .NET Framework a .NET CF  Windows CE  nie wspiera mechanizmu  drag-and-drop Drag-and-drop Brak wsparcia dla drukowania w  Windows CE  lub  .NET Compact Framework Drukowanie Ograniczenia  .NET Compact Framework Cecha Windows CE  nie wspiera  GDI+ GDI+ Windows CE  nie wspiera   MDI ( Multiple Document Interface ) Formularze  MDI Możliwość tworzenia wyłącznie klientów za pomocą  .NET Compact Framework Web services
„ Odpluskwianie” Zdalny debugger jest stosowany w celu: Ustawiania pułapek w programie – w linii programu lub dla pewnych warunków Wykonywania krokowego programu lub przejścia następnej pułapki Sprawdzania wartości wyrażeń lub modyfikacji ich zawartości Zmiany sekwencji uruchamiania programu
Ograniczania debuggera w .NET Compact Framework Brak możliwości deasemplacja kodu natywnego, zrzutów z rejestrów, zrzutów ze stosu Brak możliwości zmiany kodu źródłowego gdy program zatrzymał się na pułapce i zastosowania zmian bez konieczności opuszczania sesji debuggera Nie ma możliwości dołączenia debuggera to istniejącego już procesu lub domeny aplikacji, które działały przed rozpoczęciem sesji debuggera Użytkownik może debaggować tylko te procesy lub domeny aplikacji, które zostały uruchomione do debaggowania
Charakterystyczne cechy urządzeń typu Pocket PC – zastosowanie w aplikacji
Obsługa klawiszy sprzętowych na Pocket PC Klawisze sprzętowe Obsługa zdarzeń Keys.Up Keys.Right Keys.Left Keys.Down Keys.Return
Przykład 1 Przyciski sprzętowe
Operacje wejścia/wyjścia –  pliki, korzystanie z zasobów sieciowych
Operacje wejścia i wyjścia Klasa Stream Wykorzystanie klasy NetworkStream Zastosowanie klasy MemoryStream Wykorzystanie klas StreamReader i StreamWriter
Klasa  FileStream Bazuje na klasie abstrakcyjnej Stream Konstruktor klasy FileStream wymaga podania nazwy pliku i określenia czy plik ma być otwarty czy stworzony: Open Create OpenOrCreate Append try  { FileStream fs = new  FileStream("\\plik.txt”,FileMode.Open); } catch (System.IO.FileNotFound ex) {…}
Zastosowanie sieci Stosowanie przestrzeni nazewniczej System.NET Klasy WebRequest i WebResponse Wysyłanie danych do serwera za pomocą HTTP GET i HTTP POST
Klasy WebRequest i WebResponse Pozwalają na przesyłanie danych od/do serwera internetowego Można przesłać z serwera zawartość stron HTTP lub też przesyłać do aplikacji serwerowych dane do ich przetwarzania (skrypty CGI) i otrzymywać wyniki działania aplikacji using System.Net; using System.IO; … WebRequest req = WebRequest.Create(uri); WebResponse res = req.GetResponse; Stream strumien = res.GetResponseStream(); StreamReader sr = new SreamReader(strumien); string wynik = sr.ReadToEnd();
Podstawy programowania grafiki Dostęp do pliku graficznego z wykorzystaniem protokołu HTTP
Programowanie grafiki Klasy stosowane w programowaniu grafiki Przestrzeń System.Drawing – główna klasa Graphics Inne klasy: Image, Color, Rectangle, Point, Line, Brush, Region Metody graficzne klasy  Drawing DrawImage(), DrawIcon() DrawRectangle(), FillRectangle() DrawEllipse(), FillEllipse() DrawPolygon(), FillPolygon() DrawLine(), DrawString(), FillRegion()  Różnice pomiędzy .NET Framework i .NET CF
Różnice pomiędzy .NET Framework i .NET CF Metoda  DrawImage  – aby wyświetlić tylko część bitmapy można użyć wyliczenia  GraphicsUnit  ale miarą w .NET CF mogą to być tylko pixele –  GraphicsUnit.Pixels Kolor przeźroczystości – możliwa jest kontrola sposobu wyświetlania bitmapy przy wykorzystaniu  ImageAttributes  (System.Drawing.Imaging). NET CF wspiera jedynie metodę  SetColorKey()
Przykład 2 Pobranie plików graficznych
Lokalizacja aplikacji
Globalizacja i lokalizacja aplikacji Informacja o ustawieniach regionalnych Lokalizowanie zasobów Tworzenie plików zasobów Zastosowanie plików zasobów do lokalizacji interfejsów użytkownika
Klasa CultureInfo – określanie bieżących ustawień Klasa CultureInfo udostępnia dwie statyczne właściwości umożliwiające określenie obecnych ustawień: CurrentCulture – zwraca obiekt CultureInfo, reprezentujący ustawienia regionalne w obecnie uruchomionym wątku CurrentUICulture – zwraca informację dotyczącą ustawień regionalnych używanych przez klasę ResourceManager, w celu ładowania w czasie uruchamiania aplikacji zasobów zależnych od ustawień regionalnych
Klasa CultureInfo – określanie bieżących ustawień W pełnej implementacji .NET Framework możliwa jest zmiana właściwości CurrentCulture dla obiektu CurrentThread, w celu zmiany domyślnych ustawień kulturowych aplikacji.  .NET Compact Framework nie wspiera takiej funkcjonalności.
Przykład 3 Lokalizacja aplikacji
Dostęp do danych – pliki XML, SQL Server 2000, SQL Server CE 2.0
Przechowywanie danych z DataSet w pliku XML Obiekt  DataSet  nie pozwala na stałe przechowywanie danych Używaj   metody  WriteXml  do zapisania danych Używaj   metody  ReadXml  do odtworzenia danych ds .WriteXml( appdir+ " \ \ dataset .xml") DataSet ds = new DataSet(); ds .ReadXml (appdir+ " \ \ dataset .xml")
Przykład 4 Odczyt i zapis DataSet do pliku XML
Dostęp do danych  z wykorzystaniem Usług Internetowych XML
Wykorzystanie Usług Internetowych XML .NET Compact Framework XML Web services client DataSet, XML Windows Forms .NET Framework ADO.NET Database ASP.NET XML Web services (HTTP) Zalety Łatwo wdrażalna infrastruktura Informacja może być buforowana; logika synchronizacji może być umieszczona na serwerze Urządzenie komunikuje się bezpośrednio ze źródłem informacji Ograniczenia Stan i logika synchronizacja może być skomplikowana Zapytania mogą być nieefektywne  i ograniczone poprzez buforowane dane
Stosowanie Usług Internetowych XML w aplikacji klienckiej Korzystając z narzędzi VS.NET dodaj Referencje Internetowe (Web References) do projektu aplikacji Pobierany jest opis usługi Generowana jest klasa proxy  Twórz obiekt lokalny wykorzystując do tego klasę proxy Wywołaj metody usługi Proxy zapewnie komunikację pomiędzy aplikacja kliencką a usługą Klasy Usługi Internetowej XML przeprowadzają w sposób przeźroczysty serializację do SOAP
Przykład 5 Zastosowanie Usługi Internetowej XML
Bezpośredni dostęp do danych  z wykorzystaniem ADO.NET
Dostęp bezpośredni do bazy Zalety Możliwość składania zapytań do dużych źródeł danych Dostęp do całego zakresu danych, urządzenie ma dostęp do wszystkiego co potrzebne   Ograniczenia .NET Compact Framework ADO.NET Windows Forms SQL  Server ADO.NET Data Provider Wymaga połączenia ciągłego Trudno skalowalny, tradycyjny model dwu-warstwowy Brak modelu synchronizacji dla typowych danych dynamicznych
Serwer SQL Server CE 2.0  – współpraca  z serwerem SQL Server 2000
Architektura serwera  SQL Server CE .NET Compact Framework -stos zarządzany OLE DB for Windows CE Data Provider SQL Server CE QP/Cursor Engine/ES Visual Studio .NET (Visual Basic .NET, C#) ADO.NET SQL Server CE Data Provider .NET Compact Framework runtime Storage Engine/  Replication tracking Serwer SQL Server 2000 Klient Client Agent: Replication and RDA HTTP Server Agent: Replication and RDA IIS
Ważniejsze cechy serwera SQL Server CE 2.0 Możliwość tworzenia kluczy dla jednej lub wielu kolumn. Domyślne wartości dla kolumn. Indeksy, powiązania Transakcje zagnieżdżone. Kursory wielokierunkowe i jednokierunkowe. Transakcje, kursory  Ograniczenia  .NET Compact Framework Cecha Wsparcie dla Data Manipulation Language – SELECT, DELETE, UPDATEfunkcje agregujące (INNER JOIN, OUTER JOIN, podzapytania) DML Wsparcie dla Data Definition Language – CREATE DATABASE, CREATE TABLE, ALTER TABLE, tworzenie kluczy głównych DDL Bazy chronione hasłem i kodowane kluczem 128-bitowym na poziomie pliku Kodowanie i zabezpieczenia
Typy danych w SQL Server CE 2.0 bit, binary, varbinary, image Binarne nchar, nvarchar, ntext Unicode Typ danych Rodzina real, numeric, float Inne numeryczne tinyint, smallint, integer, bigint Liczby całkowite money, datetime, uniqueidentifier Inne
Integracja SQL Server CE 2.0 i ADO.NET  System.Data.SqlClient Bezpośrednie połączenie z serwerem SQL Pełna integracja z serwerem SQL Pełny język TSQL Procedury składowane System.Data.SqlServerCE Lokalne źródło danych Pełny dostęp do danych w trybie offline Zawiera pełną funkcjonalność SQL Server CE
Podstawowe klasy w przestrzeni System.Data.SqlServerCE SqlCeEngine SqlCeConnection SqlCeCommand SqlCeCommandBuilder SqlCeDataAdapter SqlCeDataReader SqlCeParameter SqlCeException, SqlCeError
Praca z serwerem  SQL Server CE Przestrzeń dostępna na urządzeniu dla pliku bazy danych jest ograniczona Visual Studio .NET automatycznie konfiguruje środowisko programistyczne Instalacja serwera SQL Server CE przebiega automatycznie na urządzeniu lub emulatorze – warunkiem jest dodanie referencji System.Data.SqlServerCe do projektu aplikacji Istnieje także możliwość ręczniej instalacji serwera, polegającej na przeniesieniu odpowiednich plików CAB na urządzenie i ich zainstalowaniu
Programowanie dostępu do danych Utworzenie na urządzeniu lokalnej bazy danych o nazwie Studenci if (! System.IO.File.Exists(@"\My Documents\Studenci.sdf")) { SqlCeEngine eng = new SqlCeEngine( @"Data Source=\My Documents\Studenci.sdf"); eng.CreateDatabase(); }
Programowanie dostępu do danych Stworzenie struktury wewnątrz pustej bazy SqlCeConnection cn = new SqlCeConnection( @"Data Source=\My Documents\Studenci.sdf"); cn.Open(); string DDL1 = "CREATE TABLE Rejestracja(StudentID int not null identity(1,1)," + " NumerAlb nvarchar(10) not null," + " Imie nvarchar(100) not null,”   + " Nazwisko nvarchar (25) not null)”; SqlCeCommand cmdDDL1 = new SqlCeCommand(DDL1, cn); cmdDDL1.CommandType = CommandType.Text; cmdDDL1.ExecuteNonQuery(); cn.Close();
Odczyt wiersza danych Możliwość zastosowanie klasy SqlCeDataReader SqlCeConnection cn = new SqlCeConnection( @"Data Source=\My Documents\Studenci.sdf"); string sSQL = "SELECT StudentID, NumerAlb, Imie, Nazwisko FROM Rejestracja"; SqlCeCommand cmdSelect = new SqlCeCommand(sSQL,cn); cmdSelect.CommandType = CommandType.Text; SqlCeDataReader dtr = cmd.ExecuteReader( CommandBehavior.Default ); while (dtr.Read()) { ListViewItem item = new ListViewItem(dtr.GetInt32(0).ToString()); item.SubItems.Add(dtr.GetString(1)); item.SubItems.Add(dtr.GetString(2));   item.SubItems.Add(dtr.GetString(2)); listViewStudenci.Items.Add(item); }
Architektura mechanizmu RDA Aplikacja SQL Server CE  Client Agent SQL Server CE  Database Engine Plik bazy  danych (.sdf) IIS SQL Server CE  Server Agent OLE DB Centralny Serwer SQL HTTP
Konfiguracja serwera RDA Aby mechanizm RDA mógł zadziałać należy: Zainstalować na serwerze internetowym program SQL Server CE Server Agent Stworzyć katalog wirtualny zawierający bibliotekę SQL Server CE Server Agent DLL – wykorzystaj narzędzie SQL Server Connectivity Manager Ustawić metodę autentykacji dla nowo stworzonej witryny Sprawdzić czy identyfikacja przeprowadzona przez IIS jest wystarczająca aby aplikacja otrzymała dostęp do serwera SQL.
Pozyskiwanie danych z serwera centralnego – RDA Pull Krok 1 – przygotowanie bazy danych if (! System.IO.File.Exists(@"\My Documents\Studenci.sdf")) { SqlCeEngine eng = new SqlCeEngine(@"Data Source=\My Documents\Studenci.sdf");  eng.CreateDatabase(); } else { System.IO.File.Delete(@"\My Documents\Studenci.sdf"); SqlCeEngine eng = new SqlCeEngine(@"Data Source=\My  Documents\Studenci.sdf");  eng.CreateDatabase(); }
Pozyskiwanie danych z serwera centralnego – RDA Pull Krok 2 – wykonanie metody RDA Pull SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(); string sCon = @"Provider=SQLOLEDB;Data Source=192.2.2.200;"  + @"Initial Catalog=Studenci;user id=sa; " + @"Persist Security Info=False"; rda.InternetUrl = @"http://192.2.2.200/SQLServerCE_SA/sscesa20.dll"; rda.LocalConnectionString = @"Data Source=\My Documents\Studenci.sdf"; try  { rda.Pull("Rejestracja", "SELECT * FROM Rejestracja", sCon, RdaTrackOption.TrackingOn, "rdaRejestrErrors"); } catch (SqlCeException ex) { MessageBox.Show(ex.ToString()); } rda.Dispose();
Przesyłanie danych do serwera centralnego – RDA Push SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(); string sCon = @"Provider=SQLOLEDB;Data Source=192.2.2.200;"  + @"Initial Catalog=Studenci;user id=sa; " + @"Persist Security Info=False"; rda.InternetUrl = @"http://192.2.2.200/SQLServerCE_SA/sscesa20.dll"; rda.LocalConnectionString = @"Data Source=\My Documents\Studenci.sdf"; try  { rda.Push("Rejestracja", sCon); } catch (SqlCeException ex) { MessageBox.Show(ex.ToString()); } rda.Dispose();
Przykład 6 Zastosowanie metody Pull
Podsumowanie Znaczenie urządzeń mobilnych w życiu codziennym rośnie Ilość obszarów zastosowań urządzeń mobilnych ograniczona jedynie pomysłowością twórców Dostępna gama platform i narzędzi Tworzenie aplikacji zbliżone do tego znanego z platform desktopowych W przyszłości nowe wersje systemów operacyjnych (Windows CE 5.0), serwerów bazodanowych (SQL Mobile Server) i narzędzi programistycznych (Visual Studio .NET 2005)
Dziękuję za uwagę

More Related Content

PDF
Каталог Веллнес
PPTX
15 facts you probably didn't know about ZIP codes
PDF
[SLIDE FACTORY] [S19] Trần Mỹ Trang - Bài tốt nghiệp
PDF
Validating the ecommerce experience: Get reliable data, give customers a bett...
PPTX
Evaluation11
PDF
Víctimas mortales violencia género 2012
PPS
Loja para maridos/loja para mulheres
Каталог Веллнес
15 facts you probably didn't know about ZIP codes
[SLIDE FACTORY] [S19] Trần Mỹ Trang - Bài tốt nghiệp
Validating the ecommerce experience: Get reliable data, give customers a bett...
Evaluation11
Víctimas mortales violencia género 2012
Loja para maridos/loja para mulheres

Viewers also liked (8)

PDF
Study of mechanical and morphological properties of glass fiber reinforced mo...
PDF
Как использовать инструменты геймификации
PPTX
100 awesome business ideas for 2014 and Later
PPT
Геймификация (gamification) в системе образования
PPTX
Single Camera Techniques: Intro, genre, formats, uses
PPT
Dejobbing
PPTX
Motivacion
PPTX
презентация Microsoft office power point2
Study of mechanical and morphological properties of glass fiber reinforced mo...
Как использовать инструменты геймификации
100 awesome business ideas for 2014 and Later
Геймификация (gamification) в системе образования
Single Camera Techniques: Intro, genre, formats, uses
Dejobbing
Motivacion
презентация Microsoft office power point2
Ad

Similar to Seminarium .Net CF 2004 (20)

PPT
Seminarium - Tworzenie Aplikacji Mobilnych 2004
PPTX
Programowanie aplikacji dla Windows 8 (WinRT)
PPTX
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
PDF
.NET Framework 2.0. Zaawansowane programowanie
PPTX
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
PPTX
Silverlight i PHP
PPT
Poland- Smart Client Technology - MTS 2005
PPTX
Artur Żarski, PHP na Windows
PDF
Nie tylko C# - Ekosystem Microsoft dla programistów
PDF
Zrozumieć platformę .NET. Wydanie II
PPTX
Windows 8 dla twórców gier - rzut oka
PDF
Delphi dla .NET. Vademecum profesjonalisty
PPTX
Pierwszy program w c# cezary walencik
PDF
Visual C# 2005 Express Edition. Od podstaw
PPTX
Programowanie na wiele platform mobilnych - 2012
PDF
PDF
C#. Programowanie
PPTX
Projektowanie i programowanie aplikacji nowej generacji
PPTX
Współdzielenie kodu aplikacji Windows Phone i Windows 8
PDF
J2ME. Praktyczne projekty
Seminarium - Tworzenie Aplikacji Mobilnych 2004
Programowanie aplikacji dla Windows 8 (WinRT)
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
.NET Framework 2.0. Zaawansowane programowanie
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP
Poland- Smart Client Technology - MTS 2005
Artur Żarski, PHP na Windows
Nie tylko C# - Ekosystem Microsoft dla programistów
Zrozumieć platformę .NET. Wydanie II
Windows 8 dla twórców gier - rzut oka
Delphi dla .NET. Vademecum profesjonalisty
Pierwszy program w c# cezary walencik
Visual C# 2005 Express Edition. Od podstaw
Programowanie na wiele platform mobilnych - 2012
C#. Programowanie
Projektowanie i programowanie aplikacji nowej generacji
Współdzielenie kodu aplikacji Windows Phone i Windows 8
J2ME. Praktyczne projekty
Ad

Seminarium .Net CF 2004

  • 1. Microsoft .NET Compact Framework - wstęp Tomasz Cieplak
  • 2. Agenda „ Ekosystem” urządzeń mobilnych Warsztat programisty – środowisko deweloperskie, narzędzia i sposoby ich wykorzystania Platforma .NET Compact Framework Charakterystyczne cechy urządzeń typu Pocket PC – ich oprogramowanie Operacje wejścia/wyjścia – pliki, korzystanie z zasobów sieciowych Lokalizacja aplikacji Dostęp do danych – pliki XML, SQL Server 2000, SQL Server CE 2.0
  • 4. Urządzenia mobilne Funkcjonalność Notebook PC Tablet PC Pocket PC Phone Smartphone Smart Personal Objects Windows CE+ Windows XP
  • 6. Przykłady urządzeń – telefony komórkowe (SmartPhone) Audiovox SMT5600 – Październik 2004, Windows CE, aparat cyfrowy rozdzielczość VGA, pierwszy telefon z Windows Media Player 10, USA Gotive H41 mobile communicator – May 2003, Windows CE .NET, GPS, czytnik kodów kreskowych, pełna (wirtualna) klawiatura QWERTY, USA
  • 7. Przykłady urządzeń – telefony VoIP Inter-tel Model 8690 – Marzec 2004, Windows CE.NET, ekran dotykowy LCD, funkcje telefonu stacjonarnego, USB, 3xEthernet, PCMCIA, gniazdo CompactFlash, USA RV Tec dwa modele Wi-Fi VoIP – Grudzień 2004, Windows CE 5.0, proc. Intel PXA, ekran TFT LCD, aparat, sieć 802.11b, wsparcie dla kodu zarządzanego i niezarządzanego.
  • 8. Przykłady – urządzenia typu „Smart Display” ViewSonic A irpanel V110 , V150 (Listopad 2002): Windows CE for Smart Display (host Windows XP), proc. Intel XScale 400 MHz, SDRAM 128 MB, ROM 64 MB ekran TFT LCD (10” lub 15”), sieć 802.11b,
  • 9. Przykłady – komputery specjalnego przeznaczenia PSC Int. Falcon 4620 (Maj 2004): Windows XP Embedded, Proc. VIA C3 800 MHz, RAM 128MB, HDD 20 GB, Sieć 802.11b , Montowany w pojazdach, Praca w zakresie temp. -20C do +50C MICROFLEX CE8640 (Wrzesień 2002): Windows CE.NET, Proc. SA-1110, Czytnik kodów kreskowych, Sieć Ethernet, Wzmocniona obudowa, pełna klawiatura.
  • 10. Przykłady – komputery „bardzo” specjalne Microsoft (Czerwiec 2002): Windows XP Embedded, Proc. AMD Duron 800 MB, RAM 128MB, HDD 20 GB, Sieć 802.11b , Oparty na systemie do gier. Pozwala na monitorowanie stanu zdrowia oraz postępów w treningu. Wersja jedynie testowa.
  • 11. Przykłady - roboty University of Freiburg (Niemcy) (Wrzesień 2004): Windows CE .NET, Pocket PC Toshiba e755 został użyty jako mózg robota (komercyjnie produkowany przez RoboSapien), zastępując dotychczasowy mózg „firmowy”. Cornell University (USA) (Sierpień 2004): Windows CE .NET, Robot potrafi jedynie grać w piłkę nożną – do tego został stworzony.
  • 12. Przykłady – zegarek? (SPOT - Smart Personal Object Technology ) Microsoft (Styczeń 2004): Wsparcie dla .NET – zawiera: CLR – Common Language Runtime (132KB), HAL – Hardware Abstraction Layer (40 KB), Możliwość tworzenia aplikacji z wykorzystaniem C# i VS.NET. Wsparcie dla wątkowości, typy: string, liczbowe, datetime, fonty, bitmapy itp. Obecnie odbiór informacji z MSN.
  • 13. Systemy operacyjne i narzędzia Visual Studio 6.0 eMbedded Visual Tools Windows CE 3.0 Windows NT Embedded Windows XP Professional
  • 14. Platforma uruchomieniowa a funkcjonalność aplikacji „ Gruby klient” „ Cienki klient” Zdalne strony sieciowe Mobilna przeglądarka internetowa Kod lokalny .NET Compact Framework Kod lokalny .NET Framework
  • 15. Warsztat programisty – środowisko deweloperskie, narzędzia i sposoby ich wykorzystania
  • 16. Warsztat programisty ActiveSync 3.5 lub późniejsze Emulatory SQL Server CE 2.0 (Developer Edition) .NET Compact Framework .NET Framework Tworzenie aplikacji grubego klienta Tworzenie aplikacji cienkiego klienta Mobile Internet Toolkit Visual Studio .NET Smart Device Extensions
  • 17. Warsztat programisty Środowisko programistyczne Visual Studio .NET 2003 .NET Framework, .NET Compact Framework Pakiety SDK i emulatory urządzeń Pocket PC 2003 SDK, Tablet PC SDK 1.7 Serwery bazodanowe SQL Server CE 2.0 – na urządzeniu SQL Server 2000 Zdalne wdrażanie aplikacji IIS 5.0 lub IIS 6.0 Pocket Internet Explorer, Internet Explorer 5.0
  • 19. Założenia projektowe (I) Przenośny i mały .NET CLR na potrzeby urządzeń Efektywne wykorzystanie pamięci i przestrzeni Taki sam format binarny jak w przypadku aplikacji desktopowych Zastosowanie istniejących narzędzi deweloperskich (Visual Studio .NET) Praca programisty jak w przypadku tworzenia aplikacji desktopowych „ Odpluskwianie” i wdrażanie aplikacji przy pomocy Visual Studio .NET
  • 20. Założenia projektowe (II) Tworzenie aplikacji typu „Gruby klient”, wykorzystanie Usług Internetowych XML C#, VB.NET, Windows Forms, sieciowość aplikacji, dostęp do danych, XML „ Pokojowe” współistnienie z systemem operacyjnym Wykorzystanie systemu plików systemu operacyjnego, rysowanie, kontrolki, wielowątkowość, sieciowość Wdrażany na większość istniejących platform sprzętowych Wiernie odtworzone urządzenie na emulatorach – pozwala łatwe eksperymentowanie
  • 21. Założenia projektowe (III) Kompatybilność Pełna kompatybilność z .NET Famework Podzbiór funkcjonalności Rozmiar / funkcjonalność .NET Framework .NET Compact Framework
  • 22. Podstawowe biblioteki klas dostępne z .NET Compact Framework Klasy SQL Server CE i IrDA Dostępne jedynie w .NET Compact Framework SqlServerCe Text Drawing2D System.Drawing SqlClient ADO.NET System.Data Readers/Writers XmlDocument System.Xml ComponentModel Design System.Windows.Forms Protocols Security System.Web.Services System.Web Discovery Services Description UI Diagnostics Security Threading Resources System Reflection IO Globalization Text Net (IrDA classes) Collections
  • 23. Główne różnice pomiędzy .NET Framework a .NET CF Windows CE nie wspiera mechanizmu drag-and-drop Drag-and-drop Brak wsparcia dla drukowania w Windows CE lub .NET Compact Framework Drukowanie Ograniczenia .NET Compact Framework Cecha Windows CE nie wspiera GDI+ GDI+ Windows CE nie wspiera MDI ( Multiple Document Interface ) Formularze MDI Możliwość tworzenia wyłącznie klientów za pomocą .NET Compact Framework Web services
  • 24. „ Odpluskwianie” Zdalny debugger jest stosowany w celu: Ustawiania pułapek w programie – w linii programu lub dla pewnych warunków Wykonywania krokowego programu lub przejścia następnej pułapki Sprawdzania wartości wyrażeń lub modyfikacji ich zawartości Zmiany sekwencji uruchamiania programu
  • 25. Ograniczania debuggera w .NET Compact Framework Brak możliwości deasemplacja kodu natywnego, zrzutów z rejestrów, zrzutów ze stosu Brak możliwości zmiany kodu źródłowego gdy program zatrzymał się na pułapce i zastosowania zmian bez konieczności opuszczania sesji debuggera Nie ma możliwości dołączenia debuggera to istniejącego już procesu lub domeny aplikacji, które działały przed rozpoczęciem sesji debuggera Użytkownik może debaggować tylko te procesy lub domeny aplikacji, które zostały uruchomione do debaggowania
  • 26. Charakterystyczne cechy urządzeń typu Pocket PC – zastosowanie w aplikacji
  • 27. Obsługa klawiszy sprzętowych na Pocket PC Klawisze sprzętowe Obsługa zdarzeń Keys.Up Keys.Right Keys.Left Keys.Down Keys.Return
  • 28. Przykład 1 Przyciski sprzętowe
  • 29. Operacje wejścia/wyjścia – pliki, korzystanie z zasobów sieciowych
  • 30. Operacje wejścia i wyjścia Klasa Stream Wykorzystanie klasy NetworkStream Zastosowanie klasy MemoryStream Wykorzystanie klas StreamReader i StreamWriter
  • 31. Klasa FileStream Bazuje na klasie abstrakcyjnej Stream Konstruktor klasy FileStream wymaga podania nazwy pliku i określenia czy plik ma być otwarty czy stworzony: Open Create OpenOrCreate Append try { FileStream fs = new FileStream("\\plik.txt”,FileMode.Open); } catch (System.IO.FileNotFound ex) {…}
  • 32. Zastosowanie sieci Stosowanie przestrzeni nazewniczej System.NET Klasy WebRequest i WebResponse Wysyłanie danych do serwera za pomocą HTTP GET i HTTP POST
  • 33. Klasy WebRequest i WebResponse Pozwalają na przesyłanie danych od/do serwera internetowego Można przesłać z serwera zawartość stron HTTP lub też przesyłać do aplikacji serwerowych dane do ich przetwarzania (skrypty CGI) i otrzymywać wyniki działania aplikacji using System.Net; using System.IO; … WebRequest req = WebRequest.Create(uri); WebResponse res = req.GetResponse; Stream strumien = res.GetResponseStream(); StreamReader sr = new SreamReader(strumien); string wynik = sr.ReadToEnd();
  • 34. Podstawy programowania grafiki Dostęp do pliku graficznego z wykorzystaniem protokołu HTTP
  • 35. Programowanie grafiki Klasy stosowane w programowaniu grafiki Przestrzeń System.Drawing – główna klasa Graphics Inne klasy: Image, Color, Rectangle, Point, Line, Brush, Region Metody graficzne klasy Drawing DrawImage(), DrawIcon() DrawRectangle(), FillRectangle() DrawEllipse(), FillEllipse() DrawPolygon(), FillPolygon() DrawLine(), DrawString(), FillRegion() Różnice pomiędzy .NET Framework i .NET CF
  • 36. Różnice pomiędzy .NET Framework i .NET CF Metoda DrawImage – aby wyświetlić tylko część bitmapy można użyć wyliczenia GraphicsUnit ale miarą w .NET CF mogą to być tylko pixele – GraphicsUnit.Pixels Kolor przeźroczystości – możliwa jest kontrola sposobu wyświetlania bitmapy przy wykorzystaniu ImageAttributes (System.Drawing.Imaging). NET CF wspiera jedynie metodę SetColorKey()
  • 37. Przykład 2 Pobranie plików graficznych
  • 39. Globalizacja i lokalizacja aplikacji Informacja o ustawieniach regionalnych Lokalizowanie zasobów Tworzenie plików zasobów Zastosowanie plików zasobów do lokalizacji interfejsów użytkownika
  • 40. Klasa CultureInfo – określanie bieżących ustawień Klasa CultureInfo udostępnia dwie statyczne właściwości umożliwiające określenie obecnych ustawień: CurrentCulture – zwraca obiekt CultureInfo, reprezentujący ustawienia regionalne w obecnie uruchomionym wątku CurrentUICulture – zwraca informację dotyczącą ustawień regionalnych używanych przez klasę ResourceManager, w celu ładowania w czasie uruchamiania aplikacji zasobów zależnych od ustawień regionalnych
  • 41. Klasa CultureInfo – określanie bieżących ustawień W pełnej implementacji .NET Framework możliwa jest zmiana właściwości CurrentCulture dla obiektu CurrentThread, w celu zmiany domyślnych ustawień kulturowych aplikacji. .NET Compact Framework nie wspiera takiej funkcjonalności.
  • 43. Dostęp do danych – pliki XML, SQL Server 2000, SQL Server CE 2.0
  • 44. Przechowywanie danych z DataSet w pliku XML Obiekt DataSet nie pozwala na stałe przechowywanie danych Używaj metody WriteXml do zapisania danych Używaj metody ReadXml do odtworzenia danych ds .WriteXml( appdir+ " \ \ dataset .xml") DataSet ds = new DataSet(); ds .ReadXml (appdir+ " \ \ dataset .xml")
  • 45. Przykład 4 Odczyt i zapis DataSet do pliku XML
  • 46. Dostęp do danych z wykorzystaniem Usług Internetowych XML
  • 47. Wykorzystanie Usług Internetowych XML .NET Compact Framework XML Web services client DataSet, XML Windows Forms .NET Framework ADO.NET Database ASP.NET XML Web services (HTTP) Zalety Łatwo wdrażalna infrastruktura Informacja może być buforowana; logika synchronizacji może być umieszczona na serwerze Urządzenie komunikuje się bezpośrednio ze źródłem informacji Ograniczenia Stan i logika synchronizacja może być skomplikowana Zapytania mogą być nieefektywne i ograniczone poprzez buforowane dane
  • 48. Stosowanie Usług Internetowych XML w aplikacji klienckiej Korzystając z narzędzi VS.NET dodaj Referencje Internetowe (Web References) do projektu aplikacji Pobierany jest opis usługi Generowana jest klasa proxy Twórz obiekt lokalny wykorzystując do tego klasę proxy Wywołaj metody usługi Proxy zapewnie komunikację pomiędzy aplikacja kliencką a usługą Klasy Usługi Internetowej XML przeprowadzają w sposób przeźroczysty serializację do SOAP
  • 49. Przykład 5 Zastosowanie Usługi Internetowej XML
  • 50. Bezpośredni dostęp do danych z wykorzystaniem ADO.NET
  • 51. Dostęp bezpośredni do bazy Zalety Możliwość składania zapytań do dużych źródeł danych Dostęp do całego zakresu danych, urządzenie ma dostęp do wszystkiego co potrzebne Ograniczenia .NET Compact Framework ADO.NET Windows Forms SQL Server ADO.NET Data Provider Wymaga połączenia ciągłego Trudno skalowalny, tradycyjny model dwu-warstwowy Brak modelu synchronizacji dla typowych danych dynamicznych
  • 52. Serwer SQL Server CE 2.0 – współpraca z serwerem SQL Server 2000
  • 53. Architektura serwera SQL Server CE .NET Compact Framework -stos zarządzany OLE DB for Windows CE Data Provider SQL Server CE QP/Cursor Engine/ES Visual Studio .NET (Visual Basic .NET, C#) ADO.NET SQL Server CE Data Provider .NET Compact Framework runtime Storage Engine/ Replication tracking Serwer SQL Server 2000 Klient Client Agent: Replication and RDA HTTP Server Agent: Replication and RDA IIS
  • 54. Ważniejsze cechy serwera SQL Server CE 2.0 Możliwość tworzenia kluczy dla jednej lub wielu kolumn. Domyślne wartości dla kolumn. Indeksy, powiązania Transakcje zagnieżdżone. Kursory wielokierunkowe i jednokierunkowe. Transakcje, kursory Ograniczenia .NET Compact Framework Cecha Wsparcie dla Data Manipulation Language – SELECT, DELETE, UPDATEfunkcje agregujące (INNER JOIN, OUTER JOIN, podzapytania) DML Wsparcie dla Data Definition Language – CREATE DATABASE, CREATE TABLE, ALTER TABLE, tworzenie kluczy głównych DDL Bazy chronione hasłem i kodowane kluczem 128-bitowym na poziomie pliku Kodowanie i zabezpieczenia
  • 55. Typy danych w SQL Server CE 2.0 bit, binary, varbinary, image Binarne nchar, nvarchar, ntext Unicode Typ danych Rodzina real, numeric, float Inne numeryczne tinyint, smallint, integer, bigint Liczby całkowite money, datetime, uniqueidentifier Inne
  • 56. Integracja SQL Server CE 2.0 i ADO.NET System.Data.SqlClient Bezpośrednie połączenie z serwerem SQL Pełna integracja z serwerem SQL Pełny język TSQL Procedury składowane System.Data.SqlServerCE Lokalne źródło danych Pełny dostęp do danych w trybie offline Zawiera pełną funkcjonalność SQL Server CE
  • 57. Podstawowe klasy w przestrzeni System.Data.SqlServerCE SqlCeEngine SqlCeConnection SqlCeCommand SqlCeCommandBuilder SqlCeDataAdapter SqlCeDataReader SqlCeParameter SqlCeException, SqlCeError
  • 58. Praca z serwerem SQL Server CE Przestrzeń dostępna na urządzeniu dla pliku bazy danych jest ograniczona Visual Studio .NET automatycznie konfiguruje środowisko programistyczne Instalacja serwera SQL Server CE przebiega automatycznie na urządzeniu lub emulatorze – warunkiem jest dodanie referencji System.Data.SqlServerCe do projektu aplikacji Istnieje także możliwość ręczniej instalacji serwera, polegającej na przeniesieniu odpowiednich plików CAB na urządzenie i ich zainstalowaniu
  • 59. Programowanie dostępu do danych Utworzenie na urządzeniu lokalnej bazy danych o nazwie Studenci if (! System.IO.File.Exists(@"\My Documents\Studenci.sdf")) { SqlCeEngine eng = new SqlCeEngine( @"Data Source=\My Documents\Studenci.sdf"); eng.CreateDatabase(); }
  • 60. Programowanie dostępu do danych Stworzenie struktury wewnątrz pustej bazy SqlCeConnection cn = new SqlCeConnection( @"Data Source=\My Documents\Studenci.sdf"); cn.Open(); string DDL1 = "CREATE TABLE Rejestracja(StudentID int not null identity(1,1)," + " NumerAlb nvarchar(10) not null," + " Imie nvarchar(100) not null,” + " Nazwisko nvarchar (25) not null)”; SqlCeCommand cmdDDL1 = new SqlCeCommand(DDL1, cn); cmdDDL1.CommandType = CommandType.Text; cmdDDL1.ExecuteNonQuery(); cn.Close();
  • 61. Odczyt wiersza danych Możliwość zastosowanie klasy SqlCeDataReader SqlCeConnection cn = new SqlCeConnection( @"Data Source=\My Documents\Studenci.sdf"); string sSQL = "SELECT StudentID, NumerAlb, Imie, Nazwisko FROM Rejestracja"; SqlCeCommand cmdSelect = new SqlCeCommand(sSQL,cn); cmdSelect.CommandType = CommandType.Text; SqlCeDataReader dtr = cmd.ExecuteReader( CommandBehavior.Default ); while (dtr.Read()) { ListViewItem item = new ListViewItem(dtr.GetInt32(0).ToString()); item.SubItems.Add(dtr.GetString(1)); item.SubItems.Add(dtr.GetString(2)); item.SubItems.Add(dtr.GetString(2)); listViewStudenci.Items.Add(item); }
  • 62. Architektura mechanizmu RDA Aplikacja SQL Server CE Client Agent SQL Server CE Database Engine Plik bazy danych (.sdf) IIS SQL Server CE Server Agent OLE DB Centralny Serwer SQL HTTP
  • 63. Konfiguracja serwera RDA Aby mechanizm RDA mógł zadziałać należy: Zainstalować na serwerze internetowym program SQL Server CE Server Agent Stworzyć katalog wirtualny zawierający bibliotekę SQL Server CE Server Agent DLL – wykorzystaj narzędzie SQL Server Connectivity Manager Ustawić metodę autentykacji dla nowo stworzonej witryny Sprawdzić czy identyfikacja przeprowadzona przez IIS jest wystarczająca aby aplikacja otrzymała dostęp do serwera SQL.
  • 64. Pozyskiwanie danych z serwera centralnego – RDA Pull Krok 1 – przygotowanie bazy danych if (! System.IO.File.Exists(@"\My Documents\Studenci.sdf")) { SqlCeEngine eng = new SqlCeEngine(@"Data Source=\My Documents\Studenci.sdf"); eng.CreateDatabase(); } else { System.IO.File.Delete(@"\My Documents\Studenci.sdf"); SqlCeEngine eng = new SqlCeEngine(@"Data Source=\My Documents\Studenci.sdf"); eng.CreateDatabase(); }
  • 65. Pozyskiwanie danych z serwera centralnego – RDA Pull Krok 2 – wykonanie metody RDA Pull SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(); string sCon = @"Provider=SQLOLEDB;Data Source=192.2.2.200;" + @"Initial Catalog=Studenci;user id=sa; " + @"Persist Security Info=False"; rda.InternetUrl = @"http://192.2.2.200/SQLServerCE_SA/sscesa20.dll"; rda.LocalConnectionString = @"Data Source=\My Documents\Studenci.sdf"; try { rda.Pull("Rejestracja", "SELECT * FROM Rejestracja", sCon, RdaTrackOption.TrackingOn, "rdaRejestrErrors"); } catch (SqlCeException ex) { MessageBox.Show(ex.ToString()); } rda.Dispose();
  • 66. Przesyłanie danych do serwera centralnego – RDA Push SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess(); string sCon = @"Provider=SQLOLEDB;Data Source=192.2.2.200;" + @"Initial Catalog=Studenci;user id=sa; " + @"Persist Security Info=False"; rda.InternetUrl = @"http://192.2.2.200/SQLServerCE_SA/sscesa20.dll"; rda.LocalConnectionString = @"Data Source=\My Documents\Studenci.sdf"; try { rda.Push("Rejestracja", sCon); } catch (SqlCeException ex) { MessageBox.Show(ex.ToString()); } rda.Dispose();
  • 68. Podsumowanie Znaczenie urządzeń mobilnych w życiu codziennym rośnie Ilość obszarów zastosowań urządzeń mobilnych ograniczona jedynie pomysłowością twórców Dostępna gama platform i narzędzi Tworzenie aplikacji zbliżone do tego znanego z platform desktopowych W przyszłości nowe wersje systemów operacyjnych (Windows CE 5.0), serwerów bazodanowych (SQL Mobile Server) i narzędzi programistycznych (Visual Studio .NET 2005)