(此文章同時發表在本人微信公眾號“dotNET每日精華文章”,歡迎右邊二維碼來關注。)
題記:這篇文章只是一個如何提高開發效率的簡單指導和記錄,不會涉及具體的微信公眾號開發內容。
就我理解,微信作為半個移動互聯網入口,且已經在代替大量APP的趨勢下,進行微信公眾號開發是一個開發者必須面對的命運。那么.NET開發者如何高效的進行微信公眾號開發呢?從我有限的經驗來看,如下兩個方面是特別需要解決的。
1,SDK的選擇和使用
由於微信公眾平台的訪問接口龐大繁雜且基於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。
2,程序的調試(包括本地和遠程)
眾所周知,微信公眾號的運行機制決定了微信服務器必須訪問一個80端口的公網地址,這給程序調試帶來了一些障礙。不過使用相應工具並通過如下步驟還是很容易進行本地和遠程調試的:
2.1,開通“公眾平台測試帳號”
開通公眾號中的“開發者工具”的“公眾平台測試帳號”。在這個工具里面實際上模擬了真實公眾號的后台配置,具體配置的內容需要后續步驟來提供。
2.2,設置本地調試
所謂本地調試就是指讓“公眾平台測試帳號”可以訪問開發機器上跑的IISExpress,從而實現Visual Studio對代碼的Debug。實現本地調試的最簡單方法,當然是配置路由器DMZ(或者端口映射)+動態域名。如果使用的是光寬帶,那么自己的路由器一般是在電信運營商光貓(其集成了路由器)之后,端口映射就無效。這個時候只有借助於花生殼之類的工具來把本機端口映射為外網80端口。如果只是開發調試的話,個人免費版足夠了。
如下圖,就是把本地一個MVC項目的運行端口映射到花生殼免費子域名下的80端口。
有了這個外網地址之后,就可以填寫到“公眾平台測試帳號”中的“接口配置信息”的URL中。填寫的時候,如果遇到“提交失敗”,那么可以多試幾次,也可以把花生殼重啟一下看看。如下圖所示:
其中wechat是我的測試項目中用於和微信服務器交互的MVC Controller的名字。經過這樣的配置,就可以愉快的在本地調試微信公眾號應用了。
2.3,配置遠程調試
所謂遠程調試,就是當你把公眾號應用發布到公網服務器上的時候,通過配置Visual Studio的遠程調試功能,從而實現對生產服務器的Debug。
要配置遠程調試,我能想到的最便捷的方式就是把應用發布到Azure的App Service中,然后啟用遠程調試功能。如下圖所示:
要把VS附加到遠程應用上,最簡單的方式就是通過VS的Server Explorer中的Azure瀏覽器找到你的應用的節點,點擊右鍵來選擇“Attach Debugger”,如下圖所示:
當然這個時候,記得要把“公眾平台測試帳號”中的“接口配置信息”的URL改為Azure中的地址。如果公眾號應用是發布到虛擬機中,那么也可以通過安裝遠程調試插件來實現VS遠程調試,相關資料可以Bing一下。
另外,如果在團隊開發的情況下,建議每個人都獨立申請“公眾平台測試帳號”、花生殼端口映射和Azure帳號,各自使用自己的環境來調試,互不影響。