Support for Third-Party Applications on a Thin Client (Windows Embedded CE 6.0)

1/5/2010

A Windows Embedded CE powered thin client can support several types of third-party applications, depending on the capabilities of the enterprise network architecture. The following list shows some third-party applications that a Windows Embedded CE powered thin client can support:

  • Applications that run on a server that is running Terminal Services
  • Browser applications that use Web services
  • Client applications located on the thin client

Support for Terminal Services Applications

If users in a thin-client enterprise network will use server-side applications on a remote server that is running Terminal Services, your thin clients must support Terminal Services applications. Customers create these applications and IT administrators install them on the server that is running Terminal Services.

When a thin client supports Terminal Services applications, users can interact with server-side applications located on a server that is running Terminal Services.

By using Remote Desktop Protocol (RDP), a thin client connected to a server can display the graphical user interface (GUI) of the Terminal Services application on the local display screen. Additionally, all keystrokes and mouse clicks generated by the user are transmitted to the server-side application.

The following list shows the prerequisites for which you have to provide support for Terminal Services applications:

  • Design the application for use in a Terminal Services environment, where multiple users access the same server. Application considerations include reducing consumption of CPU, RAM, and drive resources, the ability to function independently of the shell or desktop, and reducing the memory-consuming graphics. For more information, see this Microsoft Web site and this Microsoft Web site.
  • The application must be installed on the server and available to remote clients by creating an application shortcut on the desktop or Start menu. You must configure the application for remote use.
  • The thin client that accesses the Terminal Services application must include the Windows Embedded CE Terminal Services Client (CETSC). CETSC supports the interface for Terminal Services and RDP. This enables a thin client to connect to a server that is running Terminal Services. By default, CETSC is included when the RDP Catalog item (SYSGEN_RDP) is included in an operating system (OS) design.
  • The thin client must have file storage redirection enabled if the user will use the server-side application to create and save files on a redirected drive. For more information, see Filtered File Storage Redirection.

For more information about Terminal Services, see Thin Client and Terminal Services.

Ee480560.collapse(en-US,WinEmbedded.60).gifServer-Side Applications Based on the .NET Framework

A thin client user can interact with a server-side application that is based on the .NET Framework. You should understand that .NET Framework applications use Code Access Security (CAS) permissions to determine whether the code is trusted in different security zones. This affects whether the thin client user can successfully run the .NET Framework application remotely from a network share. If you configure either the application or the security zone incorrectly, a SecurityException will be thrown if a user tries to run the .NET Framework application.

When a user on the server runs the .NET Framework application, the application is running in the MyComputer zone. The MyComputer zone is fully trusted. However, the security zone is different when the same .NET Framework application is running remotely from a thin client that is running Terminal Services. In this case, it is running in the LocalIntranet zone, and the application throws a SecurityException.

To enable .NET server-side applications to run on a thin client that is using Terminal Services, an IT administrator must do one of the following:

  • Give all the assemblies in the application a strong name and modify the security policy to trust this strong name fully. For information about how to use the Strong Name tool, see this Microsoft Web site. For information about how to modify security policy by using the .NET Framework Configuration tool, see this Microsoft Web site.
    —OR—

  • Assign full trust to the network drive on which the .NET Framework application is located by assigning CAS permissions to the network drive. You can also assign full trust to an .exe file on the drive. To do this, you can use the Code Access Security Policy tool (Caspol.exe) in the .NET Framework. The following command example shows you how to assign full trust to a network share:

    CasPol.exe -pp off -m -ag 1.2 -url file://server/share/* FullTrust
    

    Important

    If you increase the trust level for a network share, any application put on that network share will be able to run unchecked on a workstation.

    For more information about the Code Access Security Policy tool, see this Microsoft Web site.

Support for Browser Applications

If users in a thin-client enterprise network will use browser applications, your thin clients must support Internet Explorer 6 technologies.

A thin-client user can use Internet Explorer 6 to access and interact with a browser application. A browser application is hosted on a remote Web server and uses technologies such as AJAX, ASP, and XML. Asynchronous JavaScript and XML (AJAX) is a technology that uses DHTML, JScript, XML, XSL, IXMLHTTPRequest, and ActiveX to create a user interface (UI) that is dynamic and responsive on the Web client without continually sending and retrieving data from a Web server.

After a browser application is downloaded to Internet Explorer 6, the scripts and Web controls in the application will execute locally on the thin client.

You can contact a third-party software developer to write browser applications for your enterprise. For example, developers can build browser applications that use AJAX in Microsoft Visual Studio 2005 by downloading the ASP.NET AJAX framework from MSDN.

For more information about how to develop browser applications for Internet Explorer 6 for Windows Embedded CE, see ASP Functionality in Windows Embedded CE, JScript Support in Windows Embedded CE, VBScript Support in Windows Embedded CE, and XML for Windows Embedded CE.

For more information about AJAX, see this Microsoft Web site.

To support AJAX applications on Internet Explorer 6 for Windows Embedded CE, the thin client OS design must also include the following Catalog items:

  • XML Core Services and Document Object Model (DOM) (SYSGEN_MSXML_DOM)
  • Internet Explorer HTML/DHTML API (SYSGEN_MSHTML)
  • Web Server (HTTPD) (SYSGEN_HTTPD)
  • JScript 5.6 (SYSGEN_IE_JSCRIPT)

To test a browser application by accessing it from a thin client, you must first connect the thin client to the Web server on which the browser application is hosted. For more information, see Getting Started with Testing a Thin Client.

Support for Client Applications

If users in a thin-client enterprise network will use one or more enterprise applications that execute directly on the thin client, the thin client should support client applications.

When a thin client supports client applications, users can run applications locally on the thin client without having to connect to a server. A client application can be either included in the run-time image, or installed on the thin client device after enterprise deployment.

If you want to deploy your thin clients that have one or more preinstalled applications, contact a third-party software developer to write the applications while you are designing your thin client OS. Then, add the applications to the OS design by using Platform Builder. The OS design is built into a run-time image and downloads onto the hardware for each thin client deployed in the enterprise.

For more information about how to add an application to your OS design, see Adding a Subproject to an OS Design.

Work with the third-party software developer to make sure that the application UI integrates well with the thin client shell and meets the memory requirements.

Ee480560.collapse(en-US,WinEmbedded.60).gifCreating a Client Application

Client applications that are designed for a Windows Embedded CE powered thin client can be based on a variety of programming frameworks. This includes Active Template Library (ATL) for CE 6.0, Component Object Model (COM), or .NET Framework 2.0. Your OS design should support the Catalog items necessary to support the types of applications that you want to include. See the Catalog items in CEBASE\Core OS\Applications and Services for more information.

Note

The Windows Thin Client OS design does not support applications that are based on Microsoft Foundation Classes (MFC). Make sure that third-party software developers do not create a project in Visual Studio based on the MFC project template.

You can generate a thin-client software development kit (SDK) for your third-party software developers. Then, software developers can write an application targeting a thin client by using Visual Studio 2005.

For more information about software development, see SDK Development, Developing an Application, and Applications and Services.

To enable software developers to test and debug client applications, you can distribute standard development boards to your software developers. Standard development boards include the microprocessor and hardware components for your thin client, together with a board support package (BSP) for the Windows Thin Client OS design. Developers can assemble the standard development boards and connect them to their desktop computers by using a cable. Then, developers can build and download applications from Visual Studio 2005 to the standard development board for testing and debugging.

For more information about standard development boards, see Standard Development Board Design.

Creating a Client Application That Uses Web Services

You can create an application for a thin client that consumes Web services.

The following list shows how a platform developer can create an application that consumes Web services on a thin client:

  1. Create a specification for an application that uses Web services. Define the type of XML Web service you want to create and the types of services it will publish to the thin client user.
  2. Create an OS design that includes the modules and components that are required for implementing Web services on a thin client.
    To support Web services, the thin client OS design must include the following Catalog items:
    • Active Template Library (ATL) (SYSGEN_ATL)
    • COM (SYSGEN_OLE)
    • Web Server (HTTPD) (SYSGEN_HTTPD)
    • XML Core Services and Document Object Model (DOM) (SYSGEN_MSXML_DOM)
    • Internet Explorer HTML/DHTML API (SYSGEN_MSHTML)
    • SOAP Toolkit (SYSGEN_SOAPTK_SERVER, SYSGEN_SOAPTK_CLIENT, and SYSGEN_MSMQ_SRMP)
  3. After you create an OS design, you can build a run-time image. For more information, see Building a Run-Time Image for a Target Device.
  4. Build the XML Web service and add it to the run-time image.
    1. Create your ATL/COM object in Visual Studio 2005 . This object represents the core XML Web Service and targets a Windows Embedded CE powered device.
    2. Generate Web Services Description Language (WSDL) and Web Services Meta Language (WSML) files that use the CEWSDLGen utility. For more information, see SOAP Application Development and SOAP Samples.
    3. Add the ATL/COM object and the WSDL/WSML files to the run-time image. You can do this either by uploading them to the run-time image on the standard development board or CEPC, or by including the files in the built run-time image before you download it to the standard development board or CEPC. For more information, see Adding a Subproject to an OS Design.
  5. Build a C# application that will consume the XML Web service. The C# programming language is available in the .NET Compact Framework. The .NET Compact Framework is a subset of the .NET Framework that lets you run managed code on resource-constrained devices such as thin clients. For more information, see this Microsoft Web and .NET Compact Framework.
  6. To test the C# application, you must download it to the target device that is either a standard development board or CEPC. First, you must establish a connection between Visual Studio 2005 and the target device. For more information, see this Microsoft Web site.
    Or, you can add the C# application to a run-time image by including it in the OS design before you build a run-time image. Then, you can download the run-time image to the target device. For more information, see Adding a Subproject to an OS Design and Downloading a Run-Time Image to a CEPC.
  7. Test the XML Web service by connecting the standard development board or CEPC to a Web server. Then, try interacting with the C# application on the thin client. For more information, see Getting Started with Testing a Thin Client.

Installing the Application

To install a client application on thin clients already deployed in the enterprise, you can distribute a CAB file.

Installing the Application by Using a .cab File

You can create an application installation package by using a CAB file. The .cab file must include both the application executable file and an information (.inf) file. The .inf file includes a set of key-value pairs that provide information about the configuration of the .cab file contents.

The .cab file can be created on a desktop computer and then copied onto storage media, such as a USB storage device or a compact flash (CF) card. Then, the storage media can be inserted into each thin client in order to perform an application installation for each device.

To enable a .cab file installation, make sure that you include SYSGEN_WCELOAD in the OS design.

You should apply a digital signature to a .cab file to provide an additional level of security when you install the package on a thin client device.

You can create a shortcut to the application executable after it is installed on the thin client desktop. For more information, see this Microsoft Web site.

For more information about .cab files, see Cabinet (.cab) File Overview, CAB Wizard, Information File, and .cab File Signing Requirements.

See Also

Concepts

Configuring a Thin Client
Thin Client Overview
Configuring Application Startup Behavior in Thin Client