在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C#/ ASP.NET MVC 隨想錄(1)——開(kāi)始使用 Bootstrap
ASP.NET MVC 使用 Bootstrap 系列(4)——使用 JavaScript 插件
ASP.NET MVC 隨想錄(6)——漫談 OWIN
ASP.NET MVC 隨想錄(5)——?jiǎng)?chuàng)建 ASP.NET MVC Bootstrap Helpers
ASP.NET MVC 隨想錄(3)——使用 Bootstrap 組件
ASP.NET MVC 隨想錄(7)——鋒利的 KATANA
ASP.NET MVC 隨想錄(1)——開(kāi)始使用 Bootstrap
ASP.NET MVC 隨想錄(8)——?jiǎng)?chuàng)建自定義的 Middleware 中間件
ASP.NET MVC 隨想錄(2)——使用 Bootstrap CSS 和 HTML 元素
作者簡(jiǎn)介

ASP.NET MVC 隨想錄(1)——開(kāi)始使用 Bootstrap

作為一名 Web 開(kāi)發(fā)者而言,如果不借助任何前端框架,從零開(kāi)始使用 HTML 和 CSS 來(lái)構(gòu)建友好的頁(yè)面是非常困難的。特別是對(duì)于 Windows Form 的開(kāi)發(fā)者而言,更是難上加難。 正是由于這樣的原因,Bootstrap 誕生了。Twitter Bootstrap 為開(kāi)發(fā)者提供了豐富的 CSS 樣式、組件、插件、響應(yīng)式布局等。同時(shí)微軟已經(jīng)完全集成在 ASP.NET MVC 模板中。

Bootstrap 結(jié)構(gòu)介紹

你可以通過(guò).來(lái)下載最新版本的 Bootstrap。

解壓文件夾后,可以看到 Bootstrap 的文件分布結(jié)構(gòu)如下,包含 3 個(gè)文件夾:

css 文件夾中包含了 4 個(gè).css 文件和 2 個(gè).map 文件。我們只需要將 bootstrap.css 文件包含到項(xiàng)目里這樣就能將 Bootstrap 應(yīng)用到我們的頁(yè)面中了。bootstrap.min.css 即為上述 css 的壓縮版本。

.map 文件不必包含到項(xiàng)目里,你可以將其忽略。這些文件被用來(lái)作為調(diào)試符號(hào)(類似于Visual Studio 中的.pdb 文件),最終能讓開(kāi)發(fā)人員在線編輯預(yù)處理文件。

Bootstrap 使用 Font Awesome(一個(gè)字體文件包含了所有的字形圖標(biāo),只為 Bootstrap 設(shè)計(jì))來(lái)顯示不同的圖標(biāo)和符號(hào),fonts 文件夾包含了 4 類的不同格式的字體文件:

  • Embedded OpenType (glyphicons-halflings-regular.eot)
  • Scalable Vector Graphics (glyphicons-halflings-regular.svg)
  • TrueType font (glyphicons-halflings-regular.ttf)
  • Web Open Font Format (glyphicons-halflings-regular.woff)

建議將所有的字體文件包含在你的 Web 應(yīng)用程序中,因?yàn)檫@能讓你的站點(diǎn)在不同的瀏覽器中顯示正確的字體。

EOT 字體格式文件需要 IE9 及以上瀏覽器支持,TTF 是傳統(tǒng)的舊字體格式文件,WOFF 是從 TTF 中壓縮得到的字體格式文件。如果你只需要支持 IE8 之后的瀏覽器、iOS 4 以上版本、同時(shí)支持 Android,那么你只需要包含 WOFF 字體即可。

js 文件夾包含了 3 個(gè)文件,所有的 Bootstrap 插件被包含在 boostrap.js 文件中,bootstrap.min.js 即上述 js 的壓縮版本,npm.js 通過(guò)項(xiàng)目構(gòu)建工具 Grunt 自動(dòng)生成。

在引用 boostrap.js 文件之前,請(qǐng)確保你已經(jīng)引用了 JQuery 庫(kù)因?yàn)樗械?Bootstrap 插件需要 JQuery。

在 ASP.NET MVC 項(xiàng)目中添加 Bootstrap 文件

打開(kāi) Visual Studio 2013,創(chuàng)建標(biāo)準(zhǔn)的 ASP.NET MVC 項(xiàng)目,默認(rèn)情況下已經(jīng)自動(dòng)添加了 Bootstrap 的所有文件,如下所示:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/1.png" alt="" />

說(shuō)明微軟對(duì)于 Bootstrap 是非常認(rèn)可的,高度集成在 Visual Studio 中。

值得注意的是,在 Scripts 文件中添加了一個(gè)名為_(kāi)references.js 的文件,這是一個(gè)非常有用的功能,當(dāng)我們?cè)谑褂?Bootstrap 等一些前端庫(kù)時(shí),它可以幫助 Visual Studio 啟用智能提示。

當(dāng)然我們也可以創(chuàng)建一個(gè)空的 ASP.NET MVC 項(xiàng)目手動(dòng)去添加這些依賴文件,正如下圖所示這樣,選擇空的模板:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/2.png" alt="" />

對(duì)于新創(chuàng)建的空白 ASP.NET MVC 項(xiàng)目來(lái)說(shuō),沒(méi)用 Content,F(xiàn)onts,Scripts 文件夾——我們必須手動(dòng)去創(chuàng)建他們,如下所示:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/3.png" alt="" />

當(dāng)然,也可以用 Nuget 來(lái)自動(dòng)添加 Bootstrap 資源文件。如果使用圖形界面來(lái)添加 Bootstrap Nuget Package,則直接搜索 Bootstrap 即可;如果使用 Package Manager Console 來(lái)添加Bootstrap Nuget Package,則輸入 Install-Package bootstrap。

為網(wǎng)站創(chuàng)建 Layout 布局頁(yè)

為了讓我們的網(wǎng)站保持一致的風(fēng)格,我將使用 Bootstrap 來(lái)構(gòu)建 Layout 布局頁(yè)。在 Views 文件夾創(chuàng)建 MVC Layout Page(Razor)布局文件,如下圖所示:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/4.png" alt="" />

在新創(chuàng)建的 Layout 布局頁(yè)中,使用如下代碼來(lái)引用 Bootstrap 資源文件。

<link href="@Url.Content("~/css/bootstrap.css")" rel="stylesheet">
<script src="@Url.Content("~/js/bootstrap.js")"></script>

其中使用 @Url.Content 會(huì)將虛擬或者相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑,這樣確保 Bootstrap 資源文件被引用。

新建一個(gè)名為 Home 的 Controller,并且添加默認(rèn) Index 的視圖,使其套用上述的 Layout 布局頁(yè)面,如下所示:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/5.png" alt="" />

使用捆綁打包和壓縮來(lái)提升網(wǎng)站性能

捆綁打包(bundling)和壓縮(minification)是 ASP.NET 中的一項(xiàng)新功能,允許你提升網(wǎng)站加載速度,這是通過(guò)限制請(qǐng)求 CSS 和 JavaScript 文件的次數(shù)來(lái)完成的。本質(zhì)上是將這類文件結(jié)合到一個(gè)大文件以及刪除所有不必要的字符(比如:注釋、空格、換行)。

對(duì)于大多數(shù)現(xiàn)代瀏覽器訪問(wèn)一個(gè)主機(jī)名都有 6 個(gè)并發(fā)連接的極限,這意味著如果你在一張頁(yè)面上引用了 6 個(gè)以上的 CSS、JavaScript 文件,瀏覽器一次只會(huì)下載 6 個(gè)文件。所以限制資源文件的個(gè)數(shù)是個(gè)好辦法,真正意義上的使命必達(dá),而不是浪費(fèi)在加載資源上。

在 Bootstrap 項(xiàng)目中使用捆綁打包

因?yàn)槲覀儎?chuàng)建的是空的 ASP.NET MVC 項(xiàng)目,所以并沒(méi)有自動(dòng)引用與打包相關(guān)的程序集。打開(kāi) Nuget Package Manager Console 來(lái)完成對(duì) Package 的安裝,使用如下 PowerShell 命令:

install-package Microsoft.AspNet.Web.Optimization 來(lái)安裝Microsoft.AspNet.Web.Optimization NuGet package 以及它依賴的 Package,如下所示:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/6.png" alt="" />

在安裝完成后,在 App_Start 中添加 BundleConfig 類:

public static void RegisterBundles(BundleCollection bundles)
{
   bundles.Add(new ScriptBundle("~/bootstrap/js").Include(
   "~/js/bootstrap.js",
   "~/js/site.js"));
   bundles.Add(new StyleBundle("~/bootstrap/css").Include(
   "~/css/bootstrap.css",
   "~/css/site.css"));
}

ScriptBundle 和 StyleBundle 對(duì)象實(shí)例化時(shí)接受一個(gè)參數(shù)用來(lái)代表打包文件的虛擬路徑,Include顧名思義將你需要的文件包含到其中。

然后在 Application_Start 方法中注冊(cè)它:

protected void Application_Start()
{
   AreaRegistration.RegisterAllAreas();
   RouteConfig.RegisterRoutes(RouteTable.Routes);
   BundleConfig.RegisterBundles(BundleTable.Bundles);
   BundleTable.EnableOptimizations = true;
}

記住,不要去包含.min 類型的文件到打包文件中,比如 bootstrap.min.css、bootstrap.min.js,編譯器會(huì)忽略這些文件因?yàn)樗麄円呀?jīng)被壓縮過(guò)了。

在 ASP.NET MVC 布局頁(yè)使用 @Styles.Render("~/bootstrap/css")、@Scripts.Render("~/bootstrap/js")來(lái)添加對(duì)打包文件的引用。

如果 Visual Studio HTML 編輯器表明無(wú)法找到 Styles 和 Scripts 對(duì)象,那就意味著你缺少了命名空間的引用,你可以手動(dòng)在布局頁(yè)的頂部添加 System.Web.Optimization 命名空間,如下代碼所示:

@using System.Web.Optimization
<!DOCTYPE html>
<html>
 <head>
  <meta name="viewport" content="width=device-width" />
  <title>@ViewBag.Title</title>
  @Scripts.Render("~/bootstrap/js")
  @Styles.Render("~/bootstrap/css")
 </head>
 <body>
  <div>
   @*@RenderBody()*@
 </div>
</body>
</html>

當(dāng)然為了通用性,最佳的實(shí)踐是在 Views 文件夾的 web.config 中添加 System.Web.Optimization 名稱空間的引用,如下所示:

<namespaces>
  <add namespace="System.Web.Mvc" />
  <add namespace="System.Web.Mvc.Ajax" />
  <add namespace="System.Web.Mvc.Html" />
  <add namespace="System.Web.Routing" />
  <add namespace="Bootstrap.Web" />
  <add namespace="System.Web.Optimization" />
</namespaces>

測(cè)試打包和壓縮

為了使用打包和壓縮,打開(kāi)網(wǎng)站根目錄下的 web.config 文件,并且更改 compilation 元素的 dubug 屬性為 false,即為 release。

當(dāng)然你可以在 Application_Start 方法中設(shè)置 BundleTable.EnableOptimizations = true 來(lái)同樣達(dá)到上述效果(它會(huì) override web.config 中的設(shè)置,即使 debug 屬性為 true)。

最后瀏覽網(wǎng)頁(yè),查看源代碼,可以清楚看到打包文件的路徑是之前定義過(guò)的相對(duì)路徑,點(diǎn)擊這個(gè)鏈接,瀏覽器為我們打開(kāi)了經(jīng)過(guò)壓縮處理過(guò)后的打包文件,如下圖所示:

http://wiki.jikexueyuan.com/project/think-in-asp-net-mvc/images/Chapter1/7.png" alt="" />

小結(jié)

在這一章節(jié)中,簡(jiǎn)單為大家梳理了 Bootstrap 的體系結(jié)構(gòu),然后怎樣在 ASP.NET MVC 項(xiàng)目中添加 Bootstrap,最后使用了打包和壓縮技術(shù)來(lái)實(shí)現(xiàn)對(duì)資源文件的打包,從而提高了網(wǎng)站的性能。