在我的学徒期间,我已经将NHibernate用于一些较小的项目,我自己编写和设计.现在,在开始一个更大的项目之前,讨论产生了如何设计数据访问以及是否使用ORM层.由于我仍处于学徒阶段,并且仍然认为自己是企业编程的初学者,我并没有真正尝试推动我的观点,即使用对象关系映射器到数据库可以大大简化开发.开发团队中的其他程序员比我经验丰富,所以我想我会按照他们的说法去做.:-)
但是,我不完全理解不使用NHibernate或类似项目的两个主要原因:
所以,当然我可以用很多SELECTs等构建我的数据访问层,但是在这里我会错过自动连接,延迟加载代理类的优势以及如果表获得新列或列获得更低的维护工作量重命名.(更新众多SELECT,INSERT并且UPDATE查询与更新映射配置,并可能重构业务类和DTO的.)
此外,如果您不熟悉框架,使用NHibernate可能会遇到无法预料的问题.例如,这可能是信任Table.hbm.xml,您可以在其中设置字符串的长度以自动验证.但是,我也可以想象一下基于"简单"SqlConnection查询的数据访问层中的类似错误.
最后,上面提到的那些论点真的是不利用ORM用于基于数据库的非平凡企业应用程序的理由吗?他/我可能错过了其他可能的争论吗?
(我应该补充一点,我认为这就像第一个基于.NET/C#的"大型"应用程序需要团队合作.在Stack Overflow上被认为非常正常的良好实践,例如单元测试或持续集成,都是非 - 到现在为止.)
如果必须使用String.Replace()替换测试50次,则基本上必须创建一个新字符串50次.StringBuilder.Replace()是否更有效地执行此操作?例如,如果我要替换大量文本,我是否应该使用StringBuilder,即使我不会向其添加任何数据?
我正在使用.NET,但我认为这与Java和其他语言可能相同.
是否可以从所有FxCop分析中排除完整的命名空间,同时仍然使用SuppressMessageAttribute?分析组件的其余部分?
在我目前的情况下,我有一堆由LINQ to SQL生成的类导致很多FxCop问题,显然,我不会修改所有这些以匹配FxCop标准,因为如果我有很多这些修改将会消失重新生成了类.
我知道FxCop有一个项目选项来禁止对生成的代码进行分析,但它似乎没有将LINQ 2 SQL创建的实体和上下文类识别为生成的代码.
是否可以将Hudson与MS Test 集成?
我正在使用Hudson在我的开发机器上设置一个较小的CI服务器,这样我就可以得到一些统计信息(即FxCop和编译器警告).当然,如果它可以运行我的单元测试并显示其输出也会很好.
到目前为止,我已将以下批处理任务添加到Hudson中,这使得它可以正确运行测试.
"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,Hudson不支持分析MS测试结果.有谁知道生成的TRX文件是否MSTest.exe可以转换为JUnit或NUnit结果格式(因为Hudson支持这些格式),或者是否有其他方法将MS Test单元测试与Hudson集成?
你知道任何.NET库可以解码几种类型的音频文件吗?理想情况下,它应该是平台无关的,因此它可以与.NET和Mono一起使用 - 在Windows和*NIX上.
我已经折磨谷歌搜索满足我需求的图书馆,但遗憾的是我找不到任何东西.所以在为GStreamer和朋友写很多包装课之前,我想我可以在这里问一下.:)
支持的音频文件应该(至少)
作为我需要的应用程序只是为了好玩,库应该是开源的 - 或者至少是免费的.此外,向用户显示的唠叨屏幕可能不好或不切实际,因为我计划将其放入服务流程中.
我需要使用这个库/这些库来解码音频文件并将byte []传递给我的libOFA包装器,这样我就可以为它生成一个MusicDNS指纹.我的实验应用程序很可能在基于Linux的服务器上运行.
我是非常新的ASP.NET.我来自VB6/ASP(经典)/ SQL Server 2000背景.我正在阅读很多关于Visual Studio 2008的内容(已安装它并且正在探索).我读过有关"反思"的内容,并希望有人向我上面介绍的技术的老开发者尽可能地解释,究竟反思是什么以及为什么我会使用它......我无法获得我绕过那个.谢谢!
我想知道要测试的对象是否应该是一个字段,因此在SetUp方法中设置(即JUnit,nUnit,MS Test,...).
考虑以下示例(这是带有MsTest的C♯,但对于任何其他语言和测试框架,该想法应该类似):
public class SomeStuff
{
public string Value { get; private set; }
public SomeStuff(string value)
{
this.Value = value;
}
}
[TestClass]
public class SomeStuffTestWithSetUp
{
private string value;
private SomeStuff someStuff;
[TestInitialize]
public void MyTestInitialize()
{
this.value = Guid.NewGuid().ToString();
this.someStuff = new SomeStuff(this.value);
}
[TestCleanup]
public void MyTestCleanup()
{
this.someStuff = null;
this.value = string.Empty;
}
[TestMethod]
public void TestGetValue()
{
Assert.AreEqual(this.value, this.someStuff.Value);
}
}
[TestClass]
public class SomeStuffTestWithoutSetup
{
[TestMethod]
public void TestGetValue() …Run Code Online (Sandbox Code Playgroud) 在ASP.NET MVC中,ActionResult该类是操作方法从控制器返回的所有结果的基础,它被定义为具有单个方法的抽象类(©Microsoft):
public abstract void ExecuteResult(ControllerContext context);
Run Code Online (Sandbox Code Playgroud)
你能想到这个设计的具体原因吗?具体来说,这对我来说似乎有点奇怪
IActionResult界面,毕竟,如果这是一个接口而不是那个抽象类,那么就不需要扩展基类来创建一个新的ActionResult- 只需要IActionResult正确实现.在一个世界上,错误的语言,没有多重继承,这个优势对我来说似乎非常重要.
我的SQL 2008 R2服务器已配置为进行Windows身份验证,但只有我的域管理员帐户才有权连接到对象资源管理器.
我还需要授予我的非管理员域用户访问权限,因此我可以从本地工作站登录.
我正在编写一种服务,它有五种不同的方法,可能需要5秒到5分钟才能运行.
该服务将安排这些不同的方法以不同的间隔运行.
我不希望任何方法同时运行,所以我如何检查方法是否正在运行并在其完成时将自己排队运行?
安东尼
.net ×3
unit-testing ×3
c# ×2
mstest ×2
asp.net-mvc ×1
audio ×1
enterprise ×1
fxcop ×1
hudson ×1
mono ×1
nhibernate ×1
orm ×1
permissions ×1
reflection ×1
sql ×1
sql-server ×1
string ×1