在与Microsoft员工进行代码审查期间,我们在try{}块中遇到了大量代码.她和IT代表建议这可能会影响代码的性能.事实上,他们建议大多数代码应该在try/catch块之外,并且只应该检查重要的部分.微软员工补充说,即将发布的白皮书警告不要使用不正确的try/catch块.
我环顾四周,发现它可以影响优化,但它似乎只适用于范围之间共享变量.
我不是在询问代码的可维护性,甚至不是在处理正确的异常(有问题的代码需要重新分解,毫无疑问).我也没有提到使用流量控制的异常,这在大多数情况下显然是错误的.这些都是重要的问题(有些更重要),但不是重点.
如果不抛出异常,try/catch块如何影响性能?
我正在开发一种多语言软件.就应用程序代码而言,可本地化不是问题.我们可以使用特定于语言的资源,并拥有适合他们的各种工具.
但是,定义多语言数据库模式的最佳方法是什么?假设我们有很多表(100或更多),每个表可以有多个可以本地化的列(大多数nvarchar列应该是可本地化的).例如,其中一个表可能包含产品信息:
CREATE TABLE T_PRODUCT (
NAME NVARCHAR(50),
DESCRIPTION NTEXT,
PRICE NUMBER(18, 2)
)
Run Code Online (Sandbox Code Playgroud)
我可以想到三种方法来支持NAME和DESCRIPTION列中的多语言文本:
每种语言的单独列
当我们向系统添加新语言时,我们必须创建其他列来存储翻译后的文本,如下所示:
CREATE TABLE T_PRODUCT (
NAME_EN NVARCHAR(50),
NAME_DE NVARCHAR(50),
NAME_SP NVARCHAR(50),
DESCRIPTION_EN NTEXT,
DESCRIPTION_DE NTEXT,
DESCRIPTION_SP NTEXT,
PRICE NUMBER(18,2)
)
Run Code Online (Sandbox Code Playgroud)翻译表与每种语言的列
不存储翻译的文本,而是仅存储翻译表的外键.转换表包含每种语言的列.
CREATE TABLE T_PRODUCT (
NAME_FK int,
DESCRIPTION_FK int,
PRICE NUMBER(18, 2)
)
CREATE TABLE T_TRANSLATION (
TRANSLATION_ID,
TEXT_EN NTEXT,
TEXT_DE NTEXT,
TEXT_SP NTEXT
)
Run Code Online (Sandbox Code Playgroud)用于每种语言的行的转换表
不存储翻译的文本,而是仅存储翻译表的外键.转换表仅包含一个键,而一个单独的表包含每个语言转换的行.
CREATE TABLE T_PRODUCT (
NAME_FK int,
DESCRIPTION_FK int,
PRICE NUMBER(18, 2)
)
CREATE TABLE T_TRANSLATION ( …Run Code Online (Sandbox Code Playgroud)当我尝试在Windows 8机器上的IIS上提供WCF服务时,我得到了众所周知的错误
由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.
旧的工作是运行,aspnet_regiis -i但这个命令似乎已在Windows 8中被弃用,产生响应This option is not supported on this version of the operating system. (...).
会有什么工作?
(我已经成功启用了常规aspx页面,因此大多数IIS配置看起来都很健康.)
我有一些集合返回的字段为
2.4200
2.0044
2.0000
Run Code Online (Sandbox Code Playgroud)
我想得到的结果
2.42
2.0044
2
Run Code Online (Sandbox Code Playgroud)
我尝试过String.Format,但它返回2.0000并将其设置为N0舍入其他值.
如何检查应用程序设置是否可用?
即app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="someKey" value="someValue"/>
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
并在代码文件中
if (ConfigurationManager.AppSettings.ContainsKey("someKey"))
{
// Do Something
}else{
// Do Something Else
}
Run Code Online (Sandbox Code Playgroud) 为什么ASP.NET Web API需要FromBody和FromUri属性?
使用属性和不使用它们之间有什么区别?
我正在尝试将Tomcat 6网络服务器的默认应用程序更改为与"ROOT"(在webapps文件夹内)不同的应用程序.做这个的最好方式是什么?
刚升级ASP.NET MVC4项目以使用Unity.WebApi版本5.0.0.0,它需要System.Web.Http v 5.0.0.0,因为以下错误:
Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
Run Code Online (Sandbox Code Playgroud)
我目前正在引用System.Web.Http v4.0但是将以下NuGet包升级到各自的最新版本:
WebGrease
通过NuGet.我没有列出相关的JavaScript库,如Micrososft.jQuery.Unobtrusive Validation等.
什么是升级System.Web.Http的NuGet包,还是我必须手动执行此操作?
c# ×4
.net ×2
appsettings ×1
decimal ×1
html ×1
hyperlink ×1
iis ×1
localization ×1
multilingual ×1
nuget ×1
performance ×1
tomcat ×1
tomcat6 ×1
try-catch ×1
typescript ×1
wcf ×1
windows-8 ×1