随笔分类 - .NETCore
摘要:上一篇我们通过导出IIS Express的自签证书,供ASP.NET Core程序启用HTTPS。本篇我们讨论如何生成自签证书。自签证书的生成,有多种方式。比如OpenSSL或PowerShell都可以通过命令生成证书。对于.NET程序,也有System.Security.Cryptography.
阅读全文
摘要:本质上我还是一个Windows App Developer,所以虽然会做一些ASP.NET Core的工作,但通常这些ASP.NET Core的程序会托管在Windows Service上,并且大部分时候跑在局域网环境。说实话传统行业的Win DEV对Web这一套其实不怎么精通,今天我们来看一下AS
阅读全文
摘要:除了广阔的互联网,这个世界上还存在很多运行在公司内网的Web Application。假设有团队A提供的网站A,现团队B需要将网站B与之集成。网站A已使用了自签的SSL证书。团队B希望能够导出该SSL证书并转换成PEM格式,供Nginx配置给网站B使用。接着假设上述假设成立,世界上就是有这些奇奇怪怪
阅读全文
摘要:Windows Runtime API是当初某软为了区别Win32 API,力挺UWP而创建的另一套Windows 10专用的API集合。后来因为一些原因,UWP没火。为了不埋没很有价值的Windows Runtime API,某软只好允许.NET Framework的程序调用Windows Run
阅读全文
摘要:很多小伙伴在升级到Visual Studio 2022后发现,如果我们去新建一个.NET 6的项目,和原先VS2019中一摸一样的写法,却会出现CS8618 Non-nullable property或者其他可能为null的警告。虽然不影响代码的编译和运行,却让人心里不踏实。这是因为VS2019除了
阅读全文
摘要:在上一篇《.NET 6学习笔记(2)——通过Worker Service创建Windows Service》中,我们讨论了.NET Core 3.1或更新版本如何创建Windows Service。本篇我们将在此基础上,托管ASP.NET Core程序并指定端口。首先让我们创建一个ASP.NET C
阅读全文
摘要:通过Visual Studio中的Windows Service模板,我么可以创建.NET Framework版本的Windows Service,网络上对此已有详细且丰富的各路教程。但在我们升级到.NET Core 3.1或.NET 6后(这里仅讨论两个LTS版本),情况发生了相当大的变化。我们需
阅读全文
摘要:会写这篇纯属机缘巧合,虽然一直以来认为对单一文件的读、写操作是不冲突,可并行的,但实际并未实践过。正好有个UWP的程序要并行读取由Desktop Extension创建的文本,需要有个原型程序来验证,那不妨点开最新的VS 2022,顺手试试新的语法糖。首先我们明确本篇对文件的操作均通过FileStr
阅读全文
摘要:随着Visual Studio 2019 16.10版本的正式发布,创建WinUI 3的APP对我们来说,已不存在任何的难度。本篇我们就试着来一探究竟,看看WinUI 3 APP到底是个啥玩意,能不能重振Windows桌面开发。首先让我们把Visual Studio更新到16.10版本,16.10版
阅读全文
摘要:2021年3月的时候,Win UI 3终于来到了第一个稳定的支持版本,可用于创建发布到Micosoft Store的应用。据某软的说法,这个叫WinUI 3 Project Reunion 0.5的版本,是可以被用于生产了,但按某软的尿性,一般1.1版本会比较靠谱……首先我们要梳理一下Win UI
阅读全文
摘要:实在是被某软忽悠瘸了,愤而写此一篇。希望能让同样需求的同学们少走弯路。某软在《在 Windows 服务中托管 ASP.NET Core》中,介绍了通过创建Worker Service工程,来将.NET Core和.NET 5的程序以Windows Service的形式运行。但是某软你得说明,托管AS
阅读全文
摘要:上一篇我们梳理了CodeFist的一般流程,本篇我们讨论如何在一套代码中,支持SQL Server和SQLite的切换。同时从本篇开始,我们从.NET Core 3.1 迁移到.NET 5。相信.NET 到了5这个版本,所有人都不会再怀疑某软跨平台的决心。而且SQL Server也从2017版本开始
阅读全文
摘要:上篇我们介绍了怎么通过已有的SQLServer表来创建实体类,本篇我们改用Code First的方式,由C#代码书写的实体类来生成SQLServer表。并且通过简单的Console APP往SQLServer表写入数据。首先我们先创建3个空的Projects,其中EfCodeFirst是作为启动项的
阅读全文
摘要:曾经我以为再也不会去弄啥Database First,然鹅我错了。这个世界上就是有啪啪打脸和真香的时候。当小伙伴拿着做好的DB表结构和SQL脚本递过来的时候,我知道我没法拒绝。望着他突起的肱二头肌和充满杀意的脸庞,我怎能忍心说,来来来,我们Code First一把……DB First嘛,首先我们要确
阅读全文
摘要:1.为什么不要给每个方法都写try catch 为每个方法都编写try catch是错误的做法,理由如下: a.重复嵌套的try catch是无用的,多余的。 这一点非常容易理解,下面的示例代码中,OutsideMethodA中的try catch是不起作用的。 class NestedTryCat
阅读全文
摘要:在前一篇《.NET Core学习笔记(5)——WebAPI从Server端push消息到Client》中,我们简单学习了.NET Core版本SignalR的使用。Sample工程里我们创建了一个Console的Client接受来自SignalR Hub推送的消息。在最近的工作中,我尝试在UWP的项
阅读全文
摘要:标题起得有点厉害,汉字夹杂着E文,不符合教育部公布的“向社会推荐使用的外语词中文译名”规范。不过他管不着我。写本篇的起因,是重构一个现有的WinForms程序,将Server端的部分逻辑从raw socket通讯的方式,改为调用WebAPI。重构则是因为原先代码有严重的性能问题,而组里并没有能够写好
阅读全文
摘要:原则上我们应该避免编写混合同步和异步的代码,这其中最大的问题就是很容易出现死锁。让我们来看下面的例子: private void ButtonDelayBlock_Click(object sender, RoutedEventArgs e) { Delay100msAsync().Wait();
阅读全文
摘要:在写了很多年.NET程序之后,年长的猿类在面对异步编程时,仍不时会犯下致命错误,乃至被拖出去杀了祭天。本篇就async/await中的Exception处理进行讨论,为种族的繁衍生息做出贡献……处理async/await中的Exception,最致命的莫过于想抓的Exception抓不到,程序崩的莫
阅读全文
摘要:自.NET Core 3.0开始,某软加入了对WPF的支持。同时对XAML Islands也做了进一步加强。在.NET Core 3.0之前,我们只能在WPF程序中,通过两种方式有限制地使用Standard UWP Control: 微软包装好的第一方控件,比如InkCanvas,InkToolba
阅读全文