我认为微软必须有一个剃刀语法增强ASP.Net的理由。
在Visual Studio中的创建新的网站Project对话框中,没有用于创建ASP.Net(剃刀)的另一种选择。 我第一次跨越术语剃刀来了,当我读了一本书上Asp.Net MVC,我不知道它的存在对ASP.Net
我知道剃刀语法是什么,在MVC 3推出问这个问题之前,我决定创建ASP.Net(剃刀)一个测试项目,看看它是如何从正常的ASP.Net WebForms和ASP.Net不同MVC。 我发现没有模型/视图/控制器的文件夹一样,我们在MVC。
我发现,母版页指定不同的和母版页是清洁的,没有更多<asp:ContentPlaceHolder />
但我的问题是:
- 我注意到它使用
.cshtml
,还有没有更多的codebehinds? - 相似性和ASP.Net(剃刀)和ASP.Net MVC之间的差异
- 是否可以扩展到功能类似ASP.Net MVC如添加控制器?查看/型号,自定义路由我猜?
- 为什么会出现这种存在的时候,我们有ASP.Net MVC? 这是不是鼓励不情愿搬到ASP.Net MVC?
- 你为什么会选择ASP.Net +剃刀在ASP.Net MVC?
更新: ASP.NET网页特别设计 ,以方便对谁已经知道HTML服务器处理添加到他们的网页的用户。 这对于谁是新的编程的学生,爱好者,一般人一个不错的选择。 它也可以是谁与non-ASP.NET网络技术经验的开发人员一个不错的选择
更新 ASP.NET网页 ASP.NET网页针对谁想要一个简单的Web开发故事开发,沿着PHP的线。 在网页模式,创建HTML页面,然后以动态地控制该标记的呈现方式添加基于服务器的代码页。 网页是专门设计为一个轻量级的框架,这是最简单的切入点进入ASP.NET的,谁知道HTML,但可能不具备广泛的编程经验的人 - 例如,学生或业余爱好者。 这也是Web开发人员,谁知道PHP或类似的框架开始使用ASP.NET的好方法。
Asp.Net网页
拜托,我需要你的技术意见。 谢谢。
这是一个很好的问题。 首先,让我们表征剃刀。
剃刀是一个分析服务器端代码发出的Html,就像ASP.NET Web窗体只是用不同的,可以说是更精简,更简洁的语法发动机。
。剃刀v Web窗体边栏:在ASP.NET Web窗体,你必须确定,当你想开始编写服务器代码“<%”,然后当你写完你需要确定以“%服务器代码>”。 我爱ASP.NET Web窗体,但这是笨重。 剃刀你确定当你要开始编写服务器代码“@”,然后在下一次启动编写服务器标签(开始用“<”)为“计算出”你与服务器代码来完成。 这是写一些服务器代码混HTML更简洁的方式。
ASP.NET网页是用于创建简单的Web应用程序的框架。 ASP.NET MVC是与任何Web窗体或使用模型 - 视图 - 控制器(MVC)模式剃刀引擎创建Web应用程序的框架。 ASP.NET Web窗体是创建使用Web窗体渲染引擎的Web应用程序的框架。
最终的目标是基于正在构建的应用程序的复杂性,提供的选择。 了解每个帮助您做出正确的选择,为您的应用。
其他链接:
- ScottGu的博客-介绍剃须刀
- ScottGu的博客- WebMatrix的介绍
- ASP.NET网页剃刀语法(MSDN)
在MVC模式中,M是示范,C是控制器,而V是视图。 所以,很自然地,在ASP.NET MVC模式,有视图引擎的概念。 剃刀仅仅是提供的视图引擎之一。 提供出的现成另一种是“老”的WebForms一个(你也可以写对了自己的搜索引擎)。 所以剃刀没有代码隐藏的它可以停留内的WebForms视图引擎边界的概念。
因此,这有点说这一切。 剃刀处理MVC的视图部分(如果你选择,而不是使用它的WebForms之一)。 它无关,与M或C.
就个人而言,我肯定会去的Razor视图引擎,如果你选择了ASP.NET MVC模式,或使用普通的WebForms MVC没有,因为剃刀已被设计为更简洁,更简单的比Web表单一个使用。 它也只是更近,因此试图成为...只是更好的:-)
作为一个侧面说明,剃刀分析器也可以ASP.NET MVC 之外使用。 它是在完全不依赖于MVC的Web也不组件的组件来实现。 在这里看到更多关于此: http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications
有没有代码屁股默认,但你可以很容易使你的剃须刀文件从您的自定义类继承:
@inherits Index
然后
public class Index : WebViewPage { }
(更多信息: http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html )
这更像是做网站,更ASP3般的老式的方法。 与MVC不同的是,MVC(“有代码标记”使用路由,控制器和行动,而不是仅仅)提供了支持现实世界的应用提出了巨大的框架。
我认为它的存在作出的事情是很简单,但我真的不知道......
最后,我总是选择asp.net的MVC剃刀。
希望能帮助到你
那么,你有两个选择:
使用Web窗体:使用外的箱子,就可以使用服务器端控件(混合标记和业务代码),并使用母版页和兽皮,但面对一些涉及这些便利的复杂性! :)
使用MVC:或使用分离设计的模型,它为您提供了一个更有组织的代码库。 你可以先设计原型,还是先制作业务代码,然后构建等方面,很容易。 甚至你可以给设计师更多的控制他的工作,给他/她做他/她想要的一切的能力。 - >这个人是我的首选,因为它给了我在我的代码更多的控制权,使我的代码更简洁,干净。
如果您选择了MVC模式,那么你就面临着另一个选项...查看发动机
- 老MVC视图引擎:它是不坏,但就是有点冗长
- 剃刀引擎:它不一样的东西#1呢,为什么你永远不希望使用它? 它取代了什么MVC模式。 它也更简洁大方,你有MVC两者的功率和剃刀引擎的简单性。 剃刀是一个聪明的的标记语法,它可以帮助您对您的业务保持专注,而不是写“<%” S! 通过使用您提供只是一个好处剃刀语法,MVC的全功率是在您的指尖!
你也可以写简单的asp.net网页,只需用剃刀(C#或VB)的语法。 (就像PHP)
通过网络表单摆脱所有的困惑,MVC,剃须刀,网页和更多的来自微软,我更喜欢HTML - > JavaScript的 - >的WebAPI。