M2Mqtt library implements an MQTT client for all .Net Platform (.Net Framework, .Net Compact Framework and .Net Micro Framework) for M2M communication and Internet Of Things. It provides all main MQTT protocol features for publishing messages on topics and receiving messages from topics subscriptions. SSL/TLS support for encrypting communication and for server authentication is also available. Furthermore, it provides “will” message feature, clean session flag, a configurable “keep alive” period and it supports all three QoS Levels for messages delivery. This library exposes an event programming model for subscription/unsubuscription operation completion, for receiving messages feature and published messages (only for QoS Level 2). In the following paragraphs we will see the project structure available on CodePlex and the library architecture from a software design perspective. Finally, we will write few lines of code to learn using this library.