• 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)


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

    解释说明:  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 

  • 相关阅读:
    django 使用form组件提交数据之form表单提交
    django from验证组件
    django中间件
    gin中http重复解析body数据失败
    go 常用工具链
    git 提交规范
    go简单实现heap
    Go优雅实现选传参数
    [已解决]protoc-gen-go: unable to determine Go import path for "xxx.proto"
    Go编译工具命令
  • 原文地址:https://www.cnblogs.com/liujing379069296/p/4422787.html
Copyright © 2020-2023  润新知