ASP.NET開發實戰——(二)為什么使用ASP.NET


  本文主要內容是通過分析《博客系統》需求,確定使用Web應用的形式來開發,然后介紹了HTML、HTTP的概念,並使用IIS搭建了一個靜態的HTML“頁面”,從而引出“動態”的ASP.NET。

  本文從以下幾個方面來介紹為什么使用ASP.NET:

  ●ASP.NET是什么?
  ●為什么使用ASP.NET?
  ●博客的需求及實現
  ●什么是Web、HTML、Web服務器

ASP.NET是什么?

  ASP.NET是一個使用HTML、CSS、Javascript來構建動態網站或者網站應用程序的Web框架,並且也可以使用它來構建web API和實時通信技術如web soket。
  ASP.NET提供了三種框架來創建網頁應用,它們分別是Web Forms,ASP.NET MVC以及ASP.NET Web Pages,它們都是基於.Net Framework並且共享.Net和ASP.NET核心功能。如基於Identity的安全驗證、相同的請求管理設施、session處理以及ASP.NET的一部分核心功能。
最重要的是這三個框架並不是獨立的,它們可以混合出現在同一個Web應用中。

  • Web Forms為開發者提供了豐富的使用HTML標簽封裝的組件。開發者可以使用這些控件像開發Win Forms應用那樣拖拽式控件並通過事件來驅動(點擊按鈕事件、打開頁面事件等)。
  • ASP.NET MVC提供了一種責任分離的開發模式,它將HTML代碼和服務代碼進行了分離,是一種TDD友好的開發方式,可以用於復雜應用程序的開發。
  • ASP.NET Web Pages和Razor語法提供了一種快速、簡單、輕量級的方法,它將服務代碼和HTML混合在一起來創建動態Web內容。

Web APIs:
  ASP.NET Web API是一個用來構建基於HTTP服務的框架,可以為瀏覽器、移動設備等客戶端提供服務。
實時技術:
  ASP.NET SignalR是ASP.NET的一個類庫用來開發實時的Web功能,SignalR支持客戶端和服務器之前的雙向通信,SignalR支持Web Socket,如果瀏覽器不支持那么會自動切換其它方法來兼容瀏覽器,如輪詢請求等。

 

為什么使用ASP.NET

  需求,需求,需求!!!
  相對於需求來說,ASP.NET等開發框架僅僅是用來實現需求的工具。在做一件事情之前必須明確自己想要的是什么。比如我們想分享自己寫的文章,這樣即可以分享自己的知識,也可以吸引同行業的人進行討論進而找到自己存在的問題,而且在寫文章的過程中也鞏固了自己的知識。
  要如何實現這樣一個需求有什么方法呢?現在是信息時代,發送、分享消息的成本是非常低的,比如現在的QQ空間、朋友圈、微博、博客等等,都可以輕松的注冊賬號發布信息,但是對於文章來說只有博客適合,並且現在像cnblog的博客都是面向程序員的,能更容易吸引程序員的關注和對文章的討論。但作為一個程序員是否都想擁有自己的博客呢?
  本系列文章將使用構建博客這個例子來講訴如何使用ASP.NET開發應用程序。

博客的需求分析

  對於博客來說,兩個重要的對象分別是“讀者”和“作者”,對於一個讀者來說就是需要一個目錄,然后通過目錄標題可以快速理解目錄所指向文章內容,並且包含標題所指向的文章地址。這不就是一本書嗎?(*^_^*)。

  當然我們的確可以把文章做成一本書供讀者查看,甚至更為方便的電子書,但是對於文章的作者來說,作者寫的僅僅只是文章,並且分類眾多,且文章之間不一定存在聯系無法合成一本書,或者需要合並為多本書,更重要的是作者無法等到所有文章完成之后再發布,如果每寫一篇文章都要更新一本書,那么對於讀者來說每次都要重新購買、下載最新的書簡直就是災難。
  所以對於作者來說,需要一個便於發布、修改文章的平台,甚至當文章完成一個系列的時候還可以做成一本書供讀者下載。對於讀者來說,需要提供一個便捷的入口,讓其可以查看文章目錄,並通過目錄查看文章內容。更多的可能還需要對一些熱門文章進行突出顯示,讓更多的人參與評論。

  根據上面的分析得出以下用例圖:

  

  

  http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html(用例圖參考)

 需求的實現

  我們要如何實現這些功能呢?
  ● 出版書籍
  ● 互聯網發布
    ○ 命令行程序(無法提供便捷操作,也不利於文章查看)
    ○ Windows Form程序(可以提供便捷的查看和發布功能,但是讀者和作者都需要下載安裝客戶端,對於讀者來說太麻煩)
    ○ Web(讀者和作者均只需要瀏覽器就可以連接系統,通過瀏覽器就可以實現查看和管理功能)
    ○ 移動應用(為IOS、Android、Windows等移動系統提供應用可以為讀者提供最便捷的閱讀體驗,但是不方便作者編輯文章,而且需要耗費大量經歷來開發不同操作系統的應用。更重要的是智能移動設備上也有瀏覽器,它也可以打開Web應用,特別是針對移動設備處理過的響應式頁面布局,能夠為不同屏幕大小的設備提供更好的閱讀體驗。)

  所以根據以上的分析我們很容易的選出使用“Web”來實現我們的博客。那什么是Web呢?它和ASP.NET又存在什么關系?

什么是Web?

  Web(World Wide Web)即全球廣域網,也稱為萬維網,它是一種基於超文本和HTTP的、全球性的、動態交互的、跨平台的分布式圖形信息系統。是建立在Internet上的一種網絡服務,為瀏覽者在Internet上查找和瀏覽信息提供了圖形化的、易於訪問的直觀界面,其中的文檔及超級鏈接將Internet上的信息節點組織成一個互為關聯的網狀結構。(來自百度百科)
  根據以上的解釋可以看到Web是基於超文本和HTTP的。然后提供了很多功能,這里我們來關注什么是超文本,什么是HTTP。
  超文本:是一種用戶接口范式,用以顯示文本及與文本相關的內容。現時超文本普遍以電子文檔的方式存在,其中的文字包含有可以鏈接到其他字段或者文檔的超文本鏈接,允許從當前閱讀位置直接切換到超文本鏈接所指向的文字。
  超文本的格式有很多,目前最常使用的是超文本標記語言(Hyper Text Markup Language,HTML)及富文本格式 (Rich Text Format,RTF)。我們日常瀏覽的網頁上的鏈結都屬於超文本。(來自百度百科)

  簡單的理解超文本就是拿來顯示的,是可以通過超鏈接跳轉的,並且常用的超文本格式是超文本標記語言,瀏覽器可以打開、查看HTML文件。

 使用HTML創建一個“博客”

  根據上面對Web的描述可以得出:瀏覽器可以打開HTML文件,HTML文件包含了文本信息和跳轉指定HTML的連接,這樣我們就可以解決讀者的問題了。

  那么就開始動手解決:
  1. 創建一個文件目錄HTML文件(超文本標記語言的結構包括“頭”部分(英語:Head)、和“主體”部分(英語:Body),其中“頭”部提供關於網頁的信息,“主體”部分提供網頁的具體內容。--百度百科):

  

  2. 創建4個文章HTML文件:

  

  3. 在列表頁面把4個文章頁鏈接起來:

  

  “作者”的基本功能“文章管理”就“實現”了,對於作者來說只需要維護文章目錄的list.html文件,然后把文章做成新的post html文件就可以了,然后把這些頁面進行美化就完成了“作者”的文章管理功能。

  但是“讀者”要如何看到這些文章?之前提到過Web是基於超文本和HTTP的,HTML是超文本的一種用來顯示內容,而現在需要把這個內容發送給“讀者”查看就需要使用的HTTP。

什么是HTTP

  HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳輸協議。它可以使瀏覽器更加高效,使網絡傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。
  HTTP是客戶端瀏覽器或其他程序與Web服務器之間的應用層通信協議。在Internet上的Web服務器上存放的都是超文本信息,客戶機需要通過HTTP協議傳輸所要訪問的超文本信息。HTTP包含命令和傳輸信息,不僅可用於Web訪問,也可以用於其他因特網/內聯網應用系統之間的通信,從而實現各類應用資源超媒體訪問的集成。---百度百科

  HTML使用HTTP協議在客戶端瀏覽器和Web服務器之間傳輸。這個就是以上文字給出的信息。現在HTML和瀏覽器都已經有了,還缺一個Web服務器。

什么是Web服務器?

  Web服務器一般指網站服務器,是指駐留於因特網上某種類型計算機的程序,可以向瀏覽器等Web客戶端提供文檔,[1] 也可以放置網站文件,讓全世界瀏覽;可以放置數據文件,讓全世界下載。目前最主流的三個Web服務器是Apache、Nginx、IIS。-- 百度百科

  在windows上常用的Web服務器就是IIS。(如何安裝IIS:https://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html) 

使用IIS發布“博客”

  這里選用Windows上的IIS來部署上面寫好的HTML文件:

  1. 打開IIS,添加一個網站:

  

  2. 給新的網站指定物理文件的路徑(即剛剛創建的html文件路徑),綁定端口保存並啟動改網站:

  

  在瀏覽器中可以通過本機的回環地址127.0.0.1或者localhost以及局域網IP(可能需要在防火牆中設置綁定端口的訪問權限:控制面板->系統和安全->Windows 防火牆->高級設置->入站規則->新建規則->端口->TCP、特定本地端口、12345->完成)來訪問該網站:

  

  

  以下是在同一局域網手機上的顯示: 

  

  

為什么使用ASP.NET?

  從上面的結果看起來好像博客的只剩下頁面優化了,那還需要ASP.NET干什么?接下來細數一下上面做法的缺點:
  1. 作者每次發布文章都需要制作HTML文件,修改內容也需要修改HTML文件,文件越多管理越難。並且作者還需要懂得HTML相關知識。
  2. 如果要修改頁面的樣式100個文件修改100次。
  3. 無法統計文章訪問的次數(當然可以通過分析IIS 日志獲得)。
  4. 也無法為用戶提供評論功能。
  5. 功能無法拓展更多的功能,等等。

  文章的開始說了:ASP.NET是一個使用HTML、CSS、Javascript來構建動態網站或者網站應用程序的Web框架。

  使用ASP.NET可以輕松的構建一個“動態”網站,所有數據都存在數據庫中,通過一個列表模板頁面從數據庫中加載文章列表、通過一個文章模板頁面去數據庫加載相應的文章顯示、添加一個管理頁面為作者提供文章管理功能、最后通過身份驗證機制限制只能由作者進入管理頁面,那么以上的問題將引刃而解。更重要的是還可以通過ASP.NET提供的一些機制完成對博客的功能拓展如閱讀數據記錄、排序、評論等等。所以使用ASP.NET作為開發博客程序的開發框架。

  (注:除了ASP.NET也可以使用PHP、JSP、NodeJS等開發框架完成以上功能,而且作為一個demo不需要考慮很多復雜的問題,所以選擇ASP.NET的真實原因是“我喜歡,我任性!”。)  

 

參考:

  https://docs.microsoft.com/zh-cn/aspnet/overview

  http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html(用例圖參考)

 

 

歡迎添加個人微信號:Like若所思。

歡迎關注我的公眾號,不僅為你推薦最新的博文,還有更多驚喜和資源在等着你!一起學習共同進步!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM