2009-09-01 101 views
4

您如何看待構建在asp.net mvc應用程序上的開源CMS應用程序的項目結構?該項目的暱稱是「Gol」。開源asp.net mvc項目的項目結構建議

基本要求在下面的文章中有概述。

Ideas for OpenSource CMS in ASP.NET MVC

目前我正在考慮鋪設下來,像這樣的......

  • Gol.Core.Session(包含會話管理器都真假)
  • Gol.Core.Caching (包含緩存,包括速度,企業庫提供商)
  • Gol.Core.Logging(包含日誌記錄組件和提供者)
  • Gol.Core.Instrumentation(con含有雜質的儀器相關的項目)
  • Gol.Core.UI(UI幫手,和其他的東西與UI)
  • Gol.Core.Security(安全性,認證相關的東西)
  • Gol.Core.Utilities(常用的實用工具像加密,輔助方法等功能)。
  • Gol.Core.Metadata(元數據管理器)。
  • Gol.Web.Controllers(所有控制器都在這裏)。

  • Gol.Cms.Contracts(包含服務合同)

  • Gol.Cms.Model(包含服務模式)
  • Gol.Cms.Services(包含服務實現)。

  • Gol.Web

  • Gol.Test(或Gol.Specification)(網頁包含的意見項目)

你覺得呢?結構是否過載/臃腫?

您的想法/建議歡迎根據您的經驗(沒有什麼特別與asp.net mvc)。

這可能會幫助其他可能對設計初始項目結構感興趣的人。

+1

你可以發佈一個鏈接到你的軟件(因爲它是開源的)?看到你的項目結構的最終結果(以及關於你的實施的一些細節)會非常有趣。 – Gerwald 2012-12-21 15:50:00

回答

1

我通常構建我的MVC項目的以下項目:

web 
    web.Controller 
    model 
    Business Logic 
    Data Access 
    Services 
    Any Libraries for sessions, caching etc. 

你有相當良好的結構工程雖然有幾件事情我覺得你可以做些什麼來改善它。

爲每個圖層創建一個測試項目,以便隔離測試。如果更改表示層,則可以轉儲與其關聯的任何測試,並輕鬆移動業務邏輯。我還會爲每個圖層創建另一個集成測試項目。這樣可以將它們排除在外以便更快地進行持續集成編譯。

我也沒有在Goi.Core.UI中的UI代碼。你的UI代碼可能呈現malipulation,應該住在Goi.web

祝你的項目

1

對於更大的應用我會強烈建議使用MVC V2的領域。模塊化您的工作有助於長期維護。你可以在這裏找到他們:http://msdn.microsoft.com/en-us/library/ee307987(VS.100).aspx

從那裏我會創建一個Gol.Areas與你所有的區域項目在那裏(他們將包含你的控制器和每個區域的意見)。

如果您處理任何網絡服務,我還會使用Gol.Communication層。

我在「企業發展」層面給你提供這個建議。

至於測試,你可能會創建大量的工作,試圖將你的測試從邏輯層分離。只是一個想法。

3

從1個項目開始,建立一些功能。只根據增長需求添加新項目。我已經開始了這樣的新項目,計劃一個宏偉的VS解決方案,並帶有令人印象深刻的單個項目,但這最終浪費時間。你最終會試圖將你的設計融入到你的項目結構中,這很愚蠢 - 項目結構會幫助你。知道如何組織代碼的唯一方法是讓代碼組織起來。在構建過程中逐步完成它比試圖全部事先做好要容易得多。

+0

有些同意你的意見,但有些計劃不是宏偉的現狀,總是很好。我提出項目結構的原因並不是爲了降低項目結構,而是因爲我意識到將成爲其中一部分的組件。 – 2009-09-16 10:30:01