C#開發(fā)微信門戶及應用(43)--微信各個項目模塊的定義和相互關系
我們在開發(fā)微信相關的應用的時候,一般需要完善的基礎模塊支持,包括微信公眾號,微信企業(yè)號,以及一些業(yè)務模塊的支持,一般隨著功能的增多,我們需要非常清晰的界定他們的關系。模塊的分拆以及合并往往需要考慮的代碼的重用,而且盡量做到簡單而不重復。本篇隨筆基于我的微信框架的各個模塊的功能介紹以及他們關系的描述。
1、公眾號模塊的命名及相關關系
微信開發(fā),我們首先需要利用我們的語言(這里是利用C#語言),為所有用到的API接口實現(xiàn)進一步的封裝,方便使用,微信API模塊包含的內容很多,大概可以分為下面的項目。
有了這些接口功能的封裝類,只是萬里長征的第一步,我們還需要圍繞這些接口,以及我們的業(yè)務模塊實現(xiàn)更多交互功能的。
我們在WHC.Weixin.Data模塊里面,定義了包含公眾號的消息分派處理接口,這個分派接口是對接收來自微信服務器的各種消息事件進行響應;另外該模塊還包含一些常規(guī)的數(shù)據(jù)存儲,如關注用戶、菜單、文章內容等方面數(shù)據(jù)的存儲,如下所示。
當然,這個WHC.Weixin.Data是集大成者,它需要使用WHC.Weixin.API的項目內容來做數(shù)據(jù)提交,同時也是需要使用內部的數(shù)據(jù)存儲處理模塊。
?
2、企業(yè)號模塊的命名及相關關系
企業(yè)號的做法和公眾號類似,也是需要對微信提供的各種API進行封裝,方便我們后面的接口調用,不過企業(yè)號目前支持的功能相對公眾號少一些,大概包括有基礎接口、企業(yè)號應用接口、菜單管理、通訊錄管理、消息管理、搖一搖周邊等模塊。隨著企業(yè)號功能的逐步完善和加入,可能騰訊會加入更多的一些功能模塊。
?
同樣我們參考微信公眾號的做法,也是建立一個數(shù)據(jù)存儲管理的項目,作為微信消息事件的處理入口,同時也管理存儲一些必須的數(shù)據(jù),包括需要同步的用戶、標簽、部門等數(shù)據(jù)。
隨著微信公眾號和企業(yè)號的功能逐漸統(tǒng)一,很多接口的交互數(shù)據(jù)幾乎是一樣的,因此我們可以把公用的實體類部分作為一個獨立的項目,方便公眾號和企業(yè)號兩個項目的共同使用,這個項目命名為WHC.Common.Entity。
它們幾個項目關系如下所示。
項目目錄如下所示,包括了基礎模塊、搖一搖紅包、菜單及多媒體管理模塊、消息請求模塊、消息應答模塊、搖一搖周邊、微信支付等。
由于微信支付的接口實現(xiàn),是在企業(yè)號和公眾號相對比較獨立的一個API接口群,因此我們可以微信支付部分獨立作為一個接口實現(xiàn)來處理,公眾號或者企業(yè)號需要的時候,包含進去使用即可。
我們把它命名為WHC.Common.API項目。
還有我在前面隨筆《C#開發(fā)微信門戶及應用(42)--使用Autofac實現(xiàn)微信接口處理的控制反轉處理》里面介紹過的基于對外部接口和二維碼掃碼處理接口的封裝項目,命名為WHC.Common.Handler。
整個插件業(yè)務接口包括:百度的地理位置解析接口、電影院信息查詢、天氣信息查詢、交通信息查詢、旅游信息查詢等,還有短信、郵件發(fā)送等常規(guī)接口,都可以使用這種方式進行處理。接口的效果展示如下所示。
因此上面這些以WHC.Common命名的項目,基本上就是可以通用在公眾號和企業(yè)號兩邊的項目模塊了,它們包含前面介紹過的幾個模塊,如下所示。
當然,除了這些之外,我們做項目,一般還涉及到一些基礎功能模塊,如公用類庫,以及附件管理、通訊錄管理、權限管理模塊等內容,我們可以把后者幾個模塊放在一起,組成基礎模塊。
?
?
3、微信界面項目
微信界面部分是前面模塊組件的綜合使用,在微信應用里面,一般需要使用80端口和微信服務器做交互,而這個同時往往也是我們項目的端口地址。?
如果考慮的更好一些,我們可以采用以Web API優(yōu)先的理念來設計整個企業(yè)應用體系的。Web API作為整個紐帶的核心,在整個核心層需要考慮到統(tǒng)一性、穩(wěn)定性、以及安全性等方面因素。
?
這樣我們不管是Web項目、Winform項目,還是移動項目,都可以通過共同的接口Web API進行接入,實現(xiàn)更多元化的后臺管理或者是前端界面呈現(xiàn)了。
Web API層作為一個公共的接口層,我們就很好保證了各個界面應用層的數(shù)據(jù)一致性,如果考慮到響應式的集成處理,我們甚至可以把微信應用、APP應用、Web應用做層一套Web程序,即使為了利用各自應用的特殊性,也可以把這些應用做的很相似,這樣就給用戶提供了一個統(tǒng)一的界面表示方式,極大提高客戶使用的界面體驗效果,用戶幾乎不需要額外的界面學習,就可以熟悉整個應用體系的各個模塊使用。
這樣最終就回到了我前面隨筆介紹過的《Web API應用架構設計分析(1)》、《Web API應用架構設計分析(2)》大平臺方案了,目前我正在努力整合所有微信的接口和相關的應用在一個大的Web API平臺上,逐漸整合我目前應用較為廣泛的混合式開發(fā)框架的相關技術和理念。
這樣全面構建的Web API作為核心層,可以在上面開發(fā)我們各種企業(yè)業(yè)務應用,實現(xiàn)我們一個大平臺的整合和多元化的應用,甚至我們可以把部分模塊外包給更加擅長的團隊,我們只需要確保我們核心的Web API層安全、健壯且具有良好的擴展性即可。
?
專注于Winform開發(fā)框架/混合式開發(fā)框架、Web開發(fā)框架、Bootstrap開發(fā)框架、微信門戶開發(fā)框架的研究及應用。
??轉載請注明出處:
撰寫人:伍華聰??
本文摘自 :https://blog.51cto.com/w