our swiss φθηνα ρολογια are all in now.
Finally my Azure SB Lite library is online on Nuget but ... it was a long story :-)
The last month, I decided to put this library on Nuget for all people that don't like to compile source code from CodePlex and want to use it immediately. When I tried to upload the package, I received the "package id alredy used" error ! What ? Why ? Who ? Is there another library with same name ?
After few minutes I found that Sebastian Brandes (Microsoft Evangelist from Denmark) already uploaded it on Nuget in June (of course, he set me as "author") and it was downloaded by 45 people. I contacted him who explained me that the library was useful to his project (thanks!) and that the right place for all other people was on Nuget (for much friendly usage). Right ! However, we decided that I should be the owner of the package so after about one month (Sebastian was on vacation) and Nuget support ... today I re-uploaded the library !
I have to thank Sebastian for all his eff ...
Read the rest of entry »
Few days ago Microsoft was included in the ranking of the 10 most innovative companies of 2015 as part of the Internet of Things and this result can not be absolutely considered a case. Most likely, the main reasons that have enabled Microsoft to achieve this great result are two :
The announcement of an operating system like Windows 10 that is able to run on any kind of device, from embedded systems, smartphones, tablets, gaming consoles and finally to the PC;
The wide Microsoft Azure cloud services offer through which you can "accommodate" and analyze in real time the huge amount of data from the "things";
The Microsoft offer for the Internet of Things covers everything from embedded device (the "T") to the Cloud (the "I") failing to provide a solution under one "hat".
What are the available technologies ? How can we really "bring" our "things" in the Cloud and make them an integral part of the Internet of "Your" Things as it was renamed by Microsoft ...
Finally the new M2Mqtt 4.1 version is out !
In the last months, my library was under pressure thanks to my friends Olivier Vigliengo (from Adeneo) and Nicolas Besson (Microsoft MVP on Windows Embedded, from Adeneo). They used the MQTT client for their hobbistic projects and stressed it a lot !
After exchanging a lot of emails with log traces, I fixed some bugs and added some improvements to the library.
In this post we'll see a big difference on "string interning" mechanism between .Net Framework and .Net Micro Framework ...
Developing on all versions of the .Net Framework (full, compact and micro) I have always the portability problem and I avoid to use methods that are not available in one of three framework or using directives for precompilation.
It never happened a case where the method exists in all the frameworks but the parameters have a different meaning ... are even reversed !!
The method in question is the overload Regex.Split(String, String, RegexOptions) !
After about a month of work during my free time, it's finally time to release the new version of the M2Mqtt library (18.104.22.168) and the related GnatMQ broker (0.9.3.0 Beta) with the MQTT OASIS 3.1.1specification support (in addition to some bug fixes).
Who knows the MQTT protocol, used in the Internet of Things market, also knows that the reference project for it is Paho of the Eclipse Foundation.
In this large list, until a few days ago, an implementation in C# usable on .Net and WinRT platforms was missing . This gap was filled with my M2Mqtt project that is now officially under Paho umbrella for which I’m officially a committer !
It seems that I was on vacation (given the lack of posts on my blog) and it's the truth !
Despite the holiday, I continued the development of the M2Mqtt project and today I am pleased to release the new version 22.214.171.124 with WinRT support !!
I made some changes on networking layer (from Socket to StreamSocket), thread (from Thread to Task) and security but finally the first MQTT client for all .Net platforms today also works on tablets with Windows 8.1 and on smartphones with Windows Phone 8.1.
The new project, added in a Visual Studio 2013 solution, is a "portable class library" that I used and tested in a Universal App.
The same for the "brother" GnatMQ, now in version (Beta) 0.9.2.0, thanks to which we have an MQTT broker to run on tablet and smartphone with Windows 8.1 OS family.
Of course I updated the Nuget package by adding the assemblies for WinRT.
I hope I did something useful f ...
This time the M2Mqtt library has undergone some "important" changes in terms of new features and bug fixing. I have to admit that the improvements are mainly due to the people who use it and report me to add new features or bugs to fix. In addition to several issues reported on CodePlex, this time also Clemens Vasters, PM on Microsoft Azure, submitted some improvements to be applied in the context of SSL / TLS authentication. In fact, as already tweeted several weeks ago, Clemens used my library to run tests on the Reykjavik project (Device Gateway) presented at Build in 2014 and I can only be honored.
In this case, the improvement is closely related to the .Net Framework version, since it is the only version to support what has been added. In particular, the MqttClient class makes available other constructors which can provide the following callbacks :
RemoteCertificateValidationCallback : allows the user to execute further checks on the validation of the ...
The M2Mqtt library is now at 126.96.36.199 release with the new tracing feature in debugging mode.
The project has the new Trace class that exposes the static member TraceListener declared as the following delegate :
1: // delegate for writing trace
2: public delegate void WriteTrace(string format, params object args);
In this way, it is possibile to chose our preferred tracing mode setting a method to this delegate. Furthermore, it is possibile to set the tracing level using thet static member TraceLevel with the following possible values :
1: /// <summary>
2: /// Tracing levels
3: /// </summary>
4: public enum TraceLevel
6: Error = 0x01,
7: Warning = 0x02,
8: Information = 0x04,
9: Verbose = 0x0F,
10: Frame = 0x10
A simple example of tracing usage could be the following :
1: Trace.TraceLevel = MqttUtility.TraceLevel.Verbose | MqttUtility.TraceLevel.Frame;
2: Trace.T ...
View this page in another language: