国内流行的开源.net微信公众平台SDK对比分析

一、引言

目前微信公众平台正如火如荼的进行中,微信虽然在海外市场不敌WhatsApp,但是已经俘获了国内绝大部分用户的心。作为国内最大的,超级"app",微信已算是成功问鼎了。公众帐号百花齐放,各自SDK层出不穷,但是单单.net平台/C#的SDK也就那么几个值得一提:Senparc.Weixin.MP(以下简称Senparc) 和WeixinSDK.net(以下简称WeixinSDK)。ps:为什么官方没有完整的.net/C#版本?谁知道可以告诉我下。
 
(1) Senparc.Weixin.MP    
Github: https://github.com/JeffreySu/WeiXinMPSDK (Fork:500+)
标语:微信公众平台SDK Senparc.Weixin for C#
达到1000+ commits,15个contributors,5个branches。

(同时由于易信的API目前与微信保持一致,此SDK也可以直接用于易信,如需使用易信的自定义菜单,通用接口改成易信的通讯地址即可)。已经支持用户会话上下文(解决服务器无法使用Session处理用户信息的问题)。

(2)WeixinSDK.net  
Github:  https://github.com/night-king/weixinSDK(Fork:30+)
标语:一个超级轻量级的,像Python一样自由书写代码的微信公众平台SDK(.net版本)
达到60+ commits,1个contributors,1个branches。

目前只针对微信公众平台开发者文档所有API进行包装也就是微信服务号和订阅号的开发,不支持微信企业号和移动端API。但是不排除企业号和移动端API共有部分的调用,对于这部分本SDK不保证其能调用成功。

 

 
 
从数据来看两者不在一个数量级上,从标语来看,Senparc更谦虚中庸一些,WeixinSDK显得激进许多,到底谁好谁坏,谁优谁劣,且听楼主慢慢道来。
 
二、设计思路
     Senparc的设计思路是大而全,功能完备且强大,所有用到的中间对象都用实体类的形式表达出来,所以显得重了些;
     WeixinSDK的设计思路是小而美,对代码有洁癖的程序员很容易为之着迷,基本上API涉及到的业务他都用Dynamic对象表示,所以显得一下子比Senparc轻了许多。轻量级,结构清晰,简单灵活。
     Senparc更像是集团军作战,有大量的用户和贡献者为其服务,所以迭代要快很多。所有微信官方API的功能他都包含了,所以成为了主流也不奇怪。而WeixinSDK像是单兵作战,当然不是一般的兵,用户少,迭代慢,目前还不支持企业号API(正在紧急筹划中,见官方论坛)。
 
三、开发者该如何选择
    一个大而全,一个小而美,我们开发者该如何选择呢?
    其实这个问题只有这两个都用过之后的人才有权利发表看法,我只能从表面上来说:
    如果你是一个保守的人,对Dynamic对象没有概念,入门级的程序员建议你选择Senparc,因为他更符合传统思维;
    如果你是一个激进的人,喜欢轻量级,喜欢用像python一样的弱类型语言编写程序,建议您不妨试试WeixinSDK。
    另外:WeixinSDK需要.net framework4.0版本,所以如果你的程序比这个低还不能用。

 

转载于:https://www.cnblogs.com/deepleo/p/weixinsdk-senparc.html

WeixinSDK.net使用帮助1.使用对象微信公众平台:http://mp.weixin.qq.com/wiki/home/index.htmlDeepleo.Weixin.SDKSDK源代码Deepleo.Web是一个asp.net mvc的demo2.核心思想运用Dynamic(.net 4.0以及以上版本支持)在程序中传递微信所需的结构化(xml,json)对象,减少大量代码,实现轻量级。 让您可以像Python一样书写代码。3.疑难问题1)API返回的Dynamic对象应该如何使用?答:如果您调用API,return的是 a.由DynamicJson.Parse转换而来,您可以用.[属性名称] 访问到该属性的值; 譬如 BasicAPI.cs中GetAccessToken: var token = DynamicJson.Parse(result.Content.ReadAsStringAsync().Result); 那么调用时:string newToken = BasicAPI.GetAccessToken(AppId, AppSecrect).access_token; b.如果是DynamicXml转换而来的,您可以用.[属性名称].Value 访问到该属性的值; 譬如 AcceptMessageAPI.cs中Parse: msg.Body = new DynamicXml(message); string msgType = msg.Body.MsgType.Value;2)遇到其他问题该如何解决?答:如果开发者遇到开发问题或者遇到SDK的bug,请到  a.官方QQ群:173564082   b.官方论坛:http://www.weixinsdk.net/  c.作者QQ:2586662969  d.作者微信号: deepleo (加好友注明weixinsdk)4.源代码唯一托管地址:https://github.com/night-king/weixinSDK5.Copyright and licenseCode and documentation copyright 2011-2015. Code released under the MIT license. Docs released under Creative Commons. 标签:微信sdk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值