希望写一个小型工具,给自己和需要的人。考虑到代码尽可能的复用,我准备采用 .Net Standard 来编写大多数核心代码,并基于 .Net Core 编写跨平台控制台入口,用 WPF 编写桌面端 UI 入口,用 UWP 作为可上架商店的 UI 入口,然后用 Shared Project 共享 WPF 和 UI 的多数 UI 入口代码。
阅读本文将了解到如何在尽可能复用代码的情况下组织这样的 C# 解决方案。
工具型项目,选择了控制台
用 WPF 开发桌面 UI,因为其有强大的 .NET Framework 库在背后支持,外加方便而功能齐全的 XAML 开发环境,在用 C# 进行桌面应用程序开发的时候不失为一种优秀的选择。但微软却并不怎么重视 WPF,而一直投入较大资源在半死不活的 UWP 上,导致 WPF 现在有非常多的坑是在 UWP 上才解的。然而,微软却并没有好好运营 UWP,以至于其开发者急剧减少,再在上面投入太多精力投入产出比显得太低。
.NET Framework 是个优秀的框架,可是与 Windows 桌面端绑得太死,以至于在当下多平台发展得都不错的情况下失去了大多数的竞争力。但是 .NET Core 解决了这个问题。然而谈到 UI 的跨平台,就是一个巨大的投入和难以见底的坑,以至于基于 .NET Core 且跨平台的 UI 框架目前依然没有出现。
毕竟只是工具型项目,并不想去动用大型 UI 框架 Xamarin/Unity,以至于写一个 .NET Core 控制台程序成了小型工具型项目的最佳解决方案了。
工具型项目是任务导向的,能完成任务为最终目的。控制台与配置文件的配合不仅足以完成任务,还为自动化或其他工具集成提供了方便。这里提供 UI 只是为了方便此工具用户的初学使用和理解。<