c# - 着眼于 future 的代码

标签 c# asp.net-mvc wpf coding-style structure

<分区>

基本上,我们都是这里的编码员。我要问你的是,你如何构建你的解决方案/项目以粗略地反射(reflect)你开发的结构。 你将如何在代码描述一个类与另一个类的依赖关系,你将如何以一种方式构建你的解决方案,以便几年后新加入你的项目的人能够了解(或多或少)解决方案中的代码依赖关系?

给出第一个答案,只是为了再次提示我真正在问什么:

我们可以在开发中使用常用的工具/框架:NHibernate、ASP.NET MVS、WPF...这将引导我们以多种方式构建代码,所以熟悉该工具的人只要看一眼就会明白比方说 VisualStudio 的项目,您的项目的基本结构。

P.S:我知道 Diagram 工具、Visio 或其他工具,我的问题是:您是否从编码角度考虑过这个问题?

最佳答案

为了补充@Joakim 在上面的评论中的观点,实现这一点的一个关键方法确实以抽象为中心。我在所有 .NET 项目中努力做的一件事是将外部依赖项限制在 Visual Studio 中它们自己的项目中。这些项目注入(inject)了 IoC 容器(也通过服务定位器设置进行了抽象)以实现抽象的接口(interface)。

所以中心域逻辑只是内部代码。没有依赖性。基本上,该项目不引用任何内容,所有内容都引用它。它只是业务逻辑(模型、数据存储库等依赖项的接口(interface)等)。

然后外部依赖项(可以是通过数据访问框架的数据库,某种外部服务,或者甚至只是第 3 方库,如 IoC 容器)将在其自己的项目中使用并实现它需要实现的域接口(interface)。这使依赖关系保持清晰和分离,因此可以轻松识别并可能替换它们,而无需触及内部业务逻辑。

关于c# - 着眼于 future 的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717525/

相关文章:

WPF - Groupbox 标题对齐

c# - 应用程序不允许 Windows Phone 8 Facebook 登录给定 URL

c# - LINQ 多重排序依据

C# 从泛型数组中获取泛型 IEnumerator

c# - 未知客户端或客户端未启用 Identity Server 4

asp.net-mvc - 以开源数据库设计作为商业应用的起点

c# - 使用当前线程区域性与两位数的月份和日期格式化日期?

C# WPF 数据绑定(bind)不起作用

wpf - 自动应用单独程序集中定义的默认样式

c# - 从多个列表或数组中搜索/过滤(可能数十亿)项目组合的最佳方式