2012-11-08 54 views
0

目前在我的Asp.Net网站中,我将本地化文本存储在数据库的表中。该表有三列:将本地化文本存储在数据库或资源文件中?

TextCode nvarchar(100), 
CultureId int, 
TextString nvarchar(MAX) 

所以每次当我需要得到一个特定的文化我只是做一个简单的查询一个本地化的文本的时间。

这种方法的主要优点很简单,我也可以在我的web应用程序运行时更新文本。

明显的缺点是性能。我使用资源文件进行其他桌面应用程序的本地化。我选择数据库的原因是我的印象是,更新asp.net中的资源文件将导致Web应用程序重新加载,因此当我更新资源文件时,我需要使站点脱机。假设是真的吗?在Asp.Net中存储本地化文本的“常用”方法是什么?

感谢

回答

2

Common方法是使用全局和本地资源文件。如果你想使用数据库考虑使用与SQL缓存依赖关系的asp.net缓存。在应用程序启动时,从sql server加载所有资源数据并将其存储在缓存中,并创建一个实用程序类以基于资源键从缓存中返回数据。

+0

这种方法很好:) –

+0

感谢您的答案Prashant。你知道编辑资源文件是否会导致AppDomain重新加载? – sean717

+0

是的,您所有的应用程序池都将回收,并且所有应用程序级别事件将再次触发 –