通過五年半的持續維護,Senparc.Weixin SDK 逐步豐滿和完善,在升級的過程當中,咱們爲基礎庫(Senparc.Weixin.dll)加入了許多通用的功能,例如加密/解密算法、通用緩存方法等等,許多這些方法其實和微信沒有一對一的服務關係,而是具有了很是好的全局通用性。通過一系列的調研,也已經有許多開發者開始使用 Senparc.Weixin.dll 中的通用方法爲全系統服務,而不僅是用於開發微信。爲此,盛派團隊決定將 Senparc.Weixin.dll 中具有全系統通用性的功能分離出來,幫助你們提供一個更加完善高效的基礎通用模塊,並融入更多盛派還沒有開源的模塊和技術。與此同時, Senparc.Weixin.dll 中的方法也將更加集中地爲微信各模塊服務。但願你們繼續關注和支持這次計劃,關注並一塊兒建設好 CO2NET!盛派一直在你身邊!git
本次升級版本號爲 v5.0,對 Senparc.Weixin.dll 進行了大範圍的重構,將其與微信沒有直接關係的基礎方法(例如通用的加密/解密算法、通用緩存方法等),分離到 Senparc.CO2NET 項目,Senparc.Weixin SDK 將引用 Senparc.CO2NET 。github
CO2NET 項目也使用 Senparc.Weixin SDK 相同的 Apache License Version 2.0 協議開源,支持商用。所有代碼開放,並將逐步提供更加完善的配套工具以及全套單元測試。算法
關於移植的內容能夠直接查看 CO2NET 的源碼,在 Senparc.Weixin 中,移除代碼的處理有兩種方式:緩存
- 繼承 CO2NET 方法,並標註方法過時,例如:
/// <summary> /// 微信日期處理幫助類 /// </summary> [Obsolete("請使用 Senparc.CO2NET.Helpers.DateTimeHelper 類")] public class DateTimeHelper : CO2NET.Helpers.DateTimeHelper { }
- 刪除方法,請你們升級的時候直接使用 Senparc.CO2NET.xx 取代 Senparc.Weixin.xx 相關代碼,你們只要經過編譯查看到命名空間、類或方法不存在的狀況下,修改命名空間便可。
決定保留(標記過時)或刪除的原則是:若是過程簡單,且通常不涉及深度的調試,或封裝已經很是完善,則進行刪除(完全轉移),不然使用向下兼容的方式暫時保留,從此會逐步刪除。微信
本次升級還對部分 Senparc.Weixin.dll 中的類作了調整,具體以下:分佈式
- 緩存方面:
- 刪除 LocalObjectCacheStragety.cs (在 CO2NET 中已經提供)
- 刪除 ILocalContainerCacheStrategy 接口
- 對應 Senparc.Weixin.Cache.Redis 和 Senparc.Weixin.Cache.Memcached 模塊也對應作上述調整
- CacheStrategyFactory 重命名爲 ContainerCacheStrategyFactory
- Senparc.Weixin.dll 中的緩存更專一地服務於各種 Container(數據容器),CacheStrategyFactory.RegisterObjectCacheStrategy() 重命名爲 ContainerCacheStrategyFactory.RegisterContainerCacheStrategy()
- CacheStrategyFactory.GetObjectCacheStrategyInstance() 重命名爲 ContainerCacheStrategyFactory.GetObjectCacheStrategyInstance()
- 將 Senparc.Weixin.Cache.Redis.RedLock 項目 完整遷移到 Senparc.CO2NET.Cache.Redis.RedLock 項目
- Senparc.Weixin.Cache.Memcached 內 MemcachedServiceCollectionExtensions.AddSenparcMemcached() 改名爲 AddWeixinMemcached()
- Senparc.Weixin.Register.ChangeDefaultCacheNamespace() 遷移到 Senparc.CO2NET 對應位置
- 緩存實體修改再也不使用屬性通知,回到常規的手動 Get/Set 模式
- 若是現有系統使用分佈式緩存,升級到 v5.0,請先刪除原有 AccessToken 等緩存,緩存格式已經發生變化
- 其餘:
- .net framework 和 .net core 下的註冊過程有所改變,請參考Demo。
- Senparc.Weixin.EntityUtility 命名空間改成 Senparc.CO2NET.Utilities;
- Senparc.Weixin.XmlUtility 命名空間改成 Senparc.CO2NET.Utilities;
- using Senparc.Weixin.MP.Entities.GoogleMap 命名空間改成 using Senparc.CO2NET.Helpers.GoogleMap (BaiduMap同理)
PS:本文發佈時,CO2NET 還沒有正式發佈,Senprc.Weixin v5.0.0 也正在 Developer-CO2NET 中不斷更新,正式發佈後將會合併到 master 分支。歡迎關注!本文將會根據項目進展持續更新。最後更新時間:2018-8-11。工具