2009-10-12 79 views
1

我正與一位PHP開發人員合作,我們應該說,他對.NET不滿意。他的抱怨包括必須爲每個測試重新構建Web應用程序解決方案(儘管我指出通常只有在.cs文件已被更改,而不是接口.aspx文件時才需要),必須在解決方案中包含每個文件需要部署等。ASP.Net編譯模型的優點?

我已經指出了編譯模型的一些優點,包括RTTI(反射),源代碼完整性(源不會被部署到服務器,保持meddlesome IT人員不會修改它在性能上的差異(儘管他堅持認爲這是無效的,因爲PHP現在是「編譯」)等等。這可能會引發一場宗教辯論 - 敬請上帝,不要 - 但我是.NET的粉絲,以至於我多年前提出的這些問題中的一些看起來很愚蠢,以至於我無法表達出有效的迴應。

他在開發頁面的方式上似乎也存在顯着差異。例如,聲明一個代表頁面部分的類(比如3列布局中的特定列),而不是以更合理的方式分解代碼,並依靠.aspx來處理佈局。這讓我感到奇怪的是,頁面佈局無論如何都會被綁定到類結構之外的類結構,而不僅僅是一個aspx頁面的代碼。

評論?

UPDATE順便說一句,這是一個老問題,但我覺得有必要與幾點更新:

  1. 優化這是一個大的。編譯提供了機會來執行一些在JIT期間不可行的優化。

  2. (雖然我沒有)那o.k.w簡稱爲如此明顯偏見,有人還沒有在.NET,它是幾乎不值得一讀,工作了顯著時創建的文章。它也使得完全是的點不正確

  3. 讓Mac人們意識到Windows有它的位置幾乎是不可能的。另一方面,我認識的大多數Windows傢伙都認爲Mac對很多事情都很好。大多數甚至擁有一個。出於某種原因,我們不會將它們用於開發網站或嵌入式系統。 (而且,是的,我們的業務涉及兩方面)。

  4. 第一次愛情變得很糟糕...優秀的比喻。這可能很快會在我的口中出現。

  5. 這場辯論毫無用處。我也可以試着說服英國走上正確的道路。和澳大利亞。和香港。而且......你看到了這一切。

乾杯。

+3

我努力不回答這個問題。但它太誘人了,而不是谷歌「PHP與asp.net」。所以我評論而不是回答。這裏有一個:http://www.bizfive.com/articles/web-design/comparing-php-and-asp.net/ – 2009-10-12 15:34:44

+3

如果PHP是他的第一個愛情,那麼這可能是一項艱鉅的任務。在我的情況下,它是第一次愛變壞..所以我搬了:) – Perpetualcoder 2009-10-12 15:44:15

+1

這篇文章o.k.w張貼似乎只解決了PHP的優越領域,實際上不正確的幾點。 – StriplingWarrior 2009-10-12 16:12:04

回答

3

我每天兩種語言的工作,都是極大的發展空間。很難進入「編譯與解釋」的辯論,沒有變得火熱和熱忱,所以我不認爲我會說什麼。然而,這裏有一些我更喜歡的東西.Net:

  • Visual Studio與Eclipse。

  • 沒有@includes,和真正的命名空間。我一直想知道我的類型,而不是依靠怪異的自動加載例程。

  • API可發現。 PHP有可怕的,不一致的API命名。

  • 編譯時檢查和代碼分析

  • 高級調試器和分析器

這是不是真的什麼關係,他們雖然使用的模型,它只是屬性的工具本身。我不建議嘗試改變自己的想法,甚至與他爭論了 - 他會看到此優勢本人或他不會,而是推動他們對他很可能只是會延長;)

1

主要的問題是,如果一個框架存在,幾乎任何你可以用.Net提出的優點都可以用PHP實現。我相信有PHP MVC框架。

但是,我會說這個關於ASP.Net的編譯模型,這對了解代碼背後的代碼中沒有語法錯誤是非常有幫助的。 PHP和ASP Classic沒有這個。在一個有400多頁的網站中,很難確定哪些網頁是功能性的,哪些功能無法確定。

+1

aspnet_compiler.exe附帶.net框架。您可以使用它來預編譯應用中的所有.aspx和.ascx文件。我已經開始將它作爲我的構建的一部分,以儘快捕捉前端的錯誤。 – Matt 2009-10-12 18:07:18

2

從我明白了什麼(沒有用功多在PHP自己)PHP是功能強大,易於使用,真正的亮點在較小的,比較簡單的項目,特別是在業務邏輯大多由數據庫和之間移動內容網頁。 ASP.NET更適合更大,更多的業務邏輯密集型應用程序,編譯時檢查允許您儘早發現錯誤。在編譯時與運行時捕獲錯誤可能會在修復需要多長時間時產生一個數量級的差異。我們使用PHP構建模型以展示客戶並讓他們簽署我們的想法,然後我們用.NET或Java等編譯語言編寫實際產品,因爲這是我們的代碼,將需要維持未來十年或更長時間。