经过五年半的持续维护,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 中,移除代码的处理有两种方式:

  1.   继承 CO2NET 方法,并标注方法过期,例如:

        /// <summary>
    /// 微信日期处理帮助类
    /// </summary>
    [Obsolete("请使用 Senparc.CO2NET.Helpers.DateTimeHelper 类")]
    public class DateTimeHelper : CO2NET.Helpers.DateTimeHelper
    { }
  2.   删除方法,请大家升级的时候直接使用 Senparc.CO2NET.xx 取代 Senparc.Weixin.xx 相关代码,大家只要通过编译查看到命名空间、类或方法不存在的情况下,修改命名空间即可。

  决定保留(标记过期)或删除的原则是:如果过程简单,且一般不涉及深度的调试,或封装已经非常完善,则进行删除(彻底转移),否则使用向下兼容的方式暂时保留,今后会逐步删除。

 

  本次升级还对部分 Senparc.Weixin.dll 中的类做了调整,具体如下:

  1.  缓存方面:
    1. 删除 LocalObjectCacheStragety.cs (在 CO2NET 中已经提供)
    2. 删除 ILocalContainerCacheStrategy 接口
    3. 对应 Senparc.Weixin.Cache.Redis 和 Senparc.Weixin.Cache.Memcached 模块也对应做上述调整
    4. CacheStrategyFactory 重命名为 ContainerCacheStrategyFactory
    5. Senparc.Weixin.dll 中的缓存更专注地服务于各类 Container(数据容器),CacheStrategyFactory.RegisterObjectCacheStrategy() 重命名为 ContainerCacheStrategyFactory.RegisterContainerCacheStrategy()
    6. CacheStrategyFactory.GetObjectCacheStrategyInstance() 重命名为 ContainerCacheStrategyFactory.GetObjectCacheStrategyInstance()
    7. 将 Senparc.Weixin.Cache.Redis.RedLock 项目 完整迁移到 Senparc.CO2NET.Cache.Redis.RedLock 项目
    8. Senparc.Weixin.Cache.Memcached 内 MemcachedServiceCollectionExtensions.AddSenparcMemcached() 更名为 AddWeixinMemcached()
    9. Senparc.Weixin.Register.ChangeDefaultCacheNamespace() 迁移到 Senparc.CO2NET 对应位置
    10. 缓存实体修改不再使用属性通知,回到常规的手动 Get/Set 模式
    11. 如果现有系统使用分布式缓存,升级到 v5.0,请先删除原有 AccessToken 等缓存,缓存格式已经发生变化
  2.  其他:
    1. .net framework 和 .net core 下的注册过程有所改变,请参考Demo。
    2. Senparc.Weixin.EntityUtility 命名空间改为 Senparc.CO2NET.Utilities;
    3. Senparc.Weixin.XmlUtility 命名空间改为 Senparc.CO2NET.Utilities;
    4. 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。

Senparc.Weixin SDK v5.0 升级公告的更多相关文章

  1. 【重要更新】Senparc.Weixin SDK v6.5 升级说明(支持 .NET Core 3.0 及分布式消息上下文)

    Senparc.Weixin SDK v6.5 开始支持 .NET Core 3.0,并将微信消息上下文进行了大幅度的重构,支持了使用分布式缓存存储上下文信息,这意味着在分布式系统中,现在 Senpa ...

  2. [公告]Senparc.Weixin v4.7.0 升级说明(2016-08-08)

    本次升级包含了除QY以外所有的类库,升级内容包括: 1.重构Conatainer结构,删除 ItemCollection 属性,直接使用ContainerBag加入到缓存: 2.重构IContaine ...

  3. 【重要更新】Senparc.Weixin SDK v4.4 升级说明

    本次更新同时影响以下所有Senparc.Weixin相关版本的dll: Senparc.Weixin.dll 升级到 v4.4.2(重要) Senparc.Weixin.MP.dll 升级到 v13. ...

  4. Senparc.Weixin SDK 微信公众号 .NET 开发教程 索引

    Senparc.WeixinSDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享.也欢迎大 ...

  5. 【重要更新】Senparc.Weixin SDK v4.3.3升级说明

    为了更好地适应微信越来越快的API更新速度和越来越多的API数量,本次Senparc.Weixin.dll v4.3.3对一些通用功能进行了深度的重构. 本次更新同时影响以下所有Senparc.Wei ...

  6. 利用Senparc.Weixin SDK 实现微信用户的授权,并获取信息

    前一段时间在学校做过一个项目,就是利用的Senparc.Weixin SDK 做的,于是翻看以前代码,虽然有注释,但是还是看的迷迷糊糊的,干脆就单步执行一遍看看是怎么实现的,然后就重新写了个简易的授权 ...

  7. [公告][重要]Senparc.Weixin v4.9.0 & Senparc.Weixin.MP v14.3.104更新说明

    本次升级除了更新了发红包接口等接口之外,最重要的是重构了缓存模块. 如何升级? 之前的缓存是为Container设计的,原先的ContainerCacheStrategy继承自BaseCacheStr ...

  8. 如何使用Senparc.Weixin SDK 底层的Redis缓存并设置过期时间

    最近在微信第三方平台项目开发中,有一个需求,所有绑定的公众号的回复规则按照主公众号的关键词配置来处理,我的处理思路是获取主公众号配置的关键词回复规则,缓存10分钟,由于需要使用Redis缓存来存储一些 ...

  9. 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引

    Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...

随机推荐

  1. 复制粘贴插件(不包含 Flash)——clipboard.js

    clipboard.js是现代化的“复制到剪切板”插件.不包含 Flash.gzip 压缩后仅 3kb.不依赖 Flash 或其他臃肿的框架.API:https://clipboardjs.com c ...

  2. leedcode算法解题思路

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  3. (三)Bootstrap.jar

    catalina.bat 在最后启动了bootstrap.jar, 传递了start作为参数(如果多个参数的话,start在尾部). 然后org.apache.catalina.startup.Boo ...

  4. Jenkins+Gradle+Docker打docker镜像包上传至s3

    gradle打包跟maven打包的环境搭建有相似之处,可参考maven打包https://www.cnblogs.com/chenchen-tester/p/6408815.html 进入Jenkin ...

  5. 通过maven-assembly-plugin将Springboot项目打包成tar.gz压缩包,在Linux环境可执行脚本直接安装成系统服务

    1.在pom.xml中添加maven-assembly-plugin依赖,同时需将默认生成的spring-boot-maven-plugin依赖删除,否则最终打出的发行包启动会有问题 <plug ...

  6. Lonsdor K518ISE SCION 2011-2018 Models Enabled!

    Lonsdor released the Lonsdor K518ISE Key Programmer update announcement on 14-03-2019, saying it can ...

  7. 第一次面试经历(hr面)

    经过介绍,我有幸去到一家国际背景的广告公司面试前端开发实习生.收到的邮件是复试通知,看来我已经跳过了第一轮面试. 来到hr请我进了一个小间坐下里填求职书,里面有各种个人信息,有兴趣爱好,有工作经历,以 ...

  8. 笔记javascript

    // var demo1=12;// alert('点击确定按钮看结果'+demo1);// for(var i = 0; i<10;i++)// {//     document.write( ...

  9. vue的一些注意点

    每个 Vue 实例都会代理其 data 对象里所有的属性. 注意只有这些被代理的属性是响应的.如果在实例创建之后添加新的属性到实例上,它不会触发视图更新. 除了 data 属性,Vue实例暴露了一些有 ...

  10. Python 验证码识别-- tesserocr

    Python 验证码识别-- tesserocr tesserocr 是 Python 的一个 OCR 识别库 ,但其实是对 tesseract 做的一 层 Python API 封装,所以它的核心是 ...