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开发一个带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

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark