在 ASP.NET Core 项目中使用 MediatR 实现中介者模式

前言

        最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前传统的调用方式似乎差异很大,整个项目各个层之间的代码全部是通过注入 IMediator 进行调用的,F12 查看源码后可以看到该接口是属于 MediatR 这个组件的。既然要照葫芦画瓢,那我们就先来了解下如何在 ASP.NET Core 项目中使用 MediatR
        仓储地址:https://github.com/Lanesra712/grapefruit-common/tree/master/sample/aspnetcore/aspnetcore-mediatr-tutorial

在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

前言

        在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能存在很大的差异,所以这里更常见的方法是去创建一些对应于页面数据展示的 视图模型 类,通过对获取到的数据进行二次加工,从而满足实际页面显示的需要。
        因此,如何更便捷的去实现 数据库持久化对象视图对象 间的实体映射,避免我们在代码中去一次次的手工实现这一过程,就可以降低开发的工作量,而 AutoMapper 则是可以帮助我们便捷的实现实体转换这一过程的利器。所以,本章我们就来学习如何在 ASP.NET Core 项目中通过使用 AutoMapper 去完成实体间的映射。
        当然,如果你习惯于从视图展现到持久化到数据库都采用数据库实体,那么本篇文章对你可能不会有任何的帮助。
        仓储地址:https://github.com/Lanesra712/grapefruit-common/tree/master/sample/aspnetcore/aspnetcore-automapper-tutorial

或许是你应该了解的一些 ASP.NET Core Web API 使用小技巧

前言

        在目前的软件开发的潮流中,不管是前后端分离还是服务化改造,后端更多的是通过构建 API 接口服务从而为 web、app、desktop 等各种客户端提供业务支持,如何构建一个符合规范、容易理解的 API 接口是我们后端开发人员需要考虑的。在本篇文章中,我将列举一些我在使用 ASP.NET Core Web API 构建接口服务时使用到的一些小技巧,因才疏学浅,可能会存在不对的地方,欢迎指出。
        仓储地址:https://github.com/Lanesra712/ingos-server

构建可读性更高的 ASP.NET Core 路由

前言

        不知你在平时上网时有没有注意到,绝大多数网站的 URL 地址都是小写的英文字母,而我们使用 .NET/.NET Core MVC 开发的项目,因为在 C# 中类和方法名采用的是 Pascal 命名规范,根据 .NET 框架默认的路由规则,项目的 URL 地址会呈现出大小写混合的情况。对于强迫症来说,这种情况绝对不能忍,当然,由于整个项目的 URL 地址大小写混合显示,也无法更清晰的向用户、浏览器表达出当前页面的功能。那么,这篇文章就来介绍下,如何调整我们的 ASP.NET Core 项目的路由规则,从而使我们项目的 URL 地址可读性更高。
        PS:在构建 URL 的过程中,采用大写的地址还是采用小写的地址,每个人都会有自己的想法和这样做的理由,这篇文章不讨论两种方案的优劣,只是提供一种构建小写 URL 地址以及让我们的 URL 可读性更高的解决方案,请友善观看,切勿互怼。
        仓储地址:https://github.com/Lanesra712/grapefruit-common

在 ASP.NET Core 项目中使用 npm 管理你的前端组件包

前言

        在项目的前端开发中,对于绝大多数的小伙伴来说,当然,也包括我,不可避免的需要在项目中使用到一些第三方的组件包。这时,团队中的小伙伴是选择直接去组件的官网上下载,还是图省事直接在网上搜索,然后从一些来源不明的地方下载,我们就无法管控了。同时,我们添加的组件间可能存在各种依赖关系,如果我们没有正确下载引用的话,到最后可能还是无法正常使用。
        因此,如何从可信的源下载组件包,以及如何轻松的解决各个组件间的依赖关系就成了我们需要解决的问题,那么,有没有一种工具可以帮我们解决这一问题?你好,有的,npm 了解一下。
        仓储地址:https://github.com/Lanesra712/grapefruit-common

ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx

前言

        在之前的文章(ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路)中,我介绍了如何在 Linux 环境中安装 .NET Core SDK / .NET Core Runtime、Nginx、MySQL,以及如何将我们的 ASP.NET Core MVC 程序部署到 Linux 上,同时,使用 supervisor 守护程序守护我们的 .NET Core 程序。如果,你有看过那篇文章,并且和我一样是个 Linux 小白用户的话,可能第一感觉就是,把 .NET Core 项目部署在 IIS 上也挺好。
        将 .NET Core 项目部署到 Linux 上如此复杂,就没有简单的部署方式吗?
        你好,有的,Docker 了解一下~~~
        PS:这里的示例代码还是采用之前的毕业设计项目,在这篇文章发布的时候,我已经在程序的仓库中添加了对于 Docker 的支持,你可以下载下来,自己尝试一下,毕竟,实践出真知。
        代码仓储:https://github.com/Lanesra712/Danvic.PSU

ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法

前言

        在非静态页面的项目开发中,必定会涉及到对于数据库的访问,最开始呢,我们使用 Ado.Net,通过编写 SQL 帮助类帮我们实现对于数据库的快速访问,后来,ORM(Object Relational Mapping,对象关系映射)出现了,我们开始使用 EF、Dapper、NHibernate,亦或是国人的 SqlSugar 代替我们原来的 SqlHelper.cs。通过这些 ORM 工具,我们可以很快速的将数据库中的表与代码中的类进行映射,同时,通过编写 SQL 或是 Lambda 表达式的方式,更加便捷的实现对于数据层的访问。
        就像文章标题中所说的这样,在这个项目中我是使用的 Dapper 来进行的数据访问,每个人都有自己的编程习惯,本篇文章只是介绍我在 Grapefruit.VuCore 这个项目中是如何基于 Dapper 创建自己使用的帮助方法的,不会涉及各种 ORM 工具的对比,请友善查看、讨论。
        系列目录地址:ASP.NET Core 项目实战
        仓储地址:https://github.com/Lanesra712/Grapefruit.VuCore

ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露

前言

        在涉及到后端项目的开发中,如何实现对于用户权限的管控是需要我们首先考虑的,在实际开发过程中,我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能,而在 Grapefruit.VuCore 这个项目中,我将使用 Jwt 的方式实现对于用户的权限管控,在本章中,我将演示如何使用 Jwt 实现对于用户的授权、鉴权。
        系列目录地址:ASP.NET Core 项目实战
        仓储地址:https://github.com/Lanesra712/Grapefruit.VuCore

ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB

前言

        在项目开发中,日志系统是系统的一个重要组成模块,通过在程序中记录运行日志、错误日志,可以让我们对于系统的运行情况做到很好的掌控。同时,收集日志不仅仅可以用于诊断排查错误,由于日志同样也是大量的数据,通过对这些数据进行集中分析,可以产生极大的价值。
        在微服务的系统架构中,由于一个系统会被拆成很多个功能模块,每个模块负责不同的功能,对于日志系统的要求也会更高,比较常见的有 EFLK(ElasticSearch + Filebeat + LogStash + Kibana) 方案,而对于我们这种单体应用来说,由于程序的代码比较集中,所以我们主要采用手写日志帮助类或是使用第三方组件的形式进行日志信息的记录。
        系列目录地址:ASP.NET Core 项目实战
        仓储地址:https://github.com/Lanesra712/Grapefruit.VuCore

ASP.NET Core 实战:构建带有版本控制的 API 接口

前言

        在上一篇的文章中,主要是搭建了我们的开发环境,同时创建了我们的项目模板框架。在整个前后端分离的项目中,后端的 API 接口至关重要,它是前端与后端之间进行沟通的媒介,如何构建一个 “好用” 的 API 接口,是需要我们后端人员好好思考的。
        在系统迭代的整个过程中,不可避免的会添加新的资源,或是修改现有的资源,后端接口作为暴露给外界的服务,变动的越小,对服务的使用方造成的印象就越小,因此,如何对我们的 API 接口进行合适的版本控制,我们势必需要首先考虑。
        系列目录地址:ASP.NET Core 项目实战
        仓储地址:https://github.com/Lanesra712/Grapefruit.VuCore

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×