390 likes | 577 Views
Тихомир Игнатов iFD Engineering GmbH tihomir_ignatov@ifd-sofia.com. Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot.com. Съдържание. Въведение Поглед отвътре SQL Server 2005 Mobile Edition Демо Q&A. Какво е .NET Compact Framework?.
E N D
Тихомир Игнатов iFD Engineering GmbH tihomir_ignatov@ifd-sofia.com Руслан ТрифоновOmegasoft Ltdr.trifonov@omegasoft.bgxman892.blogspot.com
Съдържание • Въведение • Поглед отвътре • SQL Server 2005 Mobile Edition • Демо • Q&A
Какво е .NET Compact Framework?
Цел на .NET Compact Framework • Бърза разработка на приложенияза мобилни у-ва • Преносимост на кода • C# и VB.NET • Разработка с Visual Studio – compile, debug • Retargeting - няма отделен “compact” namespace
Версии • .NET Compact Framework 1.0 • .NET Compact Framework 2.0
.NET CF съвместими устройства • Pocket PC 2000 • Pocket PC 2002 • Windows Mobile 2003 • Windows Mobile 2003 SE • Windows Mobile based smart phones • Windows CE 4.1 • Windows CE 4.2 • Windows CE 5.0
Retail, Banking, Ticketing, Lottery Image + Printing Devices Measurement Devices Medical Systems Windows CE – Embedded OS Mobile devices Gambling Machines Digital Video Recorders, Media Devices, Appliances Industrial Automation
Platform Specific Class Libs Launch Base Class Libs Managed Native Platform Adaptation Layer Host Operating System Поглед отвътре .NET Compact Framework Applications App Domain Host Execution Engine (MSCOREE.DLL)
Изпълнение Функционалност по време на изпълнение на кода • Обезопасени типове • Garbage Collection • JIT компилация • Exceptions • Common type system
Базови типове • Обектни типове • Стойностни типове • Масиви • Колекции • Работа със стрингове • Exceptions
Още функционалност • Generics • Partial classes • Threading • GUI Designer
Още функционалност • Platform Invoke • COM Interoperability • IPv6 support • Cryptographic support • Reflection
Допълнителни API • Direct3D and DirectDraw • Pocket Outlook • Telephony • Location Services • Messaging
Работа с данни • Работа с отдалечени данни • XML Web Services • ADO.NET • Networking • Работа с локални данни • Xml, DataSet • SQLCE и ADO.NET • Синхронизиране на данни • COM Interoperability
Работа с данни– Xml Web Services • Извикване на Web Services • SOAP 1.2 • Синхронни и асинхронни извиквания • Автентикация • Basic, Digest, NTLM, Negotiate • Поддръжка на SSL • Custom SOAP headers • SOAP Extension Framework
Работа с данни • Работа с отдалечени данни • XML Web Services • ADO.NET • Networking • Работа с локални данни • Xml, DataSet • SQLCE и ADO.NET • Синхронизиране на данни • COM Interoperability
Работа с данни – ADO.NET • DataSet • Разширяем ADO.NET Provider модел • Supported Providers • SQL Server (System.Data.SqlClient) • SQL Server CE(System.Data.SqlServerCE)
Работа с данни • Работа с отдалечени данни • XML Web Services • ADO.NET • Networking • Работа с локални данни • Xml, DataSet • SQLCE и ADO.NET • Синхронизиране на данни • COM Interoperability
Работа с мрежа • Sockets • Синхронни и асинхронни • Протоколи • Streams • Синхронни и асинхронни • HTTP • Request, Response classes • Stream based model Applications .NET Compact Framework Web Services HTTP Request/Response, Network Stream Sockets Common Language Runtime
Работа с данни • Работа с отдалечени данни • XML Web Services • ADO.NET • Networking • Работа с локални данни • Xml, DataSet • SQLCE и ADO.NET • Синхронизиране на данни • COM Interoperability
Работа с данни– XML • Document Object Model (DOM) • XmlDocument • Simple API for XML (SAX) • XmlTextReader, XmlTextWriter • XPath support • Xml validation • Xml Serialization
Работа с данни • Работа с отдалечени данни • XML Web Services • ADO.NET • Networking • Работа с локални данни • Xml, DataSet • SQLCE и ADO.NET • Синхронизиране на данни • COM Interoperability
Работа с данни–синхронизиране • ActiveSync • Remote Data Access – RDA • Merge Replication
Deployment • Active Sync • CAB файлове • Microsoft Systems Management Server (SMS)
SQL Server 2005 Mobile Релационна база данни, работеща на устройството: • Цялата база данни е един файл • Инструменти • SQLCE Query • SQL Server Management Studio • Visual Studio 2005 • Конкурентни връзки, ACID транзакции • Cost-based optimization/statistics • Execution plan and query hints • Синхронизация с SQL Server 2000/2005
Инструменти за разработка • Visual Studio .NET 2003/2005 • Windows Mobile Developer Power Toys • Emulator ActiveSync Connection ToolПозволява изграждане на връзка между емулатора и ActiveSync • ActiveSync Remote DisplayПоказва екрана на устройството върху десктоп машината без нужда от конфигурация на устройството • CECopyCommand-line инструмент за копиране на файлове в/у устройството през ActiveSync
Demo – Xml Web Services • Synchronous invocation • Asynchronous invocation
Demo – Sync Web Service • Cursor.Current = Cursors.WaitCursor; • CfDemo.Service1 srv1 = • newWsDemo.CfDemo.Service1(); • time = srv1.GetServerTime(); • this.Invoke(new EventHandler(ShowTime)); • Cursor.Current = Cursors.Default;
Demo – Async Web Service • // start async xml web services request • CfDemo.Service1 srv1 = newWsDemo.CfDemo.Service1(); • AsyncCallback ac = newAsyncCallback(Callback); • srv1.BeginGetServerTime(ac, srv1); • // complete async xml web services request • privatevoid Callback(IAsyncResult ar) • { • CfDemo.Service1 srv = (CfDemo.Service1)ar.AsyncState; • time = srv.EndGetServerTime(ar); • this.Invoke(new EventHandler(ShowTime)); • }
Demo – Xml • Xml Parsing • Xml Deserialization
Demo – Xml Rendered content Xml content <?xmlversion="1.0" encoding="utf-8" ?> <students> <student> <names>Петър Панов</names> <age>25</age> </student> <student> <names>Иван Иванов</names> <age>21</age> ... Xml Processing
Demo – Xml <?xmlversion="1.0" encoding="utf-8" ?> <students> <student> <names>Петър Панов</names> <age>25</age> </student> <student> <names>Иван Иванов</names> <age>21</age>
Demo – Xml parsing(1) 1. // prepare xml parsing settings • XmlReaderSettings xmlSettings = new • XmlReaderSettings(); • xmlSettings.IgnoreComments = true; • xmlSettings.IgnoreProcessingInstructions = true; • xmlSettings.IgnoreWhitespace = true; • xmlSettings.CloseInput = true; • //create OPTIMIZED reader • XmlReaderreader = XmlTextReader.Create(File.OpenRead(xmlPath), xmlSettings);
Demo – Xml parsing(2) • while (reader.Read()) • { • if (reader.Name == "student" &&reader.IsStartElement()) • { • student = newStudent(); • } • else • if (reader.Name == "names" && reader.IsStartElement() && student != null) • { • student.Names = reader.ReadInnerXml(); • }More…
Demo – Xml parsing(3) • else • if (reader.Name == "age" && reader.IsStartElement() && student != null) • { • Student.Age = Int32.Parse(reader.ReadInnerXml(), CultureInfo.InvariantCulture); • } • else • if (reader.Name == "student" && !reader.IsStartElement()) • {students.Add(student); • }
Demo – Xml parsing(4) • ListBox lbStudents; • … • List<Student> students = newList<Student>(); • // xml parsing • … • lbStudents.DataSource = students;
Demo – Xml Deserialization • // create serializer instance • XmlSerializer serializer = newXmlSerializer(typeof(List<Student>),newXmlRootAttribute("students")); • // perform deserialization • lbStudents.DataSource = serializer.Deserialize(File.OpenRead(xmlPath) );
Ресурси Mobile Developer Centermsdn.microsoft.com/mobility OpenNETCF.orgwww.opennetcf.org .NET Compact Framework Teamblogs.msdn.com/netcfteam Newsgroupsmicrosoft.public.dotnet.framework.compactframework Ruslan Trifonov’s blog xman892.blogspot.com
Q&A tihomir_ignatov@ifd-sofia.comr.trifonov@omegasoft.bg