手动搭建ABP2.1.3——基础框架
一、基础层搭建
1,创建一个空解决方案
2,层结构

Demo.Core[v:4.6.1]:类库
Demo.EntityFramework[v:4.6.1]:类库(引用Demo.Core)
Demo.Application[v:4.6.1]:类库(引用Demo.Core)
Demo.WebApi[v:4.6.1]:类库(引用Demo.Application)
Demo.Web[v:4.6.1]:WebMvc5.X(引用Demo.Core、Demo.EntityFramework、Demo.Application、Demo.WebApi)
二、Demo.Core
1,NuGet安装Abp2.1.3
2,添加Module类
namespace Demo.Core
{
public class DemoCoreModule:AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
}
三、Demo.EntityFramework
1,NuGet安装Abp.EntityFramework2.1.3
2,添加Module类
namespace Demo.EntityFramework
{
[DependsOn(typeof(AbpEntityFrameworkModule),typeof(DemoCoreModule))]
public class DemoDataModule:AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
}
四、Demo.Application
1,NuGet安装Abp.AutoMapper2.1.3
2,添加Module类
namespace Demo.Application
{
[DependsOn(typeof(AbpAutoMapperModule), typeof(DemoCoreModule))]
public class DemoApplicationModule:AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
}
}
}
五、Demo.WebApi
1,NuGet安装Abp.Web.Api2.1.3
2,添加Module类
namespace Demo.WebApi
{
[DependsOn(typeof(AbpWebApiModule),typeof(DemoApplicationModule))]
public class DemoWebApiModule:AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); Configuration.Modules.AbpWebApi().DynamicApiControllerBuilder.ForAll<IApplicationService>(typeof(DemoApplicationModule).Assembly,"app").Build();
}
}
}
六、Demo.Web
1,NuGet安装
Abp.Web.Mvc2.1.3
Abp.Web.Api2.1.3
2,添加Module类
namespace Demo.Web.App_Start
{ [DependsOn(typeof(AbpWebMvcModule), typeof(DemoWebApiModule), typeof(DemoDataModule))]
public class DemoWebModule:AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
}
3,修改Global.asax类
namespace Demo.Web
{
public class MvcApplication : AbpWebApplication<DemoWebModule>
{
protected override void Application_Start(object sender, EventArgs e)
{
base.Application_Start(sender, e);
}
}
}
4,修改RouteConfig.cs
namespace Demo.Web
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}
5,修改web.config连接字符串
<add name="Default" connectionString="Server=localhost; Database=demo; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
demo下载:http://pan.baidu.com/s/1boSQwSv
手动搭建ABP2.1.3——基础框架的更多相关文章
- 手动搭建ABP2.1.3 Zero——基础框架
一.基础层搭建 二.PM.Core 三.PM.EntityFramework 四.PM.Application 五.PM.WebApi 六.PM.Web(MPA) 七.PM.Web(SPA) 八.单元 ...
- 手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊
资料:慕课网 第二章:手动搭建I/O网络通信框架2:Socket和ServerSocket入门实战,实现单聊 这个基础项目会作为BIO.NIO.AIO的一个前提,后面会有数篇博客会基于这个小项目利用B ...
- vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)
前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...
- 手动从0搭建ABP框架-ABP官方完整解决方案和手动搭建简化解决方案实践
本文主要讲解了如何把ABP官方的在线生成解决方案运行起来,并说明了解决方案中项目间的依赖关系.然后手动实践了如何从0搭建了一个简化的解决方案.ABP官方的在线生成解决方案源码下载参考[3],手动搭 ...
- iOS基础框架的搭建/国际化操作
1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...
- 准备.Net转前端开发-WPF界面框架那些事,搭建基础框架
题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开 ...
- iOS基础框架的搭建 / 及国际化操作
1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...
- SSM学习(一)搭建基础框架
不知不自觉,工作也两年多了,由于公司一直用的是ssh框架,所以所学也一直是ssh.直到有一天,服务器被攻击,tomcat目录下总有莫名其妙的一些文件,这些文件通过远程ftp下载了一些病毒和木马,服务器 ...
- LayIM.AspNetCore Middleware 开发日记(三)基础框架搭建
前言 在上一篇中简单讲了一些基础知识,例如Asp.Net Core Middleware 的使用,DI的简单使用以及嵌入式资源的使用方法等.本篇就是结合基础知识来构建一个基础框架出来. 那么框架有什么 ...
随机推荐
- keystone v3.0与2.0的区别
参看http://blog.chinaunix.net/uid-21335514-id-3497996.html
- Javascript Image Slider 插件注册机
Javascript Image Slider 是个不错的轮播插件,兼容 IE 7.0+, Firefox 1.5+, Chrome 1.0+, Safari 3+, Opera 9.0+, Nets ...
- 20155304 2016-2017-2 《Java程序设计》第七周学习总结
20155304 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时 ...
- Django中合并同一个model的多个QuerySet
[1]相同modelarticles1 = Article.objects.order_by("autoid").filter(autoid__lt = 16).values('a ...
- Tensorflow数据读取的方式
深度学习既然是基于数据的方法,先不管多抽象,那总归是有读取数据的方法的吧,这里的数据应该是一个统称,包含我们讲的数据集和变量tensor. tf读取数据一共有3种方法: 供给数据(Feeding): ...
- c++刷题(30/100)
题目一:合并两个排序的链表 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 思路:利用两个指针cur1,cur2来指分别向两个链表中当前较小的和当前较大的 ...
- Contrastive Loss (对比损失)
参考链接:https://blog.csdn.net/yanqianglifei/article/details/82885477 https://blog.csdn.net/qq_37053885/ ...
- oracle数据库如何创建用户和角色,并给其赋权?
一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...
- Dhaka2011
Dhaka2011 A - Binary Matrix 题目描述:有一个\(n \times m\)的\(01\)矩阵,这一矩阵第一行和最后一行是相邻的,第一列和最后一列是相邻的,现在每次可以交换相邻 ...
- 细说MySQL备份的基本原理(系列一 ) 备份与锁
数据库作为一个系统中唯一或者主要的持久化组件,对服务的可用性和数据的可靠性要求极高. 作为能够有效应对因为系统软硬件故障.人工误操作导致数据丢失的预防手段,备份是目前最为常见的数据库运维操作. 考虑到 ...