小编tmt*_*tmt的帖子

为什么我应该在ASP.Net应用程序中使用IoC Container(Autofac,Ninject,Unity等)进行依赖注入?

这是一种理论问题.

我已经在Business层上使用带有Service(Facade)模式的Unity DY.我很容易使用它,但......

每个小事务中都有明显的性能和内存开销.我没有创建DataContext(像"sql-connection"那样读取),而是通过统一创建多个服务对象.

示例:简单操作"GetAllArticles"导致创建

无用:

  • UserService(用于权限检查)
  • ArticleService(用于文章Crud操作)

有用的:

  • DataContext(用于articleService)
  • ArticleViewModels.

但是,如果HightLoadApplication和世界上数十亿人试图从我的超级网站上获取文章呢?垃圾收集器和服务器的CPU温度怎么样?

所以:

  • 我理解团结(或任何其他)正确的工作吗?
  • 有没有替代解决方案?
  • 在高负载应用的情况下我该怎么办

我很乐意听到您的意见和经验,即使它不是灵丹妙药或"最佳实践".

c# asp.net dependency-injection

9
推荐指数
1
解决办法
8534
查看次数

wpf.DataGrid中的Auto-RowHeight

我已将DataGrid绑定到我的集合中,我需要将每行的绑定高度绑定到我的属性.

可能吗?或者还有另一种方法,将每行的高度与集合中的相应属性相关联?

c# wpf binding datagrid row-height

7
推荐指数
1
解决办法
8475
查看次数

DTO vs VM - 使用还是不使用?

在 asp.net (webapi+mvc) 项目中,我有许多 dto 作为我的 BLL 的公共接口。此外,我的大多数视图模型都与适当的 dtos 相同。

聪明的书告诉我们,我们必须分离这种模型,但在项目中我看不到这种解决方案的好处。只有数百个无用的代码,其中包含许多愚蠢的错误。

那么 - 在可能的情况下使用 DTO 作为视图模型是否正确?该解决方案的正面和负面影响是什么?

c# asp.net-mvc dto viewmodel asp.net-web-api

4
推荐指数
1
解决办法
2815
查看次数

C#只读访问List <>或其他集合,或ToArray()魔术

第一个问题是关于保护我的List不被改变(从外部删除/添加/清除等...)的方法

有我的方式:

class Foo 
{
    public int[] MyCollection
    {
        get{ return (_myCollection==null)?null:_myCollection.ToArray();
    }
    protected List<int> _myCollection;
}
Run Code Online (Sandbox Code Playgroud)

好吗?或者有更好的想法,或者可能是模式?

第二:当我用秒表测试这个解决方案时,我非常惊讶.

List -enumeration比使用强制转换时间的List.ToArray()枚举慢:

List<int> myList = new List<int>();
for (int j = 0; j < 10000; j++)
{
    myList.Add(j);
}
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 10000; i++)
{
    //casting every iteration:
    var ROC = myList.ToArray();
    int count = 0;
    foreach (var a in ROC)
    {
        count += a;
    }
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
Run Code Online (Sandbox Code Playgroud)

它显示我700毫秒,和

List<int> …
Run Code Online (Sandbox Code Playgroud)

c# collections generic-collections

0
推荐指数
1
解决办法
550
查看次数