我们有一个相对较大的Web应用程序(> 200页),我们需要开始添加帮助屏幕.我们想知道是否有类似CMS的应用程序特别适合这种努力(而不是尝试自己构建所有业务所有者编辑屏幕,搜索,格式化等).
有什么建议?
除了可测试性之外,在静态类中使用DI(我不是在谈论DI框架或IoC)的最大优势是什么?特别是对于您知道服务不会被换出的应用程序.
在我们的一个c#应用程序中,我们的团队在Web Web GUI,服务层和存储库层中使用依赖注入,而不是使用静态方法.在过去,我们有POCO(业务实体对象),它们是由静态类创建,修改,传递和保存的.
例如,在过去我们可能写过:
CreditEntity creditObj = CreditEntityManager.GetCredit(customerId);
Decimal creditScore = CreditEntityManager.CalculateScore(creditObj);
return creditScore;
Run Code Online (Sandbox Code Playgroud)
现在,使用DI,相同的代码将是:
//not shown, _creditService instantiation/injection in c-tors
CreditEntity creditObj = _creditService.GetCredit(customerId);
Decimal creditScore = _creditService.CalculateScore(creditObj);
return creditScore;
Run Code Online (Sandbox Code Playgroud)
没有太大的不同,但现在我们有许多服务类具有更广泛的范围,这意味着我们应该将它们视为静态(即没有私有成员变量,除非它们用于定义进一步的依赖性).此外,如果这些方法中的任何一种利用资源(数据库/ Web服务/等),我们发现管理并发问题更加困难,除非我们删除依赖项并使用旧的静态或using(...)方法.
在许多银行和投资网站上,该网站阻止用户从未识别的计算机登录,而无需先回答其他问题或激活该计算机.开发人员通常如何创建此功能?
例如,以下是当我从无法识别的计算机连接到我的帐户时Salesforce.com提供的消息:

我们试图从我们的一个应用程序中执行相同类型的操作,但不确定最好(也是最安全)的方法.
我们不久前将应用程序升级到.NET 4.0,现在需要添加从应用程序备份SQL Server 2008数据库的功能.但是,似乎SMO不适用于.NET 4.是否有解决方法或更好的方法来执行数据库备份(请注意,我们的备份需要通过网站在用户上启动,因此我们无法安排它们).
使用PrintServer和PrintQueue类相同,通过Windows中的打印机查看作业?
我们有一个应用程序可以直接打印到Windows打印机,但它不能创建一个字节数组或任何类似我们可以用来调用AddJob.是否会使用该PrintQueue.GetPrintJobInfoCollection()方法枚举打印机以检查原始打印项目的状态?
我们使用msbuild将ASP.NET MVC应用程序部署到几个不同的服务器.但是,msbuild似乎不会首先删除远程应用程序文件夹(它似乎只是更新文件).我们的msbuild命令行如下所示:
"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"OurWebProject.csproj/P:BaseIntermediateOutputPath = c:\ temp\tempfolder\/ P:Configuration = Release/P:DeployOnBuild = True/P: DeployTarget = MSDeployPublish /P:MsDeployServiceUrl=https://192.168.0.83:8172/MsDeploy.axd/P:AllowUntrustedCertificate = True/P:MSDeployPublishMethod = WMSvc/P:CreatePackageOnPublish = True/P:UserName = ARemoteWebDeployUser/P:Password = SomePassword
msbuild是否真的"智能"足以同步文件,每次都不需要进行干净的部署?如果没有,是否有一种简单的方法可以先删除文件?
我们正在使用web.config转换,因此每次都会重建/重新部署web.config(这是一件好事,因为我们希望应用程序池在每次部署时重新启动).
最近Firefox开始忽略密码字段的autocomplete ="off",现在允许用户一直保存密码.我们有成千上万用户使用的大型应用程序,根据法律,我们需要确保密码永远不会以明文形式保存在客户端计算机上.
有什么方法可以阻止Firefox保存这些密码吗?我们找到了Chrome的解决方法(它只保存了屏幕上的第一个密码字段,因此我们在真正的密码字段之前添加了一个隐藏的密码字段),但我们对Firefox没有任何好运.截至目前,我们唯一的选择是完全禁用Firefox支持.
是的,我意识到阻止用户保存密码很烦人,但我们别无选择......这是联邦法规强加给我们的要求.
我们有一系列ASP.NET MVC控制器,它们都继承自单个基本控制器(继承自Controller类).我们现在正在考虑创建一些异步操作,并且想知道如果我们只是将基本控制器更改为继承AsyncController而不是Controller(意味着我们所有的控制器都将从AsyncController继承),我们是否会遇到任何麻烦.
确保ASP.NET MVC操作未被调用两次的最佳方法是什么(即如果用户快速连续点击两次按钮)?在大多数我们的屏幕上的,它不是一个大问题,如果它发生......但在少数会引起混乱(如支付人多次而不是只一次).
asp.net-mvc ×4
asp.net ×3
c# ×3
.net ×2
security ×2
.net-4.0 ×1
architecture ×1
banking ×1
cookies ×1
firefox ×1
help-system ×1
html ×1
html5 ×1
ip-address ×1
javascript ×1
msbuild ×1
printing ×1
smo ×1
sql-server ×1
static ×1