2009-03-06 62 views
1

我們有一個用asp.net c#(3.5)和SQL服務器編寫的企業應用程序,我們想爲客戶打包和發佈。我們將面臨從asp.net將站點移植到LAMP(php)堆棧的挑戰嗎?

但是,有幾個人表示擔心,由於成本問題,它要求需要微軟服務器。是的,我知道......因此,我們正在考慮將其移植到LAMP堆棧,其中「P」指的是php。

我們可以期待在來自Visual Studio asp.net環境的LAMP堆棧上面臨哪些挑戰?

我相信這兩個問題是:

  1. 調試:Visual Studio是真棒爲客戶端和服務器端調試。
  2. 框架:模型背後的代碼運行良好,MVC框架很好。
  3. 維護:我們希望功能集在兩個平臺上都很常見。
  4. 數據庫層:代碼鬆散地耦合到mssql數據類型。

如果您已經經歷了這個激動人心的過程,我很想知道一些建議/提示的含義。

作爲一個方面,有沒有什麼辦法讓我們按原樣運行這些代碼?單?其他?

+0

如果它真的是一個'企業'應用程序,服務器+ Windows許可證的成本只是與應用程序本身的成本相比的噪音。同樣,進行徹底改寫並確保其質量與原始質量相當(參見http://www.1729.com/blog/EconomicsOfTestingUglyCode.html)的成本將非常驚人。除了將它移植到開源數據庫和一些小的重寫以使它在Mono下運行之外,我不會爭辯說,除此之外,還可以將它稱爲新應用程序。 – 2009-06-03 00:44:17

回答

1

我與.NET比* AMP堆疊更多的經驗,但根據我的經驗XAMPP,我想提出以下意見

  1. 調試:Visual Studio是真棒爲客戶端和服務器端調試。

    Eclipse PDT適用於設計,開發和調試。我聽說過關於Zend Studio的好東西,但沒有用過它。

  2. 框架:模型背後的代碼工作得很好,而且MVC框架很好。

    有框架,讓你分開邏輯呈現(例如Smarty)和至少一個MVC框架是可用的(例如CakePHP

  3. 維護:我們想設置爲兩個平臺上共同的特徵。

    如果排除Windows特定功能(Windows集成安全性,等)不應該有多少你不能在兩個堆棧做,但如果你有重現像在GridView控件將是勞動密集型。

  4. 數據庫層:代碼鬆散地耦合到mssql數據類型。

    我不知道能不能MySQL和SQL服務器之間進行映射的任何數據類型,並有良好的文檔handling migrations

單可能會降低的時候需要端口解決方案中的金額,但我我不知道任何方式可以「按原樣」重新使用所有代碼。

2

另一個可以考慮的PHP IDE是NetBeans。

作爲一名.NET,Java和LAMP開發人員,其最大的變化在很大程度上是文化因素。例如,PHP有一個不使用面向對象原則的遺留問題,而ASP .NET則是作爲一種具有完全面向對象支持的.NET語言開始的。這種基本的差異導致了重要的問題,例如PHP的長列表保留關鍵字等等。

2

其他MVC框架:

  • Kohana的
  • 的Yii

(只發現了Yii的Here's an article來比較它們。)

大概有另外還有六十多個。

0

我自己有一個Asp.net背景,並且一直在研究過去幾個月的開源框架。我仍然沒有下定決心。我最近一直在尋找Grails。似乎兩全其美 - 在企業平臺上的腳本化,易於使用的開源RAD MVC框架。它使用Groovy腳本語言(類似於ruby),但是可以在JVM上運行,所以如果你願意,你可以使用完整的Java框架。有大量預先寫入的Java組件可供挖掘。這件事很酷。您可以很快移植現有的應用程序。不過你需要一個Tomcat虛擬主機。

如果您需要PHP,直接PHP表現相當不錯,但大多數框架表現不佳。如果直接使用PHP,那麼就沒有mvc。您將使用傳統的基於頁面的模型。但你會在家感覺更多。您可以使用PDO推出自己的DAL並使用存儲過程。不過你需要一個模板系統。遠離Smarty,它使用自己的模板語言。這很慢,爲什麼你需要學習一個單獨的模板語言。我從來沒有得到過。改用Savant:http://phpsavant.com/。它使用PHP模板語言,速度很快。您也可以通過爲每個網站頁面創建模板頁來模仿代碼隱藏。至於mvc,有一個名爲Yii的新PHP框架(http://www.yiiframework.com/),聲稱它具有最好的性能,用於php框架。它也很好記錄。如果你來自.Net,它可能是最好的PHP框架。感覺像Zend這樣的企業,但沒有糟糕的表現。其他大部分都是玩具,或像Symphony和Cake一樣慢。 Php與Apache很好地合作。與Rails和Django不同的是沒有太多的調優或維護。

接下來你需要一個IDE。去Netbeans。使用PHP版本並安裝http://www.xdebug.org/。會覺得VS比VS差,但並不壞。

對於數據庫,MySql是性感的選擇,但Postgres是優越的。它有一個數據庫引擎可以完成這一切。有了Mysql,你需要的一些功能在InnoDB中,有些功能在MyIsam中。如果你需要外鍵和事務你必須使用InnoDB。使用MyIsam進行全文搜索和更快的讀取性能。Postgres的性能在版本8的版本上有了很大的改進(現在和mysql一樣)並且最終有一個很好的Windows安裝程序。

相關問題