2010-02-21 44 views
8

我只想知道是否有人将他们的帮助程序类或方法存储在单独的程序集中,为什么......只是为了清理管理它们?我见过很多关于在你的MVC项目中使用helper文件夹的帖子,这让我想起了ASP.NET中凌乱的日子,人们在这里使用App_code文件夹,而不是像这样在物理上将事物干净地分离到它自己的项目中。你是否将你的助手类存储在单独的程序集中?

同样,没有人在做真正的体系结构会将模型放入MVC Web程序集的某个文件夹中。他们会在MyApp.DataLayer程序集或MyApp.Models或类似的东西。

+0

您能否澄清一件事情:您是否专门讨论了HTML Helper扩展方法以及包含它们的类?或者你是否更广泛地谈论在构建应用程序过程中创建的各种“帮助类”?你的文章说“助手类”,但它也提到了“助手”文件夹,这是很多人把“HTML助手方法”(和包含这些方法的静态类)放在哪里。 – 2010-02-22 04:33:42

回答

1

我使用项目来分离出我的网络或表单应用中的不同图层。它允许我更好地遵守业务规则。另外,如果我想进行更改,我发现更容易追踪我需要去的地方。

但我看到有人使用标签文件夹中的图层,但我认为这有点麻烦。

2

我们在一个单独的项目中有一些助手,在web项目中有一些助手。我想你会发现你的一些助手需要使用你在web项目中定义的抽象。这通常会迫使你将这些助手放到Web项目中,因为有一些其他项目引用了Web项目并不可取。我不认为它与使用App_Code相同。这些是在编译时在IDE中编译的文件,没有特殊的“魔术”应用于App_Code。

+0

我不是说像App_Code字面意思一样,我的意思是把任何应该放在单独程序集中的任何东西放在您的Web应用程序的某个子文件夹中,这对我来说是个骨架。 – PositiveGuy 2010-02-21 03:25:20

+1

我明白。我的第一个想法是把它们放在一个单独的程序集中。但是这被误导了。我第一次需要制作一个HTML助手来使用我的Web项目中的一个类时,我意识到至少对于我的情况以及可能在很多情况下,助手最好属于Web项目。 – 2010-02-21 03:34:30

3

是的,但对于原因,这是常见的其他组件以及

  • 变得容易插入到任何其他项目。(可能需要某些版本)。
  • 可重复使用的
  • 容易提高
  • 容易折射
  • 由于不是一个项目的一部分,但项目 本身,很容易文档和开发人员容易理解
  • 清除掉一些的乱

但所有以上,你的装配,准备的时候,应该是一个“工作出色”,其他明智的,它是更好地保持辅助类他们属于哪里。

+0

我或多或少在谈论那些只针对某个特定项目的助手。我仍然认为将它们从物理上分离出来只是让它更容易找到事物(发现能力)和更专业的方式来维护并减少Web应用程序中的混乱。 – PositiveGuy 2010-02-21 03:46:03

+0

并非所有您创建的助手都可以在任何mvc项目中重用。 – PositiveGuy 2010-02-21 03:46:42

1

是的,因为它们是业务层的一部分。两大收益:

  • 重用
  • 可测

请记住,你的实用功能和辅助类可能是一些您的整个系统中最频繁使用的组件。如果没有完整的BICEP测试,您将面临真正无法接受的风险。

0

我创建的大多数帮助程序通常都是图层特定的,所以我倾向于将它们保留在需要它们的基本程序集中。我没有看到添加另一个项目来存储大量特定帮助类的理由。

相关问题