經過五年半的持續維護,Senparc.Weixin SDK 逐步豐滿和完善,在升級的過程中,我們為基礎庫(Senparc.Weixin.dll)加入了許多通用的功能,例如加密/解密演算法、通用快取方法等等,許多這些方法其實和微信沒有一對一的服務關係,而是具備了非常好的全域性通用性。經過一系列的調研,也已經有許多開發者開始使用 Senparc.Weixin.dll 中的通用方法為全系統服務,而不只是用於開發微信。為此,盛派團隊決定將 Senparc.Weixin.dll 中具備全系統通用性的功能分離出來,幫助大家提供一個更加完善高效的基礎通用模組,並融入更多盛派尚未開源的模組和技術。與此同時, Senparc.Weixin.dll 中的方法也將更加集中地為微信各模組服務。希望大家繼續關注和支援此次計劃,關注並一起建設好 CO2NET!盛派一直在你身邊!
本次升級版本號為 v5.0,對 Senparc.Weixin.dll 進行了大範圍的重構,將其與微信沒有直接關係的基礎方法(例如通用的加密/解密演算法、通用快取方法等),分離到 Senparc.CO2NET 專案,Senparc.Weixin SDK 將引用 Senparc.CO2NET 。
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。