.NET 5.0 Source Generators

.NET 5.0 Source Generators

Source Generators 目前还属于 Preview 状态

随着.NET 5 正式版的发布,我相信.NET 社区以及使用.NET 技术栈的工程师们已迎来新血液,.NET 5 发布了诸多新功能,例如:Top-level programs,这让我们可以像写脚本语言一样,不用需要声明命名空间和类,直接开写。新一代 GC,更高的编译性能,Dictionary<K,V>的匿名声明支持等等,其中有一项功能我在预览版就已经用于我的项目,并且解决了非常大的痛点,这项功能就是 Source Generators

阅读更多
.NET框架到底是什么?

.NET框架到底是什么?

最近在面试大厂中,面试官频繁的问到一个问题,**.NET 框架是什么?怎么运行?**可以详细解释一下吗?还好之前看过《CLR VIA C#》这本著作,还是可以回答上的,现在想通过这次机会写一篇系统的文章来介绍一下。

阅读更多

Prism Step7 Command

什么是Command?先看下微软官方的说明:

Commanding is an input mechanism in Windows Presentation Foundation (WPF) which provides input handling at a more semantic level than device input. Examples of commands are the Copy, Cut, and Paste operations found on many applications.

命令是Windows Presentation Foundation(WPF)中的一种输入机制,它提供比设备输入更多的语义级别的输入处理。命令示例包括在许多应用程序中发现的“复制”,“剪切”和“粘贴”操作。

阅读更多
Prism Step6 Modules

Prism Step6 Modules

Modules 是能够独立开发、测试、部署的功能单元,Modules 可以被设计成实现特定业务逻辑的模块(如 Profile Management),也可以被设计成实现通用基础设施或服务的模块(如 Logging、Exception Management)。

既然 Modules 能够独立开发、测试、部署,那么如何告诉 Shell(我们的宿主程序)去 Load 哪些 Module,以怎样的形式 Load 这些 Module 呢?Prism 为此提供了一个叫 ModuleCatalog 的东西。他用这个来管理 Module。所以在 App 启动之初,需要创建配置一个 ModuleCatalog。

阅读更多
Prism Step4 ViewModelLocationProvider

Prism Step4 ViewModelLocationProvider

ViewModel 是对应的 View(数据和行为)的抽象,View 只是 ViewModel 的一个消费者,那么还有其他的消费者吗?当然有了,那就是单元测试(Unit Test),这个后面说。ViewModel 为 View 提供数据上下文(DataContext),简单的说,你 View 需要展示的东西,都在我这里,你需要跟我绑定,包括数据和命令,Prism 提供了自动的 ViewModel 匹配。

阅读更多

Prism Step3 CustomRegions

Prism系列的第三篇,我的更新速度也是有点慢,大家凑活看吧,这一片主要讲自定义占位符的使用,Regions是定义在应用UI中的逻辑占位符(在Shell或者在其它的视图中),视图会在其中显示。简单的说,就是一个容器(区域适配器),用来装载Views。功能和Panel控件差不多。视图可以以编程的方式或者自动被显示在Region中。

阅读更多
Prism Step2 Regions

Prism Step2 Regions

Prism 可以帮助我们开发模块化程序,将程序分割成一个个独立的 Module,分别进行开发。然后在程序运行的时候,将各个 Module 组合到一起,为程序提供各种各样的功能。通常来说,Module 是一些视图和功能的集合,那么就需要一种办法来将这些视图以某种形式,在特定的时间展现出来。Prism 通过 Shell + Region 来组织视图的布局,完成视图间的转换等。

阅读更多

Prism Step1 BootstrapperShell

BootstrapperShell 是 Prism 很重要的理念之一,调用 Bootstrapper 类进行程序主窗体的引导和构造,每一个基于 Prism 架构的应用,都将通过这个基类开始。

阅读更多

依赖属性解析

Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能,这些服务通常统称为 WPF 属性系统。由 WPF 属性系统支持的属性称为依赖项属性,虽然不清楚依赖属性,但是属性我们是很清楚的,封装类的字段,表示类的状态,编译后被转化为get_set_方法,可以被类或结构等使用,常见的一个属性如下:

阅读更多