2010-02-17 57 views
10

长时间潜伏者,第一次海报。我是一名自学成才的黑客,他学习了Ruby on Rails。在工作中,我被允许在Web应用程序上工作 - 唯一的问题是我必须使用ASP.NET。这项技术的选择是强制性的,尽管我更喜欢使用Rails。用于Ruby on Rails开发人员的ASP.NET MVC?

有几十种“.NET/PHP/Java开发人员的Rails”书籍和博客文章,但我还没有发现任何相反的方向,从Rails到.NET。

有人请给我一个典型的Rails应用程序如何转换为ASP.NET MVC的概述?我研究了IDE,C#/ VBScript中,等的细节,但什么是可能的等同于:

  • 发电机
  • 宝石/插件
  • 数据库
  • 迁移
  • 路线
  • 模型(ORM)
  • 控制器(继承资源)
  • 视图(布局,模板,p artials)
  • Rails的控制台
  • 测试单位/规格
  • 等别的我忘记

我承担了很多细微的Rails我理所当然的像基于路由的辅助方法的,和简单的宏关联声明是不可能的。 :(

太谢谢你了!

+0

当你承担,你让等发电机,宝石和迁移是不存在 - 一切你提到的是在ASP.NET MVC。 :) – bzlm 2010-02-17 19:12:38

+2

这听起来很有希望 - 你能说出他们的名字吗?比如,什么是Rails控制台等价物? – 2010-02-17 19:16:17

+0

SQL Management Studio,服务器资源管理器或LinqPad。 LinqPad可能是你最友好的,如果你不进入SQL – jfar 2010-02-17 19:23:50

回答

0

你应该下载Visual Studio 2008 Express,并下载ASP.NET MVC 1.0(我不会下载ASP.NET MVC 2.0然而,因为它只是在RC。等到它击中2.0最终版)。

您还可以检查出Nerddinner walkthrough。这是非常有用的学习ASP.NET MVC的时候。

  • 发电机

你的意思是代码生成器? EW。

  • 宝石/插件

如果你想要的功能,您可以构建它或看到,如果一个jQuery插件存在的。

  • 数据库

数据库是通过模型进行访问。

  • 迁移

  • 路线

路由是由框架处理,你可以在Global.asax.cs文件添加路由。

  • 模型(奥姆斯)

模型确实仍然被称为“模型”,并在ASP.NET MVC中,如果使用LINQ到SQL,为您生成的模型,当你拖动您的数据库表。您可以使用Repository模式访问数据库模型。

  • 控制器(InheritedResources)

控制器仍然称为控制器。

  • 视图(布局,模板,谐音)

有不同类型的视图引擎,但提供了ASP.NET MVC的一个首先应该做的很好。

  • Rails的控制台

我猜你指的是IDE /调试器?您可以在Visual Studio中构建和调试ASP.NET MVC应用程序。

  • 测试单位/规格

您可以使用NUnit的,或者你可以使用MSUnit。 MSUnit已经与Visual Studio集成,但NUnit可以。

+1

@George I不同意ASP.NET MVC 1.0和2.0。 ASP.NET 2.0比1.0更成熟,并且包含来自Rails背景的人会发现无需重新发明的改进功能,例如Areas和Validation。 ASP.NET MVC 2.0拥有Go-Live许可证,这使得它非常安全。 – bzlm 2010-02-18 08:06:28

+0

@bzlm,好的;但是MVC 2确实有一些bug会让你发疯。我在另一个夜晚处理了一件事。 http://aspnet.codeplex.com/WorkItem/List.aspx – 2010-02-18 11:31:10

+0

那个bug是什么?由于没有人使用Codeplex上的问题投票,并且许多问题实际上都不是问题,所以很难从查看列表中看出问题。 – bzlm 2010-02-18 11:44:28

8

我想你会在.Net世界中找到的是你有很多选择。 Rails很不错,因为它在一个地方提供所有这些东西,但为.Net开发,你必须拼凑出一个你自己的解决方案。

  • 发电机 - 有各种各样的代码生成设施,但每一个都是为了不同的部分。例如,您可以获取将生成基于数据库的代码的MyGeneration。
  • 宝石/插件 - 没有这个联合系统;可以在Web上找到组件,并且可以下载源代码或.dll,然后在项目中将引用添加到程序集(.dll)。
  • 数据库 - 你可以连接到几乎任何东西;您可能会找到MS SQL Server的最佳指导。
  • 迁移 - 我不知道在.net世界中的这种直接方法;我通常在SQL中编写SQL代码,并在部署时手动在服务器上运行脚本。
  • 路由 - ASP.Net MVC包含路由,请查看在创建项目时生成的global.asax.cs文件。
  • 模型(ORM) - .Net的ORM已遍布全球。作为.Net的一部分包含Linq-to-sql和Entity Framework之类的东西。在MS之外你可以找到很多,但我可能会推荐NHibernate。
  • 控制器 - 内置于.Net MVC;你可以编写代码。
  • 视图 - 内置于.Net MVC;你再一次写下它们。 MasterPages允许您在所有页面上获得相同的总体布局(包括常见的页眉/页脚等),Web控件(.ascx文件)允许您执行局部视图。 Rails控制台 - 我不知道这是什么提供的(我是一个有兴趣学习Rails的.net开发人员,但还没花太多时间); Visual Studio允许您调试应用程序,逐步执行代码等。我认为在编写代码,编译和运行代码之外,没有任何控制台可用于测试代码。
  • 测试单位/规格 - .Net有几个测试框架(MS包含框架,NUnit是一种替代方案)。对于规格等,可能谷歌周围行为驱动设计,看看有什么。
+0

谢谢,克里斯,这很有帮助。 RE:Rails控制台 - 很酷。这可能是一种动态解释脚本语言的可供选择。这是一个很好的例子:http://railscasts.com/episodes/48-console-tricks – 2010-02-17 19:58:32

+0

@Chris Shaffer“控制台来测试代码。” < - 这就是像MSUnit和NUnit这样的单元测试框架。 – 2010-02-17 20:26:15

+0

@ ASP.NET - 感谢您的链接,看起来非常有用。 Visual Studio提供了Rails控制台中可用的一些信息(例如,Intellisense将弹出自动完成,您可以导航到类等,以查看可用的内容等。不幸的是,您实际上无法以相同的方式与您的代码进行交互。在调试的时候,你可以设置一个断点,然后在VS的Immediate控制台中进行交互,但是你可以在这里完成一些限制 – 2010-02-17 20:47:40

5

有几个RoR迁移的.NET端口。我已经使用migratordotnetFluentMigrator。两者都按预期工作,但我更喜欢FluentMigrator。它功能更全面(例如可以创建索引),我喜欢流畅的风格。

+1

奇怪的是,我得到了一个这样的downvote。任何人都在意解释?如果你想要Ruby风格的数据库迁移,Fluentmigrator是一条路。 – 2011-02-03 13:41:07