我使用Java在Swing上进行客户端开发.我喜欢Swing; 我相信它是那里更好的GUI框架之一.然而,我想念的是对声明性验证的支持.喜欢XForms的这个片段.
您是否知道任何允许以声明方式验证表单中数据输入的库,而不是为每个组件编写丑陋的验证文档侦听器?
我的应用程序池每次都在IIS 6.0 MS Debug Diag中随机崩溃到kernel32.dll.
入口点始终是mscorwks!CreateApplicationContext + bbef,结果始终是System.UnauthorizedAccessException.
堆栈跟踪:
Function Arg 1 Arg 2 Arg 3
kernel32!RaiseException+3c e0434f4d 00000001 00000001
mscorwks!GetMetaDataInternalInterface+84a9 18316b3c 00000000 00000000
mscorwks!GetAddrOfContractShutoffFlag+ac01 18316b3c 00000000 023cfbd8
mscorwks!GetAddrOfContractShutoffFlag+ac73 00000000 000e8c88 8038b2d0
mscorwks!GetAddrOfContractShutoffFlag+aca4 18316b3c 00000000 023cfbe4
mscorwks!GetAddrOfContractShutoffFlag+acb2 18316b3c acc05c33 7a399bf0
mscorwks!CoUninitializeCor+67be 00000000 023cfc1c 023cfc8c
mscorwks!CoUninitializeCor+87a1 001056e8 79fd87f6 023cfeb0
mscorwks!CorExitProcess+4ad3 023cfeb0 023cfd20 79f40574
mscorwks!CorExitProcess+4abf 001056e8 79f405a6 023cfd04
mscorwks!CorExitProcess+4b3e 000e8c88 00000000 023cfda7
mscorwks!StrongNameErrorInfo+1ddab 00000000 00000000 023cfeb0
mscorwks!StrongNameErrorInfo+1e07c 023cfeb0 00000000 00000000
mscorwks!CoUninitializeEE+4e0b 023cfeb0 023cfe5c 79f7762b
mscorwks!CoUninitializeEE+4da7 023cfeb0 acc05973 00000000
mscorwks!CoUninitializeEE+4ccd 023cfeb0 00000000 001056e8 …Run Code Online (Sandbox Code Playgroud) 我有一个必须从WinForms和ASP.Net使用的基础结构库.
我想在一些单元测试中将其包装起来.
我把这些项目放在哪个项目中?
我在库项目中使用其他文件夹吗?一个不同的解决方案,只包含我的基础设施项目和单独的单元测试项目?
顺便说一下,如果这有任何区别,我将使用ReSharper测试运行器.
此外,这个库位于NHibernate的顶部,如果这也有任何区别.
我最近通过Drupal应用程序为客户端第一次遇到PHP(5).这个体验肯定没有什么困难(例如文档很好),但我从来没有想过,"这真的很聪明!"或"哇这很有趣!" 而且,我无法准确预测函数的命名方式,或确定要遵循的指导原则.
这与Ruby相反,例如,一切都是对象,方法是可预测的和伪多态的,块是一种使用的乐趣(举几个例子).对比的其他语言亮点:Python的列表推导改变了你对迭代的思考方式,C通过它的指针和位操作带你回到硬件,javascript的无名功能和高级支持哈希,甚至是SQL的奇妙之处crustiness迫使你欣赏你的数据并在关系上思考它.
那么考虑到这一点,php的亮点是什么?这种语言的整体设计理念是什么?我知道php整体上并没有很好的声誉,但我总是听说这是一个感知问题,因为大量的非专业开发人员敲打了复制和粘贴代码.
编辑:
好吧,所以大家一致认为PHP是网络程序员的猴子扳手.我可以接受.我只是在寻找洞察力,但我想我已经拥有了它.我当然非常感谢mod_php/libphp.我能够在两周内将我的应用程序推出门,没有任何PHP经验,所以我想这也说明了一切.
谢谢你的帖子.
我正在Windows Server 2003下的CC.Net上运行带有xUnit的Watin测试.
我有很多测试,在使用TestDriven.Net的开发盒和使用xUnit gui app的服务器上运行良好.但是,当CC.Net运行测试(作为MSBuild任务的一部分)时,该功能
ie.ContainsText("some text to find");
Run Code Online (Sandbox Code Playgroud)
永远不会返回预期值.IE对象上的其他函数和属性似乎工作正常:Button(...).Click(),TextBox(...).Value等.
我知道服务帐户需要"允许服务与桌面交互".
我在本地系统和本地管理员下尝试过运行CC服务.管理员帐户只是挂起并且似乎永远不会完成运行测试(尽管它确实创建了一个iexplorer.exe进程的实例.
这是服务器上的权限问题,还是我从配置中遗漏了一些东西?
我有一个表,其中包含一本书,然后包含该书的多个价格(这是一个高度简化的示例):
身份证价格 1 本书1 10 2 书 1 15 3 书 1 12 4 书2 8 5 书2 2
我很容易计算平均值,但是一定有一个很好的方法来计算中位数吗?
当前SQL:
SELECT DISTINCTROW Books.BOOK, Avg(Books.PRICE) AS [Avg Of PRICE]
FROM Books
GROUP BY Books.BOOK;
Run Code Online (Sandbox Code Playgroud)
结果:
预订平均价格 书1 12.3333333333333 书2 5
任何人都可以举例说明何时使用Config.groovy中的以下设置?
// set per-environment serverURL stem for creating absolute links
environments {
production {
grails.serverURL = "http://www.changeme.com"
}
...
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是一个用例,不改变上述设置将失败.
我正在测试抽象基础存储库类的delete方法,该类由其他几个存储库类继承.MyTestRepository继承了base,因此我可以对base的方法运行测试,而不会限制我的测试使用具体的类.当我运行我的单元测试时它会通过,但我注意到之后我在测试数据库中有几个OrderDetail和Schedule对象,这些对象是由测试生成的(对象是在测试初始化期间创建的)并且没有删除,而Order对象被删除.我添加了一些断点,并注意到一旦helper方法结束并且抛出了预期的异常,测试就会结束,而其他对helper的调用永远不会发生.
这是我第一次尝试进行单元测试.我的方法是错的吗?ExpectedException是否按预期工作,我是在滥用它,还是我应该使用另一种工具?我能想到的唯一方法就是在helper中设置try catch块,并在捕获DataAccessException时断言为true.
[TestMethod]
[ExpectedException(typeof(DataAccessException))]
public void NHibernateRepositoryBaseDelete()
{
NHibernateRepositoryBaseDeleteHelper<Order, int>(myOrder, myOrder.OrderId);
NHibernateRepositoryBaseDeleteHelper<OrderDetail, int>(myOrderDetail, myOrderDetail.OrderDetailId);
NHibernateRepositoryBaseDeleteHelper<Schedule, int>(mySchedule, mySchedule.ScheduleId);
}
private static void NHibernateRepositoryBaseDeleteHelper<T, TKey>(T myItem, TKey myItemId)
{
MyTestRepository<T, TKey> myRepository = new MyTestRepository<T, TKey>();
myRepository.Delete(myItem);
myRepository.CommitChanges();
myRepository.GetById(myItemId, false);
}
Run Code Online (Sandbox Code Playgroud) 假设我有一个javascript方法需要花费很长时间才能完成,而根本没有任何用户反馈.在我的情况下,它是对表元素中的行进行排序(所有在DOM中;如果有很多行,则只需要太长时间),但它可能会做任何事情.我想在运行时显示"进度"光标.这是我目前所拥有的,但我也尝试了其他几个方面:
// SORT
document.body.style.cursor = "progress";
MyLongRunningMethod(); //blocks for 10-15 seconds before returning
document.body.style.cursor = "auto";
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有任何事 MyLongRunningMethod()正确地做到了,但光标永远不会改变.我的想法是浏览器需要等待返回的方法才能处理窗口环境生成的光标更改消息,但这可能是关闭的,即使它是真的我不知道如何解决它.
还有其他想法吗?
[编辑]:我决定我所有的背景故事并不是真的有必要.如果您真的想阅读它,请查看修订历史记录.
最终结果
我最终使用了RoBorg的解决方案.它并没有像我最初想的那样搞乱代码,因为我可以将函数声明保持在那里 - 就像添加内联作用域一样.
有趣的是,在Firefox上我发现这意味着我根本不需要更改光标.我发现在添加setTimeout调用后,我有时会在设置进度游标之前看到等待光标显示,所以我注释掉了我的游标代码.事实证明,使用setTimeout将其推出click事件处理程序本身允许FireFox自己确定游标应该更改.不幸的是,IE并不那么聪明,所以我确实把光标代码放回去了.
这使我相信光标变化是适当的动作 - 这给了机会它是浏览器无论如何都要做的事情.我真的不想在DOM中添加和删除新项目(如某种类型的繁忙图像)以获取我对此知之甚少的页面.无论页面使用何种视觉设计,脚本都应匹配.
最后,Chrome让整个事情变得无关紧要.使用相同的数据,Chrome可以在不到5秒的时间内完成IE和Firefox 10到15秒的完成.所以他们的javascript引擎确实更快.我等不及Firefox 3.1引擎了.不幸的是,这里的人仍然大多使用IE6.
unit-testing ×3
javascript ×2
.net ×1
c# ×1
crash ×1
cursor ×1
debugging ×1
declarative ×1
exception ×1
grails ×1
html ×1
java ×1
median ×1
ms-access ×1
nhibernate ×1
nunit ×1
php ×1
resharper ×1
sql ×1
swing ×1
validation ×1
watin ×1
xunit.net ×1