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

相关文章

一文教你如何解决Python开发总是import出错的问题

《一文教你如何解决Python开发总是import出错的问题》经常朋友碰到Python开发的过程中import包报错的问题,所以本文将和大家介绍一下可编辑安装(EditableInstall)模式,可... 目录摘要1. 可编辑安装(Editable Install)模式到底在解决什么问题?2. 原理3.

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka