Premium Content

New Signal Chain Resources from Texas Instruments:

Operating Environments Emerge As Mobile Devices Multiply

Date Posted: December 13, 2009 12:00 AM
Author: William Wong

MICROSOFT'S MOBILE SOLUTION
Windows Embedded CE is at the heart of Microsoft’s mobile solution. As with Microsoft’s other Windows solutions, Windows CE incorporates the .NET Framework (Fig. 5). It’s possible to write programs that run on any one of the various Windows platforms, but the .NET Framework allows an application to run on almost any Windows operating system. This includes platforms such as Windows Mobile, a Windows CE variant that runs on a wide range of smart phones like the HTC Touch 2 (Fig. 6).

The .NET Framework is based on a VM architecture like Dalvik and JVM. Microsoft’s Common Language Runtime (CLR) is designed to execute Common Intermediate Language (CIL) bytecodes in a virtual stack machine similar to a JVM.

The Common Language Infrastructure (CLI) is an open ECMA-335 and ISO/IEC 23271 specification that describes CIL, the CLR runtime environment, as well as the Common Type System (CTS) and runtime assemblies. Mono and DotGNU Portable.NET are two opensource implementations of the CLI that run on a range of non-Windows platforms such as Linux.

JVMs currently support programming languages other than Java, but Java was their primary target. However, .NET was always intended as a multilanguage host. The .NET Framework supports dozens of programming languages from a variety of sources. Everything from Cobol to F#, a functional programming language, will run on the .NET Framework.

The CLI can be implemented as an interpreter that runs CIL code. Like Java, though, a CIL JIT compiler brings higher performance by converting the application to native code. This approach offers the advantage of moving optimization to the JIT. Ahead-of-time (AOT) compilation to native code is also possible. This locks down the executable to the current platform but eliminates the startup delay that a JIT requires.

Compilers still need to generate efficient CIL code, but they don’t have to be concerned about optimizing the target hardware for execution. Garbage collection is part of the puzzle. C# has pointer types, but these variables can only refer to value types and arrays. Reference variables are the way to track data with languages like C#.

CIL code is also considered “managed code” that runs within the CLR, which provides services such as thread and memory management. Applications must run within the CLR’s security confines. It’s possible to have native code that’s managed. Visual C++ .NET is one language environment that can generate CIL managed and native unmanaged code.

The advantage of managed code is programmer convenience courtesy of a higher level of abstraction. The approach significantly enhances security. Interaction between applications written in different programming languages is significantly easier. The CTS makes this possible.

The VM and low-end-run time is critical to performance and efficiency, but the .NET Framework’s class libraries make the difference. Most of the base class libraries are found in every .NET Framework platform.

The .NET Micro Framework is the exception (see “A Small .NET Makes A Big Catch”). It runs on bare metal, with no Windows operating system. It’s also modular, allowing a minimal footprint. The .NET Micro Framework targets the low end of the spectrum below platforms like Android and Moblin. It can be found on microcontrollers in applications such as process control.

The latest version of the .NET Micro Framework is available as open source using the Apache license. The CLI is implemented only as an interpreter, but the .NET framework native code interface is supported.

The .NET Micro Framework will likely find its way into devices that will wind up being controlled by higher-end .NET Framework devices such as cell phones. Having a common programming platform can come in handy.

The typical .NET Framework environment includes significantly more class libraries than .NET Micro Framework. Graphics, forms, and advanced database libraries are common. Classes for telephony and communication will be found in Windows Mobile platforms.

Many of the .NET Framework class libraries, including the base classes, are available with Mono. This allows applications that will run on Mono or .NET Framework to be written. The problem for developers is that taking real advantage of .NET Framework means using classes above the base set like the Windows Communication Foundation (WCF) and the Windows Workflow Foundation (WF). The application class libraries and services such as those needed by smart phones will be found running Windows Mobile.

The .NET Framework and Windows are so intertwined at this point, they’re inseparable. Native code applications that use Windows interfaces such as COM can coexist with .NET Frameworkbased applications, but the latter is where the bulk of development is. It’s also where development applications for Windows-based mobile devices is occurring.

Microsoft’s Visual Studio has been the main development platform for applications that take advantage of the .NET Framework. Most .NET programming languages utilize the Visual Studio integrated development environment (IDE). Several debuggers are available, such as the CLR debugger. Visual Studio supports other debugging tools, including support for unmanaged applications even in a mixed-application environment.

Overall, .NET Framework is an expansive and impressive platform that matches or exceeds most of its competition. It handles advanced user-interface support multitouch interfaces. Windows 7 also incorporates .NET Framework, so platforms such as Intel’s Atom are a natural fit. Windows 7 netbooks are likely to be the norm very soon. The leaner Windows 7 and the power of the .NET Framework are a killer combination.

The iPhone App Store, the Android Market, and the Windows Marketplace for Mobile will be major factors in the success of the matching mobile devices. The underlying frameworks on these devices need to be a good development target to be a success. The success of the App Store highlights the iPhone platform.

Windows with .NET and Linux in its various incarnations including Android and Moblin will continue to crop up in new hardware platforms. They will still have major competition in the smart-phone arena with the iPhone and Symbian, but that’s only a part of the embedded space.

microcontrollers
Part Inventory
Go
powered by:
 

 
You must log on before posting a comment.

Are you a new visitor? Register Here
  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks

  • rharding64
    2 years ago
    Jan 19, 2010

    i'm working on bluetooth data acquisition appliction. there exists hardware modules that implement bluetooth and have i/o, but you don' t need to know bluetooth to do it, you can focus on the application. i will be trying that out shortly.

    have a good day folks