Руслан Трифонов omegasoft ltd [email protected] xman892.blogspot

39
Руслан Трифонов Omegasoft Ltd r.trifonov@omegasof r.trifonov@omegasof t.bg t.bg xman892.blogspot.co xman892.blogspot.co m m Тихомир Игнатов iFD Engineering GmbH [email protected]

Upload: minty

Post on 05-Jan-2016

49 views

Category:

Documents


0 download

DESCRIPTION

Тихомир Игнатов iFD Engineering GmbH [email protected]. Руслан Трифонов Omegasoft Ltd [email protected] xman892.blogspot.com. Съдържание. Въведение Поглед отвътре SQL Server 2005 Mobile Edition Демо Q&A. Какво е .NET Compact Framework?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Руслан ТрифоновOmegasoft [email protected]@omegasoft.bgbg

xman892.blogspot.comxman892.blogspot.com

Тихомир ИгнатовiFD Engineering [email protected]

Page 2: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

1.1. ВъведениеВъведение

2.2. Поглед отвътре Поглед отвътре

3.3. SQL Server 2005 Mobile EditionSQL Server 2005 Mobile Edition

4.4. ДемоДемо

5.5. Q&AQ&A

СъдържаниеСъдържание

Page 3: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Какво е Какво е

.NET Compact Framework?.NET Compact Framework?

Page 4: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• Бърза разработка на приложенияБърза разработка на приложения за за мобилни у-вамобилни у-ва

• Преносимост на кодаПреносимост на кода

• C# C# и и VB.NETVB.NET

• Разработка с Разработка с Visual Studio – compile, Visual Studio – compile, debugdebug

• Retargeting - Retargeting - няма отделен няма отделен “compact” “compact” namespacenamespace

Цел на Цел на .NET Compact Framework.NET Compact Framework

Page 5: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• .NET Compact Framework 1.0.NET Compact Framework 1.0

• ..NET Compact Framework 2.0NET Compact Framework 2.0

ВерсииВерсии

Page 6: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• 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 съвместими устройствасъвместими устройства

Page 7: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Page 8: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Page 9: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Функционалност по време на Функционалност по време на изпълнение на кода изпълнение на кода

• Обезопасени типовеОбезопасени типове

• Garbage CollectionGarbage Collection

• JIT JIT компилациякомпилация

• ExceptionsExceptions

• Common type systemCommon type system

ИзпълнениеИзпълнение

Page 10: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• Обектни типовеОбектни типове

• Стойностни типовеСтойностни типове

• МасивиМасиви

• Колекции Колекции

• Работа със стринговеРабота със стрингове

• ExceptionsExceptions

Базови типовеБазови типове

Page 11: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Още функционалностОще функционалност

• GenericsGenerics

• Partial classesPartial classes

• ThreadingThreading

• GUI DesignerGUI Designer

Page 12: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Още функционалностОще функционалност

• Platform InvokePlatform Invoke

• COM InteroperabilityCOM Interoperability

• IPv6 supportIPv6 support

• Cryptographic supportCryptographic support

• ReflectionReflection

Page 13: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• Direct3D and DirectDrawDirect3D and DirectDraw

• Pocket OutlookPocket Outlook

• TelephonyTelephony

• Location ServicesLocation Services

• Messaging Messaging

Допълнителни Допълнителни APIAPI

Page 14: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Работа с данниРабота с данни

Page 15: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• Извикване на Извикване на 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

Page 16: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Работа с данниРабота с данни

Page 17: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• 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

Page 18: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Работа с данниРабота с данни

Page 19: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• 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

Работа с мрежаРабота с мрежа

Page 20: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Работа с данниРабота с данни

Page 21: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Page 22: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Работа с данниРабота с данни

Page 23: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

1.1. ActiveActive SyncSync

2.2. Remote Data Access – RDARemote Data Access – RDA

3.3. Merge Replication Merge Replication

Работа с данниРабота с данни ––синхронизиранесинхронизиране

Page 24: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• Active SyncActive Sync

• CAB CAB файловефайлове

• Microsoft Systems Management Microsoft Systems Management Server (SMS)Server (SMS)

DeploymentDeployment

Page 25: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Релационна база данни, работеща на Релационна база данни, работеща на устройствотоустройството::

• Цялата база данни е един файлЦялата база данни е един файл

• ИнструментиИнструменти

• 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

Page 26: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

• 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

Инструменти за разработкаИнструменти за разработка

Page 27: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Demo – Xml Web ServicesDemo – Xml Web Services

• Synchronous invocation

• Asynchronous invocation

Page 28: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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;

Page 29: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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. }

Page 30: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

Demo – Xml Demo – Xml

• Xml ParsingXml Parsing

• Xml DeserializationXml Deserialization

Page 31: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

Page 32: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

<?<?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

Page 33: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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);

Page 34: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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…

Page 35: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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. }}

Page 36: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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;

Page 37: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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) ) );;

Page 38: Руслан Трифонов Omegasoft Ltd r.trifonov@omegasoft.bg xman892.blogspot

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

РесурсиРесурси