微信公众平台SDK.net版本(weixinSDK.net)

         微信最近比较热,但是目前公布的基于.net的微信SDK做的比较繁琐,本人打算实现一个轻量级,简单明了的SDK,真正的懒人思想,为懒人服务。

一、SDK要实现的目标

1.轻量级:这个概念比较热,相信大家都不想为了开发微信公众平台而去引用一大串的类,引用啥的,搞的项目异常臃肿。现在现有的SDK都犯了一个错误:就是把所有的数据交换的实体:包含微信服务器返回的xml数据,我们提交给微信服务器的json,xml数据都搞成强类型,这样做虽然开发者在写代码的时候能用.就可以访问到数据,但是这样做一个最大的弊端就是增大了SDK体量,不够简明,不够轻量级。而且维护起来很不不方便。对此:我提出了,使用.net的dynamic特性,就像你使用python,json一样,完全的不用任何强类型,SDK就会小很多,彻底实现轻量级这一目标。当然你会说,那这样的话,要手写,我要关心实体的property的拼写。所以说都各有利弊,主要看你自己觉得那种方式更适合你。


2.简单明了:SDK仅对官方API做适当包装,不过度包装,SDK布局和官方API文档保持一致,便于开发者查找。使开发者感觉在使用SDK时,可以方便快捷的找到。不至于向一些现有的SDK一样,让人摸不着他的设计思想。

微信公众平台开发者文档结构如下图:


其实,他主要是围绕用户、消息、公众号这三大块来的。

a.用户:用户管理和用户微信端公众号功能菜单展开,分别对应用户管理和自定义菜单。

b.消息:我们自己的服务器接受微信服务器post过来的消息(用户的消息是先提交到微信服务器,然后微信服务器在转发给我们的服务器),我们接收到消息,回复用户消息(还是一样,先提交到微信服务器,然后微信服务器在发送给用户),搞懂这一点很重要。我开发时,因为这个居然蠢到用session跟踪用户信息。

c.公众号:包括订阅号和服务号(现在又出企业号了),不同的号,调用API的权限不一样,这一点还需要开发者自己多多注意,也就是说,开发者虽然有了SDK,但不要完全不理会官方文档。自己帐号没有调用权限,非要说是SDK写的不好。


二、具体实现:

在博客园上发过一遍文章:

超级懒汉编写的基于.NET的微信SDK

  由于微信服务器Post给我们的是xml消息,返回的是json,而我们程序用的又是Dynamic,所以需要互转。这样就存在3种类型的format,这也是大量的框架定义实体类导致框架不够轻量级的的原因之所在。
  实现第一个目标,我主要用到了.net Framework4.0的Dynamic特性,和一个将xml字符串自动转换成Dynamic Object的DynamicXml.cs类,还有一个将json字符串自动转换成Dynamic Object的DynamicJson.cs类。苦苦寻觅,终于让我找到了我想要的。
1.以下是DynamicXml.cs类,文件头有原作者的版权信息。

</pre><p><pre name="code" class="csharp">/*--------------------------------------------------------------------------
 * https://www.captechconsulting.com/blog/kevin-haz
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值