【.Net Core】Attribute 特性
前言Attribute 在 C# 中是一个非常强大的特性,它能够给你的程序集添加元数据信息。
Attribute 实际上是一个对象,它可以与以下元素中的任何一个相关联: 程序集、类、方法、委托、枚举、事件、字段、接口、属性和结构,它会在这些对象上做信息声明,当程序运行之后,你可以通过反射来获取关联到这些对象上的 Attribute 信息,换句话说:你可以通过 Atrribute 向程序集注入一些额外信息,然后在运行时通过反射来获取,attribute 一般由 名字 + 一些可选参数 构成, attribute 名字对应着 atrribute 类。
Filter 的多种注册
在 Action 方法上加特性,只对当前 Action 生效
在 Controller 控制器上加特性,当前控制器下所有 Action 都生效
在程序中全局注册,整个项目都生效123builder.Services.AddControllersWithViews(mvcOptions => { mvcOptions.Filters.Add(AsyncMyLogActionFilterAttrib ...
【.Net Core 组件】Serilog 日志组件
前言与许多其他 .NET 库一样,Serilog 为文件、控制台和其他位置提供诊断日志记录。它易于设置,具有干净的 API,并且可以在最近的.NET 平台之间移植。
与其他日志记录库不同,Serilog 在构建时考虑了强大的结构化事件数据。
官方配置文件样例:https://github.com/serilog/serilog-aspnetcore
日志组件 SerilogNuGet 引入程序包1Serilog.AspNetCore
配置 Serilog123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263using Serilog;using Serilog.Events;Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEv ...
【.Net Core】权限验证
前言Cookie/Session 模式下的登录验证Action/控制器上加上特性
12[Authorize][Authorize(AuthenticationSchemes = CookieAuthenticationDefaults.AuthenticationScheme)]//指定渠道
123456789101112131415161718192021222324//使用Sessionbuilder.Services.AddSession();//选择使用哪种方式来鉴权builder.Services.AddAuthentication(option =>{ option.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme; option.DefaultChallengeScheme= CookieAuthenticationDefaults.AuthenticationScheme; option.DefaultSign ...
【.Net Core】对于 AOP 多种支持
前言AOP 为 Aspect Oriented Programming 的缩写,意为:面向切面编程;
利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
.Net Core 对于 AOP 多种支持AuthorizeAttribute(权限验证)Post not found: DotNetCore/05.权限验证 AuthorizeAttribute 权限验证
IResourceFilter(资源缓存)Asp.Net Core 6 中提供的是 IResourceFilter / IAsyncResourceFilter
用途:缓存
执行顺序:
MyResourceFilterAttribute.OnResourceExecuting
执行控制器构造函数
执行 Action 方法
MyResourceFilterAttribute.OnResourceExecuted
MyResourceFilterAttribute.cs
...
.NET Core优秀开源项目集
微软出品的微服务应用https://github.com/dotnet-architecture/eShopOnContainers
大名鼎鼎的 ABP 应用开发框架https://aspnetboilerplate.com/https://github.com/abpframework/abp
成熟稳定灵活可靠的 NOP 商城https://github.com/nopSolutions/nopCommerce
经典的 AOP 库 Castle.DynamicProxyhttps://github.com/castleproject/Core
灵魂可爱的 DI 框架 Autofachttps://github.com/autofac/Autofac
Autofac(Autofac.Extras.DynamicProxy) 爱上了 Castle DynamicProxyhttps://github.com/autofac/Autofac.Extras.DynamicProxy
身份验证服务 IdentityServer4https://github.com/IdentityServer ...
使用 WinSW 让任何 Windows 程序都能运行为服务
WinSW 介绍有时候我们需要在 Windows 下开机运行某些程序,这对于有图形界面的程序来说一般不是什么事,在选项中选中开机启动,然后它们就可以自动运行了。但是如果我们想运行一些命令行程序的话就没这么方便了。
其实 Windows 自带了一个后台程序管理的功能,就是我们经常用到的服务。但是 Windows 的服务只有程序的开发者在写程序的时候引用到这个功能,我们才能利用服务来控制程序的启动和关闭。对于一般的命令行程序来说,没办法利用服务。所以今天我们就来使用一下标题的这个 WinSW。它可以将 Windows 上的任何一个程序注册为服务,如果不需要,也可以方便的卸载服务。
使用 WinSW下载首先要下载 WinSW。它是一个单个的可执行文件,我们到 Github release 这里就可以下载 WinSW 了。一般来说当然是下载最新的。WinSW 可以运行在 .NET2 和 .NET4 两个版本上,当然如果使用 Win10 等比较新的系统,最好下载更新版本的 .NET。
下载地址:
1https://github.com/dotnetcore/FastGithub/releases ...
Windows 下基于 frp 的内网穿透部署
frp 是什么frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
为什么使用 frp ?通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
代理组间的负载均衡。
端口复用,多个服务通过同一个服务端端口暴露。
多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
服务端和客户端 UI 页面。
部署步骤从 frp 的架构可以看出 frp 的工作流程,在服务端部署 frps,在要访问的机器上部署 frpc,实现服务端对该机器的反向代理。通过访问服务端来实现对该机器的远程访问。
部署环境在 github frp 的 rel ...
vue-cli安装教程
vue-cli 安装教程
安装 cnpm
1npm install -g cnpm --registry=https://registry.npm.taobao.org
安装 vue-cli
1cnpm install vue-cli -g
初始化项目
1vue init webpack 项目名称
进入到项目目录,安装模块包
1cnpm install
启动项目
1cnpm run dev
发布项目
1cnpm run build