我正在尝试为Windows窗体应用程序实现加载/保存功能.
我有以下组件:
我想实现一种将所有这些保存到文件中的方法,并在以后恢复/加载它.
最好的方法是什么?
我认为XML序列化是可行的方法,但我不太确定如何或从哪里开始.或者它需要一个非常复杂的解决方案才能做到这一点?
我有大约100个单元测试,覆盖率为%20,我正在努力增加覆盖范围,这也是一个开发项目,所以不断添加新的测试.
目前在每次构建之后运行我的测试是不可行的,他们需要大约2个时刻.
测试包括:
大多数功能都需要读取HTTP,执行TCP等.我无法更改它们,因为如果我改变这些测试,这就是项目的整体想法,测试内容将毫无意义.
另外,我认为我没有最快的工具来运行单元测试.我当前的设置使用VS TS与Gallio和nUnit作为框架.我认为VS TS + Gallio也比其他人慢一点.
你会建议我解决这个问题?我想在每一点点改变之后运行单元测试btu目前这个问题正在打断我的流程.
进一步澄清编辑:
代码高度耦合!不幸的是,变化就像一个巨大的反射过程.并且有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但如果我不重构它我就不能有更多的单元测试:)
高度耦合的代码不允许我将测试分成更小的块.此外,我不测试私人物品,这是个人选择,这使我能够更快地发展并仍然获得大量的好处.
并且我可以确认所有单元测试(具有适当的隔离)实际上非常快,并且我没有它们的性能问题.
进一步澄清:
代码高度耦合!不幸的是,变化就像一个巨大的反射过程.并且有一个鸡蛋综合症,我需要单元测试来重构这么大的代码,但如果我不重构它我就不能有更多的单元测试:)
高度耦合的代码不允许我将测试分成更小的块.此外,我不测试私人物品,这是个人选择,这使我能够更快地发展并仍然获得大量的好处.
并且我可以确认所有单元测试(具有适当的隔离)实际上非常快,并且我没有它们的性能问题.
BeforeNavigate2事件或任何其他类似事件不会在WebBrowser控件中捕获XMLHTTP请求.反正有没有解决这个问题?
这是一个.NET项目.
编辑:
我发现这个C++应用程序显然可以用来解决这个问题,但是将它移植到托管代码看起来并不可能.也许我应该将C++更改为COM对象并从.NET调用它 - 这并不容易,因为它甚至不能在VS 2008中编译,因为ATL更改我认为 - .
我的.NET Windows窗体应用程序中的Web浏览器控件在关注时会窃取快捷方式.为了能够使用Alt + F4我必须先点击一个控件.
目前" WebbrowserShortcuts = false"但它仍然相同.
有没有办法阻止这种恼人的行为?
你如何命名你的GoTo标签?我经常使用很少,所以我很难找到好名字.
请不要使用经典的'goto is evil and eat your code alive discussion'
我知道TDD风格是首先编写测试,看到它失败然后去做绿色,这是好东西.有时它真的对我有用.
然而,特别是当我尝试一些东西(即不确定设计,不确定它是否会起作用)或疯狂编写代码时,我不想编写单元测试,这会打破我的流程.
我倾向于稍后编写单元测试,特别是在事情变得过于复杂之前.还有另外一个问题,以后写它们通常更无聊.
我不太确定这是不是一个好方法(绝对不是最好的).
你怎么看?您是否编写代码以后编写单元测试?或者您如何处理此流程问题或实验设计/代码阶段.
在.NET应用程序中生成调试信息(pdb)使我的应用程序在运行时更慢?或者他们只是在应用程序崩溃时进入游戏?
首先,我很抱歉这样的问题,我浏览互联网和谷歌搜索,但那里有很多不同的想法.在邮件列表中,我实际上看到人们声称需要购买Mono许可证才能在商业工具中使用它.
我可以在商业工具中使用Mono XSP,许可是否允许?
我不擅长阅读法律文件.并试图弄清楚这究竟意味着什么.在XSP包中,我有这个COPYING文件:
Run Code Online (Sandbox Code Playgroud)Copyright (c) 2002, 2003, 2004 Novell, Inc. and the individuals在ChangeLog条目中列出.
Run Code Online (Sandbox Code Playgroud)Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction,包括但不限于使用,复制,修改,合并,发布,分发,再许可和/或销售本软件副本的权利,并允许软件所在的人员这样做,但须符合以下条件:
Run Code Online (Sandbox Code Playgroud)The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, …
我读了一篇关于在sqlserver中使用CLR集成的文章,并想知道一些潜在的问题可能是什么,如果有的话.我的想法是用它来验证遗留数据库中的潜在坏数据.一个例子是电话号码栏中的人名.
编辑:我认为没有任何问题,但这不是我看到很多讨论的事情,并且想要确保我没有打开一个可以在以后引起问题的蠕虫.我问的原因是我的DBA看着我,就像我问起这个时我疯了似的.
这段代码是线程安全的吗?或者这样说:
无论如何调用GetIt()并且GetIt()将返回相同的数字到2个不同的线程
Private Shared hitCount As Long = 1
Public Shared Function GetIt() As Long
Threading.Interlocked.Increment(hitCount)
DoSomethingQuick(hitCount)
Return hitCount
End Function
Run Code Online (Sandbox Code Playgroud)
看起来这是可能的,那么我应该Interlocked.Read()在一个区块中使用或锁定整个东西吗?
.net ×7
performance ×3
tdd ×2
unit-testing ×2
winforms ×2
c# ×1
coding-style ×1
debugging ×1
goto ×1
http ×1
interlocked ×1
label ×1
legacy ×1
licensing ×1
load ×1
mono ×1
pdb-files ×1
save ×1
shortcut ×1
sql-server ×1
sqlclr ×1
xsp ×1