加速ASP.NET开发

时间:2009-03-31 06:10:40

标签: asp.net performance dotnetnuke appdomain

我们正在使用DotNetNuke作为框架开发Web应用程序,并使用我们的自定义模块来实现所需的功能。问题是,当您对代码进行任何更改时,网站需要花费很长时间才能加载。每次重启都要看1分钟,这真的很慢。这导致了非常缓慢的开发 - 重建 - 测试周期。

我们正在使用控制台项目和winforms项目作为新功能的试验场,以加快开发速度,但仍有很多UI功能必须通过浏览器完成。

有没有人有关于如何加速/阻止在网络应用的bin文件夹中发生更改时发生的appdomain重启的提示?

3 个答案:

答案 0 :(得分:1)

DNN会在您添加/更改页面时按需编译,如果您预先编译它们,您的周转时间应该快得多。

答案 1 :(得分:1)

当与大型网络应用程序一起使用时,你遇到了ASP.NET的缺点。

DotNetNuke有许多重要的DLL和VB文件,如果您所做的只是更改一个DLL,则必须重新处理这些文件。如果您的bin中有50个模块DLL,则在您下一个应用程序请求时,ASP.Net将对所有50个模块DLL进行重新处理。

这是我的建议:

将以下文件夹连接到源代码管理器(而不是整个DNN文件夹):

  • bin(我建议忽略所有DNN DLL,因此升级更顺畅)
  • Portals_default \外观
  • Portals_default \容器
  • JS​​
  • DesktopModules(忽略管理员或任何内置模块)
  • 图片(如果您愿意,可以忽略核心DNN图片,或者您自己的任何笨重的图像文件夹,如数千张客户照片)
  • (可选)CompanyName \(您可能希望保留其他需要相对访问bin文件夹中DLL的.NET项目)

当您的某个开发人员需要重复编译/页面加载时,他将通过尽可能多地消除bin文件夹中的DLL来获益。如果可以的话,它也可以帮助使用准系统皮肤进行测试(它们很容易制作)。

准系统皮肤(最多应使用1或2个皮肤对象)和DLL的绝对最小值(DNN Core +您自己的最低限度)将为您提供最佳的开发速度。

当您的开发人员完成一个模块的重点开发时,他可以更新从源代码控制中删除项目的文件夹(此处为svn),在完整DLL /外观集的上下文中完成对其代码的测试,以及他会定的。

有时值得麻烦。我无法让你进行几秒钟的ASP.NET重新处理,但我可以让你降低到10-15秒。 (假设你在SSD上运行)

在重新开始生产时,请确保您的APP池在非工作时间内重复使用。

我已经研究过多核设置是否能以某种方式减少这个重新处理时间,但是没有运气(我在服务器故障上有一个未解决的问题)

答案 2 :(得分:0)

也许这会对你有帮助吗?

Speeding up build times in ASP.NET