我们正在组建一个相当高流量的网站(每周约600万个网页印象)的最后阶段,并且正在使用LinFu作为新体系结构中的IoC容器。LinFu IoC在高流量网站上的最佳实践
我们有一个非常标准的设置:
Web Layer
|
IServices <- Services Implementation
|
IDataRepository <- DataRepository Implementation
|
DataBase
在网络层,我们有一个提供对象所要求的网页服务的情况下,李林甫的ServiceContainer的一个实例(在我们的实施单)。 DataRepository程序集中的每个类也以相同的方式创建(每个Services构造函数接受它所需的DataRepository对象的接口)。
一个简单的例子是:
IWeatherServices
{
Weather GetForecast();
Weather GetPrediction();
}
[Implements(typeof(IWeatherServices))
WeatherServices(IWeatherForecastRepository, IWeatherPredictionRepository) : IWeatherServices
{
// implementation of methods
}
(又一次类似功能的DataRepository类)
我们已经离开了生命周期类型此刻的默认(我相信这是PerRequest )。
我的主要问题是:
- 我们应该保持的ServiceContainer作为Web应用程序内的单?
- 应该将实现类的LifecycleType保留为默认值吗?
我知道这是一个有点开放式的,但我们正在负载测试期间进行调整,所以我非常感兴趣的一般意见。
感谢您的回复。我们现在正在测试配置的变化,但知道我们没有做任何根本错误的事情是非常令人放心的。干杯! – 2011-03-15 12:14:45
这个问题为什么低估? downvoter是否想解释为什么? – Steven 2011-07-02 17:19:35