Tag: C#的

ASP.NET MVC 3 Razor性能

重要更新:请参阅底部的更新5,在asp.net mvc 3中没有性能问题,这是一个基准问题 我已经做了一个简单的hello世界项目在asp.net mvc2,3 aspx和3razor和基准。 我所看到的是: System Requests per second ——————————————- asp.net mvc 2 ASPX 4200 asp.net mvc 3 Beta 1 ASPX 3200 asp.net mvc 3 Beta 1 Razor 1700 剃刀有什么问题,这么慢? 更新:我已经重做了testing。 所有4个testing虚拟目录使用相同的.net 4集成模式应用程序池。 所有项目都添加新的空x项目,并添加1页面,1行文本,没有代码。 所有网站都以发布模式编译。 我的系统是Windows 7,4 GB的i7 4核心。 我已经跑了testing2次来预热iis,这是第二次运行的结果。 apache bench参数:ab -n100000 -c1000结果: System Requests per second CPU Utilization —————————————————- asp.net 4 […]

如何在.NET中冻结冰棍(使一个类不可变)

我正在devise一个我希望在主线程完成configuration后只读的类,即“冻结”它。 Eric Lippert称这种冰棒不变性。 它被冻结后,可以被多个线程同时访问进行读取。 我的问题是如何以一种线程安全的方式编写这个实际上是有效的,即不要不必要的聪明 。 尝试1: public class Foobar { private Boolean _isFrozen; public void Freeze() { _isFrozen = true; } // Only intended to be called by main thread, so checks if class is frozen. If it is the operation is invalid. public void WriteValue(Object val) { if (_isFrozen) throw new InvalidOperationException(); // […]

类似Maven的C ++依赖pipe理?

假设我有一个C ++项目被拆分成几个子项目。 子项目都产生一个DLL,不同的开发团队在每个子项目上工作。 现在,如果我想构build主项目,是否有办法避免自己构build所有的子项目? 简而言之,我正在寻找一些能够像Maven一样对Java进行依赖pipe理(即二进制文件和头文件)的方法。 实际上,我尝试过使用Maven,但是这样做比较麻烦,因为我必须手动创build软件包,而且相当频繁,Maven错过了select最近的更改。 另外,运行编译还有点麻烦,因为我必须从Maven内部调用NAnt(我使用NAnt的function直接构buildVisual Studio解决scheme)。 任何提示和想法如何做到这一点?

C ++元组与结构

使用std::tuple和data-only struct是否有区别? typedef std::tuple<int, double, bool> foo_t; struct bar_t { int id; double value; bool dirty; } 从我在网上find的,我发现有两个主要的区别: struct更具可读性,而tuple有许多可以使用的通用函数。 应该有什么显着的性能差异? 另外,数据布局是否相互兼容(可互换)?

覆盖获取,但未设置

我有一个抽象类定义了一个get ,但没有set ,因为就抽象类而言,它只需要一个get 。 public abstract BaseClass { public abstract double MyPop {get;} } 但是,在一些派生类中,我需要一个set属性,所以我正在看这个实现 public class DClass: BaseClass { public override double MyPop {get;set;} } 问题是,我收到一个汇编错误,说 * .set:不能重写,因为*。 没有可覆盖的set访问器。 即使我认为上面的语法是完全合法的。 任何想法呢? 解决方法,或为什么这样呢? 编辑:我能想到的唯一方法是将get和set都放在抽象类中,如果set被调用,并让子类抛出一个NotImplementedException ,那就没有必要了。 这是我不喜欢的,以及一个特殊的setter方法 。

RNGCryptoServiceProvider的优点和缺点

什么是使用System.Security.Cryptography.RNGCryptoServiceProvider vs System.Random利弊。 我知道RNGCryptoServiceProvider是“更随机的”,即对黑客的可预测性较低。 任何其他的利弊? 更新: 根据回答,以下是到目前为止使用RNGCryptoServiceProvider优缺点: 优点 RNGCryptoServiceProvider是一个更强的密码随机数,这意味着它将更好地确定encryption密钥等。 缺点 Random更快,因为它是一个更简单的计算; 当在密码随机性不重要的模拟或长时间计算中使用时,应该使用它。

C#模板引擎

我正在寻找一个独立的,易于使用的C#代码,模板引擎。 我想要做的是创build一个带有数据占位符的html和xml文件,并用我的代码中的数据填充它们。 引擎需要支持循环(复制部分模板forms多于一个对象)和条件(只有在某些条件为真的情况下才将模板的部分添加到最终的html / xml中)。 有人可以为我推荐一个好的select,并添加一个或多或less的这样的代码示例的链接,以及一些关于如何使用推荐的组件的文档来满足我的需求? 谢谢:) 只是想添加一件事 – 我也需要使用循环来复制表行,甚至整个表(在html版本)和复杂的元素(在xml版本)再次感谢:)

Visual Studio 2015 – “Analyzers”引用是什么意思?

在Visual Studio 2015 Preview中创build一个简单的C#控制台应用程序,我们得到一个名为“Analyzers”的伪引用: 上面的“分析仪”参考是什么意思? 项目文件没有什么内容,属性窗口中没有显示任何内容(完全空白)(尽pipe与“引用属性”相反,它在头文件中显示“文件夹属性”,但没有多说)。 我希望这与Roslyn有关,但我不知道。 我安装了ReSharper,但我不认为它有任何关系。 编辑6.8.2016 接受的答案解释了分析器提供的工具,但是为什么开发工具变成(运行时?)参考。 实际上这不是一个运行时参考,不像其他参考。 所以这个奇迹的答案是Hans Passants评论如下: 他们select了一个笨拙的地方添加代码分析器function,他们只是无法find一个更好的地方,彻底检修解决scheme资源pipe理器和nuget。 – Hans Passant 15年5月26日在8:59

创buildC格式化的string(不打印它们)

我有一个函数接受一个string,即: void log_out(char *); 在调用它时,我需要创build一个格式化的string,如下所示: int i = 1; log_out("some text %d", i); 我如何在ANSI C中做到这一点? 只有,因为sprintf()返回一个int,这意味着我必须写至less3个命令,如: char *s; sprintf(s, "%d\t%d", ix, iy); log_out(s); 任何方法来缩短这个?

为什么ReadOnlyObservableCollection.CollectionChanged不公开?

为什么ReadOnlyObservableCollection.CollectionChanged受保护而不公开(如相应的ObservableCollection.CollectionChanged )? 如果我无法访问CollectionChanged事件,那么实现INotifyCollectionChanged的集合的用法是什么?