Windows Embedded 8.1 Industry released!

17 10 2013

I have to correct myself – Windows Embedded 8.1 Industry is released (nowadays called Global Availability – GA) at the same time as Windows 8.1!
Just check out Cuong Pham’s nice post on this.

This is the first time I can think of that this happened simultaneously, therefore they caught me nearly unprepared. 🙂 Well done!

Go check it out and make sure that you download the newest version of the Windows 8.1 ADK as well.
It helps you configuring WE 8.1 Industry images and the 8.1 ADK preview version did not open the newest WIM files correctly, which is fixed in the GA version.

And did I mention that my new course on Industry 8.1 was just released at Pluralsight… Sorry, I already did before. 🙂

Alexander





Hot off the press – New Windows Embedded 8.1 Industry Jumpstart course!

10 10 2013

Hi all,

I am very happy to announce the release of my newest online course over at my friends from Pluralsight:
http://pluralsight.com/training/Courses/TableOfContents/windows-embedded81-industry-jumpstart

It comes right in time for the release of Windows 8.1 (and yes, the embedded version will be out a bit later, as always). 

Similar to my WES 7 course, also available at Pluralsight, I have focused on only important features to get things done and also have included the creation of a Digital Signage device as a sample project.
This course has everything you need to get going with your first Windows Embedded 8.1 Industry project!

Therefore, no need to hesitate, go out and get a Pluralsight subscription, where you will get access to my course, all samples as well as outstanding courses from other authors as well.

Alexander





WE 8.1 Industry App Launcher – Enabling is not enough!

10 09 2013

If you want to use a Windows Store App on a WE 8.1 Industry system as custom shell, this can be achieved using App Launcher.
App-Launcher can be enabled as a Windows feature via Control Panel or using DISM:

Dism /online /Enable-Feature /FeatureName:ISKU-EmbeddedWin8AppLauncher

No – enabling is not enough – there is some more work to do. You need to configure the launcher via WMI and Powershell to specify a user or group for the new app shell. See more details in the online docs (link above) for this, the docs accompanying the preview are outdated!

There are two things to keep in mind. The user under which the app is going to run should not be an administrator and you need to add the following registry key:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "EmbeddedAppLauncher"="EmbeddedAppLauncher.exe"

If you do not do this, your system may hang during login for the user in question. To hide the start screen, set the kiosk mode property to 1 during configuration.

 

Alexander





Windows 8.1 ADK –Preview – System Image Manager (SIM) does not open 8.1 wim images!

20 08 2013

After spending nearly two days in trial and error I had to find out that there is a bug in SIM (ADK 8.1 Preview) that prohibits the opening of Windows 8.1 based WIM files.

Yes, I know, this is preview, but it still leaves me scratching my head, why this malfunction of such an essential feature in a tool has not been detected.

However, if you want to go on evaluating, the unattend.xml file can be manually edited in Notepad, instead or you could also do your settings with a Windows 8 based wim file (those can be opened) and then transfer the settings made into an 8.1 answer file.
Right, this will not give you any new configuration options,  but allows one to test 8.1 with the settings currently used in your OS builds.
Better than nothing, or?

Microsoft is aware of the issue and I am sure that it will be fixed when global availability (GA) for Windows 8.1 is reached (on October 18th 2013 – not too far out).

Btw., if you are new to System Image Manager – this tool has a crazy setup story:
The 32-Bit version, which is able to configure 32-Bit and 64-Bit Windows version installs only on a 32-Bit system, while the 64-Bit version automatically installs on a 64-Bit dev machine, which many developers most probably have.
64-Bit SIM is limited and opens only 64-Bit images. 

Why? I do not have a clue… I could live with a 32-Bit Tool that does it’s job right.
Well, maybe this is tradition. It’s like this since Vista! 🙂

Workaround:
Use Hyper-V, VMWare or Virtual Box to get a 32-Bit version running on your 64-Bit dev machine, if you need to configure Windows 32-Bit OS images, as well.

 

Update:

I finally had time for some tests. It is worse than I thought!

Answer files seem not to work at all with the 8.1 preview. Setup does not read the product key correctly and exits – not good.

There are fatal errors occurring when running Sysprep, as well.  This is due to a cleanup job running 60 minutes after installation. Therefore make sure to disable it using this command right after setting up an image:

Schtasks.exe /change /disable /tn "\Microsoft\Windows\AppxDeploymentClient\Pre-staged app cleanup"

Wow – Hope the final bits have these issues fixed!

 

Alexander





Check out my new Windows Embedded Standard 7 online course!

15 07 2013

 

logo-v2[1]

Just finished my new online course: “Introduction to Windows Embedded Standard 7” over at my friends at Pluralsight:

http://pluralsight.com/training/Courses/TableOfContents/windows-embedded-standard7-introduction

During the course you will learn how to create and configure a WES 7 kiosk system running a custom shell, with all write filters turned on to provide robustness and keyboard filter blocking all unwanted keys. Custom branding is also part of the configuration efforts.

But wait there is more!
I got carried away to do complete build automation on reference and target device, which leaves just the image capturing and deployment as a last, un-automated step.

Let me know how you like it!

 

Alexander





Be smart – don’t write an app for every device!

21 06 2013

Devices are the new thing and they come in a lot of different form factors, OSes and development frameworks.
You can try to target each of these devices individually with a dedicated application and yes, all the vendors try to tie you into their technology.

But – this is not smart. There is one technology that is able to help you out of the dilemma: HTML 5.

All you need on a device is an HTML 5 capable browser (and these are already there) to render an HTML 5 single page application and you are ready to go!
Deployment and change management are built-in!
No hassle with certifications, stores and, the best, no need for a paid developer account. Why should somebody else earn money with the work you do?

Shake off all constraints and visit our new “HTML 5 for .NET developers” course.

You will learn to combine your existing .NET and Visual Studio skills with the power and flexibility of web technology in the presentation layer. A strong ASP.NET MVC backend is the ideal backbone for new world applications.
This scales into the Cloud and I would be surprised to see requirements where this approach cannot be applied.
Even on embedded devices, this technology has a lot of benefits.

Would be a pleasure, if you visit us at Lake Ammer! 🙂
Do not wait for the fall and bad weather to come back.

 

Alexander





The dance of the squares – Microsoft SignalR

25 05 2013

Every know and then an exciting technology is unveiled that can change the game of software development.
In my eyes Microsoft SignalR is one of this kind. It provides real-time messaging infrastructure via an Internet endpoint. It is fast and runs on a variety of different platforms, browsers and operating systems.
I have done a short demo video showing SignalR’s potential using Damian Edward’s / Patrick D. Fletcher’s MoveShape demo deployed to a Windows Azure Website.
This approach has the advantage that message transport run-time is pretty realistic, which is not the case, when backend and clients run on the same development system (localhost).

For the demo I have collected a zoo of devices from friends and colleagues to show You the potential of the new technology on PC, IPad, MacBook Pro, Windows Phone 8 and Windows 8 Surface RT.

Btw., all devices in the demo connect via WiFi to the Internet, except Windows Phone 8, which uses it’s built-in UMTS connection to access the Azure SignalR hub.

SignalR can be used in a number of interesting ways (event router, RPC mechanism) and in contrast to a lot of other technologies in this area, it is pretty simple to implement.

 

Take a look and have fun!

Alexander





MVC WebAPI – Help, my Attributes do not work!

17 05 2013

When building applications for the “Internet of Things” MVC WebAPI is a great infrastructure for solutions on device as well as in the backend.

In nutshell, the trick trick is that controller endpoints, normally used by the Razor engine to request business logic for web pages, can be used as endpoints on the network remotely. these e.g. can be consumed by HTML 5 single page applications or services running on devices. This is a very interesting technology and quite an enabler.

I am currently working on a few new courses under the “HTML 5 for .NET developers” headline and ran into this interesting effect.

I created a controller to be my custom base controller:

using System.Web.Http; namespace MvcApplication1.Controllers {     public class CustomBaseController : ApiController    

{

         // Add logic here    

} }

It inherits from APIController to make it a WebAPI controller.

Next, I added a new controller in VS 2012 to inherit from:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcApplication1.Controllers {     public class MyController : CustomBaseController    

{         //         // GET: /GetSomeResult/

         [HttpGet]        

[ActionName("GetSomeResult")]        

public string SomeResult()

{

const string SomeResult = "Result";

return SomeResult;

         }   

} }

 

At my method, I used the ActionName attribute to change the outward facing name of the method for configuration of name and access type and – unfortunately – got a strange result.

When calling the service it came back with this error:

image

MVC Routes were set correctly, so I was a bit puzzled at first.

A bug? Not probable looking at this basic functionality.

After playing around for a while I have found the cause:

It is the System.Web.MVC reference in the controller that is causing this behavior. This is added automatically, if one chooses Add| New Item| MVC 4 Controller Class in VS 2012, as I did.

In System.Web.Mvc types for MVC method attributes are defined. The problem is that this is not the correct reference for a WebAPI Controller, but for a standard Razor MVC Controller!

WebAPI controllers need to use identically named attribute types in System.Web.Http!

Due to the fact that I did not inherit directly, but via my custom base class (CustomBaseController), from APIController, nor the compiler or IDE did find this type ambiguity and did complain.

As soon as you replace System.Web.Mvc with the System.Web.Http reference, all works fine.

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; namespace MvcApplication1.Controllers {     public class MyController : CustomBaseController

     {        

//

         // GET: /GetSomeResult/

         [HttpGet]

         [ActionName("GetSomeResult")]

         public string SomeResult()

         {

             const string SomeResult = "Result";

             return SomeResult;

         }

    } }

image

 

Alexander





MVP Award 2013 Windows Embedded

19 04 2013

 

MVP_Horizontal_FullColor

Very happy to announce that I was just rewarded with the Microsoft Most Valuable Professional Award 2013 in the Windows Embedded expertise area.

wlEmoticon-smile.png

Alexander





Cool Kinect use case – Marionettebot

15 02 2013

Just ran into a very cool use case rgarding the Kinect for Windows device:

Check it out!

Btw., there is a quite nice Kinect course running at Wechsler Consulting!

🙂

Alexander