ASP.NET CORE MVC
David Hongyu
专注于Java/C#/C++的技术分享
展开
-
谈谈如何解决大批量数据保存的性能问题
前言几日忙于数据库的学习,没时间再去更新博客,总觉得少了些仪式感。今日在微信刚好看到一篇关于数据库读写优化的文章,于是便整理记录下来,以备将来使用学习。鉴于本人是个.Net 开发者,博客大多更新.net cor相关技术,若您需要的是EFCore的数据库性能优化问题可以移步:构建构建高性能的EFCorehttps://blog.csdn.net/weixin_41372626/articl...转载 2020-04-23 22:38:39 · 1466 阅读 · 0 评论 -
谈谈HTTP 中的Post与Get请求的区别与常见认识误区
区别 请求缓存:GET 会被缓存,而post不会 收藏书签:GET可以,而POST不能 保留浏览器历史记录:GET可以,而POST不能 用处:get常用于取回数据,post用于提交数据 安全性:post比get安全 请求参数:querystring 是url的一部分get、post都可以带上。get的querystring(仅支持urlenc...原创 2020-04-19 21:01:26 · 249 阅读 · 0 评论 -
谈谈HTTP请求流的过程
什么是HTTP?HTTP 是一种允许浏览器向服务器获取资源的协议,是 Web 的基础,通常由浏览器发起请求,用来获取不同类型的文件, 例如 HTML 文件、CSS 文件、JavaScript 文件、图片、视频等。此外,HTTP 也是浏览器使用最广的协议。预备知识OSI体系结构TCP/IP相关协议结构应用层HTTP,Telnet,FTP等表示层会话层传输层TCP,UDP网络层IP数...转载 2020-03-26 17:11:01 · 1949 阅读 · 0 评论 -
谈谈HTTP从服务器响应到页面渲染
当你在浏览器输入 google.com 并且按下回车之后发生了什么?(摘)HTTPD(HTTP Daemon)在服务器端处理请求/响应。最常见的 HTTPD 有 Linux 上的 Apache 和 nginx,以及 Windows 上的 IIS。 HTTPD 接收请求 服务器把请求拆分为以下几个参数: HTTP 请求方法(GET, POST, HEAD, PUT, DEL...原创 2020-03-11 20:56:36 · 897 阅读 · 0 评论 -
谈谈中间件:AddSingleton AddScoped AddTransient 三者的差异
简介AddSingleton:此方法创建一个 Singletion 服务。首次请求时创建 Singleton 服务。然后,所有后续的请求中都会使用相同的实例。因此,通常每个应用程序只创建一次 Singleton 服务,并且在整个应用程序生命周期中使用该单个实例 AddScoped:此方法创建一个 Scoped 服务。在范围内的每个请求中创建一个新的 Scoped 服务实例。例如在 We...原创 2020-03-14 23:02:47 · 5667 阅读 · 0 评论 -
谈谈关于mvc模式与mvvm模式的几点思考
1在控制器部分二者的主要区别在c中对数据的处理,在mvc中,c直接对接m,而在mvvm中,c处理的是由vm解析好的m的数据,这样可以有益于代码的重构,也利于降耦合2 在视图部分有时v需要绑定vm,有时v需要绑定m,那么如何判定二者的区别呢?当v需要向数据库中写入数据时,绑定vm当v需要读取数据库数据时,绑定m3 在大部分情况下,c中注入的依赖都是model,而数据处理逻辑部分操作的是v...原创 2020-02-21 23:37:42 · 103 阅读 · 0 评论 -
ASP.NET CORE MVC 中的进行信息配置:appsettings.json
前言在ASP.NET CORE 中appsettings.json常用来进行一些信息的配置,比如用来进行连接字符串的配置,一些关键的授权码之类的,本文介绍如何进行配置与读取。添加配置信息appsettings.json从采用的数据类型是json的,添加配置信息可以使用如下方法。"option1": "value1",//最简单键——值对格式"option2": {"suboption2": {"subkey1": "subvalue1","subkey2": "subvalue2原创 2020-06-15 21:31:29 · 874 阅读 · 0 评论 -
谈谈C#使用Linq进行查询操作
前言距离上一次更新,已经过去了一周,说起来实在是有些惭愧。一方面,近日的工作的重心在于前端api这块,没有时间精力再去补充C#的相关知识,另一方面,感觉学习的劲头确实不如从前了,近日提笔,也算是一种反思惊醒。今日整理的Linq知识,也是我一直想整理的,尤其在遇到EFcore进行联合查询的时候就遇到了linq,于是便有了下文。本文整理转载于博客园:https://www.cnblogs.com/dotnet261010/p/8278793.html。知乎:https://zhuanlan.zhih转载 2020-06-04 17:26:47 · 2177 阅读 · 0 评论 -
谈谈如何在本地发布ASP.NET CORE MVC 3.1 正确发布(采用EF core)
前言近日,在进行基于钉钉的企业内部H5微应用的开发时,在项目的发布与部署上遇到了些问题,先来说说基础情况。前提环境SDK:ASP.NET CORE 3.1.4数据仓储层:SQL Server ORM框架:EFCore发布流程:1. 使用 visual studio 发布应用 右击【项目】——【发布…】,弹出如下图对话框,发布目标有很 多 种 , 这 里 选 择 文 件 夹 。 默 认 发 布 位 置 是 项 目 的 bin\...\netcoreapp3.1\publish\ 目录.原创 2020-05-26 21:23:57 · 851 阅读 · 0 评论 -
谈谈Asp.Net Core Filter
前言最近一直忙于做移动端前端页面的编写,应该快有三周左右没再去编写后端的相关业务逻辑,尤其是ASP.NET CORE的相关内容,感觉学习的方向发生了偏移。这种感觉源于对时间的紧迫感,因为无论前端还是后端,研究起来都是无底洞,没有几个人敢说自己精通某个领域的知识。害怕的是在前端这块玩一玩,又搞搞后端,时间就这这样浪费掉了。但是目前所学的还好,也算一种锻炼,也确实提高了编写前端页面的能力,确切的说是CSS以及对Boostrap的了解。暂且这样吧,一步步来。下面回归正题。文章整理转载自:donet 博原创 2020-05-10 20:03:13 · 455 阅读 · 0 评论 -
谈谈.NET CORE中的Restful Api
前言近期在做一个基于钉钉接口开发的项目,会接触到大量的接口请求与处理,由于后台采用的是基于ASP.NET CORE MVC下开发api的模式,相比较单纯的ASP.NET CORE MVC会涉及大量的接口处理,于是今天便来补补知识。本文转载自我敬仰的微软大佬:杨旭原文连接:https://www.cnblogs.com/cgzl/p/11831147.html什么是REST ?...转载 2020-05-04 20:53:14 · 1700 阅读 · 0 评论 -
谈谈ASP.NET CORE Razor Pages 使用
前言今日谈谈Razor Pages原文链接:https://www.cnblogs.com/kklldog/p/core-razor-page.html什么是Razor Pages?“Razor Pages 使编码更加简单更加富有生产力”这是微软说的==!。Razor Pages 简化了传统的mvc模式,仅仅使用视图跟模型来完成网页的渲染跟业务逻辑的处理。模型里包含了数据跟方法,通...转载 2020-04-30 18:49:40 · 4177 阅读 · 0 评论 -
谈谈如何在 .net Core 3.1 WebAPI项目中配置Swagger在线接口文档
前言与往常一样,喜欢在前言中写关于文章转载或者写下的原因。近日,在做基于钉钉接口的二次开发,从前喜欢pc端的web应用,突然转到移动端的开发时突然发现知识不够用,特别是关于web api这块。前后端分离是局势,在习惯了MVC的代码书写形式时,转到去写前端接口变得无法是从。但是就是在这样的环境逼迫下,我们才不断的去积累新的知识,不断加深自己的功力。下面进入正题在.netCore中,我们可...原创 2020-04-27 17:01:00 · 948 阅读 · 0 评论 -
谈谈ASP.NET CORE 3.1的启动流程
前言前一段时间,我曾经分享过一篇类似的文章,https://blog.csdn.net/weixin_41372626/article/details/105270040同样介绍了asp.net core的启动流程,但是.net core 2.x版本的。今日读了这篇文章,感觉写的更加通透,大家可以参考对比看看。本文转载整理自微信公众号:donet 博士疑问刚刚接触ASP.NET ...转载 2020-04-24 22:33:55 · 2357 阅读 · 2 评论 -
asp.net core开发者,需要会那些基本技能?
前提:c#中高级编程原创 2020-04-17 10:17:27 · 202 阅读 · 0 评论 -
谈谈ASP.NET CORE发展始末与优势
前言打开电脑,想写一些笔记,本来应该写关于技术的分享,突然想起今日一个初学者(其实我也刚入门不久)问我,什么是ASP.NET CORE ?于是就有了今晚这篇文章。.NET 平台的发展历程(1)2010之前 的PC时代的时候,互联网规模还不是特别庞大, JAVA和.Net没什么太大区别,.net以windows自居。(2)2010年以JAVA为代表的Hadoop大数据兴起后,微软跟进...原创 2020-04-14 20:34:10 · 3136 阅读 · 0 评论 -
谈谈ASP.NET CORE 的会话和应用状态
前言有这样普遍的应用场景:我们需要保存用户的登录状态,以此来对其进行访问的授权。我们知道,HTTP 是无状态的协议。不采取其他步骤的情况下,HTTP 请求是不保留用户值或应用状态的独立消息。本文介绍了几种保留请求间用户数据和应用状态的方法。状态管理 存储方法 存储机制 Cookie HTTP Cookie(可能包...原创 2020-04-13 17:06:57 · 504 阅读 · 0 评论 -
谈谈如何在ASP.NET CORE MVC中创建web api
前言Webapi也是一种服务,是属于服务端的,供客户端调用,类似webservice,但是与mvc请求方式不一样(MVC通过路由controller/action请求),Webapi通过不同的HTTP请求(get(查询)、put(更新)、post(增加)、delete)来表达不同的动作(CRUD),只关注数据。它非常适合构建移动客户端服务,显示端可以用H5等进行创建。MVC与Web...原创 2020-04-11 19:15:09 · 2772 阅读 · 0 评论 -
谈谈.Net Core 中Cookie骚操作
前言一个大佬写的东西,看到一半就看不懂了,先收藏收藏作者简介:Jon(Jonathan)Seeley,一位资深.NET开发者,主要从事Asp.NET/Asp.NET CORE/WPF等技术栈的开发,他的博客地址为https://www.seeleycoder.com/。对于那些习惯于在传统ASP.NET中使用Cookie的人来说,改用ASP.NET Core可能会让我们抓狂。在旧系统中...翻译 2020-04-11 11:27:17 · 2126 阅读 · 0 评论 -
谈谈ASP.NET CORE MVC中视图的数据的弱类型绑定(ViewData与ViewBag)
前言本文主要讲解如何正确使用 ViewData与ViewBag,以及他们之间的使用场景。首先需要知道,向视图中传递数据(从控制器中或者模型中)有两种类型:强类型与弱类型。强类型数据:viewmodel(安全,官方推荐) 弱类型数据 ViewData(ViewDataAttribute) ViewBag 使用 viewmodel 将数据传递给视图可让视图充分利用强类型检查...原创 2020-04-09 10:26:56 · 2443 阅读 · 0 评论 -
谈谈如何在ASP.NET CORE 中实现密码查看附件和附件上传
前言其实没啥好说的前言,就是强迫症说点什么。。。。。以下通过一个学习成果上传的场景进行说明如何操作。数据库/实体/模型准备建立一个实体模型,其中的属性包括密码属性以及一个附件路径属性。public class Result { …… public string Password { get; set; } public str...原创 2020-04-08 23:31:04 · 428 阅读 · 0 评论 -
谈谈Asp.Net Core EndPoint 终结点路由工作原理解读
前言近日在搭建ASP.NET CORE MVC项目时,在配置路由参数时遇到了一些困难。以往搭建的项目是 .net core 2.2 版本,微软在.NET CORE 3.X版本中对路由机制进行了重新配置,因此有必要探讨一下深层的原因。先来提出以下几个问题:1.当访问一个Web 应用地址时,Asp.Net Core 是怎么执行到Controller的Action的呢?2.Endpoi...原创 2020-04-07 21:33:46 · 2379 阅读 · 0 评论 -
谈谈ASP.NET CORE 的启动流程
引言对于ASP.NET Core应用程序来说,我们要记住非常重要的一点是:其本质上是一个独立的控制台应用,它并不是必需在IIS内部托管且并不需要IIS来启动运行(而这正是ASP.NET Core跨平台的基石)。ASP.NET Core应用程序拥有一个内置的Self-Hosted(自托管)的Web Server(Web服务器),用来处理外部请求。不管是托管还是自托管,都离不开Ho...转载 2020-04-02 15:52:50 · 928 阅读 · 0 评论 -
谈谈.NET CORE中如何添加及读取配置文件信息
.ASP.NET CORE 中默认的配置文件是appsettings.json,为了说明如何进行配置以及使用,现在建立如下文件。1.添加配置信息"option1": "value1",//最简单键——值对格式"option2": { "suboption2": { "subkey1": "subvalue1", "subkey2": ...原创 2020-03-29 23:25:49 · 2238 阅读 · 0 评论 -
谈谈.NET CORE 中的异步编程
什么是异步编程?同步程序中的代码运行在单一线程上。异步操作:从其它线程发起后,在一个新的单独线程上运行的操作。发起异步操作的线程不必等待异步操作完成为什么使用异步编程?对于需要长时间运行的操作,异步编程可以更大限度更有效地利用设备资源。 通过异步执行 CPU 或 I/O 绑定操作,提高 UI 程序的响应性 并行计算什么时候使用异步编程异步适用于 CPU...原创 2020-03-24 17:38:13 · 3894 阅读 · 0 评论 -
谈谈.NET CORE OAuth 2.0
什么是 OAuth 2.0?OAuth 2.0 是一个委托协议,它可以让那些控制资源的人允许某个应用以代表他们来访问他们控制的资源,注意是代表这些人,而不是假冒或模仿这些人。这个应用从资源的所有者那里获得到授权(Authorization)和 access token(访问令牌),随后就可以使用这个access token 来访问资源。假冒或模仿:客户端复制一份用户名和密码,从而获取相应...原创 2020-03-23 21:34:31 · 1842 阅读 · 0 评论 -
谈谈ASP.NET CORE 中的数据绑定
数据(模型)绑定前言:在我以前的文章中谈过.NET CORE 中的模型绑定,文章连接:https://blog.csdn.net/weixin_41372626/article/details/104575685这篇文章主要从模型角度去说明如何将前端传来的数据绑定到控制器的模型上去构建该数据库实体,这里从更直接从方法的角度去解读,算是对前面文章的补充与扩展。框架提供了一种默认的数据绑定...原创 2020-03-22 23:32:36 · 922 阅读 · 0 评论 -
谈谈ASP.NET CORE Identity的认证流程及授权过程
写在前面ASP.NET Core Identity是一个会员系统,ASP.NET Core Identity封装了User、Role、Claim等身份信息,便于我们快速完成登录功能的实现,它允许你向应用程序添加登录功能。用户可以使用用户名和密码创建登录账户,也可以使用QQ、微信、Fackbook、Microsoft等外部账号提供程序登录。1. 认证流程在ASP.NET Core中使...原创 2020-03-21 21:04:14 · 1182 阅读 · 0 评论 -
谈谈ASP.NET CORE核心概念:深入理解中间件及自定义中间件
1. 中间件概念通俗理解一个web应用程序都是把http请求封装成一个管道,一般来说每一次的请求都要先经过管道的一系列操作,最终到达我们写的代码(主程序)中。那么中间件就是在应用程序管道中的一个组件,用来拦截请求过程进行一些其他处理和响应(比如验证用户身份是否合法、程序中是否有异常等)。中间件可以有很多个,每一个中间件都可以对管道中的请求进行拦截,它可以决定是否将请求转移给下一个中间件。简言之...原创 2020-03-20 19:31:59 · 1017 阅读 · 0 评论 -
谈谈.NET CORE 核心概念:深入理解依赖注入
1. 为什么要用依赖注入(DI)什么是依赖注入,为什么要使用呢?简单通俗说就是一个类需要另一个类来协助工作,就产生了依赖,所以需要的依赖项就要【注入】过来一起来协同完成工作。软件设计原则中有一个依赖倒置原则(DIP)讲的是要依赖于(1)抽象,不要依赖于具体,(2)高层模块不应该依赖于低层模块, 二者应该依赖于抽象。简单的说就是为了更好的解耦。而控制反转(Ioc)就是这样的一个实现思路, ...原创 2020-03-19 15:46:44 · 2125 阅读 · 1 评论 -
谈谈ASP.NET CORE 中Razor Page 的TagHelper【标签助手】常见类型及其详细使用
一,TagHelper简介1.概念TagHelper(标签助手)是asp.net core mvc的新特性,把HTML和服务器内容混合在一起,准确说标签助手使服务器端代码能够参与在Razor文件中创建和呈现HTML元素。2.究竟什么是TagHelper在MVC项目中使用过HtmlHelper。比如当需要在View上添加一个导航栏的时候,我们就会添加下面代码到页面上去:<...原创 2020-03-15 15:42:39 · 2827 阅读 · 0 评论 -
谈谈如何在在ASP.NET CORE MVC对利用EFCore数据进行排序/搜索/分页
排序首先,要操作的模型对象应该是已经完成增删改查逻辑。话不多说,上代码。public async Task<IActionResult> Index(string sortOrder){ ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; ViewDat...原创 2020-03-10 22:45:15 · 1656 阅读 · 0 评论 -
谈谈异步编程及在ASP.NE Core MVC中的使用
异步编程(Task)基本理解Task类是.NET 4.0之后提供的异步操作抽象,需要导入System.Threading.Tasks命名空间。Task类用于表示无返回值的异步操作,对于带有返回值的异步操作应使用Task类的子类Task<TResult>。Task类和Task<TResult>类,后者是前者的泛型版本。TResult类型为Task所调用方法的返回值...原创 2020-03-07 22:12:22 · 835 阅读 · 0 评论 -
谈谈ASP.NET Core MVC设计中的Controller与Action设计规范
开门见山,什么是Controller与Action?Controller 是定义了一组 Action 的类。Action 是 Controller 内用于处理 HTTP 请求的方法。HTTP 请求通过 URL 路由映射到 Controller 的具体 Action。Action 的返回结果一般分两种: 启动视图的渲染,并返回渲染结果 调用其它 Action,这也称为重定向。这里...原创 2020-03-06 16:44:15 · 862 阅读 · 0 评论 -
浅谈ASP.NET Core MVC架构
要使用好ASP.NET Core MVC,首先需要理解什么是MVC开发模式什么是MVC模式?首先,给出定义: MVC 是 Model-View-Controller 的缩写。Model(模型) - View(视图) - Controller(控制器)是一个用于实现图形用户界面(GUI)程序的软件架构模式。划重点:MVC模式是一种GUI程序的架构模式。当我们讨论软件开发时...原创 2020-03-04 19:45:32 · 1252 阅读 · 1 评论 -
谈谈APS.NET CORE缓存技术
首先简要的说明一下缓存使用缓存的优点:• 提高网站的访问速度• 适用于不易改变的数据(如某些数据库中的不变字段)使用缓存的缺点:• 仔细规划• 难以捕捉的错误缓存的地点:• 服务器(单服务器)• 缓存服务器(多服务器)• 客户端缓存技术一:In-Memory 缓存特点:IMemoryCache适用于 Sticky Session(粘滞的会话)适用于任何类型的对象St...原创 2020-03-03 16:35:58 · 462 阅读 · 0 评论 -
谈谈ASP.NET CORE 中TagHelpers及其自定义TagHelpers
Tag HelpersTag Helpers 是服务器端的 C# 代码,它在 Razor 文件里,它会参与到创建和渲染 HTML 元素过程中和 HTML Helpers 类似跟 HTML 的命名规范一致内置了很多 Tag Helpers,也可以自定义大致有以下几类JavaScript Tag Helpers• asp-src-include 包含所有的js文件• asp-src-e...原创 2020-03-01 10:44:52 · 468 阅读 · 0 评论 -
谈谈ASP.NET Core 中的模型验证(自定义验证和远程验证)
在上篇文章中,我对ASP.NET CORE中的模型绑定进行介绍,现在就说明如何对模型进行验证首先,ASP.NET CORE自带默认的模型绑定,还是看这个例子,ModelState.IsValid方法会对该模型中每个对象进行验证(是否为空,是格式是否正确),无效的对象则将在客户端提示错误信息,该错误信息由ModelState.AddModelError(string.Empty, error.D...原创 2020-02-29 16:28:29 · 1763 阅读 · 1 评论 -
谈谈ASP.NET Core 中的模型绑定
Model Binding 允许我们用 HTTP 请求里的数据来创建 C# 对象,这个对象就是 Action 方法的参数。可以使用以下类型用来 Model Binding:• int,string 等简单类型• 复杂类型对象• 数组示例:将 localhost/Albums/Detail/3 绑定到 AlbumController 的 Details(int id) 方法Model ...原创 2020-02-29 16:01:05 · 535 阅读 · 0 评论 -
谈谈ASP.NET Core MVC中预防跨站脚本攻击(xss)与跨站请求伪造(CSRF)
XSSCross-Site Scripting 跨站脚本攻击:攻击者将客户端脚本注入到其他用户查看的网页中。不被信任的数据:• HTML input• HTTP Headers• Query strings• Attributes,EXIF 信息防止 XSS• HTML Encoding:> 变成 > < 变成 <• Razor 默认开启了 HTML...原创 2020-02-28 21:31:43 · 1254 阅读 · 1 评论