yangyang

a .NET Developer

All Posts


Web API 3.0中日期类型的格式化设置

由于Web API快速迭代了好几个版本,在最新版本的格式化中,对于时间的格式化设置,记录一下。 Web API 3.0中的Json序列化,使用的是System.Text.Json这个序列化类。在不对其进行设置的情况下,对于日期格式,输出的内容形式是: 2020-06-30T06:16:38.62 默认使用System.Text.Json时的解决办法 在日期和时间中间有字母"T",这是一种IsoDateTime格式,有些时候,我们需要自定义格式,比如把中间的T去掉,以方便客户端使用。那么怎么办呢?那么就需要自定义数据类型转换。 public void ConfigureServices(IServiceCollection services) { services.AddControllers().AddJsonOptions(o =& …

WebApi

优化MATLAB读取数据的速度

有个C#程序每天实时落地了一些股票行情数据,为节省存储空间,数据是以二进制文件的方式存储的。现在要将这些数据提供给研究人员的MATLAB使用,需要编写一个C#的dll供MATLAB调用。 先说一下实时行情的格式。目前只需要用到存储数据里的,股票代码,涨停价,跌停价,最新价,时间,成交量,成交额,买一至买十的价格和数量,卖一到卖十的价格和数量这些信息,行情从9:25~15:00大概每3秒一条记录。 ↑ 典型的行情界面,上图里盘口只有5档,因为10档要钱😂 在C#里面,可以定义一个MarketData对象,表示某一时刻的行情,行情里面包含股票代码,买卖十档的价格和数量等等,MarketData 如下图,只列出了部分字段: public class MarketData { public string Symbol;//代码 …

Performance Optimizing Matrix MATLAB

如何正确对外暴露集合对象

我们在定义一个实体的时候,一般是不希望对外暴露其内部过多的成员信息的。尤其是一些集合信息,因为这些集合信息如果对外暴露不慎,就会破坏封装性,从而使得外部对象能够对其进行一些破坏性的修改。所以对外我们一般返回只读集合,这个问题在之前的文章不要对外公开泛型List成员中提到过。 问题的产生 下面以我们购物中的购物车为例来说明: public class Cart { private List<ProducItem> ProductItemsCollection; public Cart() { ProductItemsCollection = new List<ProducItem>(); } /// < …

IReadOnlyCollection

为什么听过很多道理,却依然写不好代码?

最近买了一本书《程序员修炼之道》,这书名起得跟葵花宝典一样😂,我一开始是拒绝的。就跟那些在畅销榜上的什么《阿弥陀佛么么哒》这种一听名字就反胃的书一样,畅销榜上的书都是好书吗?这年头花点钱就能上头条上热搜。写过代码的都知道,要想把某个东西排在前面再简单不过了,只要把数据库里这条记录的IsTop设为true就完事儿。这本书里的第18页说到: “永远不要低估商业主义的力量,网络搜索引擎仅仅把最热门的东西列在最前面而已,并不能说明这是你的最佳选择,而且内容提供商也可以花钱把他们的内容排到前面。书店有时候仅仅是把一本书摆在显著的位置而已,并不能说明这是一本好书,甚至不能说明这本书很流行,可能只是有人花钱把他摆在了那里”——《程序员修炼之道(第2版)》 非常有道理,现在的网络,为了讨好、迎合和吸引用 …


通过代理类解决异步回调信息缺失问题

问题的产生 在之前写的爬虫里,有把文章从博客园迁移过来的功能,除了文字之外,还有图片链接。需要把一篇文章里的图片找出来,然后下载,然后重新命名,再把新的名称更新到文章里。这里就涉及到一个问题,图片下载。 图片下载我这里用的是WebClient类: WebClient client = new WebClient(); client.DownloadFile(imageUri, localFilePath); 上面这个是同步方法,有两个参数,一个是图片url,一个是要存储的本地文件路径,包含文件名。很显然,不能用这个同步方法,因为它是阻塞的,下载一篇文章不可能一张图片一张图片的去下载。所以需要找到一个异步方法,同时要能提供图片是否下载成功相关信息。 C#里面提供了一些BeginXX和EndXX的异步方法,在其中的BeginXX方法中, …

Proxy Async Callback

推荐文章

写了一些文章,有一些自己比较满意,这些都是以系列的方式写的;还有一些写的比较随意,有凑数的嫌疑😂 (就像现在很多智能手机有很多摄像头一样,凑数的四摄🤣),这里列出自己相对比较满意的文章,方便查看。 1.Excel开发系列 这个是我当年在某财经公司做Office插件开发时的一些新得和总结,毫不谦虚的说,大概是目前网上关于Office插件开发比较全的文章,这方面资料比较少,这些文章是在工作中跟同事以及在网上不断查找探索的总结。总共写了十一篇。 浅谈Excel开发:一 Excel 开发概述 浅谈Excel开发:二 Excel 菜单系统 浅谈Excel开发:三 Excel 对象模型 浅谈Excel开发:四 Excel 自定义函数 浅谈Excel开发:五 Excel RTD函数 浅谈Excel开发:六 Excel 异步自定义函数 浅谈Excel开发: …

Excel Development Design Pattern SQLServer Performance Optimizing Data Structure Algorithm

一点读书笔记之二

之前看到一句话,说是“读书最好的目的在于,凭借自身阅读所构建的小世界,能以体恤式的温柔,消解自身的苦难。” 当然了,苦难不敢说,毕竟现在都小康社会了。更多时候其实是读书能够丰富自己的内心世界,任凭外面风吹雨打,内心能够岿然不动😂! 生活中存在很多的碎片时间,比如坐地铁啊,吃饭等饭的时候啊。这些时间不适合搞那些需要大量上下文切换的研究,所以比较适合看看文学作品,比刷微博微信快手抖音知乎之类的要好,这些东西越看越无聊,也没有许多有价值的信息,更多的都是一些垃圾信息。对于看啥书,大多时候选择书不能看排行榜,要选一些经过时间检验的,能够让人思考的书籍和文章,以前听过一个说法,说是只看死了的人写的书,这未免太偏激,不过也不是没有道理。书的好坏也不好辨别,还是要看个人,所以不太轻易推荐书,也许自己觉得好的,别人看来一般般。这里只是整理一下躺在草稿箱 …


使用EntityFrameworkCore对包含DbContext的类库生成迁移脚本

最近在学习EntityFramework Core的相关东西,其实数据库访问的方式有很多种比如有上古神器ADO.NET ,还有从java泊来的NHibernate等,当然还包括之前的Entity Framework,还有比较轻量级的Dapper等。关于数据访问,当然可以用手写SQL,然后用ADO.NET那一套来处理,但是都2020年了,这么搞显然不够高级,而且不够效率,最重要的是容易996。但是据我所知,并不是所有的公司都会去用ORM,就拿我曾经待过的还算比较大的一家公司来说,一般开发人员是接触不到DB的,对数据库的一些操作操作,有专门的DBA来管理,比如DBA会对某张表默认生成CRUD的存储过程,去调用就可以了,对于查询,一般的也是开发人员用ADO.NET 自己写SQL语句,最多就是把ADO.NET封装一下,提供给一般的开发人员使用。甚至一般的LINQ在有些公司都是禁止使用的 …

Entity Framework Core Migrations

SQLite入门及优化

SQLite是一个小型的关系型数据库系统,应用非常广泛,通常可以作为本地数据的临时存储,比如一些移动App使用SQLite作为本地存储,下面简单介绍一下SQLite的使用,以及注意事项。 在C#中使用SQLite比较简单。首先要去官网下载System.Data.SQLite 文件,这个是对SQLite3的C语言dll的.NET包装,根据当前的.NET版本以及操作系统是32位,还是64位,下载不同的程序集。当然,还可以在Visual Studio中,通过NuGet packages添加。 下载完成之后,在项目中引用System.Data.SQLite.dll就可以使用ADO.NET以类似访问SQL Server的方式访问SQLite了,当然,上面下载的安装包中,还包括System.Data.SQLite.EF6.dll,System.Data.SQLite. …

SQLite

关于新的个人博客

大概2011年的时候我在博客园上开通了一个主页,那个时候刚毕业,晚上下班回家无所事事,又不喜欢打游戏,就开始研究一些技术方面的东西,然后开始在上面写文章,之所以想着写文章,原来只是记录一下个人的一些经验或者遇到的问题的解决方法,方便以后自己查看,正所谓“好记性不如烂笔头”,很多东西如果不及时记录下来,时间长了也就会忘记。还有一部分文章是个人的一些读书笔记,比如看完之后,想着看能不能自己复述出来,这样也能检验自己是否真正的理解,我觉得书写对锻炼自己的表达能力和文字功底,是有一些帮助的。 从2011年到2016年期间,断断续续的写了大概100多篇,有一些是个人工作中遇到问题的总结,比如Excel插件开发系列,有一些是工作之余的一些爱好,比如Kinect开发,还有一些是读书笔记,比如算法和数据结构那些文章。当然,这些都是在工作不需要经常加班的条件下, …

.NET