ASP.NET8视频教程第一季度战报
从去年十二月的时候,开始录制一套基于BlogCore的ASP.NET8.0从入门到实战的视频教程,主要还是自我的一次查缺补漏的过程,因为知识这东西,要一直练一直练,如果中断一个月,瞬间很多东西就看不懂了,所以我就逼着自己每天学习一个小知识点,或者温习一个以前学过的小知识点,这套视频教程就是这个契机,当然更多的也是一次自我贡献的想法
从去年十二月的时候,开始录制一套基于BlogCore的ASP.NET8.0从入门到实战的视频教程,主要还是自我的一次查缺补漏的过程,因为知识这东西,要一直练一直练,如果中断一个月,瞬间很多东西就看不懂了,所以我就逼着自己每天学习一个小知识点,或者温习一个以前学过的小知识点,这套视频教程就是这个契机,当然更多的也是一次自我贡献的想法
先说下故事背景,我们平时在部署Vue等前端项目的时候,因为客户端浏览器缓存原则,经常会出现修改后,而用户不能第一时间更新的情况,只能通过禁用缓存,或者配置nginx,或者干脆联系用户,让用户刷新页面等方案,我都尝试过,都不是很舒服,今天又学到了一个技巧,分享给大家,个人感觉还是可以的,是一个思路,可以往这个方向思考。
我相信,只要代码写到足够多的时候,就肯定会遇到足够的BUG和难题,常见有错误日志的还是比较简单的,最让人头疼的就是OOM,内存溢出,各种重启,内存居高不下等等疑难杂症。
因为BlogCore已经做好了兼容,得益于Sqlsugar的优秀支持,不用考虑实体模型,只需要配置好连接字符串,就能直接生成数据库表和数据,直接使用。
本地通过客户端连接刚刚搭建好的达梦数据库有两个工具,第一个就是达梦自己的客户端工具,我感觉也是很好用,还支持导入导出,功能更丰富一些。
随着最近几年国产化的发展,现在很多项目都要求信创和国产化,其中国产数据库就肯定需要讨论,今天就给大家分享下,如何在BlogCore操作达梦数据库。
框架中重点使用RabbitMQ和Kafka作为消息队列的中间件工具,本章节说明RabbitMQ的具体使用方式。
框架高度集成Quartz.Job组件作为任务调度方案,并且在Admin管理后台,有丰富的界面可以进行Web页面配置。 不仅支持按次数执行,也支持Cron表达式定时执行。 同时也支持类模式和接口模式两种方式逻辑设计方式。
框架集成MiniProfiler+Swagger来做接口的简单性能分析,和每次请求中相关的Sql执行情况报告;
框架使用AutoMapper来处理对象与对象之间的转换,比较好的处理实体模型和视图模型之间的转换,在代码优化层面起到了很好的作用;
活动当天是周末,老张会在现场代表 BCVP 开发者社区进行摆摊儿哟,当然也会准备一些社区周边礼品可以免费领取,先到先得,欢迎粉丝面基✧٩(ˊωˋ*)و✧
框架高度集成Serilog,继承ASP.NETCore官方的ILogger<>接口,作为记录整个系统应用生命周期的日志工具,涵盖了平时企业应用的常见场景:
老张是自己一个人开始做内容分享的,那时候正好赶上.NETCore正式跨平台开源,社区还不是很多,当时我就开始想着做社区,但是一个人毕竟能力有限,需要挂靠平台才能更好,最后还是选择了博客园,当时25岁正值有头发的时候,也是天天熬夜写文章,做分享,也是无心插柳吧,老张的哲学这个称呼开始在.NET圈子里出现。
BCVP社区自从成立以来,一直致力于在国内推广以ASP.NETCore+VUE为核心的前后端分离架构的技术传播,从几年前我自己开发代码,到现在成立了BCVP开发组的五名成员,以“学以致用,学以分享”为目的,对开源的项目也一直从未收费,也一直从未断更,其实我们每个人都是开源社区的既得利益者,只是总需要一批人去把更多的内容继续进行分享升华,BCVP开发者社区成员就是这样一批人。
setup特点 1.执行时机比beforeCreate还要早 2.函数中是获取不到this 3.数据和函数需要在setup最后return才能在模板中应用
1.父组件中给子组件绑定属性 2.子组件内部通过props选项接收 子传父 1.父组件中给子组件标签通过@绑定事件 2.子组件内部通过emit方法触发事件
得益于之前升级7.0的好处,升级到8.0显得特别简单与方便,只要保证项目能正常编译,基本就没有任何问题
BCVP社区已经开源了六七个年头了,也开源了好几个开源项目,为了给广大粉丝演示这些项目的效果,就每个项目做了一个在线的案例Demo,同时也配套了一个Mysql的数据库
框架中有两种获取参数配置的方式。 本章节是第一种——通过单例模式,将appsettings.json文件中的所有配置,在项目启动的时候,统一添加到了AppSettings对象实例中。
框架中有两种获取参数配置的方式。 本章节是第二种—— 将appsettings.json文件中的所有配置,通过依赖注入的方式,填充到各自对应的对象实例里。 注意:本方法只支持根节点的参数配置,如果想要获取非根节点的,可以做个嵌套的子类。
整个框架已经做到了基于类库dll程序集级别的服务自动注册。 不需要自己单独做处理,只要在对应的分层中,写入.cs文件即可使用对应的服务
框架已经将缓存集成到了官方的IDistributedCache分布式缓存接口,可以直接使用内存缓存和分布式缓存。 默认使用内存缓存,开启Redis开关以后,使用分布式缓存。
框架高度集成国产优秀ORM——Sqlsugar,支持常规企业级所有的数据库操作场景: 1、全部兼容国产数据库;2、支持同时连接操作多种数据库,且相互之间不受影响;3、支持事务;4、支持主从分离模式;5、支持主备模式(主库挂了,会自动切换到备用库);6、详细的Sql操作日志;
在2023年12月9号,老张开启了新的一系列视频教程——从0开始讲解ASP.NET8.0,并配合B站视频进行讲解,然后还有对于的Github配套每一节课的代码。在社区做贡献的同时,也给自己抽时间温故而知新的机会,毕竟自己这一年也在工作中学习到了很多企业方面的架构思想,所以就再重新学习下ASP.NET8,实现三省吾身,读书百遍其意自现的目标。
在新的一年到来之际,打算基于BlogCore为框架模型,从0开始讲解ASP.NET8.0,并配合B站视频进行讲解,然后还有对于的Github配套文章,当然,毕竟众口难调,如果感觉看着质量不高,就不要再看了,重点还是照顾下新手,或者说想对.NETCore温故而知新的小伙伴来的。
本文是一个Apisix的快速搭建文章记录,如果想要了解更多Apisix的相关概念,请查看官网进行学习。https://apisix.apache.org/
Apisix提供了很多插件,通过鉴权插件,并配合自定义服务接口,可以很好实现网关层面的统一鉴权,认证还是可以走统一认证中心。
Prometheus、Grafana、Node Exporter 和Alertmanager是一组用于监控和可视化系统性能的开源工具。它们通常一起使用,形成一个强大的完整的监控和告警系统。
这里需要把映射出来的数据目录修改最高权限,否则容器启动后将会出现无法访问的情况
最近这几年间,一直很多用户和粉丝留言,说Blog.Core框架开源这么多年以来,一直在同步更新功能,导致和博客内容不对应了,所以平时我们开发小组也会抽一些时间,简单的总结下小知识点,终于在写了很久之后,做出来了第一版的操作手册,还是纸质的哟,
服务器终于稳定了,项目也迁移完成了,BCVP (前后端分离认证鉴权一整套)框架也平稳度过了两个星期。最近半年以来
今天先说一下第一个新特性,就是KeyedService在一对多的依赖注入中的使用(也就是一个接口有多个实现类继承的情况)。
跟随着2023年的.Net Conf大会的脚步,.NET8.0也正式的和大家如约见面了了,BCVP社区也是第一时间对系统进行了升级,这得益于之前在.NET7.0做的充足的准备
距离Conf大会还有1个月,在12月16号的时候,会给大家带来一场视听盛宴,BCVP作为一个有六年的.NET社区,这次老张也会去现场给大家加油打气,同时也会在现场给大家带来周边好礼,包括但不限于:书籍、纪念杯、购物袋以及其他周边小礼品,主要还是欢迎和老张来面基
最近一直在接触安全相关的东西,无论是看书,看新闻,还是写项目——网络安全,接口安全,数据安全,资源安全等等已经被纷纷
接上文,上篇说到了我们可以通过前端把请求参数进行加密,然后传给后端,后端统一通过中间件或者过滤器进行解密,将参数回填到请求里,这样就能无感的将接口参数进行安全保护了,同时又不改变接口的写法。
将Redis缓存和Memory缓存进行整合与合并,可以通过开启分布式缓存开关,来实现缓存的自动切换。
了解创建方法的语法 创建第一个 C# 方法 确定可模块化的代码部分 使用方法将代码组织到特定任务中 高级方法讲解:递归
老张在社区也布道了好些年头了,正好今年教师节时机,和微软Reactor一起做个贡献吧,与其他五位MVP一起做了一次线上直播活动,旨在提升社区影响力和提高大家对c#和.NET的兴趣~~
为答谢各位粉丝对 BCVP 社区六年来的支持,社区开展了六周年庆活动,奖品总金额超千元,今天是活动抽奖报名最后一天啦,有想抽奖的小伙伴快来哟
2018年8月,BlogCore正式开源 《 .NETCore2.1 +Vue 2 +AOP+DI || 前言》
2018年8月,老张的哲学正式入驻博客园和Github,当天写了第一篇文章《从壹开始前后端分离【 .NETCore3.1 +Vue 2 +AOP+DI】框架之一 || 前言》
BCVP是以Blog.Core为核心框架设计的一整套跨平台、前后端分离、RBAC与数据鉴权、统一CI/CD、容器化与微服务等全方位.NET架构体系。致力于来源社区、回馈社区和提升自我。
书接上文,上篇咱们说到了我们可以将不同的配置文件给拆开,从而实现分治的思路,同时也做了一个投票——《在BlogCore中,将配置文件做可读性拆分》