.NET、C#和ASP.NET,ASP.NET MVC 四者之間的區別

来源:http://www.cnblogs.com/wwym/archive/2016/06/03/5555772.html
-Advertisement-
Play Games

經常,會有一些人搞不清楚.NET和c#和ASP.NET這三者之間的關係,她們都是什麼呢?他們之間有什麼關係呢?今天我簡單給大家總結一下吧。 首先:什麼是.NET? .NET是微軟公司下的一個開發平臺,.NET核心就是.NET Framwork(.NET框架)是.NET程式開發和運行的環境,在這個平臺 ...


經常,會有一些人搞不清楚.NET和c#和ASP.NET這三者之間的關係,她們都是什麼呢?他們之間有什麼關係呢?今天我簡單給大家總結一下吧。

 

首先:什麼是.NET?

.NET是微軟公司下的一個開發平臺,.NET核心就是.NET Framwork(.NET框架)是.NET程式開發和運行的環境,在這個平臺下可以用不同的語言進行開發,因為.NET是跨語言的一個平臺。語言可以是C#,f#,j#,vb.net等等。順便說一下sum公司的JAVA和.NET不同的一點是java是跨平臺的,不跨語言的。.NET跨平臺僅限於安卓系統和IOS蘋果系統。

1..net框架的組成分為兩部分:CLR:公共語言運行時,-提供內在管理,代碼安全性檢測等功能

              FLC:.NET框架類庫,類庫中有很多線程的資源可使用(比如:類,方法,屬性),提供大量應用類庫,提高開發效率

2.CLR的結構:CLS:公共語言規範,獲取各種語言轉換成統一的語法規範。

        CTS:公共類型系統,將各種語言中的數據類型轉換成統一的類型

       JIT:實時編譯器(即時編譯器)用於將轉換之後的語言編譯為二進位語言,交給CPU執行。

3 .NET運行的機制流程

各種語言(c#,F#,j#等對應的源程式)——-—經過CLS,CTS第一次編譯———————>統一規範語言(中間語言)MSIL(.EXE,.DLL)————JIT第二次編譯————>二進位語言——————>運行在CPU中

舉一反三,知道了.net的運行機制就順便可以瞭解下java的運行機制,原理其實差不多

.java————編譯———>位元組碼文件(.CLASS)———jvm解釋(jvm虛擬機)———>二進位語言——————>運行在CPU中

 有人說:學習.NET Framework 是所有.NET 開發人員都必須的,否則開發.NET程式永遠都是停留在‘外功’的招式,.NET Framework 是.NET開發高手的‘內功’修行之一。

 

4.C#是一個.NET平臺下的一個程式設計語言,只是一個語言,僅此而已。 程式設計語言是為了方便開發人員和電腦溝通的工具。 從上面.net的運行機制流程就可以看出C#和.NET之間的關係,畫面閱讀者自己進行補腦想象吧!                                                                                                                                                                 

5.ASP.NET是一個網站開發的技術,是.NET框架中的一個應用模型。(它的歷史挺長遠的,我就不寫它的由來了,個人理解是它的媽媽是ASP,不懂問度娘吧)使用ASP.NET開發Web應用程式並維持其運行,比其他開發語言更加簡單。與Java、PHP和Perl等高級技術相比,ASP.NET具有方便性、靈活性、生產效率高、安全性高及面向對象等優點,是目前主流的網路編程技術之一。 

 

6.關於ASP.NET MVC,剛開始接觸這個技術的時候我經常不理解他們的名字,我相信許多學ASP.NET開發人員開始接觸MVC應該也和我一樣產生很多為什麼,也會誤認為認為MVC與ASP.NET完全沒有關係,是一個全新的Web開發,深入學習後我才知道事實上A                    SP.NET是創建WEB應用的框架而MVC是能夠用更好的方法來組織並管理代碼的一種更高級架構體系,所以可以稱之為ASP.NET MVC。我們可將原來的ASP.NET稱為 ASP.NET Webforms,新的MVC 稱為ASP.NET MVC。

MVC是軟體架構的一種模式,可以說就相當於我們常說的設計模式吧。其中主要包括三個模塊,顧名思義。就如MVC名字所顯示的那樣:模型(Model),視圖(View),控制器(Controller)。mvc中的模型(Model)和視圖(View )是完全區別於三層架構中的模型(Model)和視圖(View)的。    

MVC中模型(Model)的特點:

①有對數據直接訪問的權利,如:對資料庫的訪問;

②模型(Model)“不依賴”視圖(View)和控制器(Controller),即模型(Model)不關心它會被如何顯示或者如何被操作;

③模型(Model)中數據的變化一般會通過一種刷新機制被“公佈”;

④為了實現③中的“機制”用於監視此模型的視圖必須事先在此模型上註冊。從而,視圖可以瞭解在數據模型上發生的改變。

視圖(View),這裡的視圖基本跟三層中的視圖一樣,都是為了顯示數據,沒有程式上的邏輯。為了實現視圖上數據的刷新,視圖(View)需要訪問它監視的模型(Model),所以應該事先在被它監視的數據那裡進行註冊。

控制器(Controller),這個概念是在三層中不存在的概念。它主要起到不同層面的組織作用,用於控制應用程式的流程。主要處理事件並作出相應。“事件”主要包括:用戶的行為和數據的改變。

以上就是三層結構和mvc在概念上的一點區別吧。(什麼是三層結構?百度一下,你就知道。)

 

有句話說的好:學而不思則罔,思而不學則殆,學編程不僅要知其然,還要知其所以然,才能更好的領悟和體會到編程的神奇和美妙。

                       

 

                                                                                                                                                                                                                                                                                                                                                                                                     

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 隨著人工智慧(AI)技術對各行各業有越來越深入的影響,我們也更多地在新聞或報告中聽到“機器學習”、“深度學習”、“增強學習”、“神經網路”等辭彙,對於非專業人士來說略為玄幻。這篇文章為讀者梳理了包括這些在內的12個關鍵詞,希望幫助讀者更清晰地理解,這項人工智慧技術的內涵和潛能。 1、 機器學習 湯姆 ...
  • 這幾天一直在搞linux下麵的.net mvc的部署工作,遇到了很多問題,還好有一些朋友的幫助,問題才得到瞭解決! 環境:Linux+Mongo+Jexus 希望的結果:直接運行windows+vistualstudio開發的MVC網站 遇到的問題:可以解析,但出現一些運行時(CLR)的錯誤 截圖 ...
  • 關於Linux的資源我瞭解還是比較少的,因為我最討厭用命令行了(那是我大學時代的陰影啊!)。這個資源收集很久了一直沒有分享出來,因為我對Linux的瞭解真的很少,不知道怎麼去描述,但是今天分享出來我想讓跟我一樣不太懂的和想學習一下Linux的小伙伴一起學習。 直接點擊小就可以下載哦! ├─lesso ...
  • .\usb\USB\usb_pwr.h(54): error: #20: identifier "bool" is undefinedusb\USB\usb_pwr.h(54): error: #20: identifier "bool" is undefinedusb-driver\STM32_U ...
  • 很久沒用筆記本上的ubuntu,用不順手,比在公司調教了半年多的電腦差遠了。一步一步來。先解決最不順手的三件事 1.su認證失敗。 新安裝的ubuntu系統是無法切換到root賬戶的,得做一番修改 sudo passwd 密碼: 輸入新的UNIX密碼: 確認密碼: 這樣就可以了 2.文件夾里打開終端 ...
  • 介紹 comm命令可以對兩個已排序好的文本的內容進行交集和差集的對比,記住必須是已排序過的文件;可以使用sort命令對沒有排序的文件進行排序,comm命令在對比結果中會產生三列分別是:在A中不在B中的內容,在B中不在A中的內容,AB的交集的內容。 事例 [root@localhost test]# ...
  • 作為一個菜鳥,對於SSL證書,我瞭解不多,只知道用了它網站更安全,所以這次使用SSL證書途中遇到各方面的各種問題,到今天為止終於全部解決。 一、證書格式 前兩天在那什麼雲上面買了個SSL證書,是WoSign的,證書簽發後下載下來有兩個文件,.pem和.key,查詢得知IIS需要.pfx格式的證書文件 ...
  • 以上文章由本文作者根據網路上其它的例子學習整合再加上自己的思想凝聚而成,如有侵犯請聯繫本人,速刪 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...