Tag: 依赖

发现接口依赖性

我接管了一个非常大的(> 2M SLOC)软件项目的维护,所有这些都是用C#编写的。 文档很少。 我现在想要对具有公共接口(大约400)的模块进行更改,但我不知道解决方案中的所有其他模块(总共大约50个)可能正在使用此公共接口。 如何为这种情况创建接口依赖性使用树? 代码库太大,无法简单地导航Project Explorer并阅读源代码。 您使用了哪些工具或方法来创建此类依赖性分析树? 我不想购买任何工具。 诸如Class View之类的Visual Studio工具似乎不能很好地处理这种大小的项目。 我已经考虑过编写自己的sed / awk / perl-ish脚本,它只是简单地遍历源代码并使用模式匹配来构建我自己的依赖/接口使用数据库,但是如果有的话,我不想做一些艰难的事情。一个简单的方法。 谢谢!

如何将必要的文件包含到独立客户端项目的输出中?

我的解决方案包括: Client – 启动项目,UI层。 取决于: App App – 库,应用程序层,汇编程序。 取决于: Lib1 ,…… Lib1 – 库,业务逻辑层。 需要特定文件才能正常工作: ThirdParty.dll 我已将ThirdParty.dll添加到Lib1项目( Add > Existing Item… > Add ),并将dll文件的“ Copy to Output Directory属性设置为Copy Always 。 现在,dll文件被复制到Lib1输出和App输出,但不会复制到我需要的Client输出。 在每个解决方案构建中将ThirdParty.dll复制到Client的输出的正确(简单?明显?)方法是什么? UPD ThirdParty.dll不是引用。 实际上,这是另一个参考依赖。 我的问题适用于需要在运行应用程序的文件夹中的任何文件。 录制的video,以确保我做得对:http: //youtu.be/QwS2tOIc5yQ

语言真的依赖于图书馆吗?

我一直想知道如何从编程语言到其库来管理依赖项。 以C#为例。 当我开始学习计算时,我会假设(错误的是结果)语言本身是独立于最终可用的类库而设计的。 也就是说,首先定义语言关键字集(例如for , class或throw )加上语法和语义,并且可以单独开发可以从该语言使用的库。 我曾经认为,这些库中的特定类不应该对语言的设计产生任何影响。 但这不起作用,或者不是一直都行不通。 考虑throw 。 C#编译器确保throw的表达式解析为exception类型。 Exception是库中的一个类,因此它根本不应该是特殊的。 除了C#编译器为其指定特殊语义外,它将与其他任何类一样。 这是非常好的,但我的结论是语言的设计确实取决于类库中特定元素的存在和行为。 另外,我想知道如何管理这种依赖。 如果我要设计一种新的编程语言,我会用什么技术将throw的语义映射到exception的特定类? 所以我的问题是两个: 我是否认为语言设计与其基类库紧密耦合? 如何在编译器和运行时内管理这些依赖项? 使用了什么技术? 谢谢。 编辑。 感谢那些指出我的第二个问题非常含糊的人。 我同意。 我想要学习的是编译器存储的所需类型的引用。 例如,它是否通过某种唯一ID找到类型? 发布新版本的编译器或类库时会发生什么? 我知道这仍然很模糊,我不期待一个精确的,单段的答案; 相反,欢迎指向文学或博客文章。

ASP.NET MVC(域模型,存储库,流畅,服务 – 我的项目的结构)

在我的ASP.NET MVC Web应用程序中,我有: 域模型,由LINQ to SQL创建 存储库如 UserRepository和OrderRepository IQueryable Fluents作为IQueryable扩展方法,如 public IQueryable GetNewOrders(this IQueryable) 服务如 UserService和OrderService 实用类和扩展方法,如 CryptoUtility (做Hashing等)和String等扩展 ViewModels对每个MVC视图都是特殊的 ASP.NET MVC项目本身(控制器,视图) 我正在为我的案例寻找最好的项目结构/组织,特别是分成不同的程序集以及这些层之间的依赖关系应该如何。 遗憾的是,网络资源没有详细说明。 一个提示:目前Repository,Services,IQueryable Fluents等直接针对域模型实现,我没有它们的接口定义。 我认为这是不必要的,但松散耦合可能需要这个吗? 我的服务有一个接口(例如IOrderService),我的存储库实现了IRepository 。 感谢您以简洁的方式组织这一点,特别是哪个层应该依赖于什么和组装组织。 谢谢!