首先我們在http://www.springframework.cn/index.php官方網站下載FastSpring的源碼 ,然後我們就可以開始我們的FastSpring學習之旅了。
在學習之前,本人先聲明一下:本人學習.NET時間並不長,在開始寫這篇文章的時候,我才使用了.NET不到一個月的時間,因此,很多東西都寫得比較羅嗦或者有不正確的地方,歡迎各位指正。(我以前是用delphi7的)
到目前為止,我還不懂FastSpring這架構是如何構建的,我想,對於新手來說,關鍵是它能協助我們快速架構一個比較正規的架構,因此,我們在原始碼所附帶的例子FastSpring.Net.AppWeb的基礎上,加入我們的東西,它的這個例子是由另外一個項目FastSpring.App的類庫基礎上做出來的例子。不多說,我們找個目標的事情來做吧,我們先來做個網站吧,一些新聞之類的資訊,下面我們開始了。
一、為了分清原來的作者所寫的東西和我們所寫的東西區分開,我們就像它的例子一樣,也建立一個類庫,名叫DZ_Portal.App。然後我們在它的FastSpring.NET.AppWeb的基礎上為它添磚加瓦,在根目錄下添加新項目,選擇“Web表單”,名稱為:“Index.aspx”,語言選擇“Visual C#”,右邊兩個選項都打勾吧(一個是“選擇主版頁面”,一個是“將代碼放在單獨的檔案中”),然後點擊添加,它會提示我們選擇主版頁面,我們選擇FSMasterPage.master,然後點確定。
說明:為何要選擇FSMasterPage.master呢?是因為在訪問以FSMasterPage.master為主版頁面的網頁時,FastSpring會自動為我們建立出FastSpring的整個架構出來,它不管你以哪個頁面為起始頁,只要第一次訪問以FSMasterPage.master為主版頁面的時候,它就自動建立出來,這個我們不用管它是如何運作的哦。
二、我們選擇根目錄下的Index.aspx,點擊滑鼠右鍵,選擇“設為起始頁”,點擊運行。
結果:出錯,直接跳轉到http://localhost:1837/FastSpring.Net.AppWeb/ErrorPage.aspx頁面,為何會出現這個錯誤頁面?是因為FSMasterPage.master主版頁面作怪,錯誤原因是Index頁面建立的時候是繼承系統的System.Web.UI.Page類,因此,我們需要修改它的父類,我們在Using部分輸入:“using
FastSpring.Web.Base;”,並修改FsLogin的父類為:BasePageSession。
現在的Index.aspx.cs的全部代碼如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using FastSpring.Web.Base;
public partial class Index : BasePageSession
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
然後我們點擊運行,看看情況。出錯,調試FSMasterPage.master單元的<title><%=this.SoftName + this.SoftVersion %></title>代碼處停止,提示this為NULL,對象沒有建立出來。為何對象沒有建立?大家都知道Spring是一個IOC項目,它是根據xml的設定檔來生產出你所需要的對象的,因此,對象沒建立出來的原因是沒有設定檔告訴Spring去建立Index所需要的東西(我們在一開始運行例子的時候是沒出錯的,因此,我們不需要懷疑FSMasterPage.master的建立有問題,所以錯誤就只有這個了)。我們在下一步解決這個問題。
三、我們一開始的時候是建立了一個DZ_Portal.App類庫項目的,因此,我們在DZ_Portal.App項目中添加一個Index頁面的Spring設定檔,我們添加一個新項:“spring.net_bean_Index.xml”,這個設定檔的所有代碼如下:
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns='http://www.springframework.net'>
<!-- 頁面定義 -->
<object type="~/Index.aspx" parent="adminPageM">
</object>
</objects>
說明: <object type="~/Index.aspx" parent="adminPageM">,意思是說:“根目錄/Index.asp”的頁面建立時應用父類adminPageM的配置(Spring不知道是不是不會自動引用父類的配置進行建立的?要我們寫那麼多東西!要是哪位知道原因的,麻煩告訴我一下。)好了,我們運行一下看看會有什麼結果。結果還是出錯,為何?因為添加設定檔的是DZ_Portal.App項目,而不是網站的項目,所以,我們還要告訴網站項目去使用它的這個配置,因此,我們來下一步。
四、在web項目中引用DZ_Portal.App項目所產生的類庫檔案(怎麼引用該會吧?在web項目的bin檔案夾位置點擊滑鼠右鍵選擇添加引用,找到DZ_Portal.App項目所產生的dll檔案),然後在web.config設定檔中的spring節點下的context中加入下面一句:“<resource uri="assembly://DZ_Portal.App/DZ_Portal.App/spring.net_bean_Index.xml"/>”(<resource uri="assembly://程式集/命名空間/設定檔名稱.xml"/>),原來的裡面有很多類似的語句的了,看看就知道該如何寫。好了,我們再運行一次。出現空白頁面,到此為止,一個基本的頁面終於建立出來了。本章也該宣告結束了。(有什麼錯誤的請各位指正,謝謝。)
原創作品出自努力偷懶,轉載請說明文章出處:http://blog.csdn.net/kfarvid或 http://www.cnblogs.com/kfarvid/