亲们!还在用传统的三层架构吗?你还在对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

 
接下来我们来编写 服务层的操作,在服务端我们新建一个webService.cs的 类:(首先要引入

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[];
obj[]=database;
obj[]=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版本源码下载:

http://files.cnblogs.com/files/liujing379069296/Vs2012Client.rar

vs2010 源码下载

http://files.cnblogs.com/files/liujing379069296/VS2010Client.rar

最新文章

  1. ZOJ 3871 Convex Hull(计算几何、凸包)
  2. Python之路-(js正则表达式、前端页面的模板套用、Django基础)
  3. 【Effective Java】12、避免过度同步
  4. java.lang.ClassCastException: java.lang.String cannot be cast to com.jy.hfims.domain 映射实体类型错误
  5. 使用BroadcastReceiver实现系统对手机电量进行提示
  6. PDF2SWF转换只有一页的PDF文档,在FlexPaper不显示解决方法
  7. 【HAOI2009】【P1307】毛毛虫
  8. mvc:view-controller
  9. 金融系列14《QPBOC交易流程》
  10. Corner case
  11. FormsAuthentication登录ReturnUrl使用绝对路径
  12. Flask 模板系统
  13. Ubuntu 16.04下GDB调试
  14. 排序算法----冒泡排序java(写得绝对比其他博文易懂明了实用)
  15. Error: Invalid or corrupt jarfile
  16. 011-MAC 设置环境变量path的几种方法
  17. 在Linux下安装JDK图文解析
  18. SQLServer 学习笔记 序
  19. oracle下导出某用户所有表的方法
  20. ajax的一些小知识

热门文章

  1. grep在一个特定的文件搜索文件夹keyword
  2. leetcode:pascal's_triangle_II
  3. SQL优化策略高级优化经常使用-1(The Return Of The King)
  4. centos6.5 64位 openvpn安装配置(转)
  5. php脚本生成google play url的下载链接,下载apk并自动反编译后获取android版本号
  6. MyBatis与Spring设置callSettersOnNulls
  7. swift 笔记 (十九) —— 协议
  8. ZOJ 3623 Battle Ships 简单DP
  9. 024找到二维阵列(keep it up)
  10. ARP协议的基础知识