Compact Framework v2 Base Class Library

http://www.brains-N-brawn.com/cfBcl 8/6/2004 casey chesnut


when i started programming with the Compact Framework (over 2 years ago) ... it seemed like it was missing every class i needed. i kept comparing it to the full framework, and it just could not compete. after a couple months i got used to implementing functionality that was missing, or pInvoking the OS to expose it to managed code ... and now i think CF offers more than what i need. i've got a good handle on what CF v1 provides, so really just wanted to see what CF v2 adds. saw a couple postings about API changes for Whidbey desktop, and decided to do a similar exercise for CF. so this article will show what has been added to the API for CF v2. the pic below is my app for reflecting against CF V1 and V2


the charts below show some metadata for the assemblies of V1 and V2. notice that V1 does not have System.Messaging and V2 does not have System.Data.Common. for V2 it looks like System.Data.Common is now a part of the System.Data assembly. the System.Web.Services assembly shrunk too, my assumption is that the functionality moved to System.Xml

 assembly  size  types  public 
 properties  events 
 GAC_Microsoft.VisualBasic_v7 1447749422220
 GAC_Microsoft.WindowsCE.Forms_v1 101433892
 GAC_mscorlib_v1 38642128335055950
 GAC_System.Data_v1 3933428081924413
 GAC_System.Data.SqlClient_v1 1458019348929
 GAC_System.Data.SqlServerCe_v1 12153304161187
 GAC_System_v1 25023310911072783
 GAC_System.Drawing_v1 3738224122200
 GAC_System.Net.IrDA_v1 11864590
 GAC_System.Web.Services_v1 9594262821043
 GAC_System.Windows.Forms.DataGrid_v1 391272126421
 GAC_System.Windows.Forms_v1 13717910237781006571
 GAC_System.Xml_v1 1901427014685316
 GAC_System.Data.Common_v1 1054227801833

 assembly  size  types  public 
 properties  events 
 GAC_Microsoft.VisualBasic_v8 30812263659360
 GAC_Microsoft.WindowsCE.Forms_v2 30482546910750
 GAC_mscorlib_v2 55353137546568590
 GAC_System.Data_v2 649291144248849330
 GAC_System.Data.SqlClient_v3 18676173511019
 GAC_System.Data.SqlServerCe_v3 206824684119710
 GAC_System_v2 32428913514293459
 GAC_System.Drawing_v2 4453304952380
 GAC_System.Net.IrDA_v2 9865190
 GAC_System.Web.Services_v2 5349283571303
 GAC_System.Windows.Forms.DataGrid_v2 401272527525
 GAC_System.Windows.Forms_v2 18622313561301609858
 GAC_System.Xml_v2 9446691843931139912
 GAC_System.Messaging_v2 6635193351064


these are the namespaces changes that have happened for V2. the new namespace are marked with RED. each namespace is followed by the number of NEW types to that namespace. i.e. all the types will be new for a new namespace. a pre-existing namespace will only show the number of public types that have been added for V2

Breaking Changes

these types / methods are in V1, but not in V2


these are the namespaces, types, and methods that exist in CF v2, but not on the desktop version of Whidbey.

What's New

the following page shows all the namespaces, public types, and public methods in CV v2. it is sorted alphabetically by namespace. the types in each namespace are represented by [C] class, [E] enum, [S] struct, and [I] interface. each type lists its Properties, Methods(), and ~Events. the new items (namespaces, types, methods) are in RED.the listing on the following link will look like:

[C]  NewClassForV2   NewProperty  NewMethod() ~NewEvent 
[E]  PreExistingEnumFromV1   OldProperty NewMethod()  OldMethod()  ~ OldEvent 


Click to See CF v2 API Changes

Click to See CF v2 Additions Only


External Links

for devices:

for desktop


these results are from Whidbey Beta 1 ... the the final release will look substantially different. i will try to keep this updated to reflect those changes. i will also update the app for reflecting against the assemblies to provide more data