提及.NET Gadgeteer,不得不先說一下.NET Micro Framework,雖然.NET Micro Framework已經有十幾年的發展歷史了,可是在全球範圍內,.NET Micro Framework的知名度,遠遠低於它的近親.NET Framework和.NET Compact Framework,其緣由值得探究。php
.NET Micro Framework僅從名字上理解,就是一個框架,和.NET Framework還有.NET Compact Framework應該沒有什麼大的不一樣,可是.NET Micro Framework有本身的特點,就是自啓動功能,也就是不須要操做系統也能運行。這個特點將.NET Micro Framework逐漸演化爲一個操做系統的角色。恰是這一點,在.NET Micro Framework早期發展過程當中,愈來愈顯得沒有優點和特點。程序員
早期的.NET Micro Framework並無直接對第三方開放,而是做爲微軟.NET全戰略的一環,以.NET Micro Framework爲基礎,推出一系列產品。目前比較火熱的可穿戴設備,好比智能手錶。其實.NET Micro Framework爲核心的第一代產品就是智能手錶,早在2003年的拉斯維加斯的Comdex貿易展上,比爾蓋茨就曾親自戴着智能手錶進行過推廣。這項以.NET Micro Framework爲核心發展起來的技術叫MSN Direct,除了手錶產品外,還有能夠預報天氣的咖啡壺,GPS導航器等產品。編程
以.NET Micro Framework爲核心的第二代產品是SideShow,曾以筆記本的第二屏、智能遙控器和智能鍵盤的面目出現,華碩、三星的筆記本就包含這樣的SideShow顯示屏。框架
可是不管是MSN Direct,仍是SideShow,其產品並不成功,這和微軟早期強制推廣.NET戰略相關的,由於基於.NET技術開發此類產品,雖然開發比較快,可是對硬件資源需求比較高,其.NET託管代碼相比原生C++代碼,速度要慢許多。因此此類產品一旦批量生產,性價比確定比較低。最初微軟也打算所有用.NET C#語言開發操做系統(好比Longhorn系統),後來事實證實這種作法是行不通的。ide
2009年起始微軟開始調整.NET Micro Framework發展戰略,首先以Apache 2.0 license的受權方式徹底開源.NET Micro Framework,並基於.NET Micro Framework推出第三代產品Netduino,微軟這個思路實際上是仿照Arduino產品而作的,從產品命名還有實際硬件接口上,都是學習Arduino。我我的認爲這個思路是對的,至少充分發揮了.NET Micro Framework優點,小巧,開發迅速,而且採用強大的Visual Studio進行程序開發和在線調試,讓全部的.NET程序員很容易進入到嵌入式領域進行相關開發,這不得不說在軟硬件開發結合愈來愈緊密的時代,對.NET程序員是一個福音。工具
而其後推出的基於.NET Micro Framework技術的.NET Gadgeteer產品更是充分發揮了.NET Micro Framework優點,在Netduino產品的基礎上,更上一層樓,青出於藍而勝於藍,徹底演化成具備微軟本身特點的產品。特別是微軟定義的20種.NET Gadgeteer接口類型,應該是微軟爲工控領域制訂OPC技術標準以來,最重要的一個接口標準。學習
更具特點的是硬件拖拉可視化編程。在DOS時代咱們開發一個界面程序,能夠說是摸着石頭過河,邊寫代碼,邊運行測試,以確認相關界面的位置是否合適。Windows平臺下最初的Visual Basic等可視化編程工具,讓咱們的界面開發帶入一個新時代,每一個功能模塊都被封裝爲一個控件,經過可視化拖拉的方式,設計界面,讓咱們的界面開發提高到一個新的水平。同理,咱們以軟件界面開發的眼光審視目前的硬件開發,其實發現,開發模式仍處在DOS時代,每外接一個功能模塊,都須要咱們的程序員匠心獨運,當心翼翼分配相關的Pin腳,並用心開發相關驅動,最終經過應用程序調用底層接口,進行數據交互。測試
而.NET Gadgeteer的開發環境,讓咱們拋棄了這些瑣碎和繁雜的步驟,視每一個外接模塊爲一個控件,經過拖拉方式,讓核心主板和這些模塊相連,自動完成接口初始化、模塊初始化等工做。留給咱們所作的,就是一些業務邏輯的實施和完善,這是硬件開發領域的面向對象編程,是一個具備里程碑意義的硬件開發變革。ui
有了這些特點.NET Gadgeteer已經和Netduino、Arduino等相關DIY產品不一樣,跳出了僅僅是學習硬件,電子產品小製做的範疇。再結合目前的發展的如火如荼的3D打印技術,.NET Gadgeteer已經成爲快速製做最終產品最好的選擇(特別是小批量、個性化產品)。在物聯網發展迅猛的今天,.NET Gadgeteer更是能夠大顯身手,能夠方便接入各類傳感器模塊,並把相關數據上傳到雲端。spa
【說明】以上內容摘自譯著《玩轉.NET Gadgeteer電子積木》上的譯者序,目前該書已經出版,詳情能夠單擊下面的連接:
http://www.yfiot.net/forum.php?mod=viewthread&tid=1977&extra=page%3D1