include 指令
通過使用 #include 指令,您可以在服務器執行 ASP 文件之前,把另一個 ASP 文件的內容插入到這個 ASP 文件中。
#include 指令用于創建函數、頁眉、頁腳或者其他多個頁面上需要重復使用的元素等。
如何使用 #include 指令
這里有一個名為 "mypage.asp" 的文件:
<!DOCTYPE html>
<html>
<body>
<h3>Words of Wisdom:</h3>
<p><!--#include file="wisdom.inc"--></p>
<h3>The time is:</h3>
<p><!--#include file="time.inc"--></p>
</body>
</html>
這是 "wisdom.inc" 文件:
"One should never increase, beyond what is necessary,
the number of entities required to explain anything."
這是 "time.inc" 文件:
<%
Response.Write(Time)
%>
如果您在瀏覽器中查看源代碼,它將如下所示:
<!DOCTYPE html>
<html>
<body>
<h3>Words of Wisdom:</h3>
<p>"One should never increase, beyond what is necessary,
the number of entities required to explain anything."</p>
<h3>The time is:</h3>
<p>11:33:42 AM</p>
</body>
</html>
引用文件的語法
如需在 ASP 頁面中引用文件,請把 #include 指令放在注釋標簽中:
<!--#include virtual="somefilename"-->
or
<!--#include file="somefilename"-->
Virtual 關鍵詞
請使用關鍵詞 virtual 來指示以虛擬目錄開始的路徑。
如果一個名為 "header.inc" 的文件位于虛擬目錄 /html 中,下面這行代碼會插入 "header.inc" 文件中的內容:
<!-- #include virtual="/html/header.inc" -->
File 關鍵詞
請使用關鍵詞 file 來指示一個相對路徑。相對路徑是以含有引用文件的目錄開始的。
如果您在 html 目錄中有一個文件,且 "header.inc" 文件位于 html 頭部,下面這行代碼將在您的文件中插入 "header.inc" 文件中的內容:
<!-- #include file="headersheader.inc" -->
請注意被引用文件 (headersheader.inc) 的路徑是相對于引用文件的。如果包含 #include 聲明的文件不在 html 目錄中,這個聲明就不會生效。
提示和注釋
在上面的一部分中,我們已經使用 ".inc" 來作為被被引用文件的文件擴展名。請注意:如果用戶嘗試直接瀏覽 INC 文件,這個文件中內容將會被顯示出來。如果您的被引用文件中的內容包含機密的信息或者是您不想讓任何用戶看到的信息,那么最好還是使用 ".asp" 作為擴展名。ASP 文件中的源代碼被編譯后是不可見的。被引用的文件也可引用其他文件,同時一個 ASP 文件可以對同一個文件引用多次。
重要事項:在腳本執行前,被引用的文件就會被處理和插入。下面的腳本無法執行,這是由于 ASP 會在為變量賦值之前執行 #include 指令:
<%
fname="header.inc"
%>
<!--#include file="<%fname%>"-->
您不能在腳本分隔符之間包含文件引用。下面的腳本無法執行:
<%
For i=1 To n
<!--#include file="count.inc"-->
Next
%>
但是這段腳本可以執行:
<% For i=1 to n %>
<!--#include file="count.inc" -->
<% Next %>
SP.NET 是一個使用 HTML、CSS、JavaScript 和服務器腳本創建網頁和網站的開發框架。
ASP.NET 支持三種不同的開發模式:
Web Pages(Web 頁面)、MVC(Model View Controller 模型-視圖-控制器)、Web Forms(Web 窗體)。
Web Pages | MVC | Web Forms |
MVC 編程模式
MVC 是三種 ASP.NET 編程模式中的一種。
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式:
Model(模型)表示應用程序核心(比如數據庫記錄列表)。
View(視圖)顯示數據(數據庫記錄)。
Controller(控制器)處理輸入(寫入數據庫記錄)。
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。
MVC 模式定義 Web 應用程序 帶有三個邏輯層: 業務層(模型邏輯) 顯示層(視圖邏輯) 輸入控制(控制器邏輯) |
在您首次安裝完 Visual Studio Express 之后,您可以通過再次運行安裝程序來安裝補丁和服務包,只需要再次點擊鏈接即可。 |
.NET Framework發布至今已有十余年,.NET一直是Windows平臺的封閉產品。雖然有Mono項目對.NET實現了平臺移植,但畢竟不是微軟“親生”,Mono在一些功能實現上仍然不夠完美。
隨著2014年Xamarin和微軟發起.NET基金會,微軟在2014年11月開放.NET Core框架源代碼。隨后在.NET基金會的統一規劃下誕生了.NET Core。
.NET Core早期被稱為 .NET vNext或 .NET 5,直到2016年1月才正式命名為 .NET Core 1.0。2019年5月6日,微軟再次介紹了.NET 5。我們會在后文中詳細說明。
需要注意的是,雖然微軟把 .NET Core作為.NET未來的發展方向,但 .NET Core和 .NET Framework仍然是兩個獨立的產品。.NET Framework也會繼續被更新和維護。
2019年微軟發布了 .NET技術的下一步發展規劃,2020年微軟會將.NET Core和 .NET Framework整合為.NET 5。
.NET Core與 .NET Framework的一大區別是,.NET Core是完全開源的,它托管在GitHub上,支持任何開發者向項目貢獻代碼,.NET Core不再僅支持Windows,還支持Linux、macOS等多種平臺。
可以說 .NET Core是.NET Framework的新一代版本,或者說是其進化版本,是微軟官方開發的第一個跨平臺 (Windows、macOS和Linux) 的應用程序開發框架(Application Framework)。
.NET Core的開發目標是成為跨平臺的.NET平臺,為此 .NET Core會包含 .NET Framework的類庫。但與 .NET Framework不同的是,.NET Core采用包 (Package)的管理方式,應用程序只需要獲取需要的組件即可(不像 .NET Framework使用打包安裝的方式),同時各個包亦有獨立的版本線(Version Line),不再硬性要求應用程序跟隨主線版本的更新而更新。
.NET Core的核心是創新、開源和跨平臺,可以說.NET Core就是一個用更少的時間做更多有趣的事情的跨平臺開發框架。
.NET Core具有以下特點。
2016年6月27日,RedHat DevNation峰會宣布了 .NET Core & ASP .NET Core 1.0 RTM的發行。
截至本書截稿,.NET Core最新的版本為3.1.0,更新時間為2019年10月15日。
.NET Core經常被拿來與其他平臺做類比,尤其是它的源頭 .NET Framework以及另一個相似性質的開源平臺Mono。
據微軟的幫助文檔說明,.NET Core和 .NET Framework是子集 (Subset) 與超集 (Superset) 的關系,.NET Core將會實現部分的 .NET Framework功能 (基本上是不含用戶界面的部分),比如JIT(.NET Core采用RyuJIT)、垃圾收集器 (GC) 以及類型 (包含基本類型以及泛型類型等)。未來 .NET Framework和 .NET Core也會各自發展,但它們同時也使用彼此的功能,比如 .NET Compiler Platform與RyuJIT等技術,最終會在2020年合并。
Mono是另一個歷史悠久的.NET跨平臺開源版本,基本上并不隸屬微軟官方,而是由社區的力量所主導,自成一個生態系統,也開發出了像Xamarin這樣的跨平臺.NET移動應用。.NET Core與Mono未來會是合作的關系,Mono仍會維持由社區力量主導的維護與發展,而.NET Core則會以官方角度來發展,兩者也會一起進行彼此功能上的補充。
其實一開始.NET Core與ASP .NET Core并不是主從關系 ,在ASP.NET Core的開發初期 (ASP.NET Next),.NET Core還沒有“起跑”。ASP.NET Core當時有自己的運行器與工具,被稱為Project K,后來改為.NET運行環境(.NET Execution Environment, DNX)。DNX本身就具有可獨立運行的能力,不需要依賴 .NET Core運行,但是這樣會形成 .NET Core和ASP.NET Core成為“雙頭馬車”的現象。在 .NET Core逐漸成熟之后,微軟也決定要將這兩個各自獨立發展的產品線集成在一起,因此DNX也改用 .NET Core運行器而終止開發,DNX的功能也由 .NET Core以及旗下的 .NET命令行界面(Command-Line Interface,CLI)接替提供,集成后的版本在1.0 RC2的時候就發布了。
嚴謹來說,ASP.NET本不應該放在此處與以上3個框架平行,但是因為ASP.NET太出名了,因此我覺得有必要厘清它們的關系。
ASP.NET最初是.NET Framework框架中的一個組件,用于開發Web應用程序,它是ASP技術的改進版本。需要注意的是,ASP與ASP.NET是完全不同的兩個產品。同理,VB和VB.NET也是完全不同的兩個產品。ASP和VB都是20世紀的技術,有些“古老”,在此不再贅述,但請務必注意區分它們。
早期的ASP.NET提供一種叫作WebForm的方式用于呈現網頁,它可以讓網頁開發變得像WinForm開發一樣簡單且可視化。但隨著Web技術的飛速發展,WebForm由于其低效、封閉和難以定制的缺陷已經逐漸淡出歷史舞臺。
隨著2009年 .NET Framework 3.5的發布,微軟提供了全新的ASP.NET網頁呈現方式,稱為ASP.NET MVC Framework。這套框架遵循MVC設計模式思想,將視圖和業務邏輯進行了很好的分離,并且大幅提升了性能和可定制性。
經過多年發展,目前已經更新到了ASP.NET MVC 6,完全采用.NET Core的項目結構,支持.NET Framework、.NET Core和Mono多種運行時。在ASP.NET MVC的未來演進路上,ASP.NET MVC 6將不再存在,而是被稱為ASP.NET MVC Core 1.0。
圖2.1所示為MVC版本演進的歷程。
圖2.1
推薦一本最適合入門ASP.NET Core的書:《深入淺出 ASP.NET Core》
如果你想學習ASP.NET Core,那么推薦一本最適合入門ASP.NET Core的書:《深入淺出 ASP.NET Core》
本書是一本系統地介紹http://ASP.NET Core、Entity Framework Core以及http://ASP.NET Core Identity框架技術的入門圖書,旨在幫助讀者循序漸進地了解和掌握http://ASP.NET Core。本書使用http://ASP.NET Core從零開始搭建一個實際的項目。從基本的控制臺應用程序開始,介紹http://ASP.NET Core基本的啟動流程,涵蓋http://ASP.NET Core框架中各個技術的實際應用。同時,本書也會介紹一些http://ASP.NET Core的高級概念。在本書中,我們會開發一個學校管理系統,其中包含清晰的操作步驟和大量的實際代碼,以幫助讀者學以致用,將http://ASP.NET Core的知識運用到實際的項目開發當中,最后我們會將開發的項目部署到生產環境中。通過閱讀本書,讀者將掌握使用http://ASP.NET Core開發Web應用程序的方法,并能夠在對新項目進行技術選型時做出戰略決策。
本書適合有一定C# 編程經驗和HTML、JavaScript基礎,并對http://ASP.NET Core感興趣的讀者閱讀,也可以作為高等院校相關專業的教學用書和培訓學校的教材。
本書適合有一定的C# 編程經驗和HTML、 JavaScript基礎,并對http://ASP.NET Core感興趣的開發者,包括以下對象。
本書分為以下5個部分。
第一部分(第1章~第9章)介紹http://ASP.NET Core的基礎知識,比如中間件、環境變量和配置信息等,簡單講解完整的http://ASP.NET Core的項目結構。
第二部分(第10章~第20章)介紹并運用MVC模型及路由中間件,結合http://ASP.NET Core提供的TagHelper等新特性,完成對學生信息的增刪改查、圖片上傳;介紹簡單的倉儲模式與依賴注入的關系,為搭建管理系統做好基礎準備。
第三部分(第21章~第29章) 通過搭建一個基礎管理系統,分析及處理實際業務場景中的常見問題,比如身份驗證和授權、客戶端及服務端驗證、配置信息、 EF Core數據訪問、數據分頁和統一異常處理等。
第四部分(第30章~第38章) 介紹架構的作用以及意義,根據架構的思想應用設計模式,結合C#泛型特性優化倉儲模式,建立多層體系架構,通過并發、 LINQ及活用Entity Framework Core中的常用功能完成一個類似領域驅動設計的項目。
第五部分(第39章~第42章)介紹簡單的Web API入門、部署http://ASP.NET Core項目以及從ASP .NET Core 2.2到http://ASP.NET Core 3.1的版本升級過程
*請認真填寫需求信息,我們會在24小時內與您取得聯系。