c# - 在 C#/WPF 中构建共享代码库的技巧/资源?

标签 c# .net wpf project-structure

我已经使用 C#/WPF 编写了一个简单的桌面应用程序,现在我正在寻求创建另一个更大的应用程序,它将共享大部分功能。我在想我应该创建三个单独的项目:一个包含共享代码,另一个用于两个应用程序。

我的问题是我对 .NET/WPF 并不完全熟悉,所以我不知道是否有针对此类事情的最佳实践。谁能提供一些好的信息来源、示例项目或一些简短的建议?

编辑:为了更详细地说明场景,第一个应用程序是一个专门的编辑器,第二个应用程序使用这个文件编辑器并围绕它包装一个项目模型以创建一种基本的 IDE。

最佳答案

老实说,这取决于您打算共享的代码的级别。例如,将所有业务逻辑代码放入一个项目/类库并独立维护它是完全合理的,但应强烈反对将业务逻辑与 WPF 自定义控件混合使用。考虑您要模块化的抽象层,以及您要引入的依赖层次结构并相应地进行重构。

编辑:

针对您的上述更改,我提出以下建议:与上述相关的逻辑和 DAL 应作为单独的命名空间推送到项目中。视觉元素( View 、 View 模型)很可能也应该移动到一个单独的项目和命名空间集中。一旦您可以将它们合并在一起并从包含宿主窗口的 exe 启动它们,以及用于其余托管可视内容的 UserControl,您就可以继续集成到更大的 IDE 项目中。这里的关键是:

可视层和 View 逻辑 -> Editor.Visual.dll

业务逻辑和数据访问 -> Editor.Core.dll

希望对您有所帮助。

关于c# - 在 C#/WPF 中构建共享代码库的技巧/资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4495400/

相关文章:

c# - 使用 C# 匿名类型

c# - .NET:如何处理 SQL 查询中可能的空值?

c# - 有没有办法通过异步方法在 C# (WPF) 中使用 Google Calendar API?

c# - LINQ to Entities 无法识别方法 ToDateTime(System.String)

c# - 如何在 C# 中为动态下拉列表创建事件处理程序

c# - 在 SQL Server 2008 R2 Express 中使用 ServiceStack.OrmLite 的 Unicode 字符串

.net - 使用 SearchOption.AllDirectories 时 DirectoryInfo.GetFiles 速度缓慢

c# - 如何在 WebBrowser 控件中注入(inject) CSS?

c# - 在数据源中找不到 SQL Server CE 4.0

WPF DataGrid 单击以创建新项目