平时创建的小项目,项目名称【samll-project】创建错误,不做修改
- 点击下载 或者 jasonhua下载
- 输入下载的地址
- 例如:输入:https://github.com/jasonhua95/samll-project/tree/master/DistributedSession 下载DistributedSession项目
- 这是一个ASP.NET Core Web多语言项目,主要展示项目的不同:
- 第一种:www.xxx.com/en/index; www.xxx.com/zh/index; ,这种事通过路由来处理的
- 第二种: www.xxx.com/index/en; www.xxx.com/index/zh ,这种可以用cookie保存,通过cookie来判断
- 第三种:www.en.xxx.com; www.zh.xxx.com, 这种方案就是发布两个项目,属于比较简单的,有多少种语言就发布多少种,上面的两种发布的是同一个版本的
- 第一种,第三种一般用于两个项目差别比较大的情况,第二种一般用于项目只有内容不同,其他的都相同的情况
- 增加session和cookie的使用
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、认证、鉴权、简单缓存、限流熔断、负载均衡器等。简单的来说Ocelot是一堆的asp.net core middleware组成的一个有顺序的管道。当它拿到请求之后会用一个request builder来构造一个HttpRequestMessage发到下游的真实服务器,等下游的服务返回response之后再由一个middleware将它返回的HttpResponseMessage映射到HttpResponse上。
生成者就是发送信息,消费者就是接收信息,队列就是存储数据的排队。消息通过你的应用程序和RabbitMQ进行传输,它们只能存储在队列中,队列容量没有限制,你要存储多少消息都可以——基本上是一个无限的缓冲区。多个生产者(producers)能够把消息发送给同一个队列,同样,多个消费者(consumers)也能从同一个队列(queue)中获取数据。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。消息传递相较文件传递与远程过程调用(RPC)而言,似乎更胜一筹,因为它具有更好的平台无关性,并能够很好地支持并发与异步调用。对操作的实时性要求不高,而需要执行的任务极为耗时,存在异构系统间的整合等效果更好。使用工作队列的一个好处就是它能够并行的处理队列。如果堆积了很多任务,我们只需要添加更多的消费者(Consuming)就可以了,扩展很简单。
门户网站经常会遇到有公告、新闻之类的,这类数据每次查询会浪费服务器性能,所有产生了这样一个项目,可以根据模板自动生成所需要的html文件
- 这是一个ASP.NET Core Web项目,主要展示根据模板html自动生成需要的html页面
- 初步预想步骤:
- 根据模板生成tag
- 填写新闻
- 生成新闻页面
这是一个RPC的项目,包括服务端和客户端,例子引用的Grpc中的例子
- 项目用到了.proto的文件,项目需要先编译,之后,.proto属性设置编译方式Protobuf compiler
- GreeterServer服务器,GreeterClient客户端
.NET Core项目的工具类
- ReplaceRenderer.cs 替换渲染器,使用方法:await ReplaceRenderer.ParseAsync("hi @UserName,年龄: @Age,小名:@XiaoName 。", new { UserName = "测试", Age = 19, XiaoName = "小明" })
.NET Core测试项目和.Framework测试项目。在工作和学习上,我们经常需要创建项目,引用些其他的库,测试下自己的想法是否正确,需要捕捉一下异常、调用一下异步方法、记录一下log等等,这样的项目都是需要花费时间,为了较少花费的时间,产生了一个这样的项目。
用linq的方式发送邮件,简单直接。
var smtp = new SmtpClient("smtp.exmail.qq.com", 25);
smtp.UseDefaultCredentials = true;
smtp.Credentials = new NetworkCredential(EmailFrom, EmailPassword);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Port = EmailPort;
smtp.EnableSsl = true;
SimpleEmail.DefaultSender = smtp;
SimpleEmail.From(EmailFrom, "系统邮件").To(EmailTo).Subject("主题").Body(content).Send();
smtp.Dispose();
一个简单的服务托管框架,用于使用.NET构建Windows服务。用NSSM安装控制台程序更方便,官网 nssm install(start,stop,remove)
- 生成程序
- 以管理员身份启动cmd,找到程序路径
- 安装程序 xxx.exe install
- 启动程序 xxx.exe start
- 卸载程序 xxx.exe uninstall
用.net core和EF实现的云笔记
用Epplus读取和生成excel
ASP.NET Core Web Api3.0的jwt认证
SecretKey必须大于16位 Configure方法中添加app.UseAuthentication(); 基于策略的授权 自定义异常中间件UseCustomExceptionExtensions
services.AddAuthorization(options => {
options.AddPolicy("OnlyTestAccess", policy => policy.RequireClaim("Test"));
});