Windows® Embedded POSReady runs applications developed with the development tools and libraries that Windows XP supports. Windows Embedded POSReady also supports numerous POS devices through POS for .NET and OPOS.
Historically, the development environments available to create applications for embedded devices have not kept pace with the development environments available to create applications for non-embedded devices. Developers of embedded devices have often had to use older tools and programming paradigms when creating and maintaining their applications. Although using an older development environment may help ensure consistency over multiple projects, it also runs the risk of using outdated toolsets or libraries, which may have unresolved issues as the toolset creators abandon previous versions. Using an older development environment sometimes leads to embedded developers programming with workarounds, or in a very protective posture. Windows Embedded POSReady helps you to overcome these challenges by enabling developers of embedded and non-embedded devices to work within the same toolset and take advantage of the same programming paradigms by providing a unified development environment. This article introduces the developer of embedded retail systems to Windows Embedded POSReady.
The following topics will help you effectively take advantage of Windows Embedded POSReady. The integrated development environment (IDE) is Microsoft® Visual Studio®, which includes the editors, compilers, debugger, and so on. The language-independent programming framework is the Microsoft .NET Framework. Retail specific functionality that fits within that framework is known as Microsoft Point of Service (POS) for .NET.
Microsoft Visual Studio
Visual Studio is a complete set of development tools for building ASP.NET Web applications, XML Web Services, desktop applications, and mobile applications. The included programming languages, Visual Basic®, Visual C++®, Visual C#®, and Visual J#® all use the same IDE, which enables you to use the same tools regardless of programming language. In addition, these languages leverage the functionality of the .NET Framework, which provides access to key technologies that simplify the development of ASP Web applications, XML Web Services, and Windows Forms applications.
Of the various types of applications that you can create in Visual Studio, Windows Forms applications are the most common for developing embedded retail system. Windows Forms applications rely on the .NET Framework. This framework provides a clear, object-oriented, extensible set of classes that enable you to develop rich Windows applications. Additionally, Windows Forms can act as the local user interface in a multi-tier, distributed solution.
To learn more about Windows Forms applications, see http://msdn.microsoft.com/en-us/library/8bxxy49h.aspx.
Visual Basic and Visual C/C++
Legacy development tools continue to be supported and benefit from POSReady’s support for OPOS devices. These development tools and the software they create require no migration efforts to support POSReady. However, if you modify them to support POS for .NET, the tools and software will have improved support for PnP and add easy access to virtually any POS device.
Microsoft .NET Framework 2.0 through 3.5
The .NET Framework supports building and running the next generation of applications and XML Web services. The .NET Framework is designed to help you accomplish the following objectives:
To provide a consistent, object-oriented programming environment for object code that is stored and executed locally, executed locally but distributed over the Internet, or executed remotely.
To provide a code-execution environment that minimizes software deployment and versioning conflicts.
To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.
To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.
To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.
To build all communication on industry standards and ensure that code based on the .NET Framework can integrate with any other code.
The .NET Framework has two main components: the common language runtime and the .NET Framework class library. The common language runtime is the foundation of the .NET Framework. You can think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remote access, while also enforcing strict type safety and other forms of code accuracy that helps promote security and robustness. The concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, whereas code that does not target the runtime is known as unmanaged code.
The runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it is executing. Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.
The class library is the other main component of the .NET Framework. It is a comprehensive, object-oriented collection of reusable types that you can use to develop applications ranging from traditional command-line or graphical user interface (GUI) applications to applications based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services.
The .NET Framework class library tightly integrates with the common language runtime. The class library is object oriented, providing types from which your own managed code can derive functionality. This not only makes the .NET Framework types easy to use, but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components can integrate seamlessly with classes in the .NET Framework.
.NET 2.0 provides easy development of POS applications with the look and feel of a typical Windows application. Visual Studio, Expression Blend, and .NET 3.5 add all these features plus many others, including:
Windows Presentation Foundation (WPF) to provide a more graphical and immersive experience with dramatically reduced effort.
Windows Communication Foundation (WCF) to provide simple and secure client/server communication through virtually any protocol including high availability Web Services to ultra-reliable Message Queuing (MSMQ).
The .NET Framework also provides easy access to POS devices through POS for .NET (version 1.12). This includes any device supported by POS for .NET directly or through its built-in compatibility for legacy OPOS.
Microsoft POS for .NET
Microsoft POS for .NET v1.12 is a class library that enables POS developers to apply Microsoft .NET technologies in their products. It provides a simple and consistent interface for .NET Framework applications to interact with POS devices, a set of interfaces and classes created to help vendors write applications for common devices such as cash drawers or line displays, and support for Windows Plug-and-Play functionality.
POS for .NET implements the Unified Point of Service (UPOS) version 1.12 standard, so that retailers, hospitality organizations, and industry partner companies can quickly and reliably configure .NET-based POS applications and device peripherals for interoperability.
To learn more about the capability of the POS for .NET class library, see the article titled “POSReady: POS for .NET Overview”.
JAVA continues to be supported through a separate download. JAVA also supports JAVAPOS that provides APIs similar to POS for .NET and OPOS. JAVA enables POS applications developed for other platforms to work seamlessly on POSReady.
The information contained in this white paper represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This white paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT