autofac

基于 abp vNext 和 .NET Core 开发博客项目

 ̄綄美尐妖づ 提交于 2020-08-11 12:36:49
上一篇文章( https://www.cnblogs.com/meowv/p/12896177.html )已经成功创建了博客项目,但是abp默认给我们引用了许多项目中用不到的组件。 本篇文章将给项目进行瘦身,删掉对我们来说暂时用不到的组件。讲解各个模块之间的关系,写一个Hello World,让其成功运行起来。 给项目瘦身 Meowv.Blog.HttpApi.Hosting Meowv.Blog.HttpApi.Hosting 相当于一个web项目,但这里主要依赖于 Meowv.Blog.HttpApi 模块,用来暴露我们的API的。 删掉 Meowv.Blog.HttpApi.Hosting 项目中abp自己生成的文件和文件夹,只留下 Program.cs 和 Startup.cs 两个类。 在abp中,每个模块都应该定义一个模块类,派生自 AbpModule ,那么就添加一个模块类 MeowvBlogHttpApiHostingModule.cs AbpModule 类中可以做 配置服务前和后的操作,应用程序初始化,应用程序初始化前和后,应用程序关闭和模块依赖等一系列操作,详看, https://docs.abp.io/en/abp/latest/Module-Development-Basics 为了方便,在这里直接集成Autofac,来替换官方依赖注入,详看,

浅谈.Net Core DependencyInjection源码探究

冷暖自知 提交于 2020-08-11 09:40:36
前言 相信使用过Asp.Net Core开发框架的人对自带的DI框架已经相当熟悉了,很多刚开始接触.Net Core的时候觉得不适应,主要就是因为Core默认集成它的原因。它是Asp.Net Core基础核心框架之一,对于Asp.Net Core来说DI就灵魂,已经深入到这框架的骨髓里了。对于IOC和DI,可能每个人都能说出自己的理解。IOC全称是Inversion of Control翻译成中文叫控制反转,简单的说就是把对象的控制权反转到IOC容器中,由IOC管理其生命周期。DI全称是DependencyInjection翻译成中文叫依赖注入,就是IOC容器把你依赖的模块通过注入的方式提供给你,而不是你自己主动去获取,其形式主要分为构造注入和属性注入,Core自带的DI只支持构造注入,至于为什么,最多的说法就是构造注入能使得依赖变得更清晰,我既然依赖你,那么我实例化的时候你就必须得出现。而构造函数恰恰就承担着这种责任。 简单介绍 很多人接触它的时候应该都是从Asp.Net Core学习过程中开始的。其实它本身对Asp.Net Core并无依赖关系,Asp.Net Core依赖DI,但是这套框架本身并不只是可以提供给Asp.Net Core使用,它是一套独立的框架,开源在微软官方Github的extensions仓库中具体地址是 https://github.com/dotnet

ASP.NET Core中使用Autofac进行属性注入

点点圈 提交于 2020-08-11 08:48:54
原文: ASP.NET Core中使用Autofac进行属性注入 一些无关紧要的废话:   作为一名双修程序员(自封的),喜欢那种使用Spring的注解形式进行依赖注入或者Unity的特性形式进行依赖注入,当然,形式大同小异,但结果都是一样的,通过属性进行依赖注入。   ASP.NET Core中使用了自带的Dependency Injection作为了默认的IOC容器,当然有先天的优势,很多还是喜欢切换到Autofac作为IOC容器,Unity在.Net Core中还是有很大的优势的,但据我所知,Unity5已经由微软转交到基金会了,而且本身文档很少,翻译文档以及研究的就更加少了。   当然,说了一堆废话,Autofac本身也是支持属性注入的,但是很多还是使用构造器进行注入,我本身也是推荐使用构造器进行注入(其实我不是这么想的),因为使用属性进行注入,将会暴露当前类的属性(Autofac属性注入属性必须为public),Spring可以用private进行注入的,但是不知道为什么,Autofac我使用private的时候注入进来的时候是null,如果文章有错误的话,希望高手能在留言处指出,帮助我及更多人进步。谢谢。 ⒈新建一个ASP.NET Core MVC程序。 ⒉添加 NuGet 包 Install- Package Autofac Install -Package

基于 abp vNext 和 .NET Core 开发博客项目

ぃ、小莉子 提交于 2020-08-10 22:28:48
上一篇文章( https://www.cnblogs.com/meowv/p/12896177.html )已经成功创建了博客项目,但是abp默认给我们引用了许多项目中用不到的组件。 本篇文章将给项目进行瘦身,删掉对我们来说暂时用不到的组件。讲解各个模块之间的关系,写一个Hello World,让其成功运行起来。 给项目瘦身 Meowv.Blog.HttpApi.Hosting Meowv.Blog.HttpApi.Hosting 相当于一个web项目,但这里主要依赖于 Meowv.Blog.HttpApi 模块,用来暴露我们的API的。 删掉 Meowv.Blog.HttpApi.Hosting 项目中abp自己生成的文件和文件夹,只留下 Program.cs 和 Startup.cs 两个类。 在abp中,每个模块都应该定义一个模块类,派生自 AbpModule ,那么就添加一个模块类 MeowvBlogHttpApiHostingModule.cs AbpModule 类中可以做 配置服务前和后的操作,应用程序初始化,应用程序初始化前和后,应用程序关闭和模块依赖等一系列操作,详看, https://docs.abp.io/en/abp/latest/Module-Development-Basics 为了方便,在这里直接集成Autofac,来替换官方依赖注入,详看,

同城技术负责人纯手写:小团队构建大网站中小研发团队架构实战

那年仲夏 提交于 2020-08-10 20:12:53
本书结合作者近几年的工作经验,总结了一套可直接落地、基于开源、成本低、可快速搭建的中小研发团队架构实践方法。本书共5篇22章,开篇是本书的导读;架构篇是设计思想的提升,包括企业总体架构、应用架构设计、统- -应用分层等;框架篇主讲中间件和工具的使用,包括消息队列、缓存、Job、 集中式日志、应用监控和微服务等:公共应用篇是技术与业务的结合,包括单点登录和企业支付网关:进阶篇是从架构到管理,包括技改案例、技术与业务的匹配与融合等。从架构、框架、公共应用,到案例实战和技术管理,本书将大公司的工程理念压缩应用到中小研发团队,使小团队也能构建大网站。 本书不仅适用于高级程序员、架构师、CTO,也适用于IT项目经理、技术经理,以及对架构技术感兴趣的中高级软件开发从业者。需要获取的小伙伴可以直接添加小助理vx:kaixindian331或者扫文末二维码即可免费获取! 前言 需求:没有人会读前言? ! 解决方案:把前言内容写好,并作为开篇第1章。 话不多说直接开始“展示” 第1篇开篇. 1可参考的才是有价值的(含案例和代码) 第2篇架构篇 2企业总体架构 3应用架构设计 4统一应用分层 5生产环境诊断工具 WinDbg. 第3篇框架篇 6 RabbitMQ 快速入门及应用 7 Redis 快速入门及应用 8任务调度Job. 9应用监控系统Metrics 10 集中式日志ELK 11微服务架构

从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存

时光怂恿深爱的人放手 提交于 2020-08-09 21:29:18
本文3.0版本文章 https://mp.weixin.qq.com/s/pjvleNGi_AazZ7COdxQyPQ 代码已上传Github+Gitee,文末有地址   上回《 从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之九 || 依赖注入IoC学习 + AOP界面编程初探 》咱们说到了依赖注入Autofac的使用,不知道大家对IoC的使用是怎样的感觉,我个人表示还是比较可行的,至少不用自己再关心一个个复杂的实例化服务对象了,直接通过接口就满足需求,当然还有其他的一些功能,我还没有说到,抛砖引玉嘛,大家如果有好的想法,欢迎留言,也可以来群里,大家一起学习讨论。昨天在文末咱们说到了AOP面向切面编程的定义和思想,我个人简单使用了下,感觉主要的思路还是通过拦截器来操作,就像是一个中间件一样,今天呢,我给大家说两个小栗子,当然,你也可以合并成一个,也可以自定义扩展,因为我们是整个系列是基于Autofac框架,所以今天主要说的是基于Autofac的Castle动态代理的方法,静态注入的方式以后有时间可以再补充。   时间真快,转眼已经十天过去了,感谢大家的鼓励,批评指正,希望我的文章,对您有一点点儿的帮助,哪怕是有学习新知识的动力也行,至少至少,可以为以后跳槽增加新的谈资 [哭笑],这些天我们从面向对象OOP的开发

.NET 技术栈 思维导图

橙三吉。 提交于 2020-08-08 17:00:39
背景介绍 根据网上招聘网站的一些.NET技能需求,画了一个图,便于在自修和学习的过程当中有一个方向。 技能栈 Web front-end o 框架技术 ▣ Vue ▣ Bootstrap ▣ LayUI ▣ EasyUI ▣ Node.js ▣ ReactJS ▣ Angular ▣ Webpack o 开发工具 ▨ 编码工具 ▣ HBuilder X ▨ 设计工具 ▣ PxCook -- 像素大厨 ▣ 蓝湖 ▣ Visio ▣ 迅捷流程图软件 Website o 框架技术 ▨ 云服务模型 ▣ Saas -- 软件即服务 ▣ IaaS -- 基础设施即服务 ▣ PaaS -- 平台即服务 ▨ 缓存技术 ▣ Redis ▣ MemoryCache ▣ Session ▨ 消息队列 ▣ Windows Message Queue ▣ RabbitMQ ▣ Kafka ▨ 数据操作 ▤ ORM -- 对象关系映射(Object Relational Mapping) ▣ Entity framework 〼 Code First 〼 Database First 〼 Model First ▣ NHibernate ▣ Dapper ▨ 框架概念 ▤ OOD -- 面向对象设计(Object-Oriented Design) ▤ DDD -- 领域驱动设计(Domain

基于 abp vNext 和 .NET Core 开发博客项目

给你一囗甜甜゛ 提交于 2020-08-08 11:20:47
上一篇文章( https://www.cnblogs.com/meowv/p/12913676.html )我们用Code-First的方式创建了博客所需的实体类,生成了数据库表,完成了对EF Core的封装。 本篇说一下自定义仓储的实现方式,其实在abp框架中已经默认给我们实现了默认的通用(泛型)仓储, IRepository<TEntity, TKey> ,有着标准的CRUD操作,可以看: https://docs.abp.io/zh-Hans/abp/latest/Repositories 学习更多。 之所以实现自定义仓储,是因为abp没有给我们实现批量插入、更新的方法,这个是需要自己去扩展的。 既然是自定义仓储,那么就有了很高的自由度,我们可以任意发挥,可以接入第三方批量处理数据的库,可以接入Dapper操作等等,在这里贴一下微软官方推荐的一些EF Core的工具和扩展: https://docs.microsoft.com/zh-cn/ef/core/extensions/ 。 自定义仓储 在 .Domain 领域层中创建仓储接口, IPostRepository 、 ICategoryRepository 、 ITagRepository 、 IPostTagRepository 、 IFriendLinkRepository ,这里直接全部继承 IRepository

手写IOC容器

邮差的信 提交于 2020-08-07 11:29:07
IOC(控制翻转)是程序设计的一种思想,其本质就是上端对象不能直接依赖于下端对象,要是依赖的话就要通过抽象来依赖。这是什么意思呢?意思就是上端对象如BLL层中,需要调用下端对象的DAL层时不能直接调用DAl的具体实现,而是通过抽象的方式来进行调用。这样做是有一定的道理的。有这么一个场景,你们的项目本来是用Sqlserver来进行数据访问的,那么就会有一个SqlserverDal对象。BLL层调用的时候通过new SqlserverDal(),直接创建一个SqlserverDal对象进行数据访问,现在项目又要改为Mysql数据库,用MysqlDal进行数据访问。这时候就麻烦了,你的BLL层将new SqlserverDal()全部改为new MysqlDal()。同理BLL层也是这个道理。这么做,从程序的架构而言是相当不合理的,我只是想将SqlserverDal替换为MysqlDal。按道理说我只要添加MysqlDal对象就可以了。可现在的做法是还要将BLL中的new SqlserverDal()全部改一遍。这未免有点得不偿失了。这时IOC就排上用场了,IOC的核心理念就是上端对象通过抽象来依赖下端对象,那么我们在BLL中,不能直接通过new SqlserverDal()来创建一个对象,而是通过结构来声明(抽象的形式来进行依赖)

同城技术负责人纯手写:小团队构建大网站中小研发团队架构实战

♀尐吖头ヾ 提交于 2020-08-04 17:46:11
本书结合作者近几年的工作经验,总结了一套可直接落地、基于开源、成本低、可快速搭建的中小研发团队架构实践方法。本书共5篇22章,开篇是本书的导读;架构篇是设计思想的提升,包括企业总体架构、应用架构设计、统- -应用分层等;框架篇主讲中间件和工具的使用,包括消息队列、缓存、Job、 集中式日志、应用监控和微服务等:公共应用篇是技术与业务的结合,包括单点登录和企业支付网关:进阶篇是从架构到管理,包括技改案例、技术与业务的匹配与融合等。从架构、框架、公共应用,到案例实战和技术管理,本书将大公司的工程理念压缩应用到中小研发团队,使小团队也能构建大网站。 本书不仅适用于高级程序员、架构师、CTO,也适用于IT项目经理、技术经理,以及对架构技术感兴趣的中高级软件开发从业者。需要获取的小伙伴可以直接添加小助理vx:kaixindian331或者扫文末二维码即可免费获取! 前言 需求:没有人会读前言? ! 解决方案:把前言内容写好,并作为开篇第1章。 话不多说直接开始“展示” 第1篇开篇. 1可参考的才是有价值的(含案例和代码) 第2篇架构篇 2企业总体架构 3应用架构设计 4统一应用分层 5生产环境诊断工具 WinDbg. 第3篇框架篇 6 RabbitMQ 快速入门及应用 7 Redis 快速入门及应用 8任务调度Job. 9应用监控系统Metrics 10 集中式日志ELK 11微服务架构