文档章节

ServiceStack 项目实例 003 建议的文件结构定义及服务类说明

丁川
 丁川
发布于 2016/10/02 11:50
字数 615
阅读 16
收藏 1

      在我们的SS项目中,建议的文件结构如下:

 

wKioL1SBRbyA2aI8AAG9asWSlg4505.jpg

 

   需要的最基本的文件包含三个文件,

   1 服务文件:其中包含有入口类、出口类定义和服务类的定义,入口类是HTTP 请求request时候使用的类,出口类是HTTP 相应中使用的类,服务类中会调用入口类和出口类,关于入口类出口类和服务类的说明见下文。

 

   2 实体类文件:定义数据库相关的实体类,在SS中,实体类既可用作入口类,也可作为出口类。

 

   3 数据访问类文件: 定义数据库操作的功能函数,这些功能函数会使用实体类文件中的类定义来映射数据库表,实体类文件中的类文件一般为DTO类,同时被服务文件和数据访问文件使用。

 

 

    服务类文件可以根据需要分解为多个,比如一个资讯管理系统包含有类别管理 文章管理 新闻管理 下载管理 专题管理 ,  就可以将这几个功能模块分别对应一个服务文件,

示例如下:

CategoryService.cs ArticleService.cs NewsService.cs DownloadService.cs SpecialService.cs

 

 

     入口类、出口类和实体类在对外服务中的用处。

 

     入口类是数据传入的接口类,出口类是数据输出的接口类,实体类既可以作为入口类也可以作为出口类。

     一般的应用情况是:

添加和修改数据时 入口类为实体类,封装传入的表单数据;
  出口类为简单类(POCO型),作为操作状态的返回信息,如是否操作成功
列表、显示一条信息时 入口类为简单类(POCO型),通常对于的是URL参数或这post的查询条件等
  出口类为实体类,用于传递数据到到页面,可附加虚拟字段,添加得到的记录条数、以及总计统计数值等
在删除操作中 入口类一般不用实体类,而是传入一个或一组ID来实现删除操作,也可以传入实体类来完成操作
  出口类通常为状态信息,如操作是否成功,也可无任何返回信息

  

 

   

PS : 项目比较复杂时 , 文件拆分的建议

 

wKioL1SBRfmhgi7MAAPGBbu6JiM133.jpg

本文转载自:http://soaop.blog.51cto.com/6164600/1586454

共有 人打赏支持
丁川
粉丝 4
博文 52
码字总数 4829
作品 0
南宁
程序员
ServiceStack 简单使用

提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛。首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Building Cro...

麦田守望者LEO
07/23
0
0
安装redis服务器 jedis分片存放数据到redis服务器

redis windows 下载地址:https://github.com/ServiceStack/redis-windows 一、下载的安装包解压到盘符的指定位置,如下结构:(纯手敲,如果有缺失,见谅) Redis.doc redis-benchmark.exe r...

薄暮凉年
2015/08/07
0
0
安装window下的redis,redis可视化管理工具(Redis Desktop Manager)安装,基础使用,实例化项目

以下包括内容: 一、redis下载安装,启动 二、Redis可视化管理工具(Redis Desktop Manager)安装 三、实例化项目 一、redis下载安装,启动 1,redis官方下载地址:https://redis.io/downlo...

saucxs
08/11
0
0
(译)在ASP.NET Web API中使用Redis

本文将介绍如何在ASP.NET Web API应用程序中使用Redis作为数据存储。利用ServiceStack.Redis库以及它强类型的Redis 客户端,实现如何建模和存储一对多的关系,以及使用Autofac的Web API依赖注...

jieqiuming
2014/05/01
0
0
3分钟wamp安装redis扩展超级简单

购买阿里云相关服务,这里可以领取优惠券, 有的产品5折优惠哟, 注意, 领取的优惠券30天内有效,尽快使用: 领取方式:进入链接后 页面下拉 一键领取全部 或者按需每次领取对应的优惠,领取链接...

兔子想飞
2015/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
39分钟前
1
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
0
0
890. Find and Replace Pattern - LeetCode

Question 890. Find and Replace Pattern Solution 题目大意:从字符串数组中找到类型匹配的如xyy,xxx 思路: 举例:words = ["abc","deq","mee","aqq","dkd","ccc"], pattern = "abb"abc ......

yysue
昨天
1
0
Linux | Redis

写在前面的话 常言道,不作笔记不读书。在下是深有体会啊,所以,跟我一起做下本节的笔记吧,或许多年以后,你一定会感谢今天的你。 安装 在官网的下载页 Redis Download 直接写了在Linux的安...

冯文议
昨天
2
0
NoSQL-memcached

NoSQL介绍 NoSQL叫非关系型数据库。而关系型数据库代表有MySQL。对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很...

ln97
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部