微信公众平台开发教程(九)微信公众平台通用开发框架

一、思考

开发了几个微信项目,一直在思考:
如何将微信相关的处理与业务系统联系在一起?
如何做到彼此分离,且易于扩展?
能否开发一套独立的微信服务框架,支持各种业务应用?

二、现有常用的服务框架

支持多种业务应用,我们通过分层的方式来实现。将复杂的系统进行分层,将一些功能或者特有的逻辑进行封装,封装为不同的基础服务或中间件。业务层无需关心底层具体实现,只需进行简单调用、组装,即可支撑强大的业务应用。这样保证了层级独立,也使得系统易于维护和扩展。在一个平台基础上,可以构建多种业务应用。就像建楼房,地基打好了,楼房样式可以多种多样。也好比做菜,各种食材准备好了,可以进行不同搭配组合,就能做出不同的美味。常用的框架结构:MVC、MVVM等。以下就是通常的MVC架构。

三、微信服务框架

但是微信公众平台与以往的项目有所不同。其实现不再基于计算机底层实现。从应用层面讲,需要对业务的上层,即显示层和前端逻辑层、通信层,进行封装,下面才是真正的业务系统。从整体考虑,系统通过设计通用微信服务框架,支持所有业务。微信服务框架的改动,只与微信接口的调整做相关。多个业务系统,公用一套微信服务框架。这里介绍一种实现架构,如有欠缺,欢迎批评指正。

1、由微信服务框架,负责与微信服务器进行交互,包括验证签名、消息处理、消息分发、安全策略、日志处理等。

2、通过服务接口,将微信服务框架与业务逻辑进行分离,通过服务注册,将业务服务注册到微信服务框架。

3、通过微信服务框架的服务分发器,调用具体的业务应用。

4、业务应用,可以全新开发,也可以在已有的业务逻辑基础上,封装相关服务,并提供对应Provider,对微信接口予以支持。

具体框架图如下所示:

四、未来信息系统实现的一些愚见

仅仅是个人的一些看法。

从一个业务系统长远发展来看,一套业务系统,UI端会很多。特别是移动互联网的发展,许多功能需要移动化,之前的PC端、Web端,已经有一点的局限。

还有云计算的发展和深入,我们的业务服务也可以部署在云端。这些都对传统的信息系统提出了挑战。

如何将业务系统与前端展现相分离?
如何支持多终端?
能否实现一套业务逻辑,多端展现?

无论是开发新系统新应用,还是在已有的系统上扩展,这些问题必须认真考虑。业务逻辑需要更加细化、更加独立,业务逻辑需要从前端抽取出来,为了适应各种终端应用,可能需要加入一些适配层、代理层。尽管难度很大,但是在这个信息化高速发展的时期,如果不顺应潮流,势必被时代所淘汰。所以,变革不可避免。未来信息系统开发框架可能会变为下图所示。这里只是一个简单提纲,以后会就这一点进行专题介绍。

微信公众平台开发教程(九)微信公众平台通用开发框架相关推荐

  1. 公众号第三方平台开发 - 教程五 代公众号发起网页授权源码

    教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 ...

  2. java微信公众号开发教程_微信公众平台开发教程(java版本含代码) 中文PDF版 3.13MB...

    本文档将对即将推出的微信公众帐号开发系列连载教程做简单的说明. 教程主要是面向有一定 Java 编程基础的朋友, 目录: 微信公众帐号开发教程第 1 篇-引言  2 微信公众帐号开发教程第 2 篇-微 ...

  3. 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo

     更多微信技术交流,请加QQ群:289709451.287090836     前几章中我讲解了微信开发平台提供第三方平台的好处,和使用流程,如果你看了我的文章相信你对开放平台有了初步的了解,但是在实 ...

  4. python微信公众号开发教程_python微信公众号开发简单流程实现

    本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下 网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总 ...

  5. 微信开放平台 公众号第三方平台开发 教程五 代公众号发起网页授权源码

     更多微信技术交流,请加QQ群:289709451.287090836    一.代公众号发起网页授权接口的SDK     已经更新了SG.Weixin.Open.SDK的代码,新增了代公众号发起网页 ...

  6. 微信公众账号开发教程之微信浏览器HTTP_USER_AGENT判断

    在微信公众平台的开发过程中,我们有时需要开发网页并判断是否是是来自微信浏览器访问,本文介绍如何做出这一判断. 一.$_SERVER数组 $_SERVER 是一个包含了诸如头信息(header).路径( ...

  7. 公众号开发教程:微信视频预览一半就要收费是怎么做的

    ①注册一个微人家微信营销系统的帐号,网址是www.weixrj.com ②绑定自己的微信公众号.(公众号类型需是认证过的服务号,因为涉及支付) ③进入微人家后台,更多应用里搜索"付费阅读V2 ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明

    Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明 原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明 上一篇&l ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能

    在Senparc.Weixin.dll v4.5.7版本开始,我们提供了Web代理功能,以方便在受限制的局域网内的应用可以顺利调用接口. 有关的修改都在Senparc.Weixin/Utilities ...

  10. Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制

    在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...

最新文章

  1. R语言使用timeROC包计算存在竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值、并可视化多个标记物在相同时间下的ROC值、多指标的ROC曲线(Time-dependent R
  2. Android10剪贴板,剪纸堆 Clip Stack - 轻量级剪贴板管理程序(支持 Android 10)
  3. Django - - 进阶 - - 同源策略和跨域解决方案
  4. 一个jsp内嵌一个jsp
  5. 常考数据结构和算法:设计LRU缓存结构
  6. 【Android】3.0 第3章 百度地图及其应用--预备知识
  7. 微信小程序开发必看,《使用 .NET Core + DevOps 开发微信跨平台应用》,苏州.NET俱乐部课程分享...
  8. Linux 命令之 tree -- 以树状图列出目录的内容/查看目录内容
  9. C++设计模式-职责链模式
  10. Elasticsearch -- Java High Level REST Client (RestHighLevelClient) 使用说明文档
  11. 单镜头反光相机是什么
  12. Mysql中contact、group_concat、concat_ws、repeat
  13. flutter自定义View(CustomPainter) 之 canvas的方法总结
  14. 【python与excel】
  15. Flask开发微电影网站(一)
  16. 前端开发工程师css样式进阶指南
  17. Sublime Text 3.0版本的傻瓜式汉化步骤
  18. java基础之—TreeSet集合学习笔记
  19. php基础(7)_运算符
  20. MATLAB语言入门的第一步

热门文章

  1. ISA2006实战系列之三:防火墙策略部署深度分析(附图)
  2. 《javascript模式》 容易踩中的那些坑
  3. XShell 技巧分享
  4. AVL树入门(转载)
  5. ubuntu下编译php扩展的时候报缺少pcre解决办法
  6. Javascript的原型链、instanceof与typeof
  7. JSTL fmt:formatNumber 数字、货币格式化
  8. SHOI2008仙人掌图(tarjan+dp)
  9. 06-老马jQuery教程-jQuery高级
  10. Java中的Set集合接口实现插入对象不重复的原理