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

搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)的更多相关文章

  1. 从头开始搭建一个dubbo+zookeeper平台

    本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用. 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后 ...

  2. 搭建一个dubbo+zookeeper平台

    本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用. 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后 ...

  3. 做一个项目前搭建一个tabBar(一)框架

    前言 通常做一个项目前,不算开始讨论需求,分析产品等等,一开始会给我们搭建一个框架,今天简单说一下搭建框架. github网址:https://github.com/Moonths/iWatch.gi ...

  4. SharePoint 2013 调用WCF服务简单示例

    内容比较简单,主要记录自己使用SharePoint 2013WCF服务遇到的小问题和小经验,分享给大家,希望能够给需要的人有所帮助.好吧,进入正题! 第一部分 SharePoint 2013调用自带W ...

  5. 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台

    面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...

  6. Dubbo入门—搭建一个最简单的Demo框架

    一.Dubbo背景和简介 1.电商系统的演进 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. a.单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一 ...

  7. Dubbo入门---搭建一个最简单的Demo框架(转)

    Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本.  ...

  8. Dubbo简介---搭建一个最简单的Demo框架

    Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本.  ...

  9. 教你如何用Nginx搭建一个安全的、快速的微服务架构

    今天我们要谈论微服务以及如何使用Nginx构建一个快速的.安全的网络系统.最后,我们将向您展示一个使用Fabric模式如何非常快速和轻松地构建一个微服务的demo. 在我们探讨Fabric模式之前,我 ...

随机推荐

  1. sqlite3触发器的使用

    研究了一下osx下dock中应用的存储,位于~/Library/Application Support/Dock/下一个比較名字比較长的db文件里,之前简单的介绍过osx launchpad图标的删除 ...

  2. 【Android基础】listview控件的使用(4)-----自定义布局的listview的使用

    前面我介绍了listview控件的不同用法,但是这些用法在实际的开发项目中是不足以满足需求的,因为前面的几种用法只能简单的显示文本信息,而且布局都比较单一,很难做出复杂的结果,在实际的开发项目中,90 ...

  3. UVa 514 Rails(经典栈)

     Rails  There is a famous railway station in PopPush City. Country there is incredibly hilly. The st ...

  4. 讲座:采用Store检查邮件(1)

    讲座:采用Store检查邮件(1) 一.邮件接收的体系结构 JavaMail API中定义了一个java.mail.Store类,用于运行邮件的接收任务,该类的实例对象封装了某种邮件接收协议的底层实施 ...

  5. LeetCode219:Contains Duplicate II

    Given an array of integers and an integer k, find out whether there there are two distinct indices i ...

  6. Linux在什么样的从脚本文件数据库sh格式改变sql格式

    在软件开发过程中,经常参与Linux从下一个脚本文件数据库sh格式改变sql格式问题.在本文中,一个实际的脚本文件,例如.描述格式转换过程.        1. sh文件内容 本文中的文件名称为exa ...

  7. POJ2352_Stars(段树/单点更新)

    解决报告 意甲冠军: 坐标.查找在数星星的左下角每颗星星. 思考: 横轴作为间隔,已知的输入是所述第一到y排序再次x次序.每次添加一个点来查询点x多少分离开坐标,然后更新点. #include < ...

  8. ffmpeg和opencv 播放视频文件和显示器

    ffmpeg它是基于最新版本,在官网下载http://ffmpeg.zeranoe.com/builds/.编译时VS2010配置相关头文件及库的路径就可以.opencv的搭建參考上一个博客. 首先简 ...

  9. 跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])

    跟我一起学extjs5(37--单个模块的设计[5取得模块列表数据])         写了几个月,总算有点盼头了,最终要从后台取得数据了.后台的spring mvc 和 service 仅仅能简单的 ...

  10. hadoop编程小技巧(7)---自己定义输出文件格式以及输出到不同文件夹

    代码測试环境:Hadoop2.4 应用场景:当须要定制输出数据格式时能够採用此技巧,包含定制输出数据的展现形式.输出路径.输出文件名称称等. Hadoop内置的输出文件格式有: 1)FileOutpu ...