View
236
Download
9
Embed Size (px)
Citation preview
Руслан ТрифоновOmegasoft [email protected]@omegasoft.bgbg
xman892.blogspot.comxman892.blogspot.com
Тихомир ИгнатовiFD Engineering [email protected]
1.1. ВъведениеВъведение
2.2. Поглед отвътре Поглед отвътре
3.3. SQL Server 2005 Mobile EditionSQL Server 2005 Mobile Edition
4.4. ДемоДемо
5.5. Q&AQ&A
СъдържаниеСъдържание
Какво е Какво е
.NET Compact Framework?.NET Compact Framework?
• Бърза разработка на приложенияБърза разработка на приложения за за мобилни у-вамобилни у-ва
• Преносимост на кодаПреносимост на кода
• C# C# и и VB.NETVB.NET
• Разработка с Разработка с Visual Studio – compile, Visual Studio – compile, debugdebug
• Retargeting - Retargeting - няма отделен няма отделен “compact” “compact” namespacenamespace
Цел на Цел на .NET Compact Framework.NET Compact Framework
• .NET Compact Framework 1.0.NET Compact Framework 1.0
• ..NET Compact Framework 2.0NET Compact Framework 2.0
ВерсииВерсии
• Pocket PC 2000Pocket PC 2000
• Pocket PC 2002Pocket PC 2002
• Windows Mobile 2003Windows Mobile 2003
• Windows Mobile 2003 SEWindows Mobile 2003 SE
• Windows Mobile based smart phonesWindows Mobile based smart phones
• Windows CE 4.1Windows CE 4.1
• Windows CE 4.2Windows CE 4.2
• Windows CE 5.0Windows CE 5.0
.NET CF .NET CF съвместими устройствасъвместими устройства
Mobile devices Gambling Machines
Image + Printing Devices
MeasurementDevices
Industrial Automation
Medical Systems
Retail, Banking, Ticketing, Lottery
Digital Video Recorders, Media Devices, Appliances
Windows CE – Embedded OSWindows CE – Embedded OS
Execution Engine (MSCOREE.DLL)Execution Engine (MSCOREE.DLL)Execution Engine (MSCOREE.DLL)Execution Engine (MSCOREE.DLL)
ApplicationsApplicationsApplicationsApplications
Platform Specific Class LibsPlatform Specific Class LibsPlatform Specific Class LibsPlatform Specific Class Libs
Base Class LibsBase Class LibsBase Class LibsBase Class Libs
.NET Compact Framework.NET Compact Framework
Ap
p D
om
ain
Ho
stA
pp
Do
mai
n H
ost
Ap
p D
om
ain
Ho
stA
pp
Do
mai
n H
ost
LaunchLaunchManagedManagedNativeNative
Поглед отвътреПоглед отвътре
Host Operating SystemHost Operating SystemHost Operating SystemHost Operating System
Platform Adaptation LayerPlatform Adaptation LayerPlatform Adaptation LayerPlatform Adaptation Layer
Функционалност по време на Функционалност по време на изпълнение на кода изпълнение на кода
• Обезопасени типовеОбезопасени типове
• Garbage CollectionGarbage Collection
• JIT JIT компилациякомпилация
• ExceptionsExceptions
• Common type systemCommon type system
ИзпълнениеИзпълнение
• Обектни типовеОбектни типове
• Стойностни типовеСтойностни типове
• МасивиМасиви
• Колекции Колекции
• Работа със стринговеРабота със стрингове
• ExceptionsExceptions
Базови типовеБазови типове
Още функционалностОще функционалност
• GenericsGenerics
• Partial classesPartial classes
• ThreadingThreading
• GUI DesignerGUI Designer
Още функционалностОще функционалност
• Platform InvokePlatform Invoke
• COM InteroperabilityCOM Interoperability
• IPv6 supportIPv6 support
• Cryptographic supportCryptographic support
• ReflectionReflection
• Direct3D and DirectDrawDirect3D and DirectDraw
• Pocket OutlookPocket Outlook
• TelephonyTelephony
• Location ServicesLocation Services
• Messaging Messaging
Допълнителни Допълнителни APIAPI
1.1. Работа с отдалечени данниРабота с отдалечени данни
• XML Web ServicesXML Web Services
• ADO.NETADO.NET
• NetworkingNetworking
2.2. Работа с локални данниРабота с локални данни
• Xml, Xml, DataSetDataSet
• SQLSQL CE CE и и ADO.NETADO.NET
3.3. Синхронизиране на данниСинхронизиране на данни
4.4. COM InteroperabilityCOM Interoperability
Работа с данниРабота с данни
• Извикване на Извикване на Web ServicesWeb Services
• SOAP 1.2SOAP 1.2
• Синхронни и асинхронни извикванияСинхронни и асинхронни извиквания
• Автентикация Автентикация
• Basic, Digest, NTLM, NegotiateBasic, Digest, NTLM, Negotiate
• Поддръжка на Поддръжка на SSL SSL
• Custom SOAP headersCustom SOAP headers
• SOAP Extension FrameworkSOAP Extension Framework
Работа с данниРабота с данни – – Xml Web Xml Web ServicesServices
1.1. Работа с отдалечени данниРабота с отдалечени данни
• XML Web ServicesXML Web Services
• ADO.NETADO.NET• NetworkingNetworking
2.2. Работа с локални данниРабота с локални данни
• Xml, Xml, DataSetDataSet
• SQLSQL CE CE и и ADO.NETADO.NET
3.3. Синхронизиране на данниСинхронизиране на данни
4.4. COM InteroperabilityCOM Interoperability
Работа с данниРабота с данни
• DataSetDataSet
• Разширяем ADO.NET Provider моделРазширяем ADO.NET Provider модел
• Supported ProvidersSupported Providers
• SQL Server (System.Data.SqlClient)SQL Server (System.Data.SqlClient)
• SQL Server SQL Server CE(System.Data.SqlServerCE)CE(System.Data.SqlServerCE)
Работа с данни – Работа с данни – ADO.NETADO.NET
1.1. Работа с отдалечени данниРабота с отдалечени данни
• XML Web ServicesXML Web Services
• ADO.NETADO.NET
• NetworkingNetworking
2.2. Работа с локални данниРабота с локални данни
• XmlXml,, DataSet DataSet
• SQLSQL CE CE и и ADO.NETADO.NET
3.3. Синхронизиране на данниСинхронизиране на данни
4.4. COM InteroperabilityCOM Interoperability
Работа с данниРабота с данни
• SocketsSockets
• Синхронни и асинхронниСинхронни и асинхронни
• ПротоколиПротоколи
• StreamsStreams
• Синхронни иСинхронни и
асинхронниасинхронни
• HTTPHTTP
• Request, Response Request, Response
classesclasses
• Stream based modelStream based modelCommon Language RuntimeCommon Language RuntimeCommon Language RuntimeCommon Language Runtime
.NET Compact .NET Compact FrameworkFramework
Web ServicesWeb ServicesWeb ServicesWeb Services
HTTP Request/Response,HTTP Request/Response, Network StreamNetwork Stream
HTTP Request/Response,HTTP Request/Response, Network StreamNetwork Stream
SocketsSocketsSocketsSockets
ApplicationsApplicationsApplicationsApplications
Работа с мрежаРабота с мрежа
1.1. Работа с отдалечени данниРабота с отдалечени данни
• XML Web ServicesXML Web Services
• ADO.NETADO.NET
• NetworkingNetworking
2.2. Работа с локални данниРабота с локални данни
• XmlXml,, DataSet DataSet
• SQLSQL CE CE и и ADO.NETADO.NET
3.3. Синхронизиране на данниСинхронизиране на данни
4.4. COM InteroperabilityCOM Interoperability
Работа с данниРабота с данни
1.1. Document Object Model (DOM)Document Object Model (DOM)
• XmlDocumentXmlDocument
2.2. Simple API for XML (SAX)Simple API for XML (SAX)
• XmlTextReader, XmlTextWriterXmlTextReader, XmlTextWriter
3.3. XPath supportXPath support
4.4. Xml validation Xml validation
5.5. Xml SerializationXml Serialization
Работа с данниРабота с данни – – XMLXML
1.1. Работа с отдалечени данниРабота с отдалечени данни
• XML Web ServicesXML Web Services
• ADO.NETADO.NET
• NetworkingNetworking
2.2. Работа с локални данниРабота с локални данни
• XmlXml,, DataSet DataSet
• SQLSQL CE CE и и ADO.NETADO.NET
3.3. Синхронизиране на данниСинхронизиране на данни
4.4. COM InteroperabilityCOM Interoperability
Работа с данниРабота с данни
1.1. ActiveActive SyncSync
2.2. Remote Data Access – RDARemote Data Access – RDA
3.3. Merge Replication Merge Replication
Работа с данниРабота с данни ––синхронизиранесинхронизиране
• Active SyncActive Sync
• CAB CAB файловефайлове
• Microsoft Systems Management Microsoft Systems Management Server (SMS)Server (SMS)
DeploymentDeployment
Релационна база данни, работеща на Релационна база данни, работеща на устройствотоустройството::
• Цялата база данни е един файлЦялата база данни е един файл
• ИнструментиИнструменти
• SQLCE QuerySQLCE Query
• SQL Server Management StudioSQL Server Management Studio
• Visual Studio 2005Visual Studio 2005
• Конкурентни връзкиКонкурентни връзки, ACID , ACID транзакциитранзакции
• Cost-based optimization/statisticsCost-based optimization/statistics
• Execution plan and query hintsExecution plan and query hints
• Синхронизация с Синхронизация с SQL Server 2000/2005SQL Server 2000/2005
SQL Server 2005 MobileSQL Server 2005 Mobile
• Visual Studio .NET 200Visual Studio .NET 2003/20053/2005
• Windows Mobile Developer Power ToysWindows Mobile Developer Power Toys
• Emulator ActiveSync Connection ToolEmulator ActiveSync Connection Tool Позволява изграждане на връзка между емулатора Позволява изграждане на връзка между емулатора и и ActiveSyncActiveSync
• ActiveSync Remote DisplayActiveSync Remote Display Показва екрана на устройството върху десктоп Показва екрана на устройството върху десктоп машината без нужда от конфигурация на машината без нужда от конфигурация на устройствотоустройството
• CECopyCECopy CommandCommand--line line инструмент за копиране на файлове инструмент за копиране на файлове в/у устройството през в/у устройството през ActiveSyncActiveSync
Инструменти за разработкаИнструменти за разработка
Demo – Xml Web ServicesDemo – Xml Web Services
• Synchronous invocation
• Asynchronous invocation
DemoDemo – – Sync Web ServiceSync Web Service
1.Cursor.Current = Cursors.WaitCursor;
2.CfDemo.Service1 srv1 = new WsDemo.CfDemo.Service1();
1. time = srv1.GetServerTime();
2. this.Invoke(new EventHandler(ShowTime));
3.Cursor.Current = Cursors.Default;
Demo – Async Web ServiceDemo – Async Web Service
// start async xml web services request1. CfDemo.Service1 srv1 = new WsDemo.CfDemo.Service1();
2. AsyncCallback ac = newAsyncCallback(Callback);
3. srv1.BeginGetServerTime(ac, srv1);
// complete async xml web services request1. private void Callback(IAsyncResult ar)2. {
3. CfDemo.Service1 srv = (CfDemo.Service1)ar.AsyncState;
4. time = srv.EndGetServerTime(ar);
5. this.Invoke(new EventHandler(ShowTime));6. }
Demo – Xml Demo – Xml
• Xml ParsingXml Parsing
• Xml DeserializationXml Deserialization
Demo – XmlDemo – Xml
<?<?xmlxml versionversion="="1.01.0" " encodingencoding="="utf-8utf-8" " ?>?><<studentsstudents>> <<studentstudent>> <<namesnames>>Петър ПановПетър Панов</</namesnames>> <<ageage>>2525</</ageage>> </</studentstudent>> <<studentstudent>> <<namesnames>>Иван ИвановИван Иванов</</namesnames>> <<ageage>>2121</</ageage>> ......
Xml contentRendered content
Xml Processing
<?<?xmlxml versionversion="="1.01.0" " encodingencoding="="utf-8utf-8" " ?>?>
<<studentsstudents>>
<<studentstudent>>
<<namesnames>>ПетърПетър Панов Панов</</namesnames>>
<<ageage>>2525</</ageage>>
</</studentstudent>>
<<studentstudent>>
<<namesnames>>Иван ИвановИван Иванов</</namesnames>>
<<ageage>>2121</</ageage>>
Demo – XmlDemo – Xml
Demo – Xml parsing(1)Demo – Xml parsing(1)
1.1. // prepare xml parsing settings// prepare xml parsing settings
2.2. XmlReaderSettingsXmlReaderSettings xmlSettings = new xmlSettings = new
3.3. XmlReaderSettingsXmlReaderSettings();();
4.4. xxmlSettings.IgnoreComments = mlSettings.IgnoreComments = truetrue;;
5.5. xmlSettings.IgnoreProcessingInstructions = xmlSettings.IgnoreProcessingInstructions = truetrue;;
6.6. xmlSettings.IgnoreWhitespace = xmlSettings.IgnoreWhitespace = truetrue;;
7.7. xmlSettings.CloseInput = xmlSettings.CloseInput = truetrue;;
8.8. //// create OPTIMIZED readercreate OPTIMIZED reader
9.9. XmlReaderXmlReader reader = reader = XmlTextReader.CreateXmlTextReader.Create(( FileFile.OpenRead(xmlPath), .OpenRead(xmlPath), xmlSettings);xmlSettings);
Demo – Xml parsing(2)Demo – Xml parsing(2)
1.1. whilewhile ( ( reader.Read()reader.Read() ))
2.2. {{
3.3. if if (reader.Name == "(reader.Name == "studentstudent" " &&&& reader.IsStartElement()reader.IsStartElement() ))
4.4. {{
5.5. student = student = newnew StudentStudent();();
6.6. }}
7.7. elseelse
8.8. if if (reader.Name == "(reader.Name == "namesnames" && " && reader.IsStartElement() && student != reader.IsStartElement() && student != nullnull))
9.9. {{
10.10. student.Names = reader.ReadInnerXml();student.Names = reader.ReadInnerXml();
11.11. }} More…More…
Demo – Xml parsing(3)Demo – Xml parsing(3)
1.1. elseelse
2.2. if (reader.Name == "if (reader.Name == "ageage" && reader.IsStartElement() " && reader.IsStartElement() && student != && student != nullnull))
3.3. {{
4.4. SStudent.Age = tudent.Age = Int32.Parse(reader.ReadInnerXml(), Int32.Parse(reader.ReadInnerXml(), CultureInfoCultureInfo.InvariantCulture);.InvariantCulture);
5.5. }}
6.6. elseelse
7.7. if (reader.Name == "if (reader.Name == "studentstudent" && " && !reader.IsStartElement())!reader.IsStartElement())
8.8. {{students.Add(student);students.Add(student);
9.9. }}
Demo – Xml parsing(4)Demo – Xml parsing(4)
1.1. ListBoxListBox lbStudents; lbStudents;
2.2. ……
3.3. ListList<<StudentStudent> students = > students = newnew ListList<<StudentStudent>();>();
4.4. // xml parsing// xml parsing
5.5. ……
6.6. lbStudents.DataSource = students;lbStudents.DataSource = students;
Demo – Xml DeserializationDemo – Xml Deserialization
1.1. // create serializer instance// create serializer instance
2.2. XmlSerializerXmlSerializer serializer = serializer = newnew XmlSXmlSeerializerrializer(( typeoftypeof((ListList<<StudentStudent>)>) ,,
newnew XmlRootAttributeXmlRootAttribute(("students""students")) ););
3.3. // perform deserialization// perform deserialization
4.4. lbStudents.DataSource = serializer.Deserialize(lbStudents.DataSource = serializer.Deserialize( FileFile.OpenRead(xmlPath).OpenRead(xmlPath) ) );;
Mobile Developer CenterMobile Developer Centermsdn.microsoft.com/mobilitymsdn.microsoft.com/mobility
OpenNETCF.orgOpenNETCF.orgwww.opennetcf.orgwww.opennetcf.org
.NET Compact Framework Team.NET Compact Framework Teamblogs.msdn.com/netcfteamblogs.msdn.com/netcfteam
NewsgroupsNewsgroupsmicrosoft.public.dotnet.framework.compactframewmicrosoft.public.dotnet.framework.compactframeworkork
Ruslan Trifonov’s blogRuslan Trifonov’s blog
xman892.blogspot.comxman892.blogspot.com
РесурсиРесурси
QQ&&[email protected][email protected] [email protected]@omegasoft.bg