闲话几句:

自从上周开始,IOS人员逝去,就开始接手IOS的代码了。

并开始整理IOS的代码(包括当时一开始设计的开发框架)。

在未来不远的日子里,设想是有一个系列详细的介绍I恋App和IT连App及前后端所有涉及的技术系列。

同时还准备发布一个IOS的开发框架,为十二星座再凑一个成员。

闲话结束,下面看正文:

CYQ.Data 支持DotNet Coe 的折腾过程:

大约是上周五,在提交CYQ.Data V5.5.8.1版本到Nuget后,看着C盘还有7G发了一会呆。

之后做了一个决定,卸载了VS2015,现在C盘有10个G。

到了微软官网,下载了社区版,把VS2017给装上了,好在可以选组件,只挑.NET Core 相关的,5个多G就完事。

安装好之后,建一个类库工程,把整套源码Copy过去,依赖项就是我们平时引用dll的地方:

开始编绎,并见证奇迹:一堆错误。

还好,VS2017在错误提示方面很人性化,分批给你显示错误数,让你解决一批再出来一批。

不像当初在VS2015折腾.NET Core 1.1的时候,一下子出来几百个错误,梁静如都救不了你。

面对错误:怎么处理、支持Dotnet Core ?

折腾.NET Core 1.1的时候:

那时候是把CYQ.Data的源码给重构整理了一次,把不支持的都单独给抽离出来。

像这样,比如那时候不支持序列化,就把涉及序列化的都抽出来放到一个文件:

通常一个类,会分拆出几个partial的部分类(不支持的用于被排除)

想法挺好:

通过排除某些文件夹的方式,来达到切换的状态,这样可以不用维护两份代码。

但是:

要达到去掉文件夹还能编绎完整通过的解O方式,由于有些是强关系,关是业务整理,工作量大的出奇。

一些代码还得修改为反射的动态调用,才能达到分离文件也正常,好不麻烦。

关键还是那时候的版本缺失的类库太多,折腾没几天,放下了,回头才是岸。

折腾.NET Core 2.0:

1:想过针对性的写一个迷你版本。

但没那么简单,要有激情,要有大量时间,这些条件要同时满足不容易。

同时意味着又多一个要维护的框架,虽然我维护中的框架已数不过来,多一个也不算多。

可时间对于认真的人,总是不够用啊!!!

2:通过增量方式,解决版本支持问题

上面说到,折腾 .NET Core 1.1 时,是想通过减量排除来解决问题,结果不得其门。

事情放一放,一回头,解决问题的方式,就是来的那么巧,那么妙。

这回很理所当然的,就想到用增量的方式来解决问题。

CYQ.Data 如何通过增量代码支持.NET Core

对于每一个提示不存在的类,VS环境中鼠标放上去时,都会有一个提示重构,通过它可以减少不少工作量。

1:为每一个不支持的类、方法、或属性,都用重构的方式,重新生成一个类文件,并用对应的名称空间整理放好。

通过这种方式,整理出不支持有差异化的类库,而且也可以清楚知道,框架里引用了哪些类是 .NET Core所没有的。

然后先顺利编绎通过。

2:重写新建类库的实现,比如,重写读配置文件:

using CYQ.Data;
using System.IO;
using CYQ.Data.Tool;
using System.Collections.Specialized;namespace System.Configuration
{internal class ConfigurationManager{static string appSettingJson = string.Empty;static ConfigurationManager(){string filePath = AppConfig.WebRootPath + "appsettings.json";if (System.IO.File.Exists(filePath)){appSettingJson = File.ReadAllText(filePath, Text.Encoding.UTF8);if (!string.IsNullOrEmpty(appSettingJson)){appSettingJson = appSettingJson.Replace("\\\\", "\\");}}}private static NameValueCollection _AppSettings;public static NameValueCollection AppSettings{get{if (_AppSettings == null && !string.IsNullOrEmpty(appSettingJson)){string settingValue = JsonHelper.GetValue(appSettingJson, "appsettings");if (!string.IsNullOrEmpty(settingValue)){_AppSettings = JsonHelper.ToEntity<NameValueCollection>(settingValue);}}if (_AppSettings == null){return new NameValueCollection();}return _AppSettings;}}private static ConnectionStringSettingsCollection _ConnectionStrings;public static ConnectionStringSettingsCollection ConnectionStrings{get{if (_ConnectionStrings == null){_ConnectionStrings = new ConnectionStringSettingsCollection();if (!string.IsNullOrEmpty(appSettingJson)){string settingValue = JsonHelper.GetValue(appSettingJson, "connectionStrings");if (!string.IsNullOrEmpty(settingValue)){NameValueCollection nv = JsonHelper.ToEntity<NameValueCollection>(settingValue);if (nv != null && nv.Count > 0){foreach (string key  in nv.Keys){ConnectionStringSettings cs = new ConnectionStringSettings();cs.Name = key;cs.ConnectionString = nv[key];_ConnectionStrings.Add(cs);}}}}}return _ConnectionStrings;}}}
}  

配置文件和System.Web这两个是经常用到的东西。

相对配置文件的读取,System.Web的,麻烦了一些,需要Nuget上引用Microsoft.AspNetCore:

引用好后,再重写里面的内容,具体的内容,这里就不贴代码了,代码可以见源码处。

由于这周末两天临时集中处理,刚处理好,只做了简单的MSSQL的测试。

所以来不及发布Nuget上,先写文了,等哪天测试稳定了再上Nuget。

CYQ.Data 支持.NET Core 的方法:

1:GitHub下载CYQ.Data的源码(会发现多了一个文件夹)

地址:https://github.com/cyq1162/cyqdata

由于目前还没提交解决方案文件可以直接运行项目,所以现在提前提前体验的需要自己建类库项目了:

2:自己新建一个类库项目,取名叫CYQ.Data,把源码都Copy过去(包括DotNetCore)

3:Nuget上引用Microsoft.AspNetCore。

编绎,然后就大功告成了,在你的.NET Core 项目里引用类库项目就可以了。

如果涉及到Web,还需要有两个注入的地方:

在MVC项目中调用app.UseStaticHttpContext()。public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){app.UseStaticHttpContext();.....}
在没有注入 HttpContextAccessor的项目中,还需在ConfigureServices 方法中调用
services.AddHttpContextAccessor();

总结:

一个周末,一个巧合,一个连续的激情奋战。

CYQ.Data 的.NET Core支持工作,就这样告一段落了。

测试了MSSQL是基本通过,剩下的都好说了!!!

后面Taurus.MVC还是Aries,估计离支持.NET Core也不远了。

不过,接下来,又要进入IT连创业的状态了。

对于IT连,结合一些网友的建议,最近也有不少思考。

对接下来的产品优化及走向,又一波伤脑估计是在所难免。

另外,运营还缺的一篇文章,回头也还得补上。

最后的最后,仍是感谢大伙的关注!!!

转载于:https://www.cnblogs.com/cyq1162/p/7969062.html

CYQ.Data 正式支持 DotNET Core 版本发布相关推荐

  1. [SSCore] 开源dotnet core 版本 SuperSocket

    前言碎语 最近一直在做旧版本dotnet 程序迁移至dotnet core的工作, 非常欣慰dotnet社区的蓬勃发展, 目前大部分的第三方类库或开源代码都有了dotnet core版本 或者可以方便 ...

  2. C# 极限压缩 dotnet core 控制台发布文件

    每次发布 dotnet core 应用都会觉得发布文件太大,而如果使用极限压缩,用 CoreRT 能让发布的控制台文件到 5KB 左右,不需要带框架就能在其他设备运行 这是微软 MichalStreh ...

  3. CYQ.Data 数据框架 加快开源速度 发布V1.5.5版本源码

    前言: 上周发布:秋色园QBlog V2.5 后台管理系统源码发布下载 之后,截至今日,后台统计的下载次数是:1321. 在此感谢大家的支持与关注. 秋色园QBlog 后台管理系统是 CYQ.Data ...

  4. 手把手教你用Jenkins做dotnet core自动化发布

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略-. 嗯?不是说好手把手么?你 ...

  5. dotnet core 通过 frp 发布自己的网站

    很多时候写出来的网站只能自己内网访问,本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网,让小伙伴访问自己的网站 通过 frp 的方式,可以解决自己的服务器性能太差 ...

  6. QQ 邮箱漂流瓶正式关闭;PostgreSQL 为 6 版本发布安全更新

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.PostgreSQL 11.4, 10.9, 9.6.14, 9.5.18, ...

  7. PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug

    作者丨陈萍 来源丨机器之心 PyTorch 1.12 正式发布,还没有更新的小伙伴可以更新了. 距离 PyTorch 1.11 推出没几个月,PyTorch 1.12 就来了!此版本由 1.11 版本 ...

  8. cyq.data mysql_CYQ.Data 支持 PostgreSQL 数据库

    前言: 很久之前,就有同学问我CYQ.Data能不能支持下PostgreSQL,之后小做了下调查,发现这个数据库用的人少,加上各种因素,就一直没动手. 前两天,不小心看了一下Github上的消息: 看 ...

  9. CYQ.Data 数据框架系列索引

    2019独角兽企业重金招聘Python工程师标准>>> 索引基础导航: 1:下载地址:http://www.cyqdata.com/download/article-detail-4 ...

  10. centos 6.5 安装dotnet core 2.2

    .net core 官网地址 https://dotnet.microsoft.com/download 本次安装版本为.net core SDK v2.2.101 1.查看系统版本, 升级系统基本l ...

最新文章

  1. 方法执行[置顶] onPause()和onStop()的使用方法及注意事项
  2. 修改服务器404页面,服务器上的404页面做了有什么好处?
  3. 洛谷 P1205 [USACO1.2]方块转换 Transformations
  4. stateful function用法记录(还没弄完)
  5. 【计蒜客 - 2019南昌邀请赛网络赛 - I】Max answer(单调栈,RMQ)
  6. C#LeetCode刷题之#118-杨辉三角(Pascal‘s Triangle)
  7. java 反射创建对象并赋值_[原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)...
  8. 5G(2)---NR协议栈及功能1 - 总体架构与物理层
  9. python是什么时候出现的_python诞生于什么时候
  10. IPV6之DHCPV6
  11. 数据库时间相减_SQL 日期相减(间隔)datediff函数,
  12. 服务器2008系统设置密码,win2008服务器设置密码
  13. GDC2013 Horizon and Beyond A Look into Tomb Raider's Tools
  14. 手机端API框架流程(学习笔记)
  15. qrcode将生成的二维码转成img格式
  16. StringBuffer的使用
  17. Angular提交规范
  18. ESL4.3 线性判别分析(LDAQDA)学习笔记
  19. ::before 和:after的区别
  20. java 枚举 color_java 枚举实现方法-java 枚举个性化-嗨客网

热门文章

  1. 成绩排序--清华机试真题;使用运算符重载
  2. Arts 第十二周(6/3 ~ 6/9)
  3. 对话张悦然:当年新概念作文大赛获奖者 现在怎样了
  4. vmtools 安装不上的方法 我这里介绍下vm14 Ubuntu的系统
  5. rabbitmqBat常用指令
  6. 纯javaweb项目整合quarz定时器
  7. 客户端中转request请求乱码
  8. 红黑树 RBTree
  9. 浅谈line-height 1
  10. Failed to load class org.slf4j.impl.StaticLoggerBinder