今天看了个社区,了解了一下该产品的架构设计,做一下分享。

内容来源:http://www.jinhusns.com/Document/FrameworkDocument/?type=cc

一、 架构使用说明 > 引言 >


l   所有菜单用[…]->[…]表示,例如[设置]->[外观]表示菜单“设置”的子级菜单项“外观”。

l   所有按钮或超链接用“…”表示,如“确定”按钮。

l   注意事项用“注意:” 表示,给出一些容易忽略的但是在某个地方比较重要的因素,例如:

注意:

1.TabPanel的TargetID属性需要关联到某个<div>的id;

2.TabPanel的HeaderText属性指定标签页的头部文字;

3.可以设置TabPanel的Href属性,使Tab页的内容从另一个页面获取;

l   提示用“提示:”来表示:

提示:

  1. 1.         提示信息提示信息提示信息提示信息提示信息提示信息提示信息提示信息提示信息提示信息
  2. 2.         提示信息提示信息提示信息提示信息提示信息提示信息提示信息提示信息提示信息提示信息

l   警告用“警告:”来表示:

警告:

  1. 1.   警告信息警告信息警告信息警告信息警告信息警告信息警告信息警告信息;
  2. 2.         警告信息警告信息警告信息警告信息警告信息警告信息警告信息警告信息警告信息;

l   提示事项用“提示:…”表示,用于给出简明短小的建议或窍门。

l   提示事项用“警告:…”表示,用于提醒用户重视程序可能带来的潜在问题、不正确的结果以及要避免的错误。

l   类成员说明示例:

方法名称

成员修饰

说明

备注

Insert(TEntity entity) : void

public virtual

把实体entity添加到数据库

l   代码块表示为:

/// <summary>

/// 处理访客计数的任务

/// </summary>

public class UserVisitsTask : TaskBase

{

/// <summary>

/// TaskBase方法

/// </summary>

public override void ExecuteTask(XElement node)

{

UserVisits.SaveQueue();

}

……

}

二、 架构使用说明 > 整体说明 >


图表1分层设计说明

  1. 1.         各层职责:

职责

说明

表现层

负责向用户显示信息和处理用户指令。(这里的用户也可能是其他计算机系统,不一定是使用用户界面的人)

可能包括asp.net mvc、winform、移动客户端程序

应用层

定义软件要完成的任务,并且指挥领域层来解决问题。应用层要尽量简单,不包含业务规则或者知识,而只为领域层协调任务,分配工作,使它们互相协作。

一般包括Web Service、WCF、REST。

在我们目前的架构中应用层占的比重非常小,通常可以忽略。

领域层

负责表达业务概念,业务状态信息以及业务规则。尽管具体存取业务状态技术细节由基础设施层实现的,但是反映业务情况的状态是由本层控制和使用的。

领域层是业务软件的核心,一般包括:实体、值对象、领域层Service。

基础设施层

为以上各层提供通用的技术能力:为应用层传递消息,为领域层提供持久化机制,为用户界面提供呈现控件等。

  1. 2.         从上向下,层中元素仅依赖本层或其下层的元素,而不能依赖上层。
  2. 3.         各层在产品中的对应:

1)         基础设施层对应于Tunynet.Platform中的Infrastructure、MvcExtensions;

2)         领域层主要存在于Tunynet.Platform中的BusinessComponents、E2的Enterprise以及各应用模块项目中;

3)         应用层很少用到,如果有则存在于Tunynet.Platform中的BusinessComponents、E2的Enterprise及Common、Spacebuilder的Common、各应用模块项目;

4)         表现层对应于E2的Common、Spacebuilder的Common、各应用模块项目;

  1. 4.         项目内的目录组织

1)         在BusinessComponents等项目中由于业务构件众多,而每个构件的文件数并不多,建议以构件名称来作为目录组织,例如:Tag、PrivateMessage;

2)         在各应用模块项目中建议采用类的类型来作为目录组织,例如:Models、Repositories、Services;

  1. 5.         命名约定:

1)         Repository命名::=实体名称+Repository

2)         Service命名::=实体名称+Service

三、架构使用说明 > 运行环境 > 使用说明 >


四、 架构使用说明 > 数据访问 > 使用说明 >


类图

功能介绍


IEntity:Entity接口,所有实体都应该实现该接口;

IRepository<TEntity>:用于处理Entity持久化操作;

PagingDataSet:用于分页数据封装;

PagingEntityIdCollection:封装用于分页的实体Id;

Repository<TEntity>:数据仓储实现类,所有自定义数据仓储类都从此类派生;

常用方法介绍


Repository<TEntity>:

方法名称

成员修饰

说明

备注

Insert(TEntity entity) : void

Public virtual

把实体entity添加到数据库

Update(TEntity entity) : void

public virtual

把实体entiy更新到数据库

Delete(TEntity entity) : int

public virtual

从数据库删除实体

DeleteByEntityId(object entityId) : int

public virtual

从数据库删除实体(by 主键)

Exists(object entityId) : bool

public virtual

依据主键检查实体是否存在于数据库

Get(object entityId) : TEntity

public virtual

依据主键获取单个实体

GetAll() : IEnumerable<IEntity>

public virtual

获取所有实体(仅用于数据量少的情况)

自动对进行缓存(缓存策略与实体配置的缓存策略相同)

GetAll(string orderBy) : IEnumerable<IEntity>

public virtual

获取所有实体(仅用于数据量少的情况)

可设置排序字段(多个排序字段用逗号分隔)

自动对进行缓存(缓存策略与实体配置的缓存策略相同)

sns社区架构设计案例分享的更多相关文章

  1. sns社区架构设计案例分享(二)

    源码下载地址:http://www.jinhusns.com/Products/Download/?type=xcj 五. 架构使用说明 > 缓存 > 使用说明 > (一)基础类库介 ...

  2. web架构设计经验分享(转)

    本人作为一位web工程师,着眼最多之处莫过于 性能与架构,本次幸得参与sd2.0大会,得以与同行广泛交流,于此二方面,有些心得,不敢独享,与众博友分享,本文是这次参会与众同撩交流的心得,有兴趣者可以查 ...

  3. 一套海量在线用户的移动端IM架构设计实践分享(含详细图文)(转)

    1.写在前面 1.1.引言 如果在没有太多经验可借鉴的情况下,要设计一套完整可用的移动端IM架构,难度是相当大的.原因在于,IM系统(尤其是移动端IM系统)是多种技术和领域知识的横向应用综合体:网络编 ...

  4. SOA架构设计经验分享—架构、职责、数据一致性

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

  5. [转]SOA架构设计经验分享—架构、职责、数据一致性

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

  6. 【转】SOA架构设计经验分享—架构、职责、数据一致性

      1.背景介绍       最近一段时间都在做系统分析和设计工作,面对的业务是典型的重量级企业应用方向.突然发现很多以往觉得很简单的问题变得没有想象的那么容易,最大的问题就 是职责如何分配.论系统架 ...

  7. 新年春节EDM邮件内容设计案例分享

    春节自古以来都是中国最重要的节日.随着中国的发展,中国的春节在世界上都已受到越来越多人的关注,有许多国家和地区都将春节定为法定假日.与此同时,许多品牌营销商也选择在这个时候为中国客户发送马年新年邮件, ...

  8. SOA架构设计案例分析

    转载自:https://www.jdon.com/soa.html 首先Martin Fowler提出SOA歧义Service Oriented Ambiguity,认为"什么是SOA&qu ...

  9. EDM设计案例分享:6款引人入胜的夏日邮件营销模板分享

    夏日酷暑,清凉如风.在这个假期,旅游行业.酒店.服饰等都推出不少的假期活动,吸引游者的到来.假日期间,让我们看看一些旅游业.品牌服装店和酒店是怎么做好电子邮件广告的.在此,Focussend精心为大家 ...

随机推荐

  1. 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...

  2. 【CSS3进阶】酷炫的3D旋转透视

    之前学习 react+webpack ,偶然路过 webpack 官网 ,看到顶部的 LOGO ,就很感兴趣. 最近觉得自己 CSS3 过于薄弱,想着深入学习一番,遂以这个 LOGO 为切入口,好好研 ...

  3. Lesson 8 The best and the worst

    Text Joe Sanders has the most beautiful garden in our town. Nearly everbody enters for 'The Nicest G ...

  4. MySQL MMM高可用方案

    200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要介绍搭建MMM方案以及MMM架构的原理.这里不介绍主从.主主的搭建方 ...

  5. ASP.NET MVC学前篇之Lambda表达式、依赖倒置

    ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx=>xx>yy);)类似于这样的函数调用语句,里面 ...

  6. 《App研发录》面世

    古者富贵而名灭,不可胜记,唯倜傥非常之人称焉.故西伯拘而演<周易>,屈原放逐,乃赋<离骚>.文人雅士一次次的谱写着千古绝唱,而我亦不能免俗,也要附庸风雅,写一部前不见古人.后不 ...

  7. TODO:小程序集成WeUI

    TODO:小程序集成WeUI WeUI 为微信 Web 服务量身设计.WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一. ...

  8. ls /usr/linkapp 没反应

    ls /usr/linkapp ll /usr/linkapp  都是一样无反应 没有任何反应, ctrl + c /  ctrl + d 都不行 但是 ls /usr/linkapp/ | wc - ...

  9. Uiautomator 2.0之UiObject2类学习小记

    1. 基础动作 1.1. 相关API介绍 API 说明 clear() 清楚编辑框内的内容 click() 点击一个对象 clickAndWait(EventCondition<R> co ...

  10. 【非愚人】重要通知:04-01 贴吧继PHP资源之后又。。。

    贴吧继PHP资源之后又取消了JAVA,IOS等资源的贴,现在专注于Net,C++,Linux,平面设计.主要是为了让广大Net程序员具备全栈全平台牛人的潜力,故而取消那些干扰因素.Net的潜力和活力大 ...