在講解源碼之前,這里先簡單說說系統運行的幾個事項。雖然下載的壓縮包中已經包含了簡單的說明,但有一個重點沒有強調,也就是雖然這個系統會在啟動的時候自動創建數據庫表結構,但他是不能自動創建數據庫的,因此在啟動之前需要自己手動創建數據庫,比如VifirBlog。
數據庫的配置是在Web.config文件中,在啟動應用程序時,需要修改Web.config文件中的數據庫配置,把用戶名及密碼根據你的情況進行修改,數據庫的配置內容如下:
<databaseSettings>
<add key="db.datasource" value="(local);Integrated Security=true"/>
<add key="db.user" value="sa"/>
<add key="db.password" value="sa"/>
<add key="db.database" value="vifirblog"/>
<add key="db.generateDdl" value="true"/>
</databaseSettings>
<appSettings>
db.datasource表示數據源,默認是SQL Server的,當然你可以選擇使用MySQL、Oracle等各種數據源,其中db.user表示用戶名,db.password表示密碼,db.database表示數據庫名,db.generateDdl表示是否讓程序啟動的時候自動生成表系統所需要的表結構。db.generateDdl默認為true,第一次運行成功后會自動建表結構,然后請手動修改成false這樣下次再啟動就不會再建表結構了。
壓縮后的文件結構是一個VS項目文件,如下圖所示:

如果你機器上安裝了VS2005(SP1)以上的版本,那么理論上應該可以直接雙擊Vifir.Web.sln這個文件來實現在VS中打開項目(如果裝的VS版本打不開的話,那么你就得好好想辦法了,因為本人不是搞.Net的,所以不太清楚為什么,也許其中原因你們比我都專業),如下圖所示:
項目打開后,大家可以直接打開Web.config文件,重點看看databaseSettings一節的配置,確認沒問題后,可以直接點擊上面的運行按鈕來運行項目。
啟動后即可進行Blog后臺管理頁面的登錄頁面,演示系統的用戶名及密碼均為admin,直接輸入后按登錄即可進入系統。如下圖所示:
進入后可以先進入日志目錄管理,程序主區域會出現一個還算漂亮的可編輯表格,可以點擊上面的按鈕添加日志分類等,并在右邊的表格中直接編輯各表格薦的內容。如下圖所示:
到這里,這個.Net版的程序就算成功跑起來了。至于系統其它的功能,你就得慢慢體驗了,其實也就是三四天做出來的一個小東西,大家可以簡單看看即可,用Ext做的更多實用功能(像在線聊天、在線課堂等),可以直接到
http://www.vifir.com/my.html中進行實地體驗。下面我們重點對本項目的代碼作簡單的解析。
在manage/Default.aspx中,我們沒有引入任何特殊的服務器端控件,基本上就是普通的html,注意包含了很多的js文件。其中../plugins/extjs/ext-2.0/adapter/ext/ext-base.js及../plugins/extjs/ext-2.0/ext-all.js是Ext的庫文,而manage.js、core.js、topic.js、album.js等是我們本系統中編寫的ExtJS應用文件,那些艷麗的界面都是直接在這些js文件中調用ExtJS的組件生成的。對于不熟悉Ext的朋友們來說,我推薦直接通過
《ExtJS實用開發指南》來進行一個系統的學習、并且可以把《指南》作為日常的參考書籍。而對于熟悉Ext并且希望進一步提升的朋友們來說,我建議你直接看
《Wlr單用戶Blog系統源碼詳細開發文檔》,該文檔中包含了對我們這里用到的manage.js、core.js、topic.js、album.js等文件作了較為詳盡的講解及分析。
由于這里是一個基于DotNet平臺的應用,因此我們重點來看看后臺管理部分。后臺管理的程序在manage目錄中,包含Album.aspx、AlbumCategory.aspx、Topic.aspx、TopicCategory.aspx、Blog.aspx、Link.aspx、User.aspx、Comment.aspx等等。經常搞Asp.Net開發的朋友一定會迫不急待的點開這些擴展名為.aspx的文件想看過究竟,看看這些文件是如何與客戶端交付、使用了哪些控件、如何產生JSON、如何訪問數據庫、SQL語句如何寫等。但我想點開后你一定會有所失望了,因為點開這些文件后你會發現里面幾乎什么東西都沒有。比如Topic.aspx文件中只包含下面一句大家平時瞟都不會瞟一眼的代碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Topic.aspx.cs" Inherits="manage_Topic" %>
當然,你一定猜到我們一定把處理這些內容的東西都放下面的Topic.aspx.cs文件中了,恭喜你,完全正確!我們重點應該是看aspx下面的C#類文件,比如Topic.aspx.cs,如下圖所示:
Topic.aspx用來實現日志的添加、修改、刪除、分頁查詢、排序等一系列的功能,我們可以理解為日志管理模塊。
前面的一大堆using我想不用多說,你應該知道就是引入需要用到的包package(或命名空間),其中的System.XX的我想你是見多了,不會有什么疑問,而Vifir.XX是本系統的域模型、業務邏輯層接口等,另外還包含Vifir的核心類庫,你直接像System.XX里面的東西一樣在該用的時候使用是了。(備注:Vifir.Model是本系統的后臺業務邏輯,如果你是Vifir的VIP用戶,則應該還能夠直接下載他的源代碼,我也會在后面的文章中對Vifir.Model中的源碼進行具體的分析,Vifir.Core是Vifir提供的一個簡單Ajax、Ext支持及企業應用快速開發的開發庫,不是開源項目,但可以免費使用,所以想看他源代碼的就只有加入到Vifir團隊中才有可能了。當然,看不到也沒關系,想想我們雖然沒看到System.XX里面的一句代碼,還不是照樣屁顛屁顛地用著!)。
下面我們來看看類的聲明,代碼如下: