1 / 29

Visual Studio.NET and .NET Compact Framework Application Development

Explore the design goals, profiles, and class library architecture of Visual Studio .NET and .NET Compact Framework application development. Learn about networking, web services, and creating web services. Ensure compatibility and strict adherence to .NET Framework functionality while supporting innovation and device differentiation.

Download Presentation

Visual Studio.NET and .NET Compact Framework Application Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual Studio.NET and .NET Compact Framework Application Development Mike D. SmithGroup Program ManagerDeveloper Division Microsoft Corporation

  2. Agenda • Design Goals • Profiles and Extensions • Class Library Architecture • Base Class Libraries • Networking and Web Services • Creating a simple Web Service

  3. Design Goals • Compatibility • Strict compatibility with .NET Framework • Subset functionality • Appropriateness • Give the developer a known target • Minimize arbitrary division • Balance cross device with device specific • Size / Functionality • Support for Innovation • Feature set evolution • Device differentiation • Security • Standardization

  4. Library Groupings • Libraries are grouped in two ways… • Platform Extensions • Core Profiles PlatformExtension Core Profile

  5. Your App Two Ways to Target .NET CF PlatformExtension Core Profile

  6. PlatformExtensions Core Profiles Core Profiles • Coherent collection of class libraries and underlying EE support • Offered for any device, OS, CPU • By Microsoft • By Implementers from standards specs • Basic foundation / reference starting point for building devices • Enables broad range of scenarios and VS Project types • “Broadest Reach / Lowest-Common Denominator” platform target for apps

  7. PlatformExtensions Core Profiles Core Profiles • Kernel Profile • Minimal language support • Compact Profile • Foundation profile for all connected devices • Others to come • TV • Automotive • …

  8. PlatformExtensions Platform Extensions Core Profiles • Coherent collection of class libraries • Vendor and/or Device-specific • Relies on one or more Core Profiles • Value-add building block for devices (added atop Profiles) • Enables more specialized range of scenarios and VS Project types • “Targeted Reach / Deep Integration” platform target for apps

  9. Namespace scoping mechanism System.IO.FileStream.Open() Profiles – System namespace only Extensions – Vendor namespace Namespace Class Method Class Library Organization

  10. PlatformExtensions Core Profiles Details: the Compact Profile

  11. Compact Profile • Contents • Minimal set of classes for device scenarios • Support for .NET CF execution engine • Effective functionality for resource- constrained devices • Appropriate subset of .NET Framework System classes

  12. Class Library Architecture Application Vendor Extensions Application Compact Profile Class Libraries Execution Engine PAL Managed Code Native Code Host operating system

  13. .NET Framework Namespace System.Web System.WinForms Services UI Design ComponentModel Description HtmlControls Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Text Configuration SessionState Imaging System.Data System.Xml ADO SQL XSLT Serialization Reader/Writers Design SQLTypes XPath System Collections IO Configuration Runtime InteropServices Security Net ServiceProcess Remoting Text Reflection Diagnostics Serialization Globalization Resources Threading

  14. Base Data Types • Signed and unsigned 8, 16, 32, and 64 bit integers • System.Int16, System.UInt32,… • Optional floating point • Included in richer profiles, used appropriately • Strings • System.String, System.Text.StringBuilder • Arrays • System.Array • Additional value types supported • System.DateTime • System.TimeSpan • System.URI • …

  15. Input / Output • Stream based I/O model • Synchronous and Asynchronous • <stream>.Read(), …, <stream>.BeginRead(), … • Included Streams • Files (System.IO.FileStream, …) • Memory (System.IO.MemoryStream, …) • Network (System.Net.NetworkStream, …) • Readers and Writers • High level stream processing • Multiple / complex formats • Helper classes • Regular Expressions System.Text.RegularExpressions, …

  16. Collections • Mutable Arrays • System.ArrayList • Key-value pair data structures • System.Hashtable • All collections may be made strongly typed by following a well defined design pattern

  17. Globalization • Unicode implementation throughout • Culture • Globally selectable at runtime • System.Globalization.CultureInfo • String based resources for simple localization • System.Resources • Support for • Retrieving Unicode information about a character • System.Globalization.CharacterInfo.* • Sorting strings based on specified culture • Formatting of dates, currency and other data types • Determined by current culture • Overridable by System.Globalization.DateTimeFormatInfo

  18. Networking • Socket level support has full parity with .NET Framework • Multi-protocol sockets • HTTP client & server • Web services client • Connection management • High level Request / Response model • System.Net.{WebRequest,WebResponse} • SSL • Secure code download support

  19. Reflection • Convenient access to class/method meta-data • System.Reflection.* • Allows for late-binding and activation

  20. Security • Permission classes • Control access to system resources • File System • Network • Other resources • Method level granularity • Configurable Policy

  21. XML • Includes pull model XML parser • Easy but powerful XML access • System.XML.XMLTextReader • System.XML.XMLTextWriter

  22. Web Services • Supports web services as defined by .NET Framework • Remote stateless method calls with SOAP formatted XML over HTTP • Allows for rich object based interoperability between all .NET platforms and SOAP compliant environments • Seamless to use • Uses client proxy code generated by Visual Studio.NET • Based on open standards

  23. Language access to Libraries • The .NET Platform is Language Neutral • All .NET languages are first class players • Leverage your existing skills and code • Access largest community of developers • API access example • [Generic] public virtual Int32 Read(Char[] buffer, Int32 index, Int32 count) • [C#] public virtual int Read(Char[] buffer, int index, int count); • [VB] Public Overridable Function Read(ByVal buffer() As char, ByVal index As Char, ByVal count as Char) As Integer • [ECMAScript] public override function Read(buffer : char[], index : int, count : int) : int • [Managed C] … • [COBOL] …

  24. Demo • Multiple languages (VB, C#) • Regular Expression handling • Simple web service access • System.Net.HTTPWebRequest • Easy Deployment to the device

  25. PlatformExtensions Core Profiles Details: Platform Extensions

  26. Platform Extension Examples • OS-specific or Device/Model-specific • .NET Extensions for MyCompany OS • .NET Extensions for MyCompany Device • Tradeoffs to consider: • Pro: Increased depth of integration • Pro: Increased amount of specialization • Con: Reduced reach for apps • Con: Reduce reach for Developers

  27. Summary • Class library design goals • Developer and Tool Oriented View • Profiles and Extensions • Compact Profile overview • Class library details • Web services & demonstrations • Platform Extension examples

More Related