2010-02-17 58 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