Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ASP.NET 4 迁移到 ASP.NET Core 的部分改变

ASP.NET 4 迁移到 ASP.NET Core 的部分改变

作者头像
Venyo
发布于 2018-03-15 05:35:36
发布于 2018-03-15 05:35:36
94800
代码可运行
举报
文章被收录于专栏:Venyo 的专栏Venyo 的专栏
运行总次数:0
代码可运行

官方迁移链接:https://docs.asp.net/en/latest/migration/index.html

接下来是正文(会涉及到 .Net Core 的迁移):

从 Type 中获取 Attribute 特性:

原来是这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type.GetCustomAttributes()

现在是这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
type.GetTypeInfo().GetCustomAttribute()

引用缓存:

原来是这样:

引用 System.Runtime.Caching

定义 ObjectCache cache = MemoryCache.Default; 之后,就可以使用了

现在是这样:

在 project.json 中,依赖 Microsoft.Extensions.Caching.Memory

在Startup.cs 中,添加缓存服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Startup{
    public void ConfigureServices(IServiceCollection services){
        services.AddMemoryCache();
    }
}

然后在需要的地方,定义

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
IMemoryCache cache = new MemoryCache(new MemoryCacheOptions());

启用 Session:

原来是这样:

在纯粹的 ASP.NET 应用中,如果 Handler 需要用到 Session,需要实现 IRequiresSessionState 接口

其他的场景我就不知道了,233333,因为没怎么用过,或者太久了给忘了,2333333

现在是这样:

需要注意的是,Session 依赖 Caching,所以除了配置 Session 还要配置 Caching

在 project.json 中,依赖 Microsoft.Extensions.Caching.Memory,Microsoft.AspNet.Session

注册服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Startup{
    public void ConfigureServices(IServiceCollection services){
        services.AddMemoryCache();
        services.AddSession(/* options go here */);
    }
}

启用 Session

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Startup{
    public void Configure(IApplicationBuilder app)
    {
        app.UseSession();
    }
}

获取项目根路径:

抄自:https://blog.mariusschulz.com/2016/05/22/getting-the-web-root-path-and-the-content-root-path-in-asp-net-core

直接上代码,有什么不明白,看上面的链接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Classic ASP.NET

public class HomeController : Controller
{
    public ActionResult Index()
    {
        string physicalWebRootPath = Server.MapPath("~/");
        
        return Content(physicalWebRootPath);
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;

namespace AspNetCorePathMapping
{
    public class HomeController : Controller
    {
        private readonly IHostingEnvironment _hostingEnvironment;

        public HomeController(IHostingEnvironment hostingEnvironment)
        {
            _hostingEnvironment = hostingEnvironment;
        }

        public ActionResult Index()
        {
            string webRootPath = _hostingEnvironment.WebRootPath;
            string contentRootPath = _hostingEnvironment.ContentRootPath;

            return Content(webRootPath + "\n" + contentRootPath);
        }
    }
}

目前就遇到这些,其他的都大同小异吧,所以没印象。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
asp.net core 系列之Reponse caching之cache in-memory (2)
这篇文章(主要翻译于官网,水平有限,见谅)讲解asp.net core 中的 Cache in-memory (内存缓存).
Vincent-yuan
2019/09/11
1K0
asp.net core 系列之Reponse caching之cache in-memory (2)
持久化方式
HttpContext抽象提供了一个简单的IDictionary<Object,Object>类型的字典集合,叫做Items。在每个请求中,这个集合从HttpRequest开始起就可以使用,直到请求结束后被丢弃。要存取集合,你可以直接给键赋值,或根据给定键查询值。
莫问今朝
2018/08/31
4430
ASP.NET Core File Providers
原文地址:FileProvider By Steve Smith ASP.NET Core通过对File Providers的使用实现了对文件系统访问的抽象。 查看或下载示例代码 File Provider 抽象 File Providers是文件系统之上的一层抽象。它的主要接口是IFileProvider。IFileProvider公开了相应方法用来获取文件信息(IFileInfo), 目录信息(IDirectoryContents),以及设置更改通知(通过使用一个IChangeToken)。 IFile
潘成涛
2018/01/18
9690
ASP.NET Core File Providers
在ASP.NET Core应用中如何设置和获取与执行环境相关的信息?
HostingEnvironment是承载应用当前执行环境的描述,它是对所有实现了IHostingEnvironment接口的所有类型以及对应对象的统称。如下面的代码片段所示,一个HostingEnvironment对象承载的执行环境的描述信息体现在定义这个接口的6个属性上。ApplicationName和EnvironmentName分别代表当前应用的名称和执行环境的名称。WebRootPath和ContentRootPath是指向两个根目录的路径,前者指向的目录用于存放可供外界通过HTTP请求访问的资源
蒋金楠
2018/02/07
3.8K0
在ASP.NET Core应用中如何设置和获取与执行环境相关的信息?
ASP.NET Core快速入门(第4章:ASP.NET Core HTTP介绍)--学习笔记
课程链接:http://video.jessetalk.cn/course/explore
郑子铭
2021/01/13
7300
ASP.NET Core快速入门(第4章:ASP.NET Core HTTP介绍)--学习笔记
《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(上)
缓存是一种通过存储资源的备份,在请求时返回资源备份的技术。ASP.NET Core 支持多种形式的缓存,既支持基于 HTTP 的缓存,也支持内存缓存和分布式缓存,还提供响应缓存中间件
郑子铭
2021/01/13
5920
《ASP.NET Core 与 RESTful API 开发实战》-- (第7章)-- 读书笔记(上)
ASP.NET Core单文件和多文件上传并保存到服务端
  在我们日常开发中,关于图片,视频,音频,文档等相关文件上传并保存到服务端中是非常常见的一个功能,今天主要是把自己在开发中常用的两种方式记录下来方便一下直接使用,并且希望能够帮助到有需要的同学!
追逐时光者
2020/04/09
1.9K0
ASP.NET Core 介绍和项目解读
标签: ASP.NETCore 1. 前言 作为一个.NET Web开发者,我最伤心的时候就是项目开发部署时面对Windows Server上贫瘠的解决方案,同样是神器Nginx,Win上的Nginx便始终不如Linux上的,你或许会说“干嘛不用windows自带的NLB呢”,那这就是我这个小鸟的从众心理了,君不见Stack Overflow 2016最新架构中,用的负载和缓存技术也都是采用在Linux上已经成熟的解决方案吗。没办法的时候找个适合的解决办法是好事,有办法的时候当然要选择最好的解决办法。
潘成涛
2018/01/18
2.7K0
ASP.NET Core 介绍和项目解读
《ASP.NET Core 微服务实战》-- 读书笔记(第7章)
在本章,我们将从一个命令行应用开始,并且在不借助任何模板,脚手架和向导的情况下,最终得到一个功能完整的 Web 应用
郑子铭
2021/01/13
6670
《ASP.NET Core 微服务实战》-- 读书笔记(第7章)
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
ASP.NET Core应用本质上就是一个由中间件构成的管道,承载系统将应用承载于一个托管进程中运行起来,其核心任务就是将这个管道构建起来。在ASP.NET Core的发展历史上先后出现了三种应用承载的编程方式,而且后一种编程模式都提供了针对之前编程模式的全部或者部分兼容,这就导致了一种现象:相同的更能具有N种实现方式。对这个发展历程不是特别了解的读者会有很多疑问?为什么这么多不同的编程模式都在作同一件事?它们之间的有什么差别之处?为什么有的API在最新的Minimal API又不能用了呢?[本文部分内容来源于《ASP.NET Core 6框架揭秘》第15章]
蒋金楠
2022/09/02
1.4K0
一题多解,ASP.NET Core应用启动初始化的N种方案[上篇]
将传统 ASP.NET 应用迁移到 .NET Core
现在越来越多的人在谈论. NET Core。诚然,.NET Core 是未来, 但是.NET Framework 仍在支持, 因为大量的应用程序无法在短时间内迁移。
Edi Wang
2019/07/08
5K1
将传统 ASP.NET 应用迁移到 .NET Core
asp.net core 系列之Startup
而在 Program 中,当 host builder 上的 Build 被调用时,应用的 host 被 built 。
Vincent-yuan
2019/09/10
5410
asp.net core 系列之Startup
ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布。这个版本包括许多伟大的新功能以及许多错误修复和一般的增强。这个版本包含了多个新的中间件组件、针对Windows的WebListener服务器、Razor视图编译以及Azure相关的特性。要将现有项目更新到ASP.NET Core 1.1 ,您需要执行以下操作: 1. 下载并安装更新的.NET Core 1.1  SDK 2. 按照.NET Core 1.1 升级公告(下一节介绍)中的说明将项目更新为使用.NET Core 1.1 3. 更新您
张善友
2018/01/19
2.6K0
一题多解,ASP.NET Core应用启动初始化的N种方案[下篇]
[接上篇]“天下大势,分久必合,合久必分”,ASP.NET应用通过GenericWebHostService这个承载服务被整合到基于IHostBuilder/IHost的服务承载系统中之后,也许微软还是意识到Web应用和后台服务的承载方式还是应该加以区分,于是推出了基于WebApplicationBuilder/WebApplication的承载方式。我们可以将其称为第三代承载模式,它有一个官方的名称叫做“Minimal API”。Minimal API同样面临向后兼容的问题,而且这次需要同时兼容前面两代承载模式,所以我们会发现“上篇”中提到的一系列初始化操作有了更多实现方式。[本文部分内容来源于《ASP.NET Core 6框架揭秘》第15章]
蒋金楠
2022/09/08
7440
ASP.NET Core应用基本编程模式[4]:基于承载环境的编程
基于IHostBuilder/IHost的承载系统通过IHostEnvironment接口表示承载环境,我们利用它不仅可以得到当前部署环境的名称,还可以获知当前应用的名称和存放内容文件的根目录路径。对于一个Web应用来说,我们需要更多的承载环境信息,额外的信息定义在IWebHostEnvironment接口中。[本文节选自《ASP.NET Core 3框架揭秘》第11章, 更多关于ASP.NET Core的文章请点这里]
蒋金楠
2020/11/24
7680
ASP.NET Core应用基本编程模式[4]:基于承载环境的编程
这样入门asp.net core,如何
本文章主要说明asp.net core的创建和简单使用。 一、使用到的命令 dotnet new :创建项目(解决方案,类库,单元测试等),如:dotnet new web dotnet add package 添加一个nuget的引用 dotnet test:运行测试 dotnet build:编译项目 dotnet sln add:将项目添加到解决方案 dotnet add reference:对此项目添加项目引用 二、建立空项目 在测试目录下运行 dotnet new web -n baseWeb,创
sam dragon
2018/03/28
2.2K0
这样入门asp.net core,如何
ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存
.NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中。对于分布式缓存,.NET Core提供了针对Redis和SQL Server的原生支持。除了这个独立的缓存系统之外,ASP.NET Core还借助一个中间件实现了“响应缓存”,它会按照HTTP缓存规范对整个响应实施缓存。不过按照惯例,在对缓存进行系统介绍之前,我们还是先通过一些简单的实例演示感知一下如果在一个ASP.NET Core应用中如何使用缓存。
蒋金楠
2018/02/08
2.7K0
ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存
.NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序
在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用。由于VS 2015目前尚不支持,VS Code的智能感知尚欠火候,所以我们直接采用最原始的记事本来编写这个MVC应用。[源代码从这里下载] 目录 步骤一、安装最新的.NET Core SDK 步骤二、定义源代码和配置         定义NuGet.xml         定义Project.json         定义入口程序         定义初始化类型       
蒋金楠
2018/01/15
8570
.NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序
在 Asp.Net Core WebAPI 中防御跨站请求伪造攻击
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。[1] 跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
beginor
2020/08/10
2.1K0
ASP.NET Core管道详解[6]: ASP.NET Core应用是如何启动的?[下篇]
要承载一个ASP.NET Core应用,只需要将GenericWebHostService服务注册到承载系统中即可。但GenericWebHostService服务具有针对其他一系列服务的依赖,所以在注册该承载服务之前需要先完成对这些依赖服务的注册。针对GenericWebHostService及其依赖服务的注册是借助GenericWebHostBuilder对象来完成的。
蒋金楠
2020/12/07
2.5K0
推荐阅读
相关推荐
asp.net core 系列之Reponse caching之cache in-memory (2)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档