五、利用EnterpriseFrameWork快速开发基于WebServices的接口
回《【开源】EnterpriseFrameWork框架系列文章索引》
EnterpriseFrameWork框架实例源代码下载: 实例下载
前面几章已完成EnterpriseFrameWork框架开发系统的三种模式,Web模式、Winform模式以及WCF模式,本章主要针对最后一种模式WebServices模式开发系统对外接口程序的过程;
说明一下为什么框架要把WebService的集成进来,主要还是利用WebService跨平台的优势用来开发外部系统的接口是非常方便的;不管第三方是java平台、还是c++系统都是统一的接口方式;另外如果我们系统功能全用Webservice模式来开发行不行,行肯定行但我觉得还是太麻烦了,让整个系统的维护部署都异常变扭;
还是用书籍的管理作实例,把对书籍的增、删、改、查功能封装成Webservice服务提供为其他系统调用;大家看下面开发过程中顺便带着个问题思考一下,就是框架中的这种开发Webservice的这种方式与net平时开发Webservice项目有什么区别?
本文要点:
1.Webservice版界面效果
2.Webservice接口开发步骤
3.代码文件调用关系图
4.常见问题汇总
1.我们先看一下实现后的Webservice接口效果,请注意红色框中的访问地址;
解决方案目录,其中红色部分为新增的文件
2.开发步骤:
1)新建Webservice服务,bookWebService.cs
2)把Books.dll部署到EFWWeb项目Bin目录中并启动
3)再浏览器地址中输入http://localhost/bookWebService.asmx
其中实体(Book.cs)、Dao(BookDao.cs)在前面已经实现,bookWebService里只要调用就行了;
bookWebService.cs文件
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web.Services;
using Books.Dao;
using Books.Entity;
using EFWCoreLib.CoreFrame.BusinessArchitecture; namespace Books.WebServices
{
[WebService]
public class bookWebService : AbstractService
{
[WebMethod(EnableSession = true)]
public void SaveBook(Book book)
{
//绑定数据库操作对象
book.BindDb(oleDb, GetUnityContainer());
//数据更新到数据库表中
book.save();
} [WebMethod(EnableSession = true)]
public DataTable SearchBook(string schar, int flag)
{
BookDao bdao = NewDao<BookDao>();
//调用Dao返回数据
DataTable dt = bdao.GetBooks(schar, flag);
return dt;
}
}
}
bookWebService对象必须继承框架中的AbstractService对象,还有就是类名和方法上必须加上自定义标签[WebService]和[WebMethod(EnableSession = true)],这两个标签本来就是是.NetFrameWork中WebService的标签;
至此开发工作已经完成了,后面就是编译调试与启动运行起来了;现在我们回顾一下最开始提出的一个问题,“框架中的这种开发Webservice的这种方式与net平时开发Webservice项目有什么区别?”,我们再看看Net一般怎么开发Webservice服务;
一般Webservice服务都是两个文件BookService.asmx和BookService.asmx.cs文件,我们不讨论这种方式内部技术实现等问题,只是两种文件这种方式在项目过程中非常不方便;
1)这种方式必须新增加至少一个WebService项目,而上面EnterpriseFrameWork框架中的bookWebService.cs可以和后台项目放一起,就跟普通的cs文件一样;这样另一个一个好处就是相同业务的代码可以放在一起,没必要建太多项目分散代码文件的连贯性;我就觉得一个系统的项目越少越好,至少相同业务的代码一定要放在一个项目中;
2)这种方式服务发布太麻烦了,必须先人工发布生成文件,然后拷贝部署到IIS中才能使用;而EnterpriseFrameWork框架中的Webservice完全没这么多步骤,编译生成dll文件,然后拷贝到IIS项目中的Bin目录就可以使用了;对我们这种小团队没有专门的版本管理人员,又要实现项目的快速迭代开发,这种方式能节约大量的工作;
本章暂不讨论这种Webservice方式的技术实现,后面的章节会详解讲解,敬请期待!
3.最后我们看下图,整理一下以上代码文件的调用关系
回《【开源】EnterpriseFrameWork框架系列文章索引》
EnterpriseFrameWork框架实例源代码下载: 实例下载
五、利用EnterpriseFrameWork快速开发基于WebServices的接口的更多相关文章
- 四、利用EnterpriseFrameWork快速开发基于WCF为中间件的三层结构系统
回<[开源]EnterpriseFrameWork框架系列文章索引> EnterpriseFrameWork框架实例源代码下载: 实例下载 本章内容与上一张<利用Enterprise ...
- 二、利用EnterpriseFrameWork快速开发Web系统(B/S)
EnterpriseFrameWork框架实例源代码下载: 实例下载 本章通过一个开发实例来讲解Web系统的开发经过,以及会碰到的一些问题.实例功能就是业务系统中最常见的增.删.改.查来演示,用一个界 ...
- 三、利用EnterpriseFrameWork快速开发Winform系统(C/S)
EnterpriseFrameWork框架实例源代码下载: 实例下载 上一章讲解了开发Web系统的详细步骤,以书籍的管理作实例实现对书籍的增.删.改.查功能,本章接着上面的实例继续补充用Winform ...
- 【DSP开发】利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程
[DSP开发]利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:前端是时间基于VS ...
- Atitit mybatis快速开发 的sql api接口
Atitit mybatis快速开发 的sql api接口 1.1. sql模式 开发速度大大快与 映射模式1 1.2. MyBatis Mapper1 1.2.1. 代码2 1.2.2. 原理2 1 ...
- 开发者如何利用工具快速开发出完美APP
文|移动互联网李建华 微信:ydhlwdyq 传统的个人开发者,要想开发出一个完美的APP要 经过以下几个过程:搭建开发环境,写代码,写统计系统,开发即将完成后,要购买服务器,然后把程序布置到服务器上 ...
- Hibernate学习笔记五:反向工程快速开发
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6768513.html 一:反向工程 Myeclipse提供由 数据库表 生成 java pojo 和 hib ...
- 开发者不可不知的五款DIY快速开发工具,你造吗
对于非专业的移动开发者,弱化编程能力的快发开发工具实用性够强,无需编程只要借助工具提供的各种功能模块,就能开发出属于自己的应用,而支持DIY更能使应用开发锦上添花,借助快速开发工具开发出属于自己的“能 ...
- 快速开发基于 HTML5 网络拓扑图应用
采用 HT 开发网络拓扑图非常容易,例如<入门手册>的第一个小例子麻雀虽小五脏俱全:http://www.hightopo.com/guide/guide/core/beginners/e ...
随机推荐
- 了解Session的本质
有一点我们必须承认,大多数web应用程序都离不开session的使用.这篇文章将会结合php以及http协议来分析如何建立一个安全的会话管理机制. AD: 有一点我们必须承认,大多数web应用程序都离 ...
- shell脚本进阶 详解及其实例(一)
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- MFC窗体程序中添加调试控制台
在编写复杂程序的过程中,我们经常需要将一些信息输出到文件或者屏幕上.较控制台应用程序,MFC窗体程序要显得麻烦一些! 下面有2种方法来实现为MFC窗体程序添加调试控制台,方便程序员调试程序和了解当前程 ...
- 【luogu P1558 色板游戏】 题解
题目链接:https://www.luogu.org/problemnew/show/P1558 我知道三十棵线段树很暴力,可是我们可以状压啊. 颜色最多30,不会爆int 另外 吐槽评测机 #inc ...
- Selenium自动化测试之数据驱动及用例管理
Selenium自动化测试之数据驱动及用例管理 一.TestNg注解介绍 @Test:表示一个测试方法,在运行测试用例过程中,会自动运行@Test注解的方法. 例:
- iOS利用block实现链式编程方法(Objective-C链式编程)
objc利用block实现链式编程方法 因为不好读.block和其他语言的匿名函数一样,很多程序员刚开始很难主动去用他. 本文描述block作为属性的实际使用,看懂block,并讲解如何利用block ...
- IE浏览器中找不到开发者工具
ie浏览器不知道什么原因开发者工具不见了.打开以后在任务栏中显示打开了控制台,但是看不到. 解决方法 : F12 打开开发者工具后,按下 “ Ctrl + P ”
- 偏前端 - 不是固定宽高,页面随设备同比 放大/缩小 展示。不妨看看rem单位,你就有眉目上手做了!!!
为什么要使用rem 之前有些适配做法,是通过js动态计算viewport的缩放值(initial-scale). 例如以屏幕320像素为基准,设置1,那屏幕375像素就是375/320=1.18以此类 ...
- laravel5.5源码笔记(五、Pipeline管道模式)
Pipeline管道模式,也有人叫它装饰模式.应该说管道是装饰模式的一个变种,虽然思想都是一样的,但这个是闭包的版本,实现方式与传统装饰模式也不太一样.在laravel的源码中算是一个比较核心的设计模 ...
- 从零开始一个http服务器(六)-多路复用和压力测试
从零开始一个http服务器(六)-多路复用和压力测试 代码地址 : https://github.com/flamedancer/cserver git checkout step6 运行: make ...