2011-02-15 97 views
4

原諒我對這個問題的無知,但我是一個相對經驗豐富的PHP程序員,除了一些Ruby之外,他沒有任何其他Web編程語言的經驗。ASP和C#之間的語義區別?

前段時間我被告知ASP和ASP.NET與PHP有些相同,因爲它們執行的任務基本相同,處理帖子並獲取請求,可以打印html,訪問數據庫等等。

因此,如果他們是相似的,並且在PHP中我基本上可以做所有我需要的一個web應用程序,那麼Microsoft Stack中另一種語言的需求是什麼,即C# ??

如果我沒有弄錯,C#是SO最受歡迎的語言之一,所以我猜測我錯過了一些很大的東西。

我可以澄清一下嗎?在此先感謝

回答

5

好了,有3個層涉及這裏。

  1. C# < - 這是一種原始的編程語言。它可以像任何其他語言一樣單獨使用。這大致相當於PHP,Ruby,Perl等。

  2. .NET < - 這是一個框架,用於與來自任何支持語言的庫進行本地交互。如果沒有.NET,如果您想在C#應用程序中使用VB類,則需要構建某種接口(例如通過網絡的RPC或命令行包裝器等)。使用.NET,您可以直接與VB.NET類進行交互,而只需與其他C#類(以及數據等)進行交互。基本上,它可以更容易地集成多種語言。在PHP中沒有等價物...

  3. ASP < - 這是一個構建基於Web的應用程序的框架。請記住,C#和VB是(因爲沒有更好的術語)泛型語言。在處理網站時沒有內置的語言。所以ASP在ontop上增加了一層,使創建網站變得更容易(請求處理,MVC庫等)。這與PHP中的框架概念(如Zend Framework)類似。

現在,有2個版本的ASP。舊版本(稱爲經典ASP)和新版本(ASP.NET)。不同之處在於ASP.NET構建在.NET框架之上。因此,使用ASP.NET允許您使用您選擇的語言製作網站(只要它具有.NET綁定,例如C#或VB.NET等)。

ASP.NET.NET只不過是現有編程語言(在這種情況下是C#,但也支持其他許多其他語言)之上的層。他們在那裏讓你的生活更輕鬆。他們所做的一切都可以用C#直接完成,但框架在那裏可以抽象出常見的主題,並讓你專注於你的問題(就像任何好的框架一樣)...

1

ASP.NET是一個Web開發框架,您可以使用C#(或VB.NET)接口。

C#僅僅是因爲實施了.NET

+0

是的,但不是asp擁有所有的邏輯你需要像PHP一樣?爲什麼我需要另一種編程語言(C#)? – 2011-02-15 22:29:11

+5

ASP不是一種編程語言。 C#是。 ASP是平臺/ API的名稱。 – 2011-02-15 22:32:29

+0

不是一種編程語言?這是什麼? <%的Response.Write(「我的第一個ASP腳本!」)%> 我不是諷刺順便說一句,我真的不知道你 – 2011-02-15 22:37:10

0

寫你需要一個像C#或vb.net語言asp.net頁面的語言。

1

PHP和asp/asp.net在這方面是相似的......但是當它涉及到網站實現時,它們是非常不同的..在PHP中,您可以將php代碼與html集成,使其非常容易製作動態網頁。另一方面,asp.net基本上是MS創建html的簡單方法,並且輕鬆地放置和實現服務器端和客戶端腳本/代碼。您需要知道C#或VB才能實現.NET服務器端代碼。

1

就像阿基里斯說的那樣,ASP.NET是一個有很多有趣功能的框架等等。它不是一種語言。你不用.NET或ASP.NET寫東西。您可以使用.NET之友語言編寫代碼,例如C#。

作爲差異的一個例子,您可以選擇完全繞過.NET,並針對Mono項目編寫C#代碼,這是一個類似.NET的框架,但不是來自Microsoft的。

爲了進一步闡明,您可以編寫aspx頁面,但是您將使用HTML和ASP.NET服務器控件的組合,或者如果使用MVC,情況可能如此,您將使用HTML和C#代碼在這個aspx頁面上。