ASP.NET Core

【无私分享:ASP.NET CORE 项目实战(第十二章)】添加对SqlServer、MySql、Oracle的支持

二次信任 提交于 2020-08-15 03:05:00
原文: 【无私分享:ASP.NET CORE 项目实战(第十二章)】添加对SqlServer、MySql、Oracle的支持 目录索引   【无私分享:ASP.NET CORE 项目实战】目录索引 简介      增加对多数据库的支持,并不是意味着同时对 多种数据库 操作,当然,后面,我们会尝试同时对多种数据库操作,这可能需要多个上下文,暂且不论。 分布式数据库 ,我们采用的是阿里云的Mycat,这个后面会更新出来。我们今天的场景是:我们的项目可能是在windows上开发的使用的是SqlServer,我们要发布到linux上,SqlServer 2017 据说是支持liunx的,但是还没出... 当然不是说 SqlServer 就不能装在liunx上,但是我们的Liunx服务器可能已经安装了MySql或 Oracle,我们希望使用现有的,又或者是,我们需要切换数据库。那么,我们需要可以随时切换数据库的支持。    添加NuGet包,注册服务    使用SqlServer数据库,这个官方有详细的步骤和解释,可以参考: https://docs.efproject.net/en/latest/providers/sql-server/index.html ,我们简单介绍一下   在 【(第四章)】Code First 创建数据库和数据表 中,我们使用的就是SqlServer

Docker入门 第一课 --.Net Core 使用Docker全程记录

人盡茶涼 提交于 2020-08-15 01:58:16
微服务架构无疑是当前最火热的开发架构,而Docker作为微服务架构的首选工具,是我们必须要了解掌握的。 我通过一天的时间,网上查文档,了解基础概念,安装Docker,试验Docker命令,通过Docker,成功部署运行Asp.NET core示例程序,算是基本入门。 这篇文章是自己总结的Docker入门篇,力求简洁,快速入门,以最短的时间看到学习成果,为深入学习Docker做基础。 学习前提:不要畏惧 面对未知,人们心里往往会产生恐惧,这是人与生俱来的,所以,我们在进入新的领域之前,首先要克服的是自己的畏难心理。不要因为困难,看几眼就放弃,那样你永远学不会。 面对新的未知领域,我们要把它当成一座灯塔,让它指引我们前进的方向。 第一:了解几个概念 镜像(Image) :相信大家看到这个词,都明白什么意思,我们可以把它理解为操作系统的安装盘,Ghost镜像。我给它个定义,就叫:Docker基础运行环境副本。 容器(Container) :运行中的Docker实例,称为容器。也就是一个镜像(Image)的运行时状态。 镜像仓库(Repository) :Docker为开发者提供了面向各种环境的已经打包好的镜像,这些镜像构成了一个镜像仓库。开发者只需找到自己需要的Docker镜像,下载到本地,添加自己的应用上去,运行即可,某些工具类的镜像,可无需修改,直接运行。 Docker 主机

【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper

醉酒当歌 提交于 2020-08-14 12:44:10
原文: 【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper 目录索引   【无私分享:ASP.NET CORE 项目实战】目录索引 简介      在Asp.net Core VS2015中,我们发现还有很多不太简便的地方,比如右击添加视图,转到试图页等功能图不见了,虽然我们可以通过工具栏的自定义命令,把这两个右击菜单添加上,但是貌似是灰色的不能用。   其实,这样也好,通过手动创建,更让我们深刻的理解MVC以及路由之间的关系,很多人认为底层的东西是高大上的,比如一提到汇编,很多人感觉牛的不行不行的,其实术业有专攻,做程序的感觉搞核电的很牛,搞核电的同样也感觉做程序的很牛,但是通过手动的创建MVC以及路由,除了让我们深刻的理解MVC之外,也在一定程度上满足了有这种想法的朋友。    添加配置区域   我们在之前的版本中中添加区域,通常是直接右击 → 添加区域,在创建的区域目录中,自带区域的路由配置。如下:        这其实是十分方便的,但是在VS2015 中,添加选项里没有了区域这个选项,我们只能通过手动的方式来创建区域: ① 添加区域文件夹 Areas 并在区域文件下 添加文件夹 SysManage ② 在 SysManage 下新建两个文件夹 Controllers(控制器) 和 Views(视图) ③ 添加一个控制器

(三)学习了解OrchardCore笔记——灵魂中间件ModularTenantContainerMiddleware的第一行①的模块部分

我的梦境 提交于 2020-08-14 11:34:23
  了解到了OrchardCore主要由两个中间件(ModularTenantContainerMiddleware和ModularTenantRouterMiddleware)构成,下面开始了解ModularTenantContainerMiddleware中间件第一行代码。   了解asp.net core机制的都知道中间件是由构造函数和Invoke(或者InokeAsync)方法构成,构造函数不过就是个依赖注入的过程,Invoke也可以直接依赖注入,两者的区别是构造函数时全局的,Invoke只是当次请求,所以从Inovke开始了解! public async Task Invoke(HttpContext httpContext) { // Ensure all ShellContext are loaded and available. await _shellHost.InitializeAsync(); var shellSettings = _runningShellTable.Match(httpContext); // We only serve the next request if the tenant has been resolved. if (shellSettings != null ) { if (shellSettings.State ==

【asp.net core 系列】5 布局页和静态资源

拈花ヽ惹草 提交于 2020-08-14 10:54:29
0. 前言 在之前的4篇的内容里,我们较为详细的介绍了路由以及控制器还有视图之间的关系。也就是说,系统如何从用户的HTTP请求解析到控制器里,然后在控制器里处理数据,并返回给视图,在视图中显示出来。这一篇我将为大家介绍基础的最后一部分,布局页和静态资源引入。 1. 布局页 在控制器和视图那一篇,我们了解到 _ViewStart 里设置了一个Layout属性的值,这个值正是用来设置布局页的。所谓的布局页,就是视图的公用代码。在实际开发中,布局页通常存放我们为整个系统定义的页面框架,视图里写每个视图的页面。 回顾一下,默认的 _ViewStart 里的内容是: @{ Layout = "_Layout"; } 默认的布局页指定的是名为 _Layout 的布局页,在本系列第三篇中,我们得知这个视图应当在Shared文件夹下,那我们进去看一下这个视图有什么内容: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>@ViewData["Title"] - MvcWeb</title> <link rel="stylesheet" href="~/lib

【无私分享:ASP.NET CORE 项目实战(第十一章)】Asp.net Core 缓存 MemoryCache 和 Redis

孤街醉人 提交于 2020-08-14 10:29:36
原文: 【无私分享:ASP.NET CORE 项目实战(第十一章)】Asp.net Core 缓存 MemoryCache 和 Redis 目录索引   【无私分享:ASP.NET CORE 项目实战】目录索引 简介       经过 N 久反复的尝试,翻阅了网上无数的资料,GitHub上下载了十几个源码参考 , Memory 和 Redis 终于写出一个 简陋 的 封装,为了统一和易用,我们两种缓存都统一实现了一个接口 ICacheService,微软也有很多是通过IDistributedCache,大家可以参考 https://docs.asp.net/en/latest/performance/caching/distributed.html ,GitHub上也有很多很好的封装,这里我们就不一一介绍了,大家自行参考,现在搞 Asp.net Core的还是不是很多,中文的资料也少的可怜,而且基本都是千篇一律照搬,对于只认识 ABCDEFG的我来说,过程是十分艰辛的,一篇文章往往要看四五遍,逐行逐句翻译,说多了都是泪,不说了,我们开始。 期间,得到了很多朋友的帮助,在此表示感谢!    缓存接口 ICacheService    缓存也好,数据库也好,我们就是进行CRUD操作,接口没什么好解释的,注释我写的很明白,这里就列给大家:    # 验证缓存项是否存在 1 ///

asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客

喜夏-厌秋 提交于 2020-08-14 10:15:06
起因:github日推邮件中来了个BlogEngine.NET,出于好奇然后就点击链接进去查看了下,发现这TM的太适合.net新手搭建博客网站了。以前的我一直想搭建个自己的博客网站,然后就产生了 http://youli77.com/ ,这是我第一次用来学习asp.net core 2.0的产物(写的我自己不想看了),废话少说,进入正题。 搭建博客 BlogEngine.NET源码地址 下载源码后,最好使用vs2015及以上版本打开。(我的是vs2019) 重新生成,就可以直接打开了。。。 然后就是修改密码,在web.config中更新machineKey,再然后就感觉ok了。 使用MySql数据库方法 找到setup,然后阅读ReadMe.txt。 1.选择Setup.sql脚本去创建数据库和数据。 2.将MySQLWeb.Config改名为Web.config并覆盖根目录下的Web.config文件。 3.更新BlogEngine连接字符串(mysql注意加端口) 4.然后将MySql.Data.dll拷到bin目录中 5.浏览你的博客网站。 6.登录管理面板并改密码。 需要注意: 1.执行setup.sql脚本时将下面这段删除,再执行。如果直接执行了,删除数据库按照我这种方法来。 2.修改be_posts表PostContent字段,将字符集改为utf8. 3

VCL分析工具DevExpress VCL 6月全新发布v20.1.2

那年仲夏 提交于 2020-08-14 08:50:08
DevExtreme 拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。 该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。 DevExpress VCL v20.1.2完整版下载 具体更新内容如下: 【 DevExpress VCL v20.1.2下载 】 此列表包括v20.1.2中引入的所有重大更改。 ExpressEditors Library API T861507 - cxFileTimeToDateTime函数从cxShellCommon单元移至dxCore ExpressEntityMapping Framework API T891988 - cxGridEMFData单元已重命名为cxEMFData ExpressPDFViewer UI T867366 - TdxSpreadSheetPasswordDialogForm

Blazor 修仙之旅

南笙酒味 提交于 2020-08-14 08:26:34
一.前言 这是《Blazor 修仙之旅》的第三篇,前面两分别是《初次尝试》、《组件与数据绑定》,直接到这里上 Ant Design 确实连不起来,跨度比较大,其实我也是在边学边写,看的是官方文档,我觉得中间这部分重复写博客的意义不大,所以我建议去看官方文档,传送门: 点我 。如果看过我的前两篇,我建议您从这里开始看: 点我 。不用每篇都深刻理解,但需要有一个基本概念。好了,下面进入正题。 二. Ant Design of Blazor 介绍 ant-design-blazor 是国内开发者 ElderJames 创建的一个开源项目。在前不久的微软Build大会也见到了它的身影,受到了微软官方推荐,点赞!顾名思义, ant-design-blazor 是 Ant Design 的 Blazor 实现,开发和服务于企业级后台产品。 ✨ 特性 🌈 提炼自企业级中后台产品的交互语言和视觉风格。 📦 开箱即用的高质量 Razor 组件,可在多种托管方式共享。 💕 支持基于 WebAssembly 的客户端和基于 SignalR 的服务端 UI 事件交互。 🎨 支持渐进式 Web 应用(PWA) 🛡 使用 C# 构建,多范式静态语言带来高效的开发体验。 ⚙️ 基于 .NET Standard 2.1,可直接引用丰富的 .NET 类库。 🎁 可与已有的 ASP.NET Core MVC

使用命名管道承载gRPC

半腔热情 提交于 2020-08-14 06:51:56
最近GRPC很火,感觉整RPC不用GRPC都快跟不上时髦了。 gRPC设计 gRPC是一种与语言无关的高性能远程过程调用 (RPC) 框架。刚好需要使用一个的RPC应用系统,自然而然就盯上了它,但是它真能够解决所有问题吗?不见得,先看看他的优点: gRPC的主要优点: 现代高性能轻量级 RPC 框架。 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。 可用于多种语言的工具,以生成强类型服务器和客户端。 支持客户端、服务器和双向流式处理调用。 使用 Protobuf 二进制序列化减少对网络的使用。 对应的适用场景: 微服务 :gRPC 设计用于低延迟和高吞吐量通信。 gRPC 对于效率至关重要的轻量级微服务非常有用。 点对点实时通信 :gRPC 对双向流式传输提供出色的支持。 gRPC 服务可以实时推送消息而无需轮询。 多语言环境 :gRPC 工具支持所有常用的开发语言,因此,gRPC 是多语言环境的理想选择。 网络受限环境 :gRPC 消息使用 Protobuf(一种轻量级消息格式)进行序列化。 gRPC 消息始终小于等效的 JSON 消息。 gRPC还是有缺点的: 浏览器支持受限 :绝大数浏览器不支持 HTTP/2 非人工可读取 :proto文件规定的格式在通讯中会序列化成二进制数据,人工解析较为困难。 不适用的场景与替代: 浏览器可访问的API :gRPC