搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)
2015-04-13 17:45 刘晶 阅读(1317) 评论(0) 编辑 收藏 举报亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗?
那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构。
其中用的技术点保证 WCF,ajax ,json, 反射,ado.net 等等,如果你听不懂 我在说什么的话,还是对这些技术有些基本的了解吧!
经过这些天一直在研究 jquery 以及 WCF,现在公司有一个需求:
1. 前台直接通过 js 通过json格式,json 格式 其中包括方法名字传输 到后台,直接调用wcf,后台通过解析 方法名,
调用对应的方法。
2.技术难点: 如何 直接 通过 jS 调用后台的 WCF的服务。
如何通过方法名字,直接调用对应的方法。
3.框架的好处: 直接由服务端到前台,节省了很多的中间环节。大大减少的代码量。
同时服务端 可以轻松的跨平台。
4.开始分析架构:
首先 ,前台 需要传输的参数包括 数据库的名字(database),方法名(method),方法的参数(parms) ,然后通过json格式传输到 后台。
然后 后台 通过 将方法的参数进行封装,查找对应的方法。
接下来开始我们的第一天的编程吧:
首先我们要新建一个web 项目 ,名字为Client, 这是是客户端, 待会我们直接由 客户端直接访问 服务端
然后建立一个类库,名字为Server,如下图:
接下来,我们在 client 下来建立一个 Ajax 的wcf服务,名字为webService
using System.ServiceModel;
using System.ServiceModel.Web;
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.ServiceModel; using System.ServiceModel.Web; namespace Server { public class webService:IService { public string select(string database, string method, string sql) { object[] obj=new object[2]; obj[0]=database; obj[1]=sql; DataTable dt=(DataTable)Common.Execute("Server", "DataBase",method,obj); return Common.DataTableToJson("data",dt); } } [ServiceContract] public interface IService { [OperationContract] [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] string select(string database, string method,string sql); } }
解释说明: 1.接口IService表示我们WCF调用的 契约(大家共同遵守的规则), 也就是WCF配置的 contract
2. [ServiceContract] 表示这个 接口能够被 wcf 调用到
3. [OperationContract] 表示这个方法能被wcf 调用到
4. [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
WebInvoke 表示能够 post 得到, ResponseFormat 表示请求发送的 格式 为json
BodyStyle 表示形式,说明 只在请求的时候使用 json ,响应的时候不使用json
5.里面调用的方法,都可以在下面的 下载源代码里面看到
到现在为止,你可以清楚的看到 后台的代码是怎么写的了吧!!!!
VS2012版本源码下载:
https://files.cnblogs.com/files/liujing379069296/Vs2012Client.rar
vs2010 源码下载
https://files.cnblogs.com/files/liujing379069296/VS2010Client.rar