学习路线图 (关于学习ASP.NET Core需要了解和掌握的知识点图) 一言不合就来图,各位博客园小伙伴大家好,感觉好久没有写文章了,自从春节开始,中间经历种种,慢慢的就开始微信公众号发文了,原因有很多,不做说明,不好的地方就是不知道目录链接,所以还是发到博客园吧. 请注意:我不是做框架的,BCVP只是作为案例来配合文章视频,掌握了技术才是关键. 为什么要突然写这篇了呢,是因为这一年我又写了一些文章和几个视频,但是因为比较杂乱无章,很多人都找不到自己想要看的资料,一直向我反馈很多次了,时不时的…
什么是Kestrel服务器 Kestrel是开源的(GitHub提供的源代码),事件驱动的异步I / O服务器,用于在任何平台上托管ASP.NET应用程序.这是一个监听服务器和一个命令行界面.您将侦听服务器安装在Windows或Linux服务器上,并在计算机上安装命令行界面(安装.netcore会自动一整套安装). 它是与ASP.NET Core一起由微软推出的.所有ASP.NET Core应用程序都使用新的MVC框架和Kestrel Web服务器.这些新的应用程序可以运行在完整的.NET Fr…
Asp.NetCore源码学习[2-1]:配置[Configuration] 在Asp. NetCore中,配置系统支持不同的配置源(文件.环境变量等),虽然有多种的配置源,但是最终提供给系统使用的只有一个对象,那就是ConfigurationRoot.其内部维护了一个集合,用于保存各种配置源的IConfigurationProvider.IConfigurationProvider提供了对配置源的实际访问.当通过key去ConfigurationRoot查找对应的Value时,实际上会通过遍历…
概述 关于这个框架的背景,在前面我已经交代过了.不清楚的可以查看这个链接 1.极简实用的Asp.NetCore模块化框架决定免费开源了 2.极简实用的Asp.NetCore模块化框架新增CMS模块 算下来确实好长时间没更新博客了,在这段时间内一直在出差,闲暇时间一直在想dotnetcore框架本身就是模块化的,为什么还要在这个上层应用上面继续进行模块化封装,意义何在?是为了更好地划分业务还是轮子重复利用? 细细想来,这个框架不应该再继续模块化下去,主要有以下几点理由支持: 1.本身于我现有地业务…
本人博客已转移至:http://www.exblr.com/liam  为什么需要依赖注入 在[ASP.NET MVC 小牛之路]系列的理解MVC模式文章中,我们提到MVC的一个重要特征是关注点分离(separation of concerns).我们希望应用程序的各部分组件尽可能多的相互独立.尽可能少的相互依赖. 我们的理想情况是:一个组件可以不知道也可以不关心其他的组件,但通过提供的公开接口却可以实现其他组件的功能调用.这种情况就是所谓的松耦合. 举个简单的例子.我们要为商品定制一个“高级”…
在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来演示Ninject在ASP.NET MVC中的应用. 为了更好的理解和撑握本文内容,强烈建议初学者阅读本文前先阅读依赖注入(DI)和Ninject. 本文目录: 准备工作 新建一个名为BookShop的空白解决方案.在该解决方案中分别添加一个名为BookShop.WebUI的MVC空应用程序,和一个…
在家闲着也是闲着,继续写我的[ASP.NET MVC 小牛之路]系列吧.在该系列的上一篇博文中,在显示书本信息列表的时候,我们是在程序代码中手工造的数据.本文将演示如何在ASP.NET MVC中使用Entity Framework从数据库中获取数据.虽然本文题目听上去比较简单,但如果你认真阅读,相信你一定会有所收获. 本文目录: ORM 和 EF 当我们要开发一个应用程序,就要考虑怎样展示数据,怎样持久化数据.考虑这个问题时我们所要关心的东西,最重要的莫过于程序的性能.开发的简易性和代码的可维护…
继上一篇文章之后,本文将介绍 Controller 和 Action 的一些较高级特性,包括 Controller Factory.Action Invoker 和异步 Controller 等内容. 本文目录 开篇:示例准备 文章开始之前,我们先来了解一下一个请求的发出到Action方法处理后返回结果的流程,请试着理解下图: 本文的重点是 controller factory 和 action invoker.顾名思义,controller factory 的作用是创建为请求提供服务的Cont…
我们平时编程写一些辅助类的时候习惯用“XxxHelper”来命名.同样,在 MVC 中用于生成 Html 元素的辅助类是 System.Web.Mvc 命名空间下的 HtmlHelper,习惯上我们把 HtmlHelper 中的(扩展)方法叫 HtmlHelper Method,由于使用频繁,就简单称为Helper Method.它的作用是把生成 Html 代码的任务交给 MVC,以便 MVC 能完成很多自动处理的工作,也减少了代码量.我们在 View 中使用的 Html.ActionLink.…
Model Binding(模型绑定)是 MVC 框架根据 HTTP 请求数据创建 .NET 对象的一个过程.我们之前所有示例中传递给 Action 方法参数的对象都是在 Model Binding 中创建的.本文将介绍 Model Binding 如何工作,及如何使用 Model Binding,最后将演示如何自定义一个 Model Binding 以满足一些高级的需求. 本文目录 理解 Model Binding 在阅读本节之前,读者最好对 URL 路由和 ControllerActionI…
上一篇博文 [ASP.NET MVC 小牛之路]15 - Model Binding 中讲了MVC在Model Binding过程中如何根据用户提交HTTP请求数据创建Model对象.在实际的项目中,我们需要对用户提交的信息进行验证.MVC 对验证提供了较好的支持,如可以通过 Model 元数据设置验证规则.用 ModelState 来处理错误信息等.本文将介绍 Model 的各种验证及其使用.虽然 Model 验证使用起来很简单,但为了更深入的理解它,强烈建议大家在阅读本文前先阅读 [ASP.…
本文介绍 MVC 4 提供的一个新特性:捆绑(Bundle),一个在  View 和 Layout 中用于组织优化浏览器请求的 CSS 和 JavaScript 文件的技术. 本文目录 了解VS默认加入的脚本库 当我们创建一个基本模板的 MVC 工程时,VS在Scripts文件夹中默认加入了一些 JavaScript 脚本库.下面是这些脚本库的简单介绍: jquery-1.8.2.js,这个就不用解释了. jquery-ui-1.8.24.js,在jQuery 基础上的一套界面工具,包括了网页上…
Web API 是ASP.NET平台新加的一个特性,它可以简单快速地创建Web服务为HTTP客户端提供API.Web API 使用的基础库是和一般的MVC框架一样的,但Web API并不是MVC框架的一部分,微软把Web API相关的类从 System.Web.Mvc 命名空间下提取了出来放在 System.Web.Http 命名空间下.这种理念是把 Web API 作为ASP.NET 平台的核心之一,以使Web API能使用在其他的Web应用中,或作为一个独立的服务引擎.本文将先带大家理解We…
匆匆2014,转眼就到末尾了.在这一年,你还有哪事情些想做而没有做? 2014年在我身上发生了两件意义重大的事,一是正月初一宝宝出生,我升级成为了爸爸:二是进入了一家创业公司,成为了技术负责人. 去年结束了[ASP.NET MVC 小牛之路]系列,本来计划在2014年接着写大牛之路.但有了小孩后,业余时间在家根本没法专心编程和写一些东西. 这一年开发工作中,学到了很多东西,也遇到了很多问题,总觉得有太多的东西要记下来,但总是懒得去动手,或想记的时候又抽不出时间. 接下来一段日子,我会总结一些平时…
在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但足矣.要深入研究还需要去查看更多的专业资料. 要成为大牛,必然要有扎实的基本功,不然时间再长项目再多也很难有大的提升.本系列讲的C# 高级知识点,是非常值得去撑握的,不仅可以让你写代码时游刃有余,而且去研究和学习一些开源项目时,也不会显得那么吃力了. 希望大家记住,这里讲的所有的知识点,不仅仅是了解…
本人博客已转移至:http://www.exblr.com/liam  我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的.我希望通过自己的经验给大家一些指引,带着大家一起走上ASP.NET MVC大牛之路,少走弯路.同时也希望能和大家一起交流,这样也能发现我自己的不足,对我自己的帮助也是非常大的. 建议大家对C#撑握的不错的时候,可以去看一些开源项目.走技术这条路,就要耐得住寂寞(群里双休日说要让群主找妹子进群的人必须反思),练好内功.不撑握C#高级知识点,别想看懂…
ASP.NETCORE MVC模块化编程 前言 记得上一篇博客中跟大家分享的是基于ASP.NETMVC5,实际也就是基于NETFRAMEWORK平台实现的这么一个轻量级插件式框架.那么今天我主要分享的是自己工作中参考三方主流开源WEB框架OrchardCore.NopCore等,实现的另外一个轻量级模块化WEB框架,当然这个框架就是基于当下微软力推和开源社区比较火爆的基础平台ASPNETCORE. 进入正题之前,我觉得先有必要简单介绍一下ASPNETCORE这个平台大家比较关心的几个指标. 其一…
在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来演示Ninject在ASP.NET MVC中的应用. 为了更好的理解和撑握本文内容,强烈建议初学者阅读本文前先阅读依赖注入(DI)和Ninject. 本文目录: 准备工作 新建一个名为BookShop的空白解决方案.在该解决方案中分别添加一个名为BookShop.WebUI的MVC空应用程序,和一个…
Asp.NetCore源码学习[1-2]:配置[Option] 在上一篇文章中,我们知道了可以通过IConfiguration访问到注入的ConfigurationRoot,但是这样只能通过索引器IConfiguration["配置名"]访问配置.这篇文章将一下如何将IConfiguration映射到强类型. 本系列源码地址 一.使用强类型访问Configuration的用法 指定需要配置的强类型MyOptions和对应的IConfiguration public void Confi…
Asp.NetCore源码学习[2-1]:日志 在一个系统中,日志是不可或缺的部分.对于.net而言有许多成熟的日志框架,包括Log4Net.NLog.Serilog 等等.你可以在系统中直接使用这些第三方的日志框架,也可以通过这些框架去适配ILoggerProvider 和 ILogger接口.适配接口的好处在于,如果想要切换日志框架,只要实现并注册新的 ILoggerProvider 就可以,而不影响日志使用方的代码.这就是在日志系统中使用门面模式的优点. 本系列源码地址 一..NetCor…
CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Start),具有轻量级.易使用.高性能等特点. https://github.com/dotnetcore/CAP 本博客主要针对易用性这一点,展开叙述,一起看看CAP如何结合EF Core和RabbitMQ带领小白轻松走入分布式消息队列的世界. 准备 首先,你需要搭建一套RabbitMQ系统,搭建过程在此不再叙述,如果大家觉得麻烦,…
史上最全的音视频SDK包分享给大家 概述一下SDK功能: 项目 详情视频通信  支持多种分辨率的视频通信语音通信  提供语音通信,可支持高清宽带语音动态创建房间  可以根据需要,随时创建房间H5 支持H5方式的音视频通讯,无须安装插件文字消息  支持以透明通道的方式传递文字消息文件传输  支持以透明通道的方式传输文件文件传输支持码率控制 支持设置限速,防止因为文件传输影响音视频通讯拍照  可以抓拍指定摄像头的照片互动白板 支持白板功能,会话的参与方可以在白板上进行标注文档共享 支持分享PPT.W…
随笔分类 - Asp.NETCore轻松学系列 Asp.NETCore轻松学系列阅读指引目录 摘要: 耗时两个多月,坚持写这个入门系列文章,就是想给后来者更好更快的上手体验,这个系列可以说是从入门到进阶,适合没有 .NETCore 编程经验到小白同学,也适合从 .NET Framework 迁移到 .NETCore 的朋友.阅读全文 posted @ 2019-03-05 07:39 Ron.Liang 阅读(10762) | 评论 (36) 编辑 Asp.NetCore轻松学-使用Docker…
随笔分类 - Asp.NETCore轻松学系列 Asp.NETCore轻松学系列阅读指引目录 摘要: 耗时两个多月,坚持写这个入门系列文章,就是想给后来者更好更快的上手体验,这个系列可以说是从入门到进阶,适合没有 .NETCore 编程经验到小白同学,也适合从 .NET Framework 迁移到 .NETCore 的朋友.阅读全文 posted @ 2019-03-05 07:39 Ron.Liang 阅读(10756) | 评论 (36) 编辑 Asp.NetCore轻松学-使用Docker…
这么多年一直从事桌面开发,一直没有时间好好学学  web 开发.感觉自己就像从石器时代走来的古代类人猿.由于工作的调整,现在终于有时间学习一下 Web 开发.出于对技术和框架的熟悉和继承,决定还是学习微软的 Web 开发框架(虽然我一直认为java 是一种比C# 更优秀的语言,社区的活力远高于 C#,想想 eclipse 还是算了吧). 微软的 Web 开发框架从 ASP,ASP.NET,ASP.NET MVC 一直到现在的 ASP.NET Core一路走来,坏消息是没有一个熟悉的,好消息是 A…
应用场景 现在由于前后端技术的分离,后端程序员在使用ORM框架开发后台API接口的时候,往往会将数据库的"数据模型"直接提供给前端.而大多数时候,可能这些数据并不能够满足前端展示的需求,有时候可能需要在"数据模型"的基础上,加几个字段或者改几个字段展示名称或者字段展示风格,以满足前端"视图模型"的需求.遇到这种情况,后端往往需要同时定义"数据模型"和"视图模型",并在两者之间做大量的字段赋值工作,如果&qu…
应用场景 在上一篇文章--Asp.NetCore之AutoMapper基础篇中我们简单介绍了一些AutoMapper的基础用法以及如何在.NetCore中实现快速开发.我相信用过AutoMapper实现模型映射之后,许多人会和我当初一样有一种淡淡的忧愁,每次实现自定义映射都需要手写映射规则,形如: CreateMap<Order, OrderDTO>().ForMember(dest => dest.OrderName, src => src.MapFrom(s => s.N…
背景 在开发这个框架之前,前前后后看过好几款模块化的框架,最后在一段时间内对ABP VNext痛下狠心,研究一段时间后,不得不说 ABP VNext的代码层面很规范,也都是一些最佳实践,开发出一个模块效率也很高.但不得不说,于我而言太重了.还看过一些其他模块化的框架,就不说了,学习成本于我而言太高了,主要是自己懒.于是,我在想有没有一款上手简单,比较经济实用的模块化框架,只要会.net core 基本就可以上手呢,于是,将ABP VNext的模块化核心代码抽出来(在这里要特别感谢土牛了),结合a…
接着讲基于ASP .net Core 的web开发,这节主要讲一下如何使用和配置Nlog进行日志记录. 日志在开发中的作用是很重要的,使用日志,程序出了错误可以及时捕获并记录下来,开发人员可以通过日志定位错误,进行修复. ASP .net Core虽然也给我们提供了一个原生的日志系统,但是这个日志系统不够强大,不能满足我们的一些需求,我们可以使用第三方的日志库,比较优秀的就是Nlog,使用它,我们首先要安装这个包,打开Nuget包管理器(了解详细的安装程序包请点击.Net Core平台下,添加包…
在开发中,验证表单数据是很重要的一环,如果对用户输入的数据不加限制,那么当错误的数据提交到后台后,轻则破坏数据的有效性,重则会导致服务器瘫痪,这是很致命的. 所以进行数据有效性验证是必要的,我们一般通过js或者使用HTML标签自带的属性进行有效性限制,但在不断的演化中,也出现了一些很优秀的数据验证框架,使用它们能高效的开发,最常用的就是基于Jquery的jquery.validate.js. 下面就来讲解一下它的用法: 要使用这个框架,就要先引用框架包(注意:此包是基于Jquery开发的,所以要…