此文章同時發表在本人微信公衆號「dotNET每日精華文章」,歡迎右邊二維碼來關注。)html
題記:這篇文章只是一個如何提升開發效率的簡單指導和記錄,不會涉及具體的微信公衆號開發內容。瀏覽器
就我理解,微信做爲半個移動互聯網入口,且已經在代替大量APP的趨勢下,進行微信公衆號開發是一個開發者必須面對的命運。那麼.NET開發者如何高效的進行微信公衆號開發呢?從我有限的經驗來看,以下兩個方面是特別須要解決的。服務器
因爲微信公衆平臺的訪問接口龐大繁雜且基於HTTP API的,若是從底層開始寫每一行代碼就未免耗時費力。幸虧,基於.NET的SDK仍是有不少,好比以前個人文章《使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速開發部署微信後臺》中介紹的Rabbit WeixinSDK。最近在研究的Senparc.Weixin SDK更是一個強大和全面的開源SDK。已全面支持微信公衆號、微信支付、企業號、開放平臺、JSSDK、搖一搖周邊等模塊。這個SDK作了不少底層封裝,好比AccessToken的自動管理、用戶上下文的支持等等,讓開發者更加專一於業務邏輯的實現。更多信息能夠參考官網:http://weixin.senparc.com/。微信
要使用也很簡單,直接「Install-Package Senparc.Weixin.MP」,若是使用MVC開發的話,能夠再安裝「Senparc.Weixin.MP.MVC」。不過暫不支持ASP.NET Core。微信公衆平臺
衆所周知,微信公衆號的運行機制決定了微信服務器必須訪問一個80端口的公網地址,這給程序調試帶來了一些障礙。不過使用相應工具並經過以下步驟仍是很容易進行本地和遠程調試的:工具
開通公衆號中的「開發者工具」的「公衆平臺測試賬號」。在這個工具裏面實際上模擬了真實公衆號的後臺配置,具體配置的內容須要後續步驟來提供。測試
所謂本地調試就是指讓「公衆平臺測試賬號」能夠訪問開發機器上跑的IISExpress,從而實現Visual Studio對代碼的Debug。實現本地調試的最簡單方法,固然是配置路由器DMZ(或者端口映射)+動態域名。若是使用的是光寬帶,那麼本身的路由器通常是在電信運營商光貓(其集成了路由器)以後,端口映射就無效。這個時候只有藉助於花生殼之類的工具來把本機端口映射爲外網80端口。若是隻是開發調試的話,我的免費版足夠了。微信支付
以下圖,就是把本地一個MVC項目的運行端口映射到花生殼免費子域名下的80端口。插件
有了這個外網地址以後,就能夠填寫到「公衆平臺測試賬號」中的「接口配置信息」的URL中。填寫的時候,若是遇到「提交失敗」,那麼能夠多試幾回,也能夠把花生殼重啓一下看看。以下圖所示:3d
其中wechat是個人測試項目中用於和微信服務器交互的MVC Controller的名字。通過這樣的配置,就能夠愉快的在本地調試微信公衆號應用了。
所謂遠程調試,就是當你把公衆號應用發佈到公網服務器上的時候,經過配置Visual Studio的遠程調試功能,從而實現對生產服務器的Debug。
要配置遠程調試,我能想到的最便捷的方式就是把應用發佈到Azure的App Service中,而後啓用遠程調試功能。以下圖所示:
要把VS附加到遠程應用上,最簡單的方式就是經過VS的Server Explorer中的Azure瀏覽器找到你的應用的節點,點擊右鍵來選擇「Attach Debugger」,以下圖所示:
固然這個時候,記得要把「公衆平臺測試賬號」中的「接口配置信息」的URL改成Azure中的地址。若是公衆號應用是發佈到虛擬機中,那麼也能夠經過安裝遠程調試插件來實現VS遠程調試,相關資料能夠Bing一下。
另外,若是在團隊開發的狀況下,建議每一個人都獨立申請「公衆平臺測試賬號」、花生殼端口映射和Azure賬號,各自使用本身的環境來調試,互不影響。