现在直播大热,从游戏直播到直播带货,这几年都是最热门的了。教育直播、视频会议、云点播等各种基于直播构建的业务模式,让众多企业也都开始配备自己的直播平台。14年在公司带队做了个游戏直播平台,疫情期间在家重构了下项目,以Asp.Net Core+Dapper+腾讯云构建了个可用的直播平台,这里给大家分享下。

毋庸置疑,Asp.Net Core

去年12月3号发布的.NET Core3.1拥有着超高人气,有太多理由推动我们去选择它,下面我再赘述一遍:

1

高性能,前几天TechEmpower第19轮编程语言框架性能排行榜已经是主流Web框架第一。

2

.Net Core无所不能,尤其是今年11月份要发布的.NET5会直接打通7大方向。

3

.NET Core开源跨平台,batter late than never,积极看好。

4

部署灵活,对云原生,容器化支持很好,是现代化敏捷开发首选!

这里还附一个Stackoverflow 2020 年度开发者调查结果,ASP.NET Core 登顶最受喜爱的Web 框架!

性能之王,Dapper

这次重构选择了Dapper,站在O/RM鄙视链顶端的框架。

O/RM鄙视链:使用EntityFramework的看不起NHibernate的笨拙,使用EF Core的鄙视EF未跨平台,使用SqlSugar的鄙视EF Core的重量级,使用Dapper的鄙视SqlSugar的流行度。

Dapper是一款轻量级O/RM框架,在速度方面拥有微型ORM之王的称号。本次重构选择Dapper是因为其具备以下特点:

1

Dapper是一个轻量级ORM类,代码就是一个SQLMapper.cs文件,编译后才40k的dll。

2

Dapper快,其速度接近IDataReader,取列表的数据超过DataTable

3

Dapper支持Mysql,sqlLite,SQLServer,Oracle等一系列数据库。

4

Dapper支持一对多,多对多,并且没侵入性,想用就用。

5

Dappe是通过Emit反射IDateReader的队列,来快速得到和产生对象。

6

Dapper语法简单,快速入手。

上图是性能对比,除了原生的DataReader,Dapper就是性能之王!Dapper的基础使用很简单,这里给大家罗列几个项目中使用频繁的进阶功能案例。

Dapper Plus

其实就是批量操作优化,基于SqlBulk实现,需要SqlServer2008+,包括Bulk Insert,Bulk Update,Bulk Delete,Bulk Merge。

事务和工作单元

Dapper的事务使用本身不难,就是常规开启事务-提交事务-回退事务,不过写起来就不那么优雅了。在项目中封装了一个UnitOfWork的工作单元,AOP模式工作的。类似这样标记下,就能轻松自动实现事务了。

其封装是基于Autofac容器和 其DynamicProxy来实现的,核心代码如下

SQL监控

Dapper的SQL监控也是基于MiniProfiler做的,只需要导入MiniProfiler.AspNetCore,扩展到ActionFilter即可。

纸上得来终觉浅,绝知此事要躬行,一篇文章没法介绍到项目的方方面面,这里为大家开设一波实战直播课,实操解读Asp.Net Core+Dapper直播平台,感兴趣的小伙伴儿请扫码领取免费入场券,今晚20:00不见不散!

该系列课程包含且不限于以下内容:

1  Dapper实战到扩展封装,包括上文中的例子

2  Asp.Net Core+Dapper+数据读写分离方案+数据库调优

3  介绍腾讯云服务器直播点播对接等

此外,本系列课程是基于VS2019+.NET Core3.1环境开发,这里有为大家准备好软件包,以及一套Asp.Net Core入门实战课程合集,还有项目中会用的MongoDB、Redis等学习教程,欢迎大家加助教小姐姐的二维码获取配套资料

安装包及全部学习资料

扫码自取

领取人数较多,添加以下号码也可免费领取哦!

微信号:zhaoxiPenny

国内首屈一指的.Net学习社区

你加入了吗?

完整配套的学习资料

最新最热的技术文章

核心知识点面试真题

社区内优质岗位直推

全部免费奉送给大家

赶快扫码加入社区吧

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐