asp.net mvc开发人员的最佳实践

道歉的问题是如此的主观。

我正在寻找一些如何在asp.net mvc应用程序中更好地pipe理javascript的实际例子。

在jQuery之前,我尽量避免使用javascript。 现在我使用了很多,但是觉得我可能已经错过了一些在大型Web应用程序中构build我的JavaScript代码的最佳实践/build议。

有些我感到内疚并想要离开的东西:

  1. 内嵌的JavaScript在我的意见。 我并不是在谈论大量的代码,但在每个视图上都有一些初始化代码并不罕见。
  2. 一个大的“网站”JavaScript文件。 随着我的应用程序中使用的插件列表增长(例如jquery ui),我的“启动”function也正在初始化每个插件。 通常这是为了避免问题1(添加JavaScript内联)。 也许每个视图的JavaScript文件是一个更好的解决scheme?
  3. 一切似乎都非常程序化。 我习惯在.net中以面向对象的方式工作,但是当涉及到javascript时,这似乎是在窗口外面。 现在我知道OOP肯定是可能的,并鼓励使用JavaScript,但我可以做一些实际的例子,我应该如何做一个真正的Web应用程序的上下文。
  4. 命名空间/项目结构 – 我已经看到了一些JavaScript命名空间的例子(借助于对象),并且喜欢这个方法,但是可以用更多的背景知识来做。

任何网站,书籍等,人们可以推荐将不胜感激。

我以为我会扔我2美分。

  1. 最佳做法build议不要在视图中使用JScript,而我发现可以通过使用包含JScript的HTML助手或将JScript推入到JS文件中并在您的HTML助手中初始化它。 这是第三方MVC控制开发(如Telerik)使用的。 如果你决定把JScript推入你的控制器,你会发现它很快就会变得混乱。

  2. 我经常发现自己在每个视图都有一个JS文件的情况下,但是可以合并为每个模块有一个JS。 这又取决于代码的复杂程度。 如果您发现许多视图具有相同的初始化,那么您可以使用基本视图方法。 这也被认为是最佳实践。

  3. 你会发现JScript是相当OO的 ,这与JScript如何使用JSON有关。 我发现JScript的灵活性使它看起来偏离了OOP。 我对JScript的有限经验是保持简短,这将重新实施可重用的JScript。

  4. 我认为这可以通过在JScript中的练习来克服。 我在这里find的最大问题不是与名称间距,而是如何避免JScripts的重复/双重加载。 如果视图是“独立的”,理论上应该加载他们自己的JScripts,但这会导致JScripts被加载多次,甚至造成冲突。 再次,一个好的HTML帮手可以把你保存在这里(aplogies,我没有一个很好的例子,但谷歌它,你不能出错)。

总的来说,JScriptfunction非常强大,可以将Web编程提高到一个全新的水平。 JScript将会越来越多地成为Web平台的一部分,特别是当每个人都进入到HTML 5中的时候。使用MVC和JSript,有100种不同的方法来完成相同的事情,最佳实践只能带你到目前为止。 剩下的由您来决定,取决于您想要实现的目标,您的目标受众是谁,以及您支持哪些浏览器。

我已经使用了这里描述的方法:

http://weblogs.asp.net/jaimedelpalacio/archive/2011/03/23/a-way-to-organize-your-javascript-code.aspx

我很想知道你在想什么。

参考SO上的类似问题

有一个更好的方法来组织JavaScript的单个文件与多个页面的特定代码?

对于我来说,像KnockoutJS这样的库已经帮助了很多组织我的JS代码,它非常强大,我已经将它用于多个项目,并且工作得很好。 (我也是一个asp.net mvc开发者,但是这也适用于其他技术,除此之外,发明它的人有很多aspnet mvc的经验)