为什么我们可以在Startup这个 “孤零零的” 类中配置依赖注入和管道? 它是什么时候被实例化并且调用的? 参数中的IServiceCollection services是怎么来的? 处理管道是怎么构建起来的? 启动过程中,系统“默默的”做了哪些准备工作? 上一篇文章讲了ASP.NET Core中的依赖注入(系列目录), 而它的配置是在Startup这个文件中的 ConfigureServices(IServiceCollection services) 方法,而且Startup这个类也没有继…
这是该系列的第一篇文章:探索ASP.NET Core 3.0. 第1部分-探索新的项目文件Program.cs和通用主机(本文) 第2部分-比较ASP.NET Core 3.0模板之间的Startup.cs 第3部分-ASP.NET Core 3中的新增功能:服务提供者验证 第4部分-在ASP.NET Core 3.0中的应用启动时运行异步任务 第5部分-介绍IHostLifetime并弄清通用主机启动交互 第6部分-ASP.NET Core 3.0中的新增功能:启动消息的结构化日志记录 在本文…
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liunx服务器:笔者用的是[搬瓦工]的VPS服务器(CDN加速,支持支付宝,多机房选择)--低配版[2.5$每月,29.99$每年],需要的同学点此了解详情 再推荐一个VPS服务器 Vultr.com (和 搬瓦工 差不多,也支持支付宝,但它支持月付,每月仅 2.5$ ) 一个Linux终端管理工具:笔者…
ASP.NET Core 1.0借鉴了Katana项目的管道设计(Pipeline).日志记录.用户认证.MVC等模块都以中间件(Middleware)的方式注册在管道中.显而易见这样的设计非常松耦合并且非常灵活,你可以自己定义任意功能的Middleware注册在管道中.这一设计非常适用于"请求-响应"这样的场景--消息从管道头流入最后反向流出. 在本文中暂且为这种模式起名叫做"管道-中间件(Pipeline-Middleware)"模式吧. 本文将描述"…
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s=u.createElement(o),i,f;for(s.src…
ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET Core 2.0,提供新的Razor Pages项目模板. 详细发布信息查看.NET Core 2.0.0发布说明文档 最新版SDK下载:https://dot.net/core ASP.NET Core 2.0提供一系列新功能使得Web应用开发.发布.部署和维护变得更加容易,框架性能得到进一步提升…
开发环境:vs2017  版本:15.3.5 项目环境:.net framework 4.6.1    模板asp.net core 2.0  Web应用程序(模型视图控制器) 身份验证:个人用户账号  存储应用内的用户帐户 因为本人并不涉及开发一些中.大规模的应用,所以习惯使用本地数据库,而不是数据库服务,为了方便管理,所以本人的所有项目都是离线数据库文件存储(.mdf). 下面开始: 一.修改数据库连接.引自“张不水”兄的研究成果. 1.相对路径: 修改appsettings.json文件中…
本文通过一个维修工与工具库的例子形象的描述一下为什么要用依赖注入.它的工作原理是什么样的, 然后根据这个类比一下ASP.NET Core 中的依赖注入, 从而深刻了解它的使用方法.注意事项以及回收机制等. 本文主要内容: 1.为什么要用依赖注入(DI) 2.容器的构建和规则 3.ASP.NET Core 2.0中的依赖注入 4.使用方法及需要注意的问题 5.服务的Dispose 6.我想换个容器 1.为什么要用依赖注入(DI) 什么是依赖注入就不说了, 为什么要使用呢? 软件设计原则中有一个依赖…
ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/1237/csharp UpoladService示例代码: public class UpoladService : IUpoladService { private readonly static string[] _imageExtensions = new string[] { ".jpg&…
一.简介 gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架. gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建.它使用HTTP/2作为通信协议,使用 Protocol Buffers 作为序列化协议. 它的主要优点: 现代高性能轻量级 RPC 框架. 约定优先的 API 开发,默认使用 Protocol Buffers 作为描述语言,允许与语言无关的实现. 可用于多种语言的工具,以生成强类型的服务器和客户端. 支持客户端,服务器和双向调…