一.序言 我大约在2003年时候开始接触到.NET,最初在.NET framework 1.1版本下写过代码,曾经做过WinForm和ASP.NET开发.大约在2010年的时候转型JAVA环境,这么多年来,虽然工作已面向JAVA方向,但没有放弃过.NET,一直保持关注,内心由衷觉得C#是我接触过的最美的语言. 但是.NET的市场环境一直不理想,对于Windows的依赖限制了它的发展,公司主要客户都纷纷转向Linux环境,“去IOE”的浪潮更推动了形势的发展.期间还经历过几件让人灰心的事情,就是S…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 应用安全除了用户权限认证外,还要考虑到数据安全,传输安全.系统漏洞等方面.本篇文章重点讨论数据存储安全和传输安全,主要技术手段就是加密和解密. 二.基本概念 信息在传输和存储的过程中有泄密的风险,加密的目的就是解决这些风险. 1.信息存储在数据库中,如果数据库泄露会造成敏感数据泄露,如用户密码,手机号码.工资…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍Web系统的应用安全,主要涉及用户的身份认证和访问权限问题. 大部分web应用习惯采用Session来保存用户认证信息,对于WebApi而言,调用者不一定是Web浏览器,可能是Android.iOS客户端,可能是微信小程序,也可能是客户端程序等等,这些客户端模拟构造cookie.存储或传递sessio…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍异常处理的知识.由于异常处理的技术应用并不复杂,本篇更多讨论异常处理的一些理论知识,包括一些原则.约定和建议. 二.异常处理的基本原则 在Win32API编程中是没有异常处理机制的,函数一般都是通过返回一个BOOL型的状态码来表达处理是否成功,比如需要通过ID取得一个实体信息,需要这样定义: BOOL…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何使用中间件(Middleware). 二.初步演练 先写几个中间件 public class DemoAMiddleware { private readonly RequestDelegate _next; private readonly ILogger _logger; public Dem…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何使用缓存,包括MemeryCache和Redis. 二.MemeryCache 1.注册缓存服务 public void ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); } 貌似较新的版本是默认…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇介绍如何采用依赖注入的方式创建和使用对象,主要从应用层面进行描述,不涉及具体的内部原理. 二.演练 假设要做一个日志服务的类,它实现在控制台打印出带时间信息的日志信息. 首先定义该服务的接口与实现类. public interface ILogService { void LogInfomation(st…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.本篇概述 本篇介绍日志的使用,包括系统默认的控制台日志和第三方NLog日志管理. 二.使用系统控制台日志 1.使用内置日志 [Produces("application/json")] [Route("api/Article")] public class ArticleControl…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇描述一些常用的数据库操作,包括:条件查询.排序.分页.事务等基本数据库操作.试验的数据库为MySQL. 二.条件查询1.查询所有记录 List<Article> articles = _context.Articles.ToList<Article>(); 2.根据主键进行查询 Articl…
系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇讨论如何连接数据库,包括连接SQL Server 和 连接MySQL,然后做一些基本的数据操作. 二.连接SQL Server 首先通过NuGet添加相关的包: 新建一个实体类: public class Product { [Key] public string Code { get; set; } p…