ASP.NET Core模块化前后端分离快速开发框架介绍之1、开篇
2019-05-20 16:46
2481 查看
原文首发:https://iamoldli.github.io/2019/05/20/net-core-mo-kuai-hua-kai-fa-kuang-jia/1-kai-pian/
源码地址
GitHub:https://github.com/iamoldli/NetModular
演示地址
账户:admin
密码:admin
前端框架演示地址(临时)
地址:http://progqx5cu.bkt.clouddn.com/skins/index.html#/
账户:admin
密码:admin
我想要的模块化
1、采用前后端分离。
2、将业务拆分成独立的模块,后端代码打包并发布到公司内部的NuGet包管理平台,前端代码打包发布到公司内部的NPM包管理平台。
3、项目中用到了哪个模块,直接通过包的形式安装对应的包。
4、开发人员只需要关心自己负责的模块,不需要知道依赖的业务模块代码逻辑。
项目架构图
模块化原理
实现模块化首先要解决的就是如何将多个模块集成到一个系统里面,因为我们用的是WebApi,也就是说要解决怎么把每个模块的控制器注册到系统中。好在ASP.NET Core提供了对应的功能,可以让我们很方便的实现这个效果,那就是ASP.NET Core 中的应用程序部件,它能够让我们动态的从一个程序集中发现并加载我们需要的控制器
// create an assembly part from a class's assembly var assembly = typeof(Startup).GetTypeInfo().Assembly; services.AddMvc() .AddApplicationPart(assembly); // OR var assembly = typeof(Startup).GetTypeInfo().Assembly; var part = new AssemblyPart(assembly); services.AddMvc() .ConfigureApplicationPartManager(apm => apm.ApplicationParts.Add(part));
需要注意的是,在系统启动的时候,ASP.NET Core默认会自动从入口程序集开始,遍历所有的依赖程序集并添加系统中。
var entryAssembly = Assembly.Load(new AssemblyName(entryAssemblyName)); var assembliesProvider = new ApplicationAssembliesProvider(); var applicationAssemblies = assembliesProvider.ResolveAssemblies(entryAssembly); foreach (var assembly in applicationAssemblies) { var partFactory = ApplicationPartFactory.GetApplicationPartFactory(assembly); foreach (var part in partFactory.GetApplicationParts(assembly)) { ApplicationParts.Add(part); } }
因为所有模块都是通过包安装到项目中的,所有模块都是有依赖的,也就不需要我们手动添加了。
使用代码生成器快速开发
基本上每一个框架都会提供代码生成器的功能,
NetModular也不例外,与别的代码生成器不同,
NetModular的代码生成器是作为一个模块存在的它可以集成到任何项目当中。
大部分代码生成器都是根据先创建数据库,在根据数据库来生成代码,而
NetModular的代码生成器则是在线创建项目、实体、属性等,然后根据这些数据生成代码以及数据库文件。
具体的不在演示,大家有兴趣的话可以访问上面的Demo地址自己体验一下~
结尾
这边文章只是简单做个介绍,后续希望自己能够写一个系列的文章来详细的讲解基础框架的各个模块、前端框架模块以及已有的业务模块。
相关文章推荐
- 【ASP.NET Core快速入门】(十五)MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
- BLinQ ASP.NET中数据库快速开发工具介绍
- ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍
- 【ASP.NET Core快速入门】(七)WebHost的配置、 IHostEnvironment和 IApplicationLifetime介绍、dotnet watch run 和attach到进程调试
- 详解.net core webapi 前后端开发分离后的配置和部署
- ASPPBNET-pb快速开发bs应用框架用户手册
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍
- 【ASP.NET Core快速入门】(十四)MVC开发:UI、 EF + Identity实现、注册实现、登陆实现
- 工作流程组件介绍 ━ RDIFramework.NET ━ .NET快速信息化系统开发框架
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 菜鸟入门【ASP.NET Core】15:MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
- 基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速Web开发框架设计
- C#.Net C/S快速开发框架V2.2版本介绍
- 使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用:Task List
- ASP.NET MVC快速开发框架清新简洁界面设计,有兴趣可以模仿参考
- ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets(转)
- RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍
- ABP(现代ASP.NET样板开发框架)系列之1、ABP总体介绍
- Orchard Core Framework:ASP.NET Core 模块化,多租户框架