Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do you know any run-time differences between Compact and Full Framework code?

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:

  • Graphics.DrawRectangle - differs by 1 pixel
  • Graphics.DrawString - Loses the line wrap if used with a StringFormat with both StringAlignments set to Center.
  • Most file operations - compact framework needs a full path
  • The status of a socket after BeginAccept
  • (In WinCE 5 at least) you cannot use a socket to send data synchronously with a timeout (without is okay but you risk hangs)
  • Bitmaps (all Image-derived classes really) behave differently in how their resources are cleaned up. - ctacke
  • The default font for labels and treeviews in the CF was larger - Darwyn
  • When a label is disabled in CF it is just grayed out (the full .net framewark outlines the text with another color) - Darwyn
  • Assembly paths are returned in a different format on the desktop from System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase - Qwertie

Do we also have any more to add?

like image 450
Quibblesome Avatar asked Dec 05 '08 00:12

Quibblesome


2 Answers

Depending on what you are looking for there is a Differences between .NET Compact Framework and .NET Framework article on MSDN.

like image 92
Mitchel Sellers Avatar answered Sep 17 '22 22:09

Mitchel Sellers


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.

like image 43
dkretz Avatar answered Sep 21 '22 22:09

dkretz