文档章节

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
安装window下的redis,redis可视化管理工具(Redis Desktop Manager)安装,基础使用,实例化项目

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

saucxs
08/11
0
0
安装redis服务器 jedis分片存放数据到redis服务器

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

薄暮凉年
2015/08/07
0
0
(译)在ASP.NET Web API中使用Redis

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

jieqiuming
2014/05/01
0
0
Redis进阶实践之九 独立封装的RedisClient客户端工具类

Redis进阶实践之九 独立封装的RedisClient客户端工具类 一、引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己写了两个工具...

morpheusWB
09/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux使用ntfs-3g操作ntfs格式硬盘

Linux内核目前只支持对微软NTFS文件系统的读取。 NTFS-3G 是微软 NTFS 文件系统的一个开源实现,同时支持读和写。NTFS-3G 开发者使用 FUSE 文件系统来辅助开发,同时对可移植性有益。 安装 ...

linuxprobe16
42分钟前
1
0
kubeadm部署kubernetes集群

一、环境要求 这里使用RHEL7.5 master、etcd:192.168.10.101,主机名:master node1:192.168.10.103,主机名:node1 node2:192.168.10.104,主机名:node2 所有机子能基于主机名通信,编辑...

人在艹木中
今天
7
0
Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
16
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部