【问题标题】:Should I avoid 'chained' references in Visual Studio with class libraries?我应该避免在 Visual Studio 中使用类库进行“链接”引用吗?
【发布时间】:2012-06-24 17:06:45
【问题描述】:

我在 Visual Studio C# .NET 解决方案中有类似以下设置:

项目 1 - TrainDisplay - 用于显示火车到站的 WinForms 应用程序。

项目 2 - TrainFetcher - 是一个可重复使用的类库,用于获取有关火车的数据。

项目 3 - TrainsDataModel 是一个数据模型,包含所有其他项目共有的类,例如Train.cs、TrainRoute.cs 等等。

每个都有以下参考:

项目 1:参考文献 2 和 3

项目 2:参考文献 3

以这种方式使用引用是不是很糟糕;即项目 1 是否以两个对项目 3 的引用结束;一个直接,一个通过项目 2?

【问题讨论】:

    标签: c# .net visual-studio architecture reference


    【解决方案1】:

    这本身并没有错,编译器会做 The Right Thing®。

    但这可能表明设计不太好。

    尝试将三层设计成2只依赖3,1只依赖2。

    编辑:最后一句话不清楚。我的意思是:“设计三层,让你的业务对象只需要引用数据访问代码,而 UI 只处理业务对象”。

    最终,正确的方法实际上取决于您的架构(使用 ORM 与手动发出查询、Active Record 与 Mapper 等)。

    【讨论】:

    • 好吧,这似乎很清楚。但是我已经将业务对象类分离到它们自己的库中,以便在另一个项目中重新使用它们。 (Windows 8 和 Windows Phone 8,仅供参考)因此,由于它们与实例化它们的代码位于单独的程序集中(一种“中间层分成两半”),所以我仍然需要从顶部和顶部引用它们中间层,是吗?
    • 是的,DAL 和 UI 层仍然需要了解您的业务对象。
    • 感谢您的澄清。
    猜你喜欢
    • 2018-06-16
    • 2011-03-26
    • 1970-01-01
    • 2020-12-15
    • 2011-05-08
    • 2022-08-05
    • 2010-09-23
    • 2011-12-31
    • 2021-06-03
    相关资源
    最近更新 更多