建造一个Product Module类: ProductDBContextDataContext dbcontext = new ProductDBContextDataContext(); public List<Product> GetProducts() { var query = dbcontext.Product.Where(p => p.cid == 1).ToList(); return query; } public object GetProductCS() { var…
用户层: 1.请求应用层获取用户显示的信息 2.发送命令给应用层要求执行某个命令 应用层: 对用户界面提供各种应用功能(包括信息获取与命令执行),应用层不包含业务逻辑,业务层是由应用层调用领域层(领域对象或领域服务)来完成的,应用层是很薄的一层 领域层: 包含领域对象和领域服务,完成系统所需的业务处理,是系统的核心.业务逻辑与仓储接口都在领域层 基础机构层: 包含其他层所需要使用的所有基础服务与技术,比如仓储的实现(与数据打交道).短消息发送.Json字符串处理 工作单元: 保证聚合间的一致性…
领域模型的基本构造块: 1.实体(Entity):有业务生命周期,使用标识进行跟踪. 2.值对象(Value Object):无业务生命周期,用来描述实体. 3.服务(Service):无状态的行为类型,表示某种能力. 4.聚合(Aggregate): 1).聚合是一簇相关联的对象,出于封装的目的,将这些对象作为一个单元(业务.持久化和并发). 2).每个聚合都有一个边界和一个根. 3).边界定义了聚合中应该包含什么. 5.聚合根(Aggregate Root) 1).根是聚合中唯一允许被外部引…
添加程序集: 写一个接口: public interface IPlayer { void Play(); } 两个实现类: public class NewPlay : IPlayer { public void Play() { MessageBox.Show("NewPlay"); } } public void Play() { MessageBox.Show("OldPlay"); } ServiceLocator类: public class Servi…
相关代码: public static void ShowArray() { //数据源 int[] arrayas = new int[] { 1, 2, 3, 4 }; //创建查询 var query = from a in arrayas select a; foreach (var arraya in query) { Console.WriteLine(arraya.ToString()); } } public static void ShowArrayWhere() { //数据…
DDD领域模型 官方说法 领域驱动设计,它是对面向对象的的分析和设计(OOAD,Object Orient Analysis Design)的一个补充,对技术框架进行了分层规划,同时对每个类进行了策略和类型划分.领域模型是领域驱动的核心 ,采用DDD的设计思想,业务逻辑不再集中在几个大型的类上,而是在大量相对小的领域对象上,这些类具有自己的状态和行为,每个类都是完成的独立的,并与现实领域的业务对象形成一种映射.基于DDD的架构设计,保证了系统的可维护性,扩展性和敏捷性,在处理复杂业务逻辑方面有着…
阅读目录 前言 怎么卖 领域服务的使用 回到现实 结语 一.前言 上篇中我们讲述了“把商品卖给用户”中的商品和用户的初步设计.现在把剩余的“卖”这个动作给做了.这里提醒一下,正常情况下,我们的每一步业务设计都需要和领域专家进行沟通,尽可能的符合通用语言的表述.这里的领域专家包括但不限于当前开发团队中对这块业务最了解的开发人员.系统实际的使用人等. 二.怎么卖 如果在没有结合当前上下文的情况下,用通用语言来表述,我们很容易把代码写成下面的这个样子(其中DomainRegistry只是一个简单的工厂…
http://kb.cnblogs.com/page/522348/ 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来. DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布…
Linux系统运维笔记(四),CentOS 6.4安装 MongoDB 1,下载 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 2,解压后,用SecureFXPortable.exe  工具,上传到服务器目录     /usr/local/mongodb3 3,在目录 /usr/local/mongodb3/bin 目录下创建 data目录,用于数据存储. 4,起动 /usr/local/mongodb3/bin/…
Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 2,安装 PCRE  ,PCRE 作用是让 Nginx 支持 Rewrite 功能. # yum install -y pcre pcre-devel 3,从官方地址(http://nginx.org/)下载 解压 #tar -zxvf nginx-1.10.…
Unity3d-Particle System 5.x系统的学习(四) 今天,我们来聊聊unity5.x的粒子系统和unity4.x粒子系统的区别. 我大致看了下,区别还是蛮多的,但是总体的粒子制作思路一样,只不过添加了很多子模块方便我们制作出更加美观的粒子. 下面是总体的粒子系统组件: 红色边框划出的就是unity5.x新增的子模块. ok,我们接下来分析每个模块的特征和参数: External Forces:(风(wind zone)对粒子的影响) 从英文表面意思解析:就是外部的力.(风力就…
经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析.得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据.一.实体类百度百科中对于实体类的定义如下:实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关.根据以上定义,我们可以了解到,实体类有两方面内容,存储数据和执行…
从0系统学Android--3.2四种基本布局 本系列文章目录:更多精品文章分类 本系列持续更新中.... 3.3 系统控件不够用?创建自定义控件 上一节我们学习了 Android 中的一些常用的控件和布局的用法.这里我们来看一下他们的关系图 可以看到说有的控件都是直接或者间接继承 View ,所有的布局都是直接或者间接继承 ViewGroup . View 是 Android 中最基本的一种 UI 组件,它可以在屏幕上绘制一块矩形区域,并且能够响应这块区域的各种事件,因此,我们使用的各种控件其…
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/smh188/p/11534451.html(我是如何一步步编码完成万仓网ERP系统的(二)前端框架) https://www.cnblogs.com/smh188/p/11535449.html(我是如何一步步编码完成万仓网ERP系统的(三)登录) https://www.cnblogs.com/…
在自定义的Windows窗体中运行工作流:(把工作流的代码放入到文本框中) public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Encoding utf8 = Encoding.UTF8; byte[] xmalcontent = utf8.GetBytes(textBox1.Te…
在大多数情况下Cacti + RRDtool已经实现对系统各种参数的监测.但很多企业可能不满足于仅仅监测系统基本参数的需求,而是需要监测除基本参数之外的各种应用程序的运行状况.很显然在这种情况下对于一些系统或者是自定义的程序Cacti + RRDtool的局限性就显示出来了.而此时就轮到了另外一种监测系统的登场.这就是我们现在要介绍的Nagios. Nagios是一个功能非常强大的开源的系统网络监测程序,通过访问http://www.nagios.org可以了解其基本特性.Nagios不但能够实…
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5816051.html,记录一下学习过程以备后续查用. 许多文件系统操作实质上是查询,因此非常适合使用LINQ方法. 一.查询具有指定属性或名称的文件 此示例演示如何查找指定目录树中具有指定文件扩展名(例如“.txt”)的所有文件,还演示如何根据创建时间返回树中最新或最旧的文件. class Program { static void Main(string[] args) { #region LINQ 查询…
  SpringCloud微服务包含多个SpringBoot可运行的应用程序,在单应用程序下,版本发布时的打包部署还相对简单,当有多个应用程序的微服务发布部署时,原先的单应用程序部署方式就会显得复杂且不可控.那么我们就会思考使用简单的部署方式,解决自动化发布.自动化部署.微服务监控等问题.   我们使用目前行业通用的解决方案,Jenkins+GitLab+Maven+Docker+Kubernetes来实现可持续自动化部署微服务的功能.下面将从工程中Maven打包文件配置.Dockfile文件编…
首先需要在项目中新增一个 linq  to sql 的服务 新增项,数据,LINQ TO sql 类的这个方法 第二步需要一个model类,用作映射 [Table] public class S_ZDB { //每一个属性都需要加上[Column] [Column] public string ZDMC { get; set; } [Column] public string ZDLX { get; set; } //下面这个属性是主键 [Column(IsPrimaryKey = true)]…
接下来的是录入航班.修改航班信息功能的实现: //录入航班 BOOL EntryFlight(HWND hEntryDlg){ TCHAR szDiscount[]; TCHAR szFare[],szSeat_Number[]; TCHAR szFlight_Number[], szDate[]; TCHAR szDeparture[], szDestination[]; TCHAR szTakeOff_Time[], szLanding_Time[]; Flight *p = (Flight…
方案 上篇文章讲到了负载均衡的相关理论知识,这篇文章我打算讲讲实践方法以及实践中遇到的问题 方案:haproxy http层负载均衡 安装一个haproxy服务,两个web服务 haproxy:192.168.1.227:80 web1 http://192.168.1.226:8081/login web2 http://192.168.1.246:8888/login web服务自行准备,文章中就不说了 负载均衡算法为轮询调度 会话保持实现方式为cookie识别,插入cookie 优点: 1…
1.新建数据库,右击"新建数据库-." 2.设置数据库名,初始数据库大小,如果要配置数据库优化,可以考虑初始大小与日志大小,点击添加安装完成,即完成数据库新建. 3.ODBC数据源配置,选择"系统DSN"点击"添加"选择"SQL Server Native Client10.0"完成. 4.创建SQL Server的新数据源,名称与服务器IP,下一步 5.输入登录ID:sa和密码,下一步 6.选择数据库为前面创建的数据库vce…
这是Model的第二篇,上一篇点这里 这块完全是扒了@何镇汐大神博客里的教程实现的,在这之前完全没想到数据验证居然可以这样做!!在此表示严重感谢!!! 点击这里可以去了解这个方法的原理,老胡估计自己是完全说不清楚的了.http://www.cnblogs.com/xiadao521/p/4111815.html 还是来图上看 Validation部分,这里是从@何镇汐教程中拔过来的代码, 老胡只是在_BaseEntityValidation类里面进行了简单的集成进来. namespace CAM…
动画的设置 我们先看看Animation Clip的一些设置: Loop time:动画是否循环播放. 下面出现了3个大致一样的选项: Root Transform Rotation:表示为播放动画的对象的旋转方面的信息. Root Transform Position(Y):表示为播放动画的对象的位置 y 轴方面的信息. Root Transform Position(XZ):表示为播放动画的对象的位置 XZ 平面方面的信息. 他们都有一致的选项,我们逐个的来看: Bake Into Pose…
距离上一次分享差不多一周了,本文分享下利用 Laravel 的 Bootstrapping 达到网站后台设置 laravel 配置. 需求场景 首先,ThinkSNS+ 作为一个用户可以使用的「社交系统」和开源网站程序一样拥有后台,有一些配置,Laravel 是要求写在 /config/*.php 的配置文件中的,例如 app.name.app.debug 等信息的配置,以及 Jobs 的驱动配置,广播系统的配置等,我们都搬到了网站后台,用户安装后可以不用修改配置文件的情况下镜像配置. 如何覆盖…
权限分配和权限查找. 在DDD.Domain工程中新建:BAS_PermissionAssign类 public partial class BAS_PermissionAssgin:AggreateRoot { private IRepository<BAS_PermissionAssgin> irepository; public BAS_PermissionAssgin(IRepository<BAS_PermissionAssgin> irepository) { this…
实现权限的领域对象:BAS_Permission public partial class BAS_Permission:AggreateRoot { private IRepository<BAS_Permission> irepository; public BAS_Permission(IRepository<BAS_Permission> irepository) { this.irepository = irepository; } /// <summary>…
在工程DDD.Domain中文件夹ModelPermission新建类:BAS_Object public partial class BAS_Obejct:AggreateRoot { //仓储接口 private IRepository<BAS_Obejct> irepository; //构造函数 public BAS_Obejct(IRepository<BAS_Obejct> irepository) { this.irepository = irepository; }…
BAS_PRService岗位和角色服务: public class BAS_PRService { //岗位 private IRepository<BAS_Post> irepositorypost; //角色 private IRepository<BAS_Role> irepositoryrole; //岗位和角色 private IRepository<BAS_PR> irepositorypr; BAS_PR bas_pr; public BAS_PRSer…
权限分为:数据权限和功能权限 数据权限: 查询提供附加表达式的支持: //提供附加表达式的支持 List<TAggreateRoot> GetByCondition(Expression<Func<TAggreateRoot, bool>> condition, Expression<Func<TAggreateRoot,bool>> definecondition); //返回聚合根分页的方法 List<TAggreateRoot>…