项目的架构决定这个项目的好坏。

今天我说说传统三层架构的搭建

第一步 创建一个解决方案 例如 TaskSystem

接着这个解决方案下创建六个项目分别:

TaskSystem.DAL

TaskSystem.BLL

TaskSystem.Service

TaskSystem.WebUI

TaskSystem.Model

TaskSystem.Common

花了几分钟画了一张图

github源码地址:https://github.com/chenbingithub/taskSystem.git

搭建这个项目花费了两天的时间怎么成功了,ORM框架使用的EF 打开程序包管理控制台执行 安装命令  install-package entityframework

只需要在DAL层和Service层执行该命令就好,安装的是最新的EF版本 根据个人喜好 install-package entityframework  -v 6.0 加上版本号

我比较喜欢使用命令,不然就需要自己添加引用dll,还需要在配置文件配置EF的信息 如下:

<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>

上面这个一段字符必须放在<configuration></configuration>节点下第一个位置,不然会报错

执行 install-package entityframework 之后,两段字符自动在配置文件中生成。

在DAL我采用了抽象工厂模式和单例模式的设计,中间还用到了反射机制 在<appSettings>节点下加上这个

<!--抽象工厂创建数据库访问层配置节点-->
<add key="DALAssemblyName" value="TaskSystem.DAL" />

value值代表实现DAL的命名空间名称

如果使用依赖注入可采用spring.net,这个项目不打算使用spring.net

后期我会把redis、日志、邮件服务加上

我推荐大家使用ABP框架 https://aspnetboilerplate.com/

asp.net搭建项目架构的更多相关文章

  1. Asp.net mvc项目架构分享系列之架构概览

    Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...

  2. Asp.net mvc项目架构分享系列之架构搭建初步

    copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...

  3. mvn cli 搭建项目架构

    创建如图所示目录结构 在system-parent创建如下目录 ├─system-dao ├─system-domain ├─system-service └─system-web 创建system- ...

  4. asp.net mvc 项目架构解析

    请先看框架图: 从上图可知: 1.Controller控制器只是充当了管道的作用.只做任务的分发,不做请求中的具体业务处理. 2.Views视图充当了展示数据的作用.不做任何取数逻辑的处理,只是展示逻 ...

  5. 【从零开始搭建自己的.NET Core Api框架】(二)搭建项目的整体架构

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  6. 用Express、MySQL搭建项目(接口以及静态文件获取、文件上传等)

    一.简介 本文将主要基于node.js使用express框架搭建一个后台环境,包括如何自定义项目目录.所用依赖以及中间件.路由以及模板引擎.接口数据获取以及文件上传等内容. 二.后台环境搭建 1.新建 ...

  7. c#项目架构搭建经验

    读过.Net项目中感觉代码写的不错(备注1)有:bbsMax(可惜唧唧喳喳鸟像消失了一样),Umbraco(国外开源的cms项目),Kooboo(国内做开源cms).本人狭隘,读的代码不多,范围也不广 ...

  8. 关于ASP.NET或VS2005 搭建三层架构的理解

    最近想学习ASP.NET建网站,关于ASP.NET或VS2005 搭建三层架构的理解,网上摘录了一些资料,对于第(2)点的讲解让我理解印象深刻,如下: (1)为何使用N层架构? 因为每一层都可以在仅仅 ...

  9. ASP.NET MVC项目框架快速搭建实战

    MVC项目搭建笔记---- 项目框架采用ASP.NET MVC+Entity Framwork+Spring.Net等技术搭建,采用”Domain Model as View Model“的MVC开发 ...

随机推荐

  1. 关于android写入SD卡数据的学习代码

    String path = "data/data/com.example.qqlogin/login.txt"; FileOutputStream fos = new FileOu ...

  2. 深入浅出Javascript事件循环机制

    一.JS单线程.异步.同步概念 众所周知,JS是单线程(如果一个线程删DOM,一个线程增DOM,浏览器傻逼了-所以只能单着了),虽然有webworker酱紫的多线程出现,但也是在主线程的控制下.web ...

  3. Sequelize框架:

    1.安装mysql支持: npm install mysql --save-dev 2.安装sequelize npm install sequelize --save-dev 3.创建ORM对象 v ...

  4. Visual Studio Command Prompt 工具配置方法

    有时候,我们无法找到Visual Studio Command Prompt,需要手动配置 打开 Visual studio2015,选择  "工具"—>"外部工具 ...

  5. 利用JavaScriptCore实现以下简单的功能(平方和)

    #import "RootViewController.h" #import <JavaScriptCore/JavaScriptCore.h> @interface ...

  6. 自己实现 String 类

    实现Stirng类:构造函数.复制构造.拷贝构造.重载<<符号(友元) #include <iostream> #include <string.h> #inclu ...

  7. 跑实验配环境(tensorflow)

    最近在学习用CNN(卷积神经网络)做图像质量评价,选择的论文是CVPR2014-Convolutional neural networks for no-reference image quality ...

  8. LINQ to SQL连接数据库及语句

    http://www.cnblogs.com/fengzheng126/archive/2012/04/20/2460620.html

  9. .NET 图片上传接收类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  10. jQuery实例代码-表单相关

    select option 获取选中项的文本值 $("#ddl_GoOutReasonType option:selected").text() 根据索引定于option项 $(& ...