我正在研究一个非常大的数据密集型遗留应用程序.代码库和数据库都是大规模的.大量的业务逻辑遍布所有层,包括存储过程.
是否有人建议如何开始将"单元"测试(技术上的集成测试,因为他们需要跨几层测试几乎任何给定过程的单个方面)以有效的方式应用到应用程序中?当前的架构不容易支持任何类型的注入或模拟.正在编写新代码以便于测试,但遗留代码呢?由于数据库本身和业务逻辑的强烈依赖性,我目前正在使用内联sql来查找用于测试的数据,但这些都非常耗时.创建视图和/或存储过程是不够的.
您采取了哪些方法(如果适用)?什么有用?什么没有&为什么?任何建议,将不胜感激.谢谢.
我在IIS中嵌套Web应用程序的"ConnectAs"域用户帐户编写脚本时遇到问题.我的目标环境是带有IIS 8的MS Server 2012 R2,但是,我在IIS 7上看到了与Windows 7相同的问题.
例如,假设我有"默认网站".在那之下,我有"MainApplication".在那之下,我有另一个"SubApplication"的Web应用程序.
我已尝试在其他类似于以下网站上找到的建议取得了部分成功:前两个语句有效.
Set-WebConfigurationProperty "system.applicationHost/sites/site[@name='Default Web Site']/application[@path='/MainApplication']/virtualDirectory[@path='/']" -name "username" -value "mydomain\user"
Set-WebConfigurationProperty "system.applicationHost/sites/site[@name='Default Web Site']/application[@path='/MainApplication']/virtualDirectory[@path='/']" -name "password" -value "mypassword"
Run Code Online (Sandbox Code Playgroud)
我似乎无法获得接下来两个语句的语法:
Set-WebConfigurationProperty "system.applicationHost/sites/site[@name='Default Web Site']/application[@path='/MainApplication/SubApplication']/virtualDirectory[@path='/']" -name "username" -value "mydomain\user"
Set-WebConfigurationProperty "system.applicationHost/sites/site[@name='Default Web Site']/application[@path='/MainApplication/SubApplication']/virtualDirectory[@path='/']" -name "password" -value "mypassword"
Run Code Online (Sandbox Code Playgroud)
在一个完美的世界中,我将能够执行类似于下面的操作,以快速使所有Web应用程序在相同的域用户帐户下运行:
Get-WebApplication | ForEach-Object { $_ | Set-ItemProperty -Name "username" -Value "domain\user" }
Get-WebApplication | ForEach-Object { $_ | Set-ItemProperty -Name "password" -Value "passwordValue" }
Run Code Online (Sandbox Code Playgroud)
或类似的东西:
Get-WebApplication | ForEach-Object { $_.ChildElements | Select-Object -First 1 | Get-Member -Name …Run Code Online (Sandbox Code Playgroud) 我正在尝试为ASP.NET网页中的几个控件使用单个事件处理程序.我想在运行时添加事件处理程序,当且仅当它不存在时.在C#中,我会写如下:
if (myTextBox.OnTextChanged == null)
{
myTextBox.OnTextChanged += DoTextChangingValidation;
}
Run Code Online (Sandbox Code Playgroud)
同样,我知道我可以删除事件处理程序,如下所示:
if (myTextBox.OnTextChanged != null)
{
myTextBox.OnTextChanged -= DoTextChangingValidation;
}
Run Code Online (Sandbox Code Playgroud)
我知道如何在Visual Basic中添加和删除事件处理程序...但是如何确定如何检查它是否已经分配?
是否可以通过.NET中的属性分析各个方法?
我目前正在尝试在大量遗留应用程序中找到一些瓶颈,这些应用程序大量使用静态方法.目前,集成框架根本不是一种选择.由于大多数调用都使用静态方法,因此接口和依赖注入不可用.攻击代码以记录诊断也不是一个可行的解决方案.
我知道市场上有一些分析工具,但它们目前不在预算范围内.理想情况下,我将能够创建自己的自定义属性,该属性将记录有关方法输入和方法退出的一些基本信息.我从来没有真正使用自定义属性,所以任何洞察甚至是否可能这将是值得赞赏的.
如果可能的话,我想通过配置文件启用分析.这将通过单元和集成测试支持分析.
.net ×1
events ×1
iis ×1
legacy ×1
permissions ×1
powershell ×1
profiling ×1
unit-testing ×1
vb.net ×1