这两年一直在搞Java和Python,C#搞的相对较少,去年(2020)看到 Caliburn.Micro 的发起者说离开这个框架,还有些惋惜,觉得这是一个很精简的框架,
后来也没有关注过相关的新闻,这两天偶尔发现Caliburn.Micro更新了,支持NetCore,正好对于 NetCore 还没有系统的学习过,所以两者结合做了一个尝试。
现在想来用 Caliburn.Micro 也大大小小做了几个工具了,感谢其开发团队的工作。
码云上的源码地址
安装运行环境
1. 安装vs2019
![](https://img.haomeiwen.com/i14504725/26c5f5feceba1dac.png)
2. 查看或安装 dotnet core
![](https://img.haomeiwen.com/i14504725/89312c55e9023410.png)
3. 安装 Telerik_UI_for_WPF_2021_1_325_Dev.msi
![](https://img.haomeiwen.com/i14504725/2c7682d121d8db46.png)
4. Copy Nuget 包
个人需要在一个断网的环境中测试整个项目,所以在有网的机器上,下载了需要的Nuget的包,然后拷贝到内网开发(从 用户.nuge\下拷贝 )
dotnet add package System.Text.Encoding.CodePages --version 5.0.0
创建项目
1.用命令的形式生成项目文件
Telerik官网创建项目的方式:
![](https://img.haomeiwen.com/i14504725/2efdda517f0d5809.png)
个人安装好环境后,用vs2019中的Telerik扩展生成项目文件是总是报各种各样的错误,所以用命令行创建相关依赖进行尝试,测试通过
dotnet new wpf -n Dem2Ods
cd .\Dem2Ods\
dotnet run
![](https://img.haomeiwen.com/i14504725/b74665856f82bfe8.png)
2. 进入项目,项目结构如图显示
![](https://img.haomeiwen.com/i14504725/286709276a7b8b87.png)
3. 建立lib文件夹
然后 在lib下 建立Telerik子目录
将C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2021\Binaries下的NetCore目录copy到Telerik目录
4. 编辑引入 用文本编辑器打开 Dem2Ods.csproj 项目文件,源文件内容如下
![](https://img.haomeiwen.com/i14504725/45b59f1f3ce5080c.png)
编辑后内容如下
![](https://img.haomeiwen.com/i14504725/3d20d93133e0ff8f.png)
执行一次 dotnet run 看是否有错误发生
5. 建立 “ViewModels” ”Views“ 两个文件夹,建立一个AppBootstrapper.cs类文件
![](https://img.haomeiwen.com/i14504725/518fa11482d709d3.png)
6. ViewModels下建立 ShellViewModel.cs文件,内容如下图,注意命名空间必须完全一致,引用 using Caliburn.Micro;
![](https://img.haomeiwen.com/i14504725/7b02a2f53e093d87.png)
7. Views 下建立 ShellView.xaml 文件 内容如下并和 ShellViewModel.cs关联,注意 x:Class="Dem2Ods.ViewModels.ShellView" 最后没有"Model"字符
![](https://img.haomeiwen.com/i14504725/77eb262e358c6fc9.png)
8. AppBootstrapper.cs 文件的内容为:
![](https://img.haomeiwen.com/i14504725/4064d94f9dd0e706.png)
9. 关键的一步,修改 App.xaml文件
源内容如下:
![](https://img.haomeiwen.com/i14504725/40781112c9940583.png)
1:删除 StartupUri="MainWindow.xaml" 这段内容
2:增加
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<local:AppBootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
修改后如下图所示
![](https://img.haomeiwen.com/i14504725/4a3c5479c82b1e83.png)
10. 修改 App.xaml.cs文件
修改前
![](https://img.haomeiwen.com/i14504725/c0fb41e61cd40bd0.png)
修改后
![](https://img.haomeiwen.com/i14504725/387cc8afc33dc5c0.png)
11. 运行
dotnet clean
dotnet run
![](https://img.haomeiwen.com/i14504725/cdd6f5725a17f045.png)
网友评论