ASP.NET Core

Asp.Net Core 2.0 WebUploader FastDfs 文件上传 分段上传

半城伤御伤魂 提交于 2020-05-01 21:48:58
功能点: 1. 使用.net core 2.0 实现文件上传 2. 使用webuploader实现单文件,多文件上传 3. 使用webuploader实现大文件的分段上传。 4. 使用webuploader与FastDfs实现文件上传。 5. 通过依赖注入可以很方便地实现本地文件存储切换为FastDfs 主要功能: 直接上代码: 1. 使用.net core 2.0 实现文件上传 public ActionResult Upload(IFormCollection files) { var result = new UploadResult(); foreach ( var item in files.Files) { #region 把文件流转化为字节流 byte [] buffer = new byte [item.Length]; Stream fs = item.OpenReadStream(); fs.Read(buffer, 0 , buffer.Length); #endregion UploadConfig config = new UploadConfig { Buffer = buffer, FileName = item.FileName, Chunked = files.Keys.Contains( " chunk " ), PreviosName =

ASP.NET Core 依赖注入(DI)

二次信任 提交于 2020-05-01 18:22:29
  ASP.NET Core的底层设计支持和使用依赖注入。ASP.NET Core 应用程序可以利用内置的框架服务将服务注入到启动类的方法中,并且应用程序服务也可以配置注入。由ASP.NET Core 提供的默认服务容器提供了最小功能集,并不是取代其他容器。    1.浅谈依赖注入   依赖注入(Dependency injection,DI)是一种实现对象和依赖者之间松耦合的技术,将类用来执行其操作的这些对象以注入的方式提供给该类,而不是直接实例化依赖项或者使用静态引用。一般情况,类会通过构造函数声明器2依赖关系,允许他们遵循显示依赖原则。这种方法称为“构造函数注入”。   当类的设计使用DI思想时,他们的耦合更加松散,因为他们没有对他们的合作者直接硬编码的依赖。这遵循“依赖倒置原则”,其中指出,高层模块不应该依赖于底层模块:两者都依赖于抽象。   类要求在他们构造时向其提供抽象(通常是接口),而不是引用特定的实现。提取接口的依赖关系和提供接口的实现作为参数也是“策略设计模式”的一个示例。   当一个类被用来创建类及其相关的依赖关系时,这个成为容器(containers),或者称为控制反转(Inversion of Control, IoC)容器,或者依赖注入容器。容器本质上是一个工厂,负责提供向它请求的类型的实例。如果一个给定类型声明它具有依赖关系

Asp.Net Core 3.1学习-依赖注入、服务生命周期(6)

大兔子大兔子 提交于 2020-05-01 18:17:39
1、前言 面向对象设计(OOD)里有一个重要的思想就是依赖倒置原则(DIP),并由该原则牵引出依赖注入(DI)、控制反转(IOC)及其容器等概念。在学习Core依赖注入、服务生命周期之前,下面让我们先了解下依赖倒置原则(DIP)、依赖注入(DI)、控制反转(IOC)等概念,然后再深入学习Core依赖注入服务。 2、依赖倒置原则( Dependency Inversion Principle, DIP ) 抽象不应该依赖于细节,细节应当依赖于抽象,高层模块不依赖于低层模块的实现,而低层模块依赖于高层模块定义的接口。一般来讲,就是高层模块定义接口,低层模块负责具体的实现。针对接口编程而不是针对细节编程 3、什么是依赖 注入(Denpendency Injection) 3.1、依赖 人与人之间都有依赖(尤其我,就是离不开女人哈哈)何况软件呢?所谓依赖就是:当一个类需要另一个类协作来完成工作的时候就产生了依 赖 。比如用户登录,我们在控制器中UserController要完成用户登录、注册、修改密码等等事情、其中操作到数据库的(登录)我们用EF来完成,这里我们封装了一个EFLogin,这里的UserController就有一个ILogin的依赖。需要知道的是这里依赖于一个抽象为不是具体的某一个实现,所以给EFLogin定义了一个接口ILogin抽象了EFLogin的行为 3.2、注入

Asp.Net Core 3.1学习-依赖注入、服务生命周期(6)

烈酒焚心 提交于 2020-05-01 17:34:57
1、前言 面向对象设计(OOD)里有一个重要的思想就是依赖倒置原则(DIP),并由该原则牵引出依赖注入(DI)、控制反转(IOC)及其容器等概念。在学习Core依赖注入、服务生命周期之前,下面让我们先了解下依赖倒置原则(DIP)、依赖注入(DI)、控制反转(IOC)等概念,然后再深入学习Core依赖注入服务。 2、依赖倒置原则( Dependency Inversion Principle, DIP ) 抽象不应该依赖于细节,细节应当依赖于抽象,高层模块不依赖于低层模块的实现,而低层模块依赖于高层模块定义的接口。一般来讲,就是高层模块定义接口,低层模块负责具体的实现。针对接口编程而不是针对细节编程 3、什么是依赖 注入(Denpendency Injection) 3.1、依赖 人与人之间都有依赖(尤其我,就是离不开女人哈哈)何况软件呢?所谓依赖就是:当一个类需要另一个类协作来完成工作的时候就产生了依 赖 。比如用户登录,我们在控制器中UserController要完成用户登录、注册、修改密码等等事情、其中操作到数据库的(登录)我们用EF来完成,这里我们封装了一个EFLogin,这里的UserController就有一个ILogin的依赖。需要知道的是这里依赖于一个抽象为不是具体的某一个实现,所以给EFLogin定义了一个接口ILogin抽象了EFLogin的行为 3.2、注入

C# 9 新特性:代码生成器、编译时反射

不想你离开。 提交于 2020-05-01 11:11:13
前言 今天 .NET 官方博客宣布 C# 9 Source Generators 第一个预览版发布,这是一个用户已经喊了快 5 年特性,今天终于发布了。 简介 Source Generators 顾名思义代码生成器,它允许开发者在代码编译过程中获取查看用户代码并且生成新的 C# 代码参与编译过程,并且可以很好的与代码分析器集成提供 Intellisense、调试信息和报错信息,可以用它来做代码生成,因此也相当于是一个加强版本的编译时反射。 使用 Source Generators,可以做到这些事情: 获取一个 Compilation 对象,这个对象表示了所有正在编译的用户代码,你可以从中获取 AST 和语义模型等信息 可以向 Compilation 对象中插入新的代码,让编译器连同已有的用户代码一起编译 Source Generators 作为编译过程中的一个阶段执行: 编译运行 -> [分析源代码 -> 生成新代码] -> 将生成的新代码添加入编译过程 -> 编译继续。 上述流程中,中括号包括的内容即为 Source Generators 所参与的阶段和能做到的事情。 作用 .NET 明明具备运行时反射和动态 IL 织入功能,那这个 Source Generators 有什么用呢? 编译时反射 - 0 运行时开销 拿 ASP.NET Core 举例,启动一个 ASP.NET

C# 9 新特性:代码生成器、编译时反射

那年仲夏 提交于 2020-05-01 10:28:58
前言 今天 .NET 官方博客宣布 C# 9 Source Generators 第一个预览版发布,这是一个用户已经喊了快 5 年特性,今天终于发布了。 简介 Source Generators 顾名思义代码生成器,它允许开发者在代码编译过程中获取查看用户代码并且生成新的 C# 代码参与编译过程,并且可以很好的与代码分析器集成提供 Intellisense、调试信息和报错信息,可以用它来做代码生成,因此也相当于是一个加强版本的编译时反射。 使用 Source Generators,可以做到这些事情: 获取一个 Compilation 对象,这个对象表示了所有正在编译的用户代码,你可以从中获取 AST 和语义模型等信息 可以向 Compilation 对象中插入新的代码,让编译器连同已有的用户代码一起编译 Source Generators 作为编译过程中的一个阶段执行: 编译运行 -> [分析源代码 -> 生成新代码] -> 将生成的新代码添加入编译过程 -> 编译继续。 上述流程中,中括号包括的内容即为 Source Generators 所参与的阶段和能做到的事情。 作用 .NET 明明具备运行时反射和动态 IL 织入功能,那这个 Source Generators 有什么用呢? 编译时反射 - 0 运行时开销 拿 ASP.NET Core 举例,启动一个 ASP.NET

Visual Studio开发首选!DevExtreme v19.1.6全新来袭

筅森魡賤 提交于 2020-04-30 13:58:22
DevExtreme Complete Subscription 是性能最优的 HTML5,CSS 和 JavaScript 移动、Web开发框架,可以直接在Visual Studio集成开发环境,构建移动应用程序。从Angular和React到ASP.NET MVC或Vue,DevExtreme包括一系列高性能和响应式UI小部件,用于传统的Web和下一代移动应用程序。 该套件附带功能完备的数据网格、交互式图表小部件、数据编辑器等,借助DevExtreme,您可以为现代Web浏览器提供出色的用户体验。DevExtreme是Visual Studio开发人员开发跨平台移动产品的首选工具。 具体更新内容如下: 【 DevExtreme v19.1.6下载 】 此列表包含v19.1.6中已解决的所有问题。 All HTML JS products T806887 - DevExtreme打破了IE 11中的"mousewheel"事件 ASP.NET Core Dashboard T718398 - Web Dashboard - 如果启用Select All功能,则键盘导航在列表框仪表板项中的工作不正确 DevExtreme Core T808649 - DevExtreme小部件在iOS 12上的最新Firefox中不起作用 T750751 -

Asp.Net Core 3.1 的启动过程--(5)

孤者浪人 提交于 2020-04-30 13:52:18
前言 本文主要讲的是Asp.Net Core的启动过程,帮助大家掌握应用程序的关键配置点。 1、创建项目 1.1、用Visual Studio 2019 创建WebApi项目。 这里面可以看到有两个关键的类。 一个Program,一个stsrtup Program里面有一个Main函数,Main函数里面会调用我们的CreateHosbuilder这个方法,CreateHosbuilder里面返回了一个IHostBuilder,那么IHostBuilder就是我们应用程序启动的核心接口 1.2、我们转到定义看一下IHostBuilder这个接口的定义 这个接口主要有6个方法这里面我们需要关注的是 : ConfigureAppConfiguration、ConfigureHostConfiguration、和ConfigureServices 为了演示整个应用程序的启动过程我们回到Program,修改CreateHostBuilder 在里面添加一些代码,把方法名打印出来 public class Program { public static void Main( string [] args) { Console.WriteLine( " Hello World! " ); CreateHostBuilder(args).Build().Run(); } public static

Asp.Net Core 3.1 的启动过程--(5)

ⅰ亾dé卋堺 提交于 2020-04-30 13:51:30
前言 本文主要讲的是Asp.Net Core的启动过程,帮助大家掌握应用程序的关键配置点。 1、创建项目 1.1、用Visual Studio 2019 创建WebApi项目。 这里面可以看到有两个关键的类。 一个Program,一个stsrtup Program里面有一个Main函数,Main函数里面会调用我们的CreateHosbuilder这个方法,CreateHosbuilder里面返回了一个IHostBuilder,那么IHostBuilder就是我们应用程序启动的核心接口 1.2、我们转到定义看一下IHostBuilder这个接口的定义 这个接口主要有6个方法这里面我们需要关注的是 : ConfigureAppConfiguration、ConfigureHostConfiguration、和ConfigureServices 为了演示整个应用程序的启动过程我们回到Program,修改CreateHostBuilder 在里面添加一些代码,把方法名打印出来 public class Program { public static void Main( string [] args) { Console.WriteLine( " Hello World! " ); CreateHostBuilder(args).Build().Run(); } public static

初探ASP.NET Core 3.x (3)

早过忘川 提交于 2020-04-29 15:30:28
[TOC] ←不知道为啥没生成目录,Sorry 本文地址: https://www.cnblogs.com/oberon-zjt0806/p/12215717.html 注意 :本篇大量地使用了mermaid绘制图表,加载需要较长的时间,请见谅 O 前请提要 在第1期中,我们通过一个简单的过程构建了一个ASP.NET的初始项目,当然,实际上这个项目也是一个.NET Core的项目。因为在第2期中我们提到过,.NET Core的项目本身就基于.NET Framework基础之上扩展的。 构建一个项目的过程如下: 这里有图,请稍等片刻 graph LR install(安装dotnet) create(创建WebApp项目) edit(编辑代码) trust(信任开发证书) run(运行项目) install-->create create-->edit edit-->trust trust-->run 但是,这只是站在一种不透明的视角下对ASP.NET Core的宏观开发过程进行的一次概览和简单尝试,我们实际上并不清楚ASP.NET的内部构造和运作机理。 I Web的诸视角 I.1 用户视角 可以很负责任的说,实际上Web在用户眼里就是这些东西:一个鼠标+一个键盘+一个浏览器 是的,用户只需要使用浏览器输入网址,只要运气够好的话(比如网络通信没有问题或者远端也没什么问题的话