ASP.NET Core 折腾笔记一

前言:

在ASP.NET Core 1.0时,曾折腾过一次,后因发现不了System.Data而停止。

更因VS2015提示过期Delete掉VS了,其实主要还是笔记本的硬盘空间吃紧。

快双十一了,本想过重新买台笔本来折腾.NET Core。

睡觉时,莫名脑袋一转,格了系统重来吧,然后就省下一台笔记本的钱了。

花了半天,终于把VS2015环境都装好了,终于又开始作了。

VS环境安装过程:

1:Win7系统,要装SP1,才能安装VS2015(安装后6-7个G大小)

2:下载安装VS2015(安装后快10个G了)

3:安装:Visual Studio 2015 Update 3

4:安装:.NET Core 1.0.1 - VS 2015 Tooling Preview 2

5:安装:.NET Framework 4.6.2

把东东都装齐,一天就过去了。

VS编绎的过程:

目标:编绎一个CYQ.Data的Core版本类库。

结果:只完成了10%。

下面分享作腾的过程:

新建了一个类库项目:

装完VS2015,发现只有Web Application(.NET Core),新建还是空的,无语!

后来到处下东西装了半天,才出来。

安装了4.6.2,发现.NET Framework下拉里也没出来?

好吧,就这样吧,反正能用。

建好项目之后,问题就一个接一个来了:

1:VS环境问题:

想要:用上篇文章可视化调试工具里的技巧,通过复制项目的解决方案,来引用同一个位置的文件。

结果:走不通。

原因:AssemblyInfo.cs 这个文件有点不一样。

.NET Core的是简化版,而且说明和版本号,都移值到project.json里去了。

解决方法:只有悲催的复制一份代码过去,编绎。

悲催的另一个功能:包含或排除项目文件:

只有隐藏和显示,悲催的是,隐藏掉的,也会被编绎,无语问苍天。

结果:只能Delete掉才能避开编绎错误。

2:API缺少的问题:

 一编绎,几百上千个错误,吓死小伙伴了,经过一夜的努力,还有100多Error。

下面说说一些API的缺少,以及曲线救过的方法:

1:关于引用。

发现我已经不懂怎么用了,因为:

好在,代码提示里还能引用:

就这样,引入了两个System.Data、System.Data.Common:

2:关于不支持的API

1:System.Data.OleDb

2:System.Data.OracleClient

3:System.Runtime.Serialization.Formatters.Binary

4:System.Web

5:System.Configuration

6:System.Runtime.Cache

7:Winform或WPF系列。

太多了,数不过来,还有一些虽然有名称空间,但是缺少方法或属性。

目前的处理方式:

1:将不支持的功能,用部分类分离到单独的一个文件夹:

以下像引用到Winform或序列化的,直接单独到Extension,后续引到.NET Core时,直接删除这个文件夹。

2:将不支持,但有代替方法的,用扩展方法,或者定义相似方法来替代:

如:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class AppDomain

{

    public class CurrentDomain

    {

        public static string BaseDirectory

        {

            get

            {

                return AppContext.BaseDirectory;

            }

 

        }

 

    }

}

3:将不支持,也没有代码方法的,只有重写功能了:

比如:Cache,虽然MemoryCache,但原有的文件依赖功能却没有了。

二进制序列化:ToJson容易,从Json回来就还有大量事情要处理了。

4:没有System.Web

刚发现在Microsoft.AspNetCore.Http下,大部分类是相似的。

5:没有DataTable,DBDataReader也没有GetSchemaTable()方法。

6:另外还发现有数不清的不同:

就不一一详述了。

其它:

.NET Core 的开源地址:https://github.com/dotnet/corefx

从源码的提供提交日期看,还是保持着经常性的更新的。

.NET Core 的使用文档:https://docs.asp.net/en/latest/intro.html

 

补充内容:

.NET Core 微软官方的源码查看:https://source.dot.net

刚扫了一下,看出来了,微软官方的源码比Github上的新,而且一些临临散散的API也都补了或正在补中。

所以,还是可以期待下一个版本的。

总结:

总体而言:在目前阶段,要想把原有的类库迁移到.NET Core,工作量是相当的大啊!!!

而且好多功能得自己脑补,得曲线实现相关的功能,这门槛就大大的提高了!!!

不过总要有前人努力,后人才能乘凉,大伙都还是可以努力一下的!!!

本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/p/6038657.html

时间: 2024-09-29 05:12:10

ASP.NET Core 折腾笔记一的相关文章

ASP.NET Core 折腾笔记二:自己写个完整的Cache缓存类来支持.NET Core

背景: 1:.NET Core 已经没System.Web,也木有了HttpRuntime.Cache,因此,该空间下Cache也木有了. 2:.NET Core 有新的Memory Cache提供,不过该内存类我看了一下,并没有支持文件的缓存依赖. 因此,在此前提下,预计.NET Core明年出来2.0版本时,可能也没支持文件的缓存依赖,因此,有必要提前准备实现. 在写此文前,我扫了一下园子里关于自定义缓存类的相关文章. 发现很多自定义的缓存类文章都简单停留在对字典的增删改查. 因此,决定补充

ASP.NET Core的配置(4):多样性的配置来源[中篇]

我们在本篇文章中会介绍三种针对物理文件的ConfiguationProvider,它们分别是针对JSON文件的JsonConfiguationProvider,针对XML文件的XmlConfiguationProvider以及针对INI文件的IniConfiguationProvider.对于这三种文件类型(JSON.XML和INI)来说,JSON能够采用简单直观的格式表示具有不同结构的数据,所以它是作为配置最好的选择. 目录 MemoryConfigurationProvider Enviro

【dotnet跨平台】最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】

[dotnet跨平台]最新版dotnet-cli下的ASP.NET Core和asp.net mvc[RC2尝鲜] RC1是http://get.asp.net里面提供的https://docs.asp.net/en/latest/getting-started/index.html,使用旧的ASP.NET Core 1.0.这个版本会使用dnvm,dnu restore和dnx web等,而RC2则不需要,RC2只需要dotnet restore和dotnet run,无论是对控制台程序还是w

ASP.NET Core的配置(2):配置模型详解

在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvider,以及作为"中间人"的ConfigurationBuilder.接下来我们将会对由这三个核心对象组成的配置模型进行详细介绍,不过在此之前我们有必要来认识配置信息在不同载体中所体现出来的三种结构. 目录 一.配置的三种结构 逻辑结构 原始结构 物理结构 结构转换 二.Configura

学习ASP.NET Core,怎能不了解请求处理管道[1]: 中间件究竟是个什么东西?

ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 "通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程"(上篇.中篇.下篇) 中围绕着一个经过极度简化的模拟管道讲述了真实管道构建的方式以及处理HTTP请求的流程.在本系列 中,我们会还原构建模拟管道时可以舍弃和改写的部分,向读者朋友们呈现一个真是的HTTP请求处理管道. ASP.NET Core 的请求处理管道由一个服务器与一组有序排列的中间件构成

ASP.NET Core应用中如何记录和查看日志

日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.LoggerFactory和LoggerProvider这三个核心对象组成.我们可以通过简单的配置实现对LoggerFactory的定制,以及对LoggerProvider添加. [ 本文已经同步到<ASP.NET Core框架揭秘>之中] 目录 一. 配置LoggerFactory 二.以当前请求作为日志范

ASP.NET Core真实管道详解[1]:中间件是个什么东西?

ASP.NET Core管道虽然在结构组成上显得非常简单,但是在具体实现上却涉及到太多的对象,所以我们在 <ASP.NET Core管道深度剖析[共4篇]> 中围绕着一个经过极度简化的模拟管道讲述了真实管道构建的方式以及处理HTTP请求的流程.在这个系列 中,我们会还原构建模拟管道时刻意舍弃和改写的部分,想读者朋友们呈现一个真是的HTTP请求处理管道. ASP.NET Core 的请求处理管道由一个Server和一组有序排列的中间件构成,前者仅仅完成基本的请求监听.接收和响应的工作,请求接收之

ASP.NET Core 2.0 支付宝当面付之扫码支付

原文:ASP.NET Core 2.0 支付宝当面付之扫码支付 前言 自从微软更换了CEO以后,微软的战略方向有了相当大的变化,不再是那么封闭,开源了许多东西,拥抱开源社区,.NET实现跨平台,收购xamarin并免费提供给开发者等等.我本人是很喜欢.net的,并希望.net core能够崛起.我是从.net core 1.1的时候开始使用的,到现在的.net core 2.0..net core 2.0比1.1有了一些改变,api也增加了很多,用着更顺手了,最近在做asp.net core 对

ASP.NET Core应用的错误处理[2]:DeveloperExceptionPageMiddleware中间件如何呈现“开发者异常页面”

在<ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式>中,我们通过几个简单的实例演示了如何呈现一个错误页面,这些错误页面的呈现分别由三个对应的中间件来完成,接下来我们将对这三个中间件进行详细介绍.在开发环境呈现的异常页面是通过一个类型为DeveloperExceptionPageMiddleware中间件实现的.[本文已经同步到<ASP.NET Core框架揭秘>之中] 1: public class DeveloperExceptionPageMiddlewa