门户网站开发维护合同,平面设计接单话术,WordPress带前端会员中心,中国出口贸易网官网前言#xff1a; 最近园子里ABP炒的火热。看了几篇对于ABP的介绍后#xff0c;深感其设计精巧#xff0c;实现优雅。个人感觉#xff0c;ABP或ABP衍生品的架构设计#xff0c;未来会成为中型Net项目的首选架构模式。如果您还不了解ABP是什么#xff0c;有什么特色#x… 前言 最近园子里ABP炒的火热。看了几篇对于ABP的介绍后深感其设计精巧实现优雅。个人感觉ABP或ABP衍生品的架构设计未来会成为中型Net项目的首选架构模式。如果您还不了解ABP是什么有什么特色请移步《ABP集合帖》——http://www.cnblogs.com/kebinet/p/5341663.html 项目背景介绍 作者自参加工作以来一直在法律圈打转。09-12年间作者曾带团队用WebFormN层架构实现了一个律师事务所的OA系统。时过境迁现在在维护此系统时发现了当初很多设计不合理的地方。所以本项目延续原OA系统的设计思路以ABP为基础架构进行彻底重构。 注意本系列文章定位为开发笔记不代表ABP的最佳实践。 一、ABP是什么ABP.Zero又是什么从哪里下载ABP项目模板 ABP全称为“ASP.NET Boilerplate Project (ASP.NET样板项目)”。顾名思义ABP实质上是一个.Net开发的分层示例各种开发辅助类库。ABP是一个以DDD设计模式为原则的Net项目分层示例一大堆作者写的辅助类库。 ABP.Zero则是ABP的作者配合ABP框架写的一套用户模块。其本质是对ASP.NET Identity的二次封装。 ABP.Zero是一个独立模块。可用可不用。如果您的程序中用户模块非常独特建议您不要使用ABP.Zero模块而是独立实现一套用户系统。在我们的示例项目中用户模块也是非常独特的作者会尽可能尝试用ABP.Zero去解决如果实在无法适用那么我们将做一套独立的用户模块去替代。 ABP作者官网http://www.aspnetboilerplate.com/GitHub地址 https://github.com/aspnetboilerplate/ 请默默感谢这两位主要维护人员。如此优秀的开源项目值得32个赞 如图所示登录官网首页后即可以下载ABP项目模板。这里我们选择了使用.net framework4.5.2mvc5的多页面实现。ORM我们选择了EntityFramework并且选择使用ABP.Zero模块。此处也可不选日后需要时再安装。注意最底部的【EasyFast】此处是你的解决方案名称。下载并解压后我们得到了如下文件 我们将解决方案名称换成了中文【易迅律师事务所OA系统】。作者手里有多份OA实现为了防止歧义才换了中文名称此处改不改不会对项目本身造成任何影响 二、ABP使用前的基本设置 2.1、程序包的还原与更新必须 我们下载回来的ABP不包含对应packages例如Newtonsoft.Json、EntityFramework、Log4net等等。所以在使用前请先在解决方案上右键然后选【还原NuGet包】等全部包下载完成后再在解决方案上右键选择【管理解决方案的NuGet程序包】看看是否有更新如果有请同步更新。 请注意上图所示的包无法更新会提示有冲突请忽略不用更新此包。 2.2、修改数据库连接字符串非必须 解决完包的问题后我们来修改下数据库连接字符串ABP默认的数据库连接字符串名字叫【Default】。嗯不够高大上另此字符串的部分参数也不够合适我们同步修改。此步骤一共需要修改三个文件 EasyFast.Web Web.config。——修改数据库连接字符串。name改为【AppDbContext】内容改为用户名密码连接方式EasyFast.EntityFrameworkEasyFastDataModule.cs 。——修改为Configuration.DefaultNameOrConnectionString AppDbContext;EasyFast.EntityFramework.EntityFrameworkEasyFastDbContext.cs。——修改为public EasyFastDbContext() : base(AppDbContext) web.config修改前 1 2 3 connectionStrings add nameDefault connectionStringServerlocalhost; DatabaseEasyFast; Trusted_ConnectionTrue; providerNameSystem.Data.SqlClient / / connectionStrings web.config修改后 1 2 3 4 5 6 7 8 connectionStrings add name AppDbContext connectionStringdata source(local); initial catalogoa.easyfast.cn; user idsa; passwordinfo123; MultipleActiveResultSetsTrue; AppEntityFramework providerName System.Data.SqlClient / /connectionStrings 小知识——MultipleActiveResultSetsTrue Trusted_ConnectionTrue 当在数据库连接字符串中指定MultipleActiveResultSetsTrue时。可以在一个连接上执行多次查询。这样可大大减轻数据库压力提高程序负载能力。强烈推荐开启。 当在数据库连接字符串中指定Trusted_ConnectionTrue时意味着这是一个可信连接。不需要输入用户名密码就可以登录数据库。在正式的生产服务器上不推荐这么做。启用该属性实质上是使用windows账户进行数据库连接。在生产服务器上windows账户和SQLServer账户应该设置为不同的账户以降低安全风险 2.3、修改程序命名空间非必须 ABP默认使用了简化的命名空间。对于本项目来说EasyFast.Application、EasyFast.Core、Easyfast.EntityFramework三个层统一使用了EasyFast作为命名空间。EasyFast.WebApi则使用了EasyFast.Api作为命名空间。对于Application、Core、EntityFramework三个层来说随着项目越来越大使用相同的命名空间容易引起歧义。所以我们做如下修改 EasyFast.Application——命名空间修改为EasyFast.ApplicationEasyFast.Core——命名空间修改为EasyFast.CoreEasyfast.EntityFramework——命名空间修改为Easyfast.EntityFrameworkEasyFast.Api——暂时保持不变 图示在Application、Core、EntityFramework三个项目上右键选择属性将对应的默认命名空间分别修改为EasyFast.Application、EasyFast.Core、EasyFast.EntityFramework 注意修改命名空间后需同步修改相应的代码引用。否则程序无法编译通过。请慎重考虑此处是否修改。 2.4、修改启动项目必须 ABP的默认启动项目是Core层这样每次调试时非常麻烦我们将启动项目修改为【当前选定项】这样我们在编辑完view页面时直接按CtrlF5就可以直接查看效果。而不用每次都在页面上选择【使用浏览器查看】。修改方法在解决方案上右键选择属性在新打开的窗口中将通用属性中的启动项目选项修改为【当前选定内容】 2.5、初始化数据库必须 ABP项目模板中默认保留了大量model修改记录。在SQL2014环境下初始化数据库可能会失败。解决办法删除所有的model修改记录重新初始化。请删除下图中数字开头的类文件。然后载程序包管理控制台执行【Add-Migration Init】、【Update-DataBase】。注意在程序包管理控制台中默认项目需选中EasyFast.EntityFramework。且在执行命令前鼠标需先选中EasyFast.Web项目。 在执行Add和Update两个命令时程序需先连接至数据库以确定到底需要更新什么需要建立、更新、删除哪些表。但是在EasyFast.EntityFramework项目中没有数据库连接字符串。所以程序会卡死一段时间。 解决办法1在执行命令前在【解决方案资源管理器】选中web项目此项前提是上一步中在解决方案属性中将启动项目修改为【当前选中项目】。如此操作可以让VS知道通过web项目中web.config中的数据库连接字符串去连接数据库。 解决办法2EasyFast.EntityFramework层中修改App.config文件将Web项目中web.config中的连接字符串复制到【configuration】节点后。 三、本章节所使用的源码 项目已开源GitHub地址https://github.com/easyfast/LawfirmOA 原文地址http://www.cnblogs.com/brucelee/p/6009879.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注