企业管理系统一般包含后台管理UI、组织机构管理、权限管理、日志、数据访问、表单、工作流等常用必备功能。下面收集的几款优秀开源的管理系统,值得大家入门学习。如有新的优秀项目,我会不断补充。
以为缺少对应的包,然后去nuget安装时发现 最新版本是2.2 ,跟.NETcore web 项目引用的版本不一样。
📷 (源自:https://neters.club) 一觉醒来Github改版了,我个人还是挺喜欢的🎉。 还有两个月就是老张做开源两周年了,时间真快,也慢慢的贡献了很多的开源作品,上边的是主要的七个作品,总star数约3500,虽称不上精品,而且有时候被感觉很low,只能做初学者的入门教程,不适合进大雅之堂,who cares🙃。 趁着这个时间,最终还是打算把春节期间开发的学生成绩管理系统开源吧。 (地址:https://github.com/anjoy8/Student.Achieve.Manager)
缘起 1、哈喽大家中秋节(后)好呀!感觉已经好久没有写文章了,但是也没有偷懒哟,我的视频教程《系列一、NetCore 视频教程(Blog.Core)》也已经录制八期了,还在每周末同步更新中,欢迎大家多多指教。 2、除此之外呢,我也在平时的时间帮朋友开发了一个小项目,就是使用 .net mvc+vue+ele+mongo 框架写的项目,之前一直想着用mvc结合着vue写,这次也终于上手了,不过是一个小的demo,因为是朋友的项目,所以就不开源了。 言归正传,👉 从2018年8月就开始听说 netcore 要
正文 缘起 1、哈喽大家中秋节(后)好呀!感觉已经好久没有写文章了,但是也没有偷懒哟,我的视频教程《系列一、NetCore 视频教程(Blog.Core)》也已经录制八期了,还在每周末同步更新中,欢迎
标签: 依赖注入 Autofac ASPNETCore 1. 前言 关于IoC模式(控制反转)和DI技术(依赖注入),我们已经见过很多的探讨,这里就不再赘述了。比如说必看的Martin Fowler《IoC 容器和 Dependency Injection 模式》,相关资料链接都附于文章末尾。其中我非常赞同Artech的说法"控制更多地体现为一种流程的控制",而依赖注入技术让我们的应用程序实现了松散耦合。 ASP.NET Core本身已经集成了一个轻量级的IOC容器,开发者只需要定义好接口后,在Startu
在之前的文章【ASP.NET Core 整合Autofac和Castle实现自动AOP拦截】中,我们讲过除了ASP.NETCore自带的IOC容器外,如何使用Autofac来接管IServiceProvider进行依赖注入。
本文的主角是Autofac,它是一款非常奈斯的依赖注入框架。暂时先不讨论,先分享几个名词:DI(依赖注入)、IOC(控制反转)、IOC容器。
前言: 为.NET开源者提供的一个推荐自己优秀框架的地址,大家可以把自己的一些优秀的框架,或者项目链接地址存到在这里,提供给广大.NET开发者们学习(注意:排名不分先后,都是十分优秀的开源框架和项目💖)。 Github项目仓库收集地址:https://github.com/YSGStudyHards/DotNetGuide/issues/5 填写格式如下: 项目or框架名称+访问链接地址+项目描述: 📦NPOI-ExportWordAndExcel-ImportExcelData 一个简单
在上一篇《dotNET Core 3.X 依赖注入》中简单介绍了 dotNET Core 框架本身的依赖注入功能,大部分情况下使用框架的依赖注入功能就可以满足了,在一些特殊场景下,我们就需要引入第三方的注入框架。
Consul Agent有两种运行模式:Server和Client。这里的Server和Client只是Consul集群层面的区分,与搭建在Cluster之上的应用服务无关, 以Server模式运行的Consul Agent节点用于维护Consul集群的状态,官方建议每个Consul Cluster至少有3个或以上的运行在Server Mode的Agent,Client节点不限。
整个只读的基础表单的所有前后端代码,全部由代码生成器生成,代码生成器中几乎不需要配置,并支持并后端业务代码扩展,直接生成代码后,配置菜单权限即可
说接上文,上回说到了《八 || API项目整体搭建 6.3 异步泛型+依赖注入初探》,后来的标题中,我把仓储两个字给去掉了,因为好像大家对这个模式很有不同的看法,嗯~可能还是我学艺不精,没有说到其中的好处,现在在学DDD领域驱动设计相关资料,有了好的灵感再给大家分享吧。
结构体(struct)是类(class)的轻量级版本。结构体是值类型,可用于创建行为类似于内置类型的对象。
iMES工厂管家——您的新一代工厂助手 功能模块 基础数据【工艺路线,绩效工资配置,产品定义,物料清单,单位管理,不良品项,工序,通知管理,车间设置】 自定义配置【自定义编号规则】 库存管理【出库单,入库单,库存收发明细,库存余额】 生产管理【销售订单,生产计划,装配工单,工单,任务,报工】 系统管理【用户管理,部门管理,消息推送,权限管理,角色管理,菜单设置,数据字典,系统日志,角色管理(tree),版本发布记录,用户管理(tree)】 报表管理【员工绩效,工资报表,不良品项分部,不良品项汇总,生产报表,
本文有配套视频:https://www.bilibili.com/video/av58096866/?p=5 前言 1、重要:如果你实现了解耦,也就是 api 层只引用了 IService 和
除了ASP.NETCore自带的IOC容器外,我们还可以使用其他成熟的DI框架,如Autofac,StructureMap等(笔者只用过Unity,Ninject和Castle)。
1、添加autofac相关程序集/使用Nuget 2、引入命名空间 using Autofac; using Autofac.Configuration; 3、使用 3.1:直接使用 var build = new ContainerBuilder(); build.RegisterType<MemoryCacheManager>(); build.Register<ICacheManager>(c => new MemoryCacheManager()).InstancePerLifetimeScope(
Autofac 官网文档地址: https://autofaccn.readthedocs.io/zh/latest/index.html
AutoFac是.NET平台下的一款著名的IoC Container,它可以让我们很轻松的解除项目中服务类的接口与客户类的接口实现类之间的依赖关系,从而降低系统各模块之间耦合程度以提高系统的稳定性。最近在做毕业设计,在开发中采用了autofac来进行依赖注入,这里是对踩到的一些坑的解决方法,希望可以给同样不幸进入这些坑中的童鞋们提供一些解决思路。
属性介绍: RegisterAssemblyTypes:寄存器程序集类型 AsImplementedInterfaces:实现的接口 InstancePerDependency:实例依赖关系 PropertiesAutowired:属性自动连接(属性自动注入)
Mutex 中文为互斥,Mutex 类叫做互斥锁。它还可用于进程间同步的同步基元。
IoC容器是一种设计模式,它可以管理应用程序中的对象依赖关系。它可以自动创建和注入对象,从而减少了代码的耦合度和重复性。
.NET 中,有三种异步编程模式,分别是基于任务的异步模式(TAP)、基于事件的异步模式(EAP)、异步编程模式(APM)。
Autofac 是一款.NET IoC 容器 . 它管理类之间的依赖关系, 从而使应用在规模及复杂性增长的情况下依然可以轻易地修改 。.NET CORE 中也内置了依赖注入,但是有些情况下需要用到Autofac去进行依赖注入,Autofac支持的所有注入方式以外,还支持属性注入和方法注入。接下来我们通过示例来简单了解Autofac的使用
2、属性注入:直接把服务注册到某一个类的属性里面去,而不需要定义构造函数,比如之前的 FromService 和 构造函数入参
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚。另外再介绍一下.NET Core的DI实现以及对实例生命周期的管理(这个是经常面试会问到的问题)。最后再给大家简单介绍一下在控制台以及Mvc下如何使用DI,以及如何把默认的Service Container 替换成Autofac。 我录了一些关于ASP.NET Core的入门视频:有兴趣的同学可以去看看。 http://www.cnblogs.com/jesse
在ASP.NET Core中,有两种常见的依赖注入方式:原生依赖注入和三方依赖注入。
在这个特殊的春节,大家想必都在家出不了门,远看已经到了回城里上班的日子,但是因为一只蝙蝠的原因导致我们无法回到工作岗位,大家可能有的在家远程办公,有些在家躺着看书,有的是在家打游戏;在这个特殊无聊的日子,从无聊的被窝中 开启了流量共享wifi 来进行.net core 3.1 源代码的解读和学习,并且把学习到的东西分享给大家。
作为一个.Net攻城狮已经4年有余了,一直不温不火,正好近来项目不是很忙,闲得无聊,搞一搞新技术,一方面是打发无聊的时间,一方面也是督促自己该学习辣!身边的大神都转行的转行,加薪的加薪,本人比较懒,只想搞技术 [哭笑] ,也是怀着小小的梦想,做一个系列文章可以和大家一起进步,讨论,希望总阅读数能上1万(已实现12月28日19:41),阅读2万(2019年4月3日19:36),3万(2019年5月28日09:37),4万?嗯,哈哈哈哈
在使用 Autofac 框架进行开发后,编写集成测试时,需要用 Mock 的用于测试的模拟的类型去代替容器里面已注入的实际类型,也就需要在 Autofac 完全收集完成之后,再次注入模拟的对象进行覆盖原有业务代码注册的正式对象。但 Autofac 默认没有提供此机制,我阅读了 Autofac 的源代码之后,创建了一些辅助代码,实现了此功能。本文将告诉大家如何在集成测试里面,在使用了 Autofac 的项目里面,在所有收集完成之后,注入用于测试的 Mock 类型,和 Autofac 接入的原理
本文以自己在工作中学习和使用.net core generic-host 作一个总结。
Output类需要Rely类来帮助它实现输出的功能,这样Output类对Rely类产生了依赖,可以理解为Output依赖于Rely
Ordering microservice(订单微服务)就是处理订单的了,它与前面讲到的几个微服务相比要复杂的多。主要涉及以下业务逻辑:
在.NET上现在存在许多的依赖注入容器, 我也在实践中使用过Castle Windsor、StructureMap、Autofac 、Unity。这些容器的简要介绍可以参看: IoC in .NET part 1: Autofac IoC in .NET part2: StructureMap IoC in .NET part 3: Ninject 2 beta IoC in .NET part4: Spring.NET IoC in .NET part 5: Using CastleWindsor con
接下来,演示 AOP 场景,它指的是在不期望改变原有类的情况下,在方法执行时嵌入一些逻辑,使得可以在方法执行的切面上任意插入逻辑
前言 本文主要是详解一下在ASP.NET Core中,自带的IOC容器相关的使用方式和注入类型的生命周期. 这里就不详细的赘述IOC是什么 以及DI是什么了.. emm..不懂的可以自行百度. 正文 上一篇我们说过ASP.NET Core中自带的IOC容器是属于轻量级的,功能并不是很多,只是提供了基础功能而已.. 所以今天我们主要讲讲如何采用Autofac来替换IOC容器,并实现属性注入 注意:本文需要读者理解DI IOC并使用过相关框架. 1.将默认的IOC容器替换为Autofac 首先,我们需要从nu
ASP.Net.Mvc 引用 install-package autofac install-package Mvc5 //创建一个用于注册的对象 ContainerBuilder builder = new ContainerBuilder() //获取实现类的程序集 Assembly[] assembly = new Assembly[]{Assembly.Load(实现类程序集)} builder.RegisterAssemblyTypes(assembly) //注册程序集 .
新建IUserService,类UserService,控制器UserController
老版Abp对Castle的严重依赖在vnext中已经得到了解决,vnext中DI容器可以任意更换,为了实现这个功能,底层架构相较于老版abp,可以说是进行了高度重构.当然这得益于.Net Core的DI容器组件本身的优势.接着abp vnext2.0核心组件之模块加载组件源码解析上文,上文中我跳过了DI切换这个流程,因为我觉得这是整个框架的亮点之一,所以单独写了这篇随笔.
一、什么是依赖注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Control),DI等概念搞晕。 1.1依赖 当一个类需要另一个类协作来完成工作的时候就产生了依赖。比如我们在AccountController这个控制器需要完成和用户相关的注册、登录 等事情。其中的登录我们由EF结合Idnetity来完成,所以我们封装了一个EFLoginService。这里AccountControlle
2020年了,放眼望去,单体架构已经渐行渐远,分布式架构大行其道,微服务更是如火如荼。作为分布式实施的基础,跨进程通信的技术也是五花八门,为什么Core WebApi越来越火,被众多大牛们一直推荐?小编这就为你一一解答!
转一篇他人写的数据库设计技巧,感觉也不一定都正确,开拓一下思路吧。 说到数据库,我认为不能不先谈数据结构。1996年,在我初入大学学习计算机编程时,当时的老师就告诉我们说:计算机程序=数据结构+算法。尽管现在的程序开发已由面向过程为主逐步过渡到面向对象为主,但我还是深深赞同8年前老师的告诉我们的公式:计算机程序=数据结构+算法。面向对象的程序开发,要做的第一件事就是,先分析整个程序中需处理的数据,从中提取出抽象模板,以这个抽象模板设计类,再在其中逐步添加处理其数据的函数(即算法),最后,再给类中的数据成员和函数划分访问权限,从而实现封装。 数据库的最初雏形据说源自美国一个奶牛场的记账薄(纸质的,由此可见,数据库并不一定是存储在电脑里的数据^_^),里面记录的是该奶牛场的收支账目,程序员在将其整理、录入到电脑中时从中受到启发。当按照规定好的数据结构所采集到的数据量大到一定程度后,出于程序执行效率的考虑,程序员将其中的检索、更新维护等功能分离出来,做成单独调用的模块,这个模块后来就慢慢发展、演变成现在我们所接触到的数据库管理系统(DBMS)——程序开发中的一个重要分支。 下面进入正题,首先按我个人所接触过的程序给数据库设计人员的功底分一下类: 1、没有系统学习过数据结构的程序员。这类程序员的作品往往只是他们的即兴玩具,他们往往习惯只设计有限的几个表,实现某类功能的数据全部塞在一个表中,各表之间几乎毫无关联。网上不少的免费管理软件都是这样的东西,当程序功能有限,数据量不多的时候,其程序运行起来没有什么问题,但是如果用其管理比较重要的数据,风险性非常大。 2、系统学习过数据结构,但是还没有开发过对程序效率要求比较高的管理软件的程序员。这类人多半刚从学校毕业不久,他们在设计数据库表结构时,严格按照教科书上的规定,死扣E-R图和3NF(别灰心,所有的数据库设计高手都是从这一步开始的)。他们的作品,对于一般的access型轻量级的管理软件,已经够用。但是一旦该系统需要添加新功能,原有的数据库表差不多得进行大换血。 3、第二类程序员,在经历过数次程序效率的提升,以及功能升级的折腾后,终于升级成为数据库设计的老鸟,第一类程序员眼中的高人。这类程序员可以胜任二十个表以上的中型商业数据管理系统的开发工作。他们知道该在什么样的情况下保留一定的冗余数据来提高程序效率,而且其设计的数据库可拓展性较好,当用户需要添加新功能时,原有数据库表只需做少量修改即可。 4、在经历过上十个类似数据库管理软件的重复设计后,第三类程序员中坚持下来没有转行,而是希望从中找出“偷懒”窍门的有心人会慢慢觉悟,从而完成量变到质变的转换。他们所设计的数据库表结构有一定的远见,能够预测到未来功能升级所需要的数据,从而预先留下伏笔。这类程序员目前大多晋级成数据挖掘方面的高级软件开发人员。 5、第三类程序员或第四类程序员,在对现有的各家数据库管理系统的原理和开发都有一定的钻研后,要么在其基础上进行二次开发,要么自行开发一套有自主版权的通用数据库管理系统。 我个人正处于第三类的末期,所以下面所列出的一些设计技巧只适合第二类和部分第三类数据库设计人员。同时,由于我很少碰到有兴趣在这方面深钻下去的同行,所以文中难免出现错误和遗漏,在此先行声明,欢迎大家指正,不要藏私哦8) 一、树型关系的数据表 不少程序员在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类,某些子类又有子类这样的情况。当类别不确定,用户希望可以在任意类别下添加新的子类,或者删除某个类别和其下的所有子类,而且预计以后其数量会逐步增长,此时我们就会考虑用一个数据表来保存这些数据。按照教科书上的教导,第二类程序员大概会设计出类似这样的数据表结构: 类别表_1(Type_table_1) 名称 类型 约束条件 说明 type_id int 无重复 类别标识,主键 type_name char(50) 不允许为空 类型名称,不允许重复 type_father int 不允许为空 该类别的父类别标识,如果是顶节点的话设定为某个唯一值 这样的设计短小精悍,完全满足3NF,而且可以满足用户的所有要求。是不是这样就行呢?答案是NO!Why? 我们来估计一下用户希望如何罗列出这个表的数据的。对用户而言,他当然期望按他所设定的层次关系一次罗列出所有的类别,例如这样: 总类别 类别1 类别1.1 类别1.1.1 类别1.2 类别2 类别2.1 类别3 类别3.1 类别3.2 …… 看看为了实现这样的列表显示(树的先序遍历),要对上面的表进行多少次检索?注
一个轻量的 Web 应用框架, 具有优雅、高效、简洁、富于表达力等优点。采用 前后端分离 设计,是崇尚开发效率的全栈框架
本文不介绍IoC和DI的概念,如果你对Ioc之前没有了解的话,建议先去搜索一下相关的资料 这篇文章将简单介绍一下AutoFac的基本使用以及在asp .net core中的应用 Autofac介绍 组件的三种注册方式 反射 现成的实例(new) lambda表达式 (一个执行实例化对象的匿名方法) 下面是一些简短的示例,我尽可能多的列出来一些常用的注册方式,同时在注释中解释下“组件”、“服务”等一些名词的含义 // 创建注册组件的builder var builder = new ContainerBui
从NetCore1.1开始学起,然后又从2.0开始讲知识,再到将所有的在线项目升级并长期维护到3.1,转眼已经三年了,一直紧跟着微软的节奏有条不紊的往前走,我相信,只要是从18年末或者19年初跟着我的教程中的,肯定都已经学的可以了,今天开始我们就正式进入.NET5.x时代,当然官方还没有公布正式版(预计2020年11月发布正式版本,也就是一个月后,我项目的主分支会迁到.NET5上),不过8月25号的第八个预览版本已经出来了,基本已经差不多了,今天就尝试的升级一波,过程很简单,没有多余的不理解的知识点,就是无脑点鼠标就对了。
本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回《【 .NET Core3.0 】框架之九 || 依赖注入IoC学习 + A
其中.Net Framework框架主要以如何引入AutoFac作为容器以及如何运用AuotoFac为主,.Net Core框架除了研究引入AutoFac的两种方式,同时也运用反射技巧对其自带的DI框架进行了初步封装,实现了相同的依赖注入效果。 项目架构如下图:
摘要: 大概一年前开始在思考 构造函数中 依赖注入较多,这对系统性能及硬件资源消耗产生一些优化想法。一般较多公司的项目都使用Autofac 依赖注入(Scoped 作用域),但是发现过多的对象产生 会消耗 CPU , 内存 并给GC(垃圾回收)造成一定的压力。那么开始思考是否能够使用 单例 (Singleton)来解决这些问题呢?带着这些想法开始ReView整个项目的代码,排查是否存在 单例 会造成 线程安全 或 方法内修改全局变量的代码( 结果是乐观的.... )。于是开始了性能测试....论证.. 试运行... ,结果是超预期的(CPU 从 60%-降低到--》10%, 内存 从 33%-降低到--》20%, 接口平均响应时间 从 120毫秒--降低到--》50毫秒 . 1500/QPS (不含内部服务相互调用)) 和 @InCerry 沟通结果,说可以写个 案例 和大家分享分享... 于是乎 有了这一片文章。
在使用 Autofac 作为 IoC 容器,因为 Autofac 默认的创建时机是在主机运行时。而在此 Module 被 Load 时注入的对象的注入的时机,将会在单元测试 Fake 注入之后,这就意味着 Load 时注入的对象将会覆盖 Fake 的对象。可以通过调用 Autofac 的 PreserveExistingDefaults 方法解决覆盖的问题
领取专属 10元无门槛券
手把手带您无忧上云