我有代码捕获所有内容并记录它.我通常不会这样做,但我正在编写HTTP处理程序并希望返回适当的HTTP代码.无论如何,我在我的方法的顶部放置以下内容:
[SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Justification = "We just log the exception and return an HTTP code")]
FxCop似乎忽略了这一点,这非常令人沮丧.特别是因为它也忽略了我所有的复合词覆盖!
知道为什么这样做吗?我正在使用FxCop 10,它是Windows 7/.NET 4 SDK的一部分.
假设我有一个视图.它DataContext被绑定到a ViewModel并ViewModel暴露Model属性.
MVVM要绑定(例如)中的Viewto属性中的字段?ModelBinding Path=Model.FirstNameModel工具应该INotifyPropertyChanged?我的团队在WPF中使用Prism和MVVM.很多Prism的例子都间接地绑定了Model.我个人怀疑这是正确的做法.我认为模型中的东西应该暴露行为(不仅仅是在属性级别),并且应该通过er,events 传达重要事件- 客户可以订阅或不订阅.
我认为通过让域/模型对象INotifyPropertyChanged以某种方式实现它向全世界说它是UI/UX意识并且在ViewModels 中引入了一些冗余.
你怎么看?什么对你有用?Prism示例中使用的View/ ViewModel/ Model或混合的明显区别?
随着软件越来越多并发,您如何使用单元测试来处理类型的核心行为(不是并行行为,只是核心行为)?
在过去的好时光中,你有一个类型,你打电话给它,你检查了它返回的内容和/或它所调用的其他内容.
现在,你调用一个方法,实际的工作计划在下一个可用的线程上运行; 你不知道什么时候它会真正启动并调用其他东西 - 更重要的是,其他东西也可能是并发的.
你怎么处理这个?你抽象/注入并发调度程序(例如抽象任务并行库并在单元测试中提供假/模拟)?
您遇到了哪些资源帮助了您?
编辑
我编辑了这个问题,强调测试类型的正常行为(忽略用于利用多核的任何并行机制,例如TPL)
parallel-processing concurrency unit-testing parallel-extensions
Visual Studio 11几个星期前发布,现在可以使用ReSharper,我已经准备好开始使用了它!
我正在研究的一些项目是XNA项目.这些没有出现在测试版VS11加载,即使重新安装后XNA游戏工作室4刷新 后安装VS11 Beta版.
有没有人让VS11 Beta与XNA项目合作?
有人使用Domain Driven Design的技术吗?我最近读过Eric Evans的同名书(好吧,大部分都是这样!)并且有兴趣听一下在项目中实现全部/部分内容的人(特别是在C#/ C++中)
我一直把这个问题保持开放,因为我希望看到尽可能多的评论,但我特别提出几个问题:
1 - 如果语言支持,值类型应该是真正的"价值类型"吗?例如C#中的结构
2- C#中是否有任何特性使语言与模型之间的关联更加清晰(例如,这是一个实体,这是一个聚合等)
我们有一个具有隐式字符串运算符的类型.它看起来像这样:
public class Foo
{
readonly string _value;
Foo(string value)
{
_value = value;
}
public static implicit operator string(Foo foo)
{
return foo._value;
}
public static implicit operator Foo(string fooAsText)
{
return new Foo(fooAsText);
}
}
Run Code Online (Sandbox Code Playgroud)
我们刚刚有一个实例传递给隐式运算符null的场景.显然,我们最终得到了一个NullReferenceException.
我认为这是很公平的,毕竟,什么是一个类型,它是空的字符串表示 - 很难说 - 这样的例外似乎是有效的,这是我们不应该拦截/禁止/手柄/忽略.我的理由是'有人给我一个空的,为什么我应该返回null.我不会在其他方法中这样做.我想,'我知道,我会在转换之前检查null',类似于:
string s = foo == null ? null : foo;
但这没有用,因为它现在在比较之前转换为字符串为null.当然,这种比较可行:
Foo f = null;
string s;
if (f != null)
{
s = f;
}
Run Code Online (Sandbox Code Playgroud)
......但那只是丑陋的.
我阅读了Essential …
我有一个MVVM应用程序.其中一个ViewModels是填充ObservableCollection的'FindFilesCommand'.然后我在同一个ViewModel中实现'RemoveFilesCommand'.然后,此命令将打开一个窗口以获取更多用户输入.
在保持MVVM范式的同时/最佳方式是什么?不知怎的做:
new WhateverWindow( ).Show( )
在ViewModel中似乎错了.
干杯,
史蒂夫
我在一段开源项目中听了一段播客.我不记得该项目被称为什么,但这样做的人说他们将他们的Windows服务支持拆分为一个单独的开源项目.
就像我说的,我不记得这个项目或他们称之为突破项目的东西.我记得它只是在.NET中包装Windows服务.
谁知道这是什么项目?
干杯
我正在写一个Windows 8游戏.该游戏可在Windows 7,Windows Phone和XBox上运行.
如果连接了键盘,我想显示键盘提示(例如'按Esc退出')
看到Windows 8可以是台式机,笔记本电脑或平板电脑,可能连接或不连接物理键盘.有没有办法以编程方式确定?
多年来,我总是在\lib文件夹中存储二进制依赖项,并将其与项目的其余部分一起检查到源代码控制中.我发现我现在这样做了,所以我们有NuGet和NuGet包恢复.
我听说有些公司强制执行一项规则,即不能将二进制文件检入源代码控制.引用的理由包括:
绝大多数使用源代码控制的项目是否存在支持或反对这种做法的客观论据?
c# ×3
mvvm ×2
wpf ×2
.net ×1
concurrency ×1
fxcop ×1
git ×1
modeling ×1
oop ×1
open-source ×1
prism ×1
svn ×1
unit-testing ×1
windows-8 ×1
xna ×1