ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案
"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://github.com/aspnetboilerplate/aspnetboilerplate
现在官网的版本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
点击官网链接出现在我们面前的是abp最新版本根据上面的超做进行选择.

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

当然这里的Datebase JCmsErp本地SQL server 新建空的数据库,没任何表,等会儿我们会根据codefirst的数据库迁移功能自动创建数据库,注释的是abp默认路径

第三步在程序包管理控制台执行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实际上使用ef框架codefrist已经为我们创建好了数据库,然后我们再来看登陆界面


用户名:admin 密码123qwe 以及登陆进去的页面.这里我们用租户名登陆进来的,可以进行增删查改
租户不明白的同学可以看下
tkb至简的博客:http://www.cnblogs.com/farb/p/ABPMultiTenancy.html,当然不明白也没关系,目前这个项目中并没有运用到多租户.
不过有兴趣的同学可以看一下

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

登陆页面

页面页面展示
当然还有很多没有完善的地方,我希望通过这系列文章勉励自己,改变自己懒惰的性情,坚持去写一系列文章,当然这些都是下班时候写的,时间有限,更新时间不定.abp也是我喜欢的.net框架,一起努力一起见证.一起共勉!
ABP+AdminLTE+Bootstrap Table权限管理系统第一节--使用ASP.NET Boilerplate模板创建解决方案的更多相关文章
- ABP+AdminLTE+Bootstrap Table权限管理系统第九节--AdminLTE模板页搭建
AdminLTE 官网地址:https://adminlte.io/themes/AdminLTE/index2.html 首先去官网下载包下来,然后引入项目. 然后我们在web层添加区域Admin以 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第二节--在ABP的基础做数据库脚本处理
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 第一点,上一篇文章中我们讲到codefirst中一些问题包括如图,codefirst在每次执行命令的时候会生成新的 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第九节--AdminLTE引入及模板页和布局和菜单
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 AdminLTE AdminLTE 官网地址:https://adminlte.io/themes/AdminLT ...
- ABP+AdminLTE+Bootstrap Table权限管理系统一期
学而时习之,不亦说乎,温顾温知新,可以为师矣. 这也是算是一种学习的方法和态度吧,经常去学习和总结,在博客园看了很多大神的文章,写下一点对于ABP(ABP是“ASP.NET Boilerplat ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第二节--数据库脚本
第一点,上一篇文章中我们讲到codefirst中一些问题包括如图 1,codefirst在执行的数据库迁移过程中产生了很多文件,对于强迫症的我而言特别不爽,这些是可以不用生成的啊 2,在codefir ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及abp封装的Javascript函数库
经过前几节,我们已经解决数据库,模型,DTO,控制器和注入等问题.那么再来看一下登录逻辑.这里算是前面几节的一个初次试水. 首先我们数据库已经有的相应的数据. 模型和DTO已经建好,所以我们直接在服务 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第七节--登录逻辑及几种abp封装的Javascript函数库
返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 简介 经过前几节,我们已经解决数据库,模型,DTO,控制器和注入等问题.那么再来看一下登录逻辑.这 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI
一,Web API ABP的动态WebApi实现了直接对服务层的调用(其实病没有跨过ApiController,只是将ApiController公共化,对于这一点的处理类似于MVC,对服务端的 调用没 ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第十一节--bootstrap table之用户管理列表
这张开始bootstrap table,引入项目有两种方法,一种是直接去官网下载 地址:http://bootstrap-table.wenzhixin.net.cn/ 另一种是Nuget引入. 然后 ...
随机推荐
- 【JavaScript学习】-JS内置对象1-对象概述
对象(object): JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和 方法.JavaScript 提供多个内建对象,比如 String.Date.Ar ...
- 如何自定义容器网络?- 每天5分钟玩转 Docker 容器技术(33)
除了 none, host, bridge 这三个自动创建的网络,用户也可以根据业务需要创建 user-defined 网络. Docker 提供三种 user-defined 网络驱动:bridge ...
- 详解 RAC 中各种IP和监听的意义
一.SCAN 概念 SCAN(Single Client Access Name)是 Oracle从11g R2开始推出的,客户端可以通过 SCAN 特性负载均衡地连接到 RAC数据库 SCAN 最明 ...
- 如何查询oracle中的关键字
如何查询oracle中的关键字,执行: select * from v$reserved_words
- linux统计cdn日志慢请求
./stat_ip.sh live-https.log-0510.gz 1000 #首先用shell脚本可以统计出?日志慢请求查询时间超过?秒对应的ip和对应的调用次数(传两个参数) #!/bin/b ...
- “HK”的日常之ARP断网攻击
ARP断网攻击是什么?可以吃吗?如果可以吃它好吃吗? ARP断网攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响 ...
- 巧用五招提升Discuz!X运行速度
Discuz!X使用的是数据库应用程序,所以,当数据库的大小.帖子的数目.会员的数目,这些因素都会影响到程序的检索速度,尤其是当论坛的影响力大了,这个问题就更为突出了,虽然,康盛对Discuz进行了更 ...
- C#调用TSC条码打印机打印条码
#region 调用TSC打印机打印条码 /// <summary> /// 调用TSC打印机打印条码 /// </summary> /// <param name=&q ...
- ExtJs2.0里Ext.form.Radio水平排列布局
ExtJs2.0好像不支持单选框组,因此用两个name相同单选框来实现单选框组 var radio1 = new Ext.form.Radio({boxLabel:'男',name:'sex',i ...
- Spring源码:IOC原理解析(二)
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 接着上一章节的内容,我们来分析当new一个FileSystemXmlApplicationContext对象的时候,spring到底做了那 ...