Asp.net MVC 樣本項目”Suteki.Shop”分析之—安裝篇

來源:互聯網
上載者:User

      聲明:作為這個系列的開篇,本系統會將我在研究這個項目源碼中的一些思考和心得介紹給大家。
當然本系統決不是那種所謂的“最佳示範”,裡面所提到的提示或設計思路只是給大家在實際工
作中提供一個參考,所謂“最好”之類的詞彙都是“矬子裡拔將軍”,相信大家在成功的分析了幾個
MVC樣本之後,會找到適合自己所在團隊或公司使用的方式或思路的。 其實在找一個合適的MVC示
例上我已花費了“一些”時間,而這個例子對於我來說,還是相對不錯的(除了文檔和相關說明較少
之外)。另外,該項目還使用了其他一些架構或DLL檔案,比如castle, MvcContrib, NVelocity。
這些內容會在後續文章中講到。

     首先要解釋一下這是個什麼東東,其實說明了,Suteki就是一個線上商店一個B2C樣本,使用者可
以在這裡挑選自己喜歡的商品並通過線上支付功能進行購買。同時它還提供了一套相對完備的管理機
制讓管理員可以輕鬆管理自己的商品資訊,分類資訊,定單資訊。總之這是一個相對完備的系統,盡
管Suteki還沒有被廣泛安裝和使用,並已有一些網站在使用它了,大家可以通過這個地址來看一下其
運行執行個體:http://sutekishop.co.uk/。

     這個項目源碼:
     http://code.google.com/p/sutekishop/downloads/list
   
     關於該項目的BLOG:http://mikehadlow.blogspot.com/search/label/Suteki%20Shop, 只
可惜內容少的可憐:(

     下面我們就看一下如何安裝和實始化一個sutekishop。
   
     首先,我們要運行下載包中的SQL指令碼以產生資料庫並初始化相應資料。SQL檔案位於Database
檔案夾下的create_database.sql(建立資料庫和表),insert_static_data(初始化資料)。
     因為作者是個英國人,其所使用的資料庫指令碼與我們國內的中文版SQL會有所不同,而本人所運行
的SQL2005是中文的,所以如直接運行create_database中的內容可能會出現一些異常。好在後來我
將其中的一些導致出錯的內容從create_database中摘了出來發現能安裝了,所以下面就將我修改過的
sql指令碼內容發上來(文章末尾),大家下載運行一下就可完成資料庫的安裝了。

    註:項目中的一些“資料庫連結串”要批量替換成我們本地的資料庫。
   
    接著,我們就在來一下最終的運行效果:)

    
        
    當點擊頁面右下方的Login連結時,會顯示登陸提示框,我們在這裡填入:      

    Email : admin@sutekishop.co.uk
    Password: 123123

    
    點擊“SubmitQuery”按鈕:
    
        
   

     這樣我們就以管理員身份登入系統了,這時在頂部會出現相關的管理菜單,我們可以使用它來建立
商品分類,商品資訊,所在地資訊,User資訊等等。
   
       
 

      這裡以建立User資訊為例進行說明,點擊“User”連結:
    
     

      大家看到這裡我之前已建立了幾個使用者資訊,同時還包括管理員資訊“admin@sutekishop.co.uk”,
(註:目前列表只顯示Role為Administrator或Order Processor的資訊)

 

    我們點擊其中的“New User”連結,進入到添加使用者頁,並添入下列資訊:        
    Email: test@sample.com
    Password :123123
    Role:Customer
   
    然後點擊“Save”按鈕:)

       
    
     這樣我們就可以在前台以該使用者身份進行登陸了。  
    
     同理,我們再去添加“Categories”,“Countries”等資訊之後,相應的結果如下所示:    
    
        
       
   

     完成相關的設定之後,就可以購買商品了。
   
     下面以剛才新建立的test@sample.com帳號登陸系統,點擊“Movie”-->“動作片”:
    
        
    
    我們點擊該分類下的電影,比如這個“勇闖奪命島”之後,進入到“購買流程”。
    
        
   

     點擊“Add to basket”之後,就會顯示一個購買清單:  

    
   

      我們在確認當前的購買資訊之後,就可以點擊“Checkout ”連結了:
       
      在接下來的付款環節裡,就要填寫相應的支付卡,地址等資訊了。這個流程只要線上買過東西
的朋友應該不會陌生。

        
 

    註:這裡對信用卡校正的邏輯可能會麻煩一些,如果想跳這該校正,可以注釋下面代碼,位於:
     Suteki.Shop\Suteki.Common\Validation\ValidationExtensions.cs    

public ValidationProperty<T> IsCreditCard()
{
    if (IsString)
    {
        var trimmedValue = Regex.Replace(value.ToString(), "[^0-9]", "");
        
        trimmedValue.Label(label).IsNumeric().WithLengthRange(13.To(19));

        var numbers = trimmedValue.Trim().Reverse().Select(c => int.Parse(c.ToString()));

        var oddSum = numbers.AtOddPositions().Sum();
        var doubleEvenSum = numbers.AtEvenPositions().SelectMany(i => new[] { (i * 2) % 10, (i * 2) / 10 }).Sum();

        //if ((oddSum + doubleEvenSum) % 10 != 0)
        //{
        //    throw new ValidationException(label,"{0} is not a valid credit card number".With(label));
        //}
    }
    return this;
}

    這樣,系統在成功提交定單資訊之後,就會將詳細資料顯示出來。
    
        
    
      到這裡,使用者購買並下單的流流程就走完了,但整個商務程序並沒結束,我們還要切換回管理員
身份去查看並進行相應操作:
    
        
   

     註:此時系統還會對使用者的信用卡資訊進行有效性校正等。
   
   
     好了,主要的商務程序就介紹到這裡了。

     下面簡單介紹一下產品的專案檔,該產品共包括四個項目:
     Suteki.Common:該項目包括一些基礎的功能類,擴充方法,以及Controller,Model,Filter的
基類聲明(會在以後文章中分別說明),還包括一些Service介面定製,第三方外掛程式擴充。另外還有相
應的ViewData基類和相關附屬型別宣告。

     Suteki.Common.Tests:該項目主要是針對上面的Suteki.Common項目的單元測試。
   
     Suteki.Shop:該項目包括對 Controller,Model,Filter等的具體設計和功能實現。Service,
ViewData具體定義和實現,HtmlHelpers擴充,Repositories(CRUD)封裝,Views檔案夾等等。

     Suteki.Shop.Tests:該項目主要是針對上面的Suteki.Shop項目的單元測試。
  

     今天的內容就先到這裡了。在下篇中,將會介紹一下該項目中的Controller的繼承結構和實現方式,
感興趣的朋友敬請關注:)       

     SQL安裝指令碼下載: http://files.cnblogs.com/daizhj/suteki_Database.rar 
   

     原文連結:http://www.cnblogs.com/daizhj/archive/2009/05/11/1451925.html

     作者: daizhj, 代震軍, LaoD

     Tags: mvc,Suteki

     網址: http://daizhj.cnblogs.com/

    
    
    
    
    
    
    
   

   
   
   

   
   
   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.