Asp.Net Core+Dapper开发直播平台!

2023-11-06 06:18

本文主要是介绍Asp.Net Core+Dapper开发直播平台!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在直播大热,从游戏直播到直播带货,这几年都是最热门的了。教育直播、视频会议、云点播等各种基于直播构建的业务模式,让众多企业也都开始配备自己的直播平台。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学习社区

你加入了吗?

完整配套的学习资料

最新最热的技术文章

核心知识点面试真题

社区内优质岗位直推

全部免费奉送给大家

赶快扫码加入社区吧

这篇关于Asp.Net Core+Dapper开发直播平台!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354917

相关文章

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用