Reputation: 25409
There are a number of run-time differences in compatible code between these two versions of .NET.
Here is a list of differences so far:
Do we also have any more to add?
Upvotes: 15
Views: 1360
Reputation: 37655
From Mitchel Sellers' list, these are some the characteristics that make Compact progreamming ... interesting.
The common language runtime for the .NET Compact Framework is approximately 12 percent the size of the full .NET Framework common language runtime.
The functionality of a current directory is not present in the Windows Embedded CE operating system.
Windows Embedded CE resolves a file name that is specified without path information as being in the root directory of the device, not in the application directory.
The .NET Compact Framework processes Uniform Resource Identifier (URI) strings prefixed by file:// differently from the full .NET Framework.
Because of size and performance considerations, the .NET Compact Framework does not support binary serialization using BinaryFormatter, or SOAP serialization using SoapFormatter.
Not all socket options are supported.
Because device I/O occurs in RAM, file and directory attributes cannot be set or accessed.
The Console is only provided at the hardware vendor's option.
Only 12% of the .NET Framework. I cleverly figured out that means that 88% is missing. And you will probably want some of it.
Pretty remarkable that so much is omitted or distorted because it won't fit into several hundred MB; compared to typically less than 10 MB for classical Mobile devices.
Upvotes: 2
Reputation: 17186
Assembly paths are returned in a different format on the desktop from
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
This returns a normal path under Win CE, but gives a URL (file:///c:/...) on the desktop framework. The property
System.Reflection.Assembly.GetExecutingAssembly().Location
returns a normal path (C:...) in the desktop framework, but is not available at all in the Compact Framework.
Here is a property that returns the folder in which your application is located:
public static string AppFolder
{
get {
#if !WindowsCE && !PocketPC
string exeFile = System.Reflection.Assembly.GetExecutingAssembly().Location;
#else
// This returns a normal path under CE, but gives a URL (file:/...) on the desktop
string exeFile = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
if (exeFile.StartsWith("file:///"))
exeFile = exeFile.Substring("file:///".Length);
#endif
return System.IO.Path.GetDirectoryName(exeFile);
}
}
Upvotes: 1
Reputation: 67178
Bitmaps (all Image-derived classes really) behave differently in how their resources are cleaned up.
Upvotes: 1
Reputation: 4804
I've noticed some differences when I had to port a CF app over to the full .net framework.
The default font for labels and treeviews in the CF was larger
When a label is disabled in CF it is just grayed out (the full .net framewark outlines the text with another color)
Upvotes: 1
Reputation: 63126
Depending on what you are looking for there is a Differences between .NET Compact Framework and .NET Framework article on MSDN.
Upvotes: 7