ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案

ABP+AdminLTE+Bootstrap Table权限管理系统一期
Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate-Project-CMS
前往博客园总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期

"abp是ASP.NET Boilerplate简称,是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板"

  • abp官方网站:https://aspnetboilerplate.com/
  • abp开源项目:https://github.com/aspnetboilerplate

abp中主要的技术:

  1. ASP.NET MVC 5、Web API 2、C# 5.0
  2. DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
  3. Castle windsor (依赖注入容器)
  4. Entity Framework 6 \ NHibernate,数据迁移(数据迁移这个项目暂时没有用,详情看第二节)
  5. Log4Net(日志记录)
  6. AutoMapper(实现Dto类与实体类的双向自动转换)
  7. Bootstrap
  8. AngularJs(本项目暂时没用)
  9. jQuery
  10. 其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2
  11. AdminLTE(abp没有,本项目用到)

话不多说,abp是开源项目,我们前往官网去下载项目地址:https://aspnetboilerplate.com/Templates
现在官网的版本2.2.1,首先我们得安装

  • vs2013 update3以上版本
  • sqlserver 2008以上版本
  • 另外需要安装最新的typescript 连接:https://www.microsoft.com/zh-CN/download/details.aspx?id=48593

abp最新版GitHub地址:https://github.com/aspnetboilerplate/aspnetboilerplate
客户端采用响应式布局,适配PC及移动端。前端框架AdminLTE,github地址:https://github.com/almasaeed2010/AdminLTE

  • 表格控件则用到了bootstrap-table,github地址:https://github.com/wenzhixin/bootstrap-table

服务器端:

  • ASP.NET MVC 5、Web API 2、C# 5.0
  • DDD领域驱动设计 (Entities、Repositories、Domain Services、Domain Events、Application Services、DTOs等)
  • Castle windsor (依赖注入容器)
  • Entity Framework 6 \ NHibernate,数据迁移
  • Log4Net(日志记录)
  • AutoMapper(实现Dto类与实体类的双向自动转换)

客户端:

  • Bootstrap
  • Less
  • AngularJs
  • jQuery
  • Modernizr
  • 其他JS库: jQuery.validate、jQuery.form、jQuery.blockUI、json2

1.1.2 ABP框架已实现了以下特性

  • 多语言/本地化支持
  • 多租户支持(每个租户的数据自动隔离,业务模块开发者不需要在保存和查询数时写相应代码)
  • 软删除支持(继承相应的基类或实现相应接口,会自动实现软删除)
  • 统一的异常处理(应用层几乎不需要处理自己写异常处理代码)
  • 数据有效性验证(Asp.NET MVC只能做到Action方法的参数验证,ABP实现了Application层方法的参数有效性验证)
  • 日志记录(自动记录程序异常)
  • 模块化开发(每个模块有独立的EF DbContext,可单独指定数据库)
  • Repository仓储模式(已实现了Entity Framework、NHibernate、MangoDB、内存数据库)
  • Unit Of Work工作单元模式(为应用层和仓储层的方法自动实现数据库事务)
  • EventBus实现领域事件(Domain Events)
  • DLL嵌入资源管理
  • 通过Application Services自动创建Web Api层(不需要写ApiController层了)
  • 自动创建Javascript 的代理层来更方便使用Web Api
  • 封装一些Javascript 函数,更方便地使用ajax、消息框、通知组件、忙状态的遮罩层

“Zero”的模块,实现了以下功能:

  • 身份验证与授权管理(通过ASP.NET Identity实现的)
  • 用户&角色管理
  • 系统设置存取管理(系统级、租户级、用户级,作用范围自动管理)
  • 审计日志(自动记录每一次接口的调用者和参数)

在其他项目中的很多优秀设计,在ABP项目中也已存在,而且可能实现得更好。ABP框架的代码,都通过xUnit进行了单元测试。作者一直在用ABP框架开发他们的实际项目,从Github和他官方论坛上的信息可以看到,有很多国外的开发者在将ABP用作生产项目的基础框架。如果需要直接使用ABP组件,可以通过Nuget安装(在VS的Nuget包管理界面搜索ABP)。

为了更好地将ABP适用于自己的项目,我对ABP的源码做了一些修改后使用的,没有直接使用ABP组件。

我希望更多国内的架构师能关注ABP这个项目,也许这其中有能帮助到你的地方,也许有你的参与,这个项目可以发展得更好。

今天只是作了一个大概介绍,希望有更多的朋友能去阅读源代码,然后参与讨论。

1.1.3 ABP适用的场景

中小规模WEB应用开发,可直接使用ABP框架。 较大型项目可以在ABP框架的源码基础上进行扩展,以实现分布式架构。

一、点击官网链接出现在我们面前的是abp最新版本根据上面的超做进行选择.

ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第1张图片

注意:我用的是mvc5 不是.net core .
然后输入项目名字,如果有验证码就输入验证码,创建一个项目就可以了注意这里默认是勾选module-zero,图中未勾选,那下面我们先来看一下abp勾选module-zero的样子
二、修改链接地址,连接本地数据库

当然这里的 Datebase JCmsErp本地 SQL server新建空的数据库,没任何表,等会儿我们会根据codefirst的数据库迁移功能自动创建数据库,注释的是abp默认路径
ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第2张图片

三、在程序包管理控制台执行update-database命令**(注意:这里一定要把WEB设置为启动项目,不然会报错:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错))

然后本地数据库就自动创建成功了,不懂codefirst的同学可以去看一下月影的博客:http://blog.csdn.net/gentle_wolf/article/details/14004345 和 tkb至简的博客http://www.cnblogs.com/farb/p/ABPAdvancedTheoryContent.html#masteringEF
我们去看数据库用管理员名和密码,还有租户名字

ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第3张图片

abp实际上使用ef框架codefrist已经为我们创建好了数据库,然后我们再来看登陆界面
ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第4张图片

ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第5张图片

用户名:admin 密码123qwe 以及登陆进去的页面.这里我们用租户名登陆进来的,可以进行增删查改
租户不明白的同学可以看下别的博客大神的文章,当然不明白也没关系,目前这个项目中并没有运用到多租户.
不过有兴趣的同学可以看一下
ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第6张图片

abp module-zero默认,界面是不是很丑,登陆界面是不是也很丑,还有 codefirst的数据库迁移功能在实际运用的过程并不是太适合多人开发,容易冲突,然后我们在实际开发过程不可能用abp原声的界面,原生的登陆页面,怎么办,当然是自己动手去写啊!!
这就是我写这一系列文章的原因.同时也方便大家交流和指教.找出自身的不足之处.
下面给demo两张成果图片
ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第7张图片

登陆页面
ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案_第8张图片

页面页面展示
当然还有很多没有完善的地方,我希望通过这系列文章勉励自己,改变自己懒惰的性情,坚持去写一系列文章,当然这些都是下班时候写的,时间有限,更新时间不定.abp也是我喜欢的.net框架,一起努力一起见证.一起共勉!

返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期
前往博客园总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期

你可能感兴趣的:(ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案)