[The following article is authored by one of the Windows Embedded MVPs (Most Valuable Professionals). Our MVPs have a heavy background in Embedded systems and are a great repository of information on Windows Embedded products. We’re providing this space on our team blog as a service to our readers by allowing MVPs to share some of their knowledge with the rest of the community.]
In my upcoming blog entries called “Component Tales” I am going to pick prominent components from the Windows Embedded component catalog to highlight some important facts. The first pick is a real interesting one: Microsoft Internet Explorer.
Love and Hate
It is remarkable that the selection of an Internet browser sometimes leads people right into religious discussions. But, in this post the focus is on functionality!
In a clean installation of Windows Embedded Standard 2009, Microsoft includes IE version 6.0 and 7.0. Note that if you are upgrading from a previous version of XPe that has IE6 to Standard 2009 you have the choice of staying with IE6 or upgrading to IE7 during the installation, but if you already have IE7 installed on your XPe system and upgrade then you will automatically get IE 7.0. If you need an earlier version of the browser but you have already upgraded to IE 7.0, because for example this version is your company standard, there are two was to achieve this: Either use XP Embedded with that IE6 version or build a Windows Embedded Standard image without IE7 and install the earlier browser version after running FBA using an installation package. The second approach might be the better approach, because it still guarantees that the newest patches and hot fixes are included in the image. The caveat here is that all the dependencies for IE6 need to be satisfied in the image you build.
While a lot of users like the good web site compatibility of IE, administrators fear the countless number of exploits lurking on the web. Therefore, it is a best practice to harden your image from a security perspective as described in one of my previous posts. Additionally IE security best practices as documented in TechNet apply for Windows Embedded Standard images, too. But, do not be afraid! With the help of the Embedded Enabling filter features there are more means to defend against security threats on a Windows Embedded Standard device than there are for desktop systems.
Footprint Monster, but Functionality Hero
Adding the Internet Explorer Technologies macro component does not result in lean image footprints. The dependencies pulled in by the IE macro add 292 components, requiring 165 MB of storage in an image.
This clearly shows that modern browsers should not be regarded as thin clients but as dynamic rich clients. The footprint penalty comes with a lot of valuable functionality, which in most projects is worth the cost. The macro pulls in a lot of functionality that would normally be present in an average embedded image, because other components also reference items, such as GDI+.
A very popular use case for IE on Embedded Standard is in kiosk or digital signage systems. Here IE can be used e.g. as a “custom” shell running in kiosk mode using a command such as:
"C:\Program Files\Internet Explorer\IExplore.exe -k http:\\www.wechsler-consulting.de"
In kiosk mode IE runs full-screen and cannot be closed easily (well, one can kill the process if you have administrative rights or use various hotkeys to do so, but the average kiosk user would not be doing that). Of course, for a more locked down solution you could create a custom component with IE as your shell and restrict user access through autologon, security templates or group policies.
A nice start page for IE, as well as other settings, can be pre-configured in Target Designer.
More IE settings are available via the standard dialogs after running through FBA or, in a more direct way, editing the registry.
Speaking of custom shells or applications, Internet Explorer can be leveraged as a very powerful application component, as well. Put a complete web browser into your shell or application!
This picture shows a C# application using the web browser control of Visual Studio 2008, which relies on IE in the background to render a given URL. Using this managed IE browser object it is quite easy to navigate the web from within a custom application. In fact, it is just a single line of code that needs to be added to the Visual Studio Windows Forms project template containing a browser control and a button.
A simple click on the “Go Home!” button, navigates directly to the Windows Embedded home page on MSDN. No magic! Powerful for developers, isn’t it?