zoukankan      html  css  js  c++  java
  • 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:将不支持,但有代替方法的,用扩展方法,或者定义相似方法来替代:

    如:

        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,工作量是相当的大啊!!!

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

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

  • 相关阅读:
    修改mysql数据库字段内容默认值为当前时间
    报错 raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc)
    python标准库之ConfigParser模块读写配置文件
    使用xshell连接liunx服务器遇到的问题( Connection failed)
    linux学习笔记(四)
    本地项目上传到github
    Java 获取昨天、前天时间
    Kibana 启动报错 Error: Unable to write Kibana UUID file, please check the uuid.server configuration value in kibana.yml
    Mybatis foreach 标签的使用
    RabbitMQ 延时队列
  • 原文地址:https://www.cnblogs.com/cyq1162/p/6038657.html
Copyright © 2011-2022 走看看