在.NET GetHashCode
方法中,很多地方都使用.NET 方法.特别是在快速查找集合中的项目或确定相等性时.是否有关于如何GetHashCode
为我的自定义类实现覆盖的标准算法/最佳实践,因此我不会降低性能?
.NET有很多单元测试框架.我找到了这个小功能比较:http://xunit.github.io/docs/comparisons.html
现在我要为我们选择最好的一个.但是怎么样?有关系吗?哪一个是最具前瞻性的证据,背后有一个不错的动力?我应该关心这些功能吗?虽然xUnit似乎是最现代的,专为.NET设计,但NUnit似乎再次被广泛接受.MSTest再次集成到Visual Studio中......
在Model-View-ViewModel体系结构WPF应用程序中实现ViewModel时,似乎有两个主要选择如何使其成为databindable.我已经看到了DependencyProperty
用于View将要绑定的属性的实现,我已经看到了实现的ViewModel INotifyPropertyChanged
.
我的问题是我应该何时优先选择其中一个?有任何性能差异吗?将ViewModel依赖项提供给WPF真的是个好主意吗?做出设计决定时还需要考虑什么?
MVVM最常用于WPF,因为它非常适合它.但是Windows Forms怎么样?对于Windows Forms,是否存在已建立且常用的方法/设计模式?一个与Windows Forms明确协作的一个?有没有一本书或一篇文章能够很好地描述这一点?也许MVP或MVC基于?
我应该能够访问属于View 的Dispatcher,我需要将它传递给ViewModel.但是View应该对ViewModel一无所知,那么你如何传递它呢?引入一个接口或者不是将它传递给实例创建一个将由View编写的全局调度程序单例?您如何在MVVM应用程序和框架中解决这个问题?
编辑:请注意,因为我的ViewModel可能是在后台线程中创建的,所以我不能只Dispatcher.Current
在ViewModel的构造函数中创建.
至少从.NET 4.0发布以来,微软似乎已经付出了很多努力来支持并行和异步编程,而且似乎已经出现了很多API和库.特别是最近随处可见的以下花哨的名字:
现在它们似乎都是微软的产品,它们似乎都针对.NET的异步或并行编程场景.但目前尚不清楚它们实际上是什么以及它们如何相互关联.实际上有些可能是同一件事.
简而言之,任何人都可以直接记录什么是什么?
parallel-extensions plinq task-parallel-library system.reactive
MSTest是否具有类似于nUnit的独立GUI,让我可以使用它并在没有visual studio的情况下运行测试?什么是MSTest的官方网站,我可以在那里了解更多如何使用它?
作为开发人员,我在一整天的生活中遇到的最令人不快(也是最不常见的)情况之一就是我必须修复错误或在设计糟糕的代码中添加功能.现在作为一个优秀的工匠,我想让代码保持比我发现的更好的状态.如果我不重构设计,通常无法实现新功能.嗯 - 他们可以,但这会使代码更糟糕.
不幸的是,这正是我经常遇到的困难.我觉得如果有一件事情很难,那就是重构坏代码,尤其是在你有最后期限的情况下.触及或多或少工作的糟糕而复杂的代码是可怕的.因此,当我在代码中修改新功能而不修改现有代码时,我会引入更多的混乱.
现在我的问题是我如何学会应对不良代码?我怎样才能学会理解巨大的代码库,然后在不破坏已经工作且不超过截止日期的情况下重构其中的部分代码?你有没有可以推荐的文献?你有什么一般的提示吗?
最近,围绕.NET世界中所有不同的模拟框架进行了大量宣传.我还没有完全掌握它们的优点.编写我自己需要的模拟对象似乎并不难.特别是在Visual Studio的帮助下,我可以快速编写一个实现我想要模拟的接口的类(它为我自动生成几乎所有内容),然后为我的测试编写一个实现方法.完成!为什么要经历一个理解模拟框架的麻烦,其唯一目的是保存几行代码.或者是一个模拟框架,不仅仅是关于保存代码行?
unit-testing ×3
.net ×2
mstest ×2
mvvm ×2
wpf ×2
algorithm ×1
architecture ×1
data-binding ×1
dispatcher ×1
gethashcode ×1
hashcode ×1
mbunit ×1
mocking ×1
nunit ×1
oop ×1
plinq ×1
refactoring ×1
winforms ×1
xunit.net ×1
yagni ×1