WPF 入门系列2 项目创建

发布时间:2025-10-19

本文为WPF 入门系列的第二篇,主要介绍如何创建 WPF 项目。本项目为资产管理系统,使用 Visual Studio开发,项目采用分层结构,用仓储模式开发。

创建项目

我使用 Visual Studio 作为 IDE 进行介绍,其他 IDE 也是差不多的流程。在 Visual Studio 中选择 创建新项目,在弹出的项目模板中选择 WPF 应用程序(C#),需要注意的是,如果你还安装了 VB 开发环境,那么在创建项目模板中同时也包含了 VB 的 WPF 项目模板,所以这里不要选择成了 VB 语言 或者 .NET Framework 模板。

https://static.scung.cn/01653fbc-77ac-4afe-9e52-8a2deafdf52f.jpg

选好模板之后,会进入到项目的配置页面,我们将项目名称设置为: RMS,然后选择一个项目存放的文件夹,在之后弹出的框架页面我们就选择上一章安装的 .NET 8.0 ,然后点击下一步就正式进入开发界面了。

https://static.scung.cn/fb7d6bb1-7899-4e36-a0ea-f5ccbfa2844a.jpg

现在我们已经得到了一个 WPF 的项目,项目中有 MainWindow 窗口,点击上方的运行按钮,就能看到默认的这个窗口。

https://static.scung.cn/28c001b9-447c-4a5d-aebc-69a714c033c1.jpg

接下来我们来处理一下整个项目解决方案的结构,上面说了采用分层结构,仓储模式开发,那我们创建两个类库项目:RMS.CoreRMS.Infrastructure,完成了我们的三层架构。

https://static.scung.cn/dee05ffa-eb68-4865-a357-f376754e479f.jpg

RMS.Core 中为整个资产管理系统的核心部分,其中定义了该系统所用到的实体(数据模型)。

RMS.Insfrastructure 为该项目的基础设施,包含了所有的数据仓库,为系统提供了数据的交互基。

RMS 是整个程序的应用层,其中包含了所有的用户交互界面,负责接收用户的输入,调用基础设施处理程序再输出给用户。

安装需要的包

开发 WPF 项目,离不开的一个概念就是 MVVM ,这是软件界面开发的一种思想,它允许界面和逻辑分离,让开发人员更加专注于逻辑和数据。

为了更方便的在 WPF 中使用 MVVM ,我们需要安装一些额外的包来做支持。我们需要使用到 NuGet,这是一个为 .NET 平台打造的软件包管理器。 它让开发人员能够方便地创建、共享和使用第三方库和代码包。 通过集成到Visual Studio 等开发工具中,NuGet 可以简化项目中添加、移除和管理依赖项的整个过程,包括处理依赖关系和版本控制。

在 Visual Studio 中,找到 工具 >> NuGet 包管理器 >>管理解决方案的 NuGet 程序包,即可打开整个解决方案的 NuGet 管理器。

https://static.scung.cn/aeb2dfbd-e21c-440f-a5d3-c81c333e693c.jpg

整个 NuGet 管理页面主要分为了浏览已安装更新合并四个主要板块。浏览页面用来搜索特定的 NuGet 包,已安装页面中可以看到整个解决方案中安装过的包,更新页面则是会检索整个解决方案中发布新版本的包。

https://static.scung.cn/e095890c-b716-4cb9-be88-90cb5cbbc1c9.jpg

这里我们使用 PropertyChanged.Fody 这个包简化开发的步骤。首先在 NuGet 程序包界面中切换浏览页面,在搜索框中输入PropertyChanged.Fody,搜索到的第一个包就是我们要安装的,选中这个包,侧边会出现这个包的介绍信息和可以安装的项目文件,选中我们的项目 RMS,点击安装按钮即可将 PropertyChanged.Fody 添加到我们的项目中。

https://static.scung.cn/b7300e36-68c1-42b1-b19b-d6b9c6f21dd4.jpg

其他阅读

C#本质论7.0

《C#本质论》是C#最权威、最值得尊重的参考书之一,作者为此付出了非凡的努力!Mark Michaelis的《Essential C#》系列多年来一直是畅销经典。

查看原文

C#中new和override的区别

在C#编程语言中,new 和 override 是两个重要的关键字,它们用于控制类成员方法的行为。在面向对象编程(OOP)中,理解这两个关键字的区别和用法,对于编写清晰、可维护和高效的代码至关重要。

查看原文

个人简介

你好,我是猪头少年,是一名定居在云南的软件工程师,主要的开发语言为 C#JavaScript,后端使用 ASP.NET Core,桌面端使用 WPFUnity ,前端使用 AngularBabylon.js。平时喜欢自驾出游。欢迎大家联系我。

查看原文

使用正则表达式来判断邮箱

在开发中,很多地方都需要用户输入邮箱,用户注册,登录需要邮箱,订阅消息需要邮箱,为了防止被恶意使用,一般都会使用正则表达式来判断输入是否符合邮箱规范

查看原文

TypeScript中的数组操作

我们在编码时,总会用到数组/列表这种类型,用于在单个对象中存储多个内容。在 TypeScript 中,也已经内置了该类型,方便我们来使用。

查看原文