2009-07-13 50 views
2

我有一大套經典的ASP頁面轉換。我將運行Mac OS X 1.5.7服務器。我可以在理性的範圍內選擇任何我想要的,但是我被困在Ruby on Rails或完整的Java EE棧和ORM之間。對於我的Ruby on Rails或Java EE,哪個更好?

我最關心的是我不得不打了每個框架/堆是由做什麼的數據庫。在RoR中實際構建一些事情後,我開始擔憂。我不知道爲什麼,可能只是缺乏經驗,但它並不「覺得」是正確的。我當然可以忽略這種感覺,並且在沒有任何相反證據的情況下向前推進。

我不得不打,不會被轉換爲別的以下現有數據庫:

甲骨文 安格爾 Sql Server的 MySQL的 也許別的

哪種框架/技術堆棧是爲了這個美好的Intranet應用程序?

謝謝你的幫助。

編輯:我不知道這事,但我打了所有的數據庫,並把他們重新走到一起。這不是一頁數據庫。我查詢他們全部並帶回頁面中。

編輯:我有兩個回報率和Java EE的經驗有限,但必須選擇其中的一種或別的東西。

編輯:忘記提到我已成立的JRuby on Rails的,不只是Ruby on Rails的。

編輯:從以下(感謝)評論我有這樣的:

它是一個Web服務以XML和傳遞回來了呢? - 這是可能的,但不是現在

它是一個基於表單的入場申請? - 它的一部分將有這種類型的需求

這是一個簡單的CRUD? - 它的一部分

什麼是用戶關係呢? - 本質上它是許多不同類型的網頁。我有一個部分是整個應用程序本身的問題。另一部分是從許多不同的數據庫源中提取數據。我有不同的用戶和不同的需求。我一直在尋找解決方案。如果我想要的話,我可以有幾種不同的語言和框架 - 這是我現在在微軟服務器上的,但我一直在尋找一種一致的做事方式。這是一個很大的合併,但我不想購買一些websphere來完成它。

它如何與數據庫交互? - 不確定要說什麼,jdbc,crud或只是讀取,它根據特定網頁的需要而變化

有多少用戶使用該應用程序? - 可能是1000,但它可能會增長。如果我將其中的一部分移動到可以有數千個互聯網應用的部分。

回答

4

在我有限的經驗,回報率,當你允許它創建必要的數據庫模式的效果要好得多。僅在這一點上,我會建議使用Java EE和Hibernate(或類似的東西),因爲嘗試與遺留數據庫表集成時不會感到沮喪。

你也提到你缺乏與回報率的經驗 - 你有使用Java EE和任何持久性框架(如Hibernate)的經驗?除非項目的時間限制包含了一個「學習預算」,以幫助您掌握新的語言和框架,否則我一定會努力堅持所知。

8

坦率地說,這是根本沒有足夠的信息繼續下去。我會問這樣的問題:

是否有任何「傳統」數據庫模式來支持?聽起來可能會有。如果是這樣,ORMs可以得到痛苦的困難來處理,而SQL可以是一個快照。這是有利於Java的一點。

你有沒有在Java或回報率是什麼現有的技能?如果有更多的經驗在另一個去那個。它極大地降低了風險。

除此之外,你說的那種應用程序,它的特點,要求什麼等等,所以你真的不能說一種方式或其他。

如果你確實去了Java,那麼Spring比「經典」的Java EE(比如EJB)要多。爲了簡單易用,Spring遠程處理,Spring Web Services等擊敗了EJB(甚至3.0)。如果你想要一個以SQL爲中心的持久層,請看看Ibatis。事實上,這是一個Spring and Ibatis Tutorial

如果您確實喜歡持久層的更多對象模型風格,可以使用Hibernate或EclipseLink。兩者都可以很好地與Spring搭配

至於應用程序服務器,我強烈推薦Glassfish(v2或v3)。

+0

只是,GlassFish是不再保持爲一個生產服務器的更新。 – johnny 2014-07-17 15:46:29

0

我不認爲有一個「更好」的解決方案。我認爲這取決於您的每個Ruby和Java的技能水平。如果你和你的團隊在Java上更好,那麼你可以使用Java。除非時間和金錢不是對象,否則你可能想學習Ruby(反之亦然,我只是選擇了一個)。

您希望能夠創建一個穩定的,可維護的Web服務器。所以你需要評估哪一個最容易開發,最容易維護和最適合你的環境。我不認爲這是一個標準的內聯網網頁,它對你來說適當地開發了,實際上比另一個更好。這真的取決於網頁/網絡服務應該做什麼。

也許如果你告訴我們更多關於網站實際的功能,我們可以給出更好的答案。

+0

什麼樣的東西我需要告訴幫助?我不知道如何回答這個問題。 – johnny 2009-07-13 14:10:35

+0

怎麼樣:這是什麼樣的「網絡」服務器?它是一個Web服務採取XML並將其傳回?這是一個基於表格的入場券申請嗎?這是一個簡單的CRUD嗎?用戶使用它做什麼?它如何與數據庫交互?有多少用戶使用該應用程序? – amischiefr 2009-07-13 14:38:30

+0

我添加了這個信息。 – johnny 2009-07-13 15:29:08

0

Groovy和Grails怎麼樣?你可以得到兩全其美的...

+0

這與在rails上使用jruby有什麼不同? – johnny 2009-07-13 14:30:12

1

如果你正在建立一個大的遺留堆棧(聽起來像你)。您可能會發現Java世界將幫助您抽象出一些常見接口背後的痛苦。從我的,也是有限的經驗來看,使用ROR它本身不會與其他模型很好地發揮作用。

0

Ruby on Rails更容易學習。這是一個全能的框架。你不需要Spring或Hibernate。你只需要一些Ajax來獲得更好的視圖。

Ruby on Rails是意在強調約定優於配置(COC),做的飛速發展原則,不重複自己(DRY)。

「約定優於配置」是指開發者只需要指定應用程序的非常規方面。例如,如果模型中有Sale類,則數據庫中的相應表格默認稱爲銷售。只有當一個從本公約偏離,如調用表「銷售的產品」,即開發人員需要寫關於這些名稱的代碼。一般來說,Ruby on Rails的約定導致更少的代碼,少重複。[來源]

「不要重複自己」是指信息位於一個單一的,明確的地方。例如,使用Rails的ActiveRecord模塊,開發人員不需要在類定義中指定數據庫列名。相反,Ruby on Rails可以根據類名從數據庫中檢索這些信息。

「胖模型中,瘦控制器」意味着大多數應用邏輯的應該同時留下控制器儘可能輕被放置在模型內。