We are to the last post of this tutorial that guides us through the creation of a proprietary component (using the M2Mqtt library as an example) for Platform Builder and its inclusion in the Windows Embedded Compact 2013. In this final post we will see how you can use this component in a sample managed application using also debugging.
SDK and Application Builder
When we build Windows Embedded Compact 2013 image that we have to provide to the software development team that will implement the high-level application for the target device, we must necessarily also make available its SDK. It contains all the header files and static libraries that developers can use to build applications in native code, avoiding the use of the APIs that we have not included in our image. Typically we would not need the SDK with managed applications based on .Net Compact Framework but unfortunately without any SDK installed, Visual Studio 2012 does not make available any templates for applications based on Windows Embedde ...
This is the fourth post of this tutorial that has as its object the development and use of a proprietary component into a Windows Embedded Compact in 2013 operating system image. In the first post, we saw how to sign an assembly compiled for the .Net Compact Framework 3.9 so you can register it into the GAC (Gloabal Assembly Cache) and to do so, we used the M2Mqtt library assembly. In the second post, we have developed a component that is visible in the Platform Builder catalog items and allows to easily include this library with all the settings required for the registration in the GAC. In the third post, we saw how you can deploy your component to any third party and how simple it is to include it in the OS image. At this point, the next step is to prepare the image with some debugging tools for the sample application in the last post.
The Core Connectivity framework
One of the main features of Windows Embedded Compact from the first releases is that you can debug managed applications (and not) de ...
In this post, I talked about a bug in the current release of Windows Embedded Compact 2013 to which the build system was no longer able to recognize the .Net Framework after the update from 4.5 to 4.5.1 version. In the same post I also described a possible workaround to be able to continue to use Platform Builder with no problems waiting for an official patch from Microsoft.
With the January 2014 update that you can download here ... the bug has been fixed!
If you have used my workaround, you should restore everything as it was before starting from the sources.ce file in C:\WINCE800\public\common\oak\misc (removing the variable _DOTNET40ROOT) and restore the system PATH variable.
After this recovery step ... perform the update and everything will work as always!
In the previous post we saw how to sign an assembly (my M2Mqtt library) to include it directly into the Windows Embedded Compact 2013 operating system image and register it into the GAC (Global Assembly Cache). During this post, we will see how it is possible to make a component for the Platform Builder catalog items through which include our library into the image in a very simple way.
How to create a component ? The available solutions
When we build an Windows Embedded Compact 2013 operating system image for a target device, there is often the need to add our custom component (an application, a library or any other type of file) to the image itself, without using the Platform Builder catalog items because this component is proprietary and it isn’t in the catalog itself.
Unfortunately, in many cases, the simplest solution but also less "elegant" is to copy the files to include in the folder of our OSDesign (operating system solution) and change the corresponding BIB file to set inclusion int ...
Today, preparing a Windows Embedded Compact 2013 image for an eBox 3310A and for the demo at Microsoft Embedded Conference in February 2014, the Windows 7 operating system (a virtual machine) decides to upgrade the version of .Net Framework from 4.5 to 4.5.1.
Reboot the system and resume the job ... but the build system for Visual Studio 2012 has gone mad and the next attempt to build fails!
A warning indicates that the .Net Framework 4.5 is not installed on the system and an obvious fatal error indicates that the compilation can not be done!
I have found no official news from Microsoft to fix this problem but I have circumvented the problem in the following way ....
First I open the file indicated by the fatal error, ie sources.ce in the path C: \ WINCE800 \ public \ common \ oak \ misc, which reports the error in case the environment variable _DOTNET40ROOT is empty.
!IF "$(_DOTNET40ROOT)" == ""
! ERROR Error: Microsoft.NET Framework v4.x must be installed on your machine. ...
Again, one of my posts on .NET Micro Framework is leading to Coding4Fun on Channel9 in the periodic Friday post on the projects based on the hardware.
This time it refers to experimental SDKs released by Secret Labs for support .Net Micro Framework, the Netduino board and the AGENT smartwatch in Visual Studio 2013.
As always it makes me happy!
The Secret Labs, makers of the famous series of Netduino boards and AGENT smartwatch based on .Net Micro Framework, could not wait for an official release by Microsoft and has decided to make available an experimental SDK for Visual Studio 2013 !
Chris Walker has disclosed the news on the official forum and explained that he had used the open source code of .NET Micro Framework to generate this SDK that will no longer be supported by the Secret Labs when Microsoft will release the official one.
Obviously, I have not been able to wait and after installing Visual Studio 2013 I downloaded the SDK to be able to try a simple application on my Netduino Plus board. In addition to the .NET Micro Framework SDK, it is also needed to download and install the Secret Labs SDK, also experimental for Visual Studio 2013.
SDK .Net Micro Framework 4.3 (RTM) and SDK Netduino boards
The SDK installer is related to the .NET Micro Framework 4.3 (RTM) version and it is perfectly identical to the official as well as throughout t ...
The Platform Builder build system is quite complicated but at the same time extremely powerful. In order to save valuable time during the compilation of our operating system image, it is necessary to know it in details so that we can avoid unnecessary operations. In addition, there are a number of "tricks" that allow us to make it much faster. Among these, there is the possibility to leverage the compilation on more "core" of our CPU, whereas all modern PCs have now from 2 "core" up.
The key of this possibility is the environment variable BUILD_MULTIPROCESSOR, whose meaning can be interpreted in the wrong way if you do not carefully read the documentation. Mistakenly, you might think that setting it to 0, the compilation on more "core" is disabled and vice versa activated by setting it to 1. It is not so!
Referring to the documentation on MSDN,, if you set the value to 0 you will let the system to automatically detect the number of "core" of the CPU and use all for the compilation by creating an appropriate ...
Today I have opened Visual Studio 2012 and I have clicked on "New Project" and magically have discovered that .... it freezes and does not show me the templates list!
The problem is typically due to the templates list which is "polluted" by all SDKs that we install. To solve it, I made sure that Visual Studio regenerate the templates cache, as follows:
- Open "Developer Comand Prompt for Visual Studio 2012" with administrator rights (found under "Visual Studio Tools");
- Run "devenv / setup";
- Wait about 10 minutes for the process to be completed;
When you restart Visual Studio ... everything worked again!
I finally got what I wanted to add some time to my Library M2Mqtt : support for the SSL / TLS protocol !
With this new feature , you can now connect to a MQTT broker also using SSL / TLS (for .NET Micro Framework only up to TLS1.0 ) to take advantage of its key features: data encryption and server authentication through an X509 certificate (client authentication is not supported) .
To leave free choice to the developer wanted to or not to include this feature in his project ,I tied everything to the compilation symbol "SSL" which must be defined to add such support. In this way, for some platforms with less memory (see Netduino or FEZ Cerberus in the case of .NET Micro Framework ), you can exclude it , remembering to remove all references to assemblies that run the SSL / TLS.
Of course , as well as on CodePlex, the update is also available on Nuget !
As soon as possible, I will write a new post in which I describe an example of using secure connection with an MQTT broker like Mosquitto !
Pages: Previous12NextReturn Top