2012-02-24 17 views
3

這種情況是:我工作的公司需要運送一個產品,它的特徵是由合同定義的。如何在ASP.NET MVC 3中創建一個可配置的系統?

  • 一個客戶需要一個完整的體系,所有的報表功能和東西
  • 其他客戶端(或者更準確地說,一個產品),從所顯示的數據庫和下載,以及許多其他產品僅需要數據情況可能會在不久的將來上升。

而不是創建不同的系統,併爲每個系統添加和糾正錯誤,似乎可以設置什麼將被髮送到客戶端。我試圖找到一個優雅的解決方案...我的控制器和我的模型將保持完全一樣,但我的意見將改變大的時間。

關於如何使這項工作的任何想法?

回答

0

當每個配置只有您的視圖不同時,可能解決方案是在每個視圖文件夾中創建子文件夾。例如Views/Home/Config1/Index.cshtml,Views/Home/Config2/Index.cshtml等 通過重寫控制器中的View(和PartialView)函數(例如創建MasterController),您可以自動切換到視圖目錄中的右側子文件夾。

+0

但它似乎並不優雅。我的意思是,對於每個不同的設置,我會爲每個控制器創建另一個View文件夾。最後,我會得到很多文件夾。 – 2012-02-24 18:03:47

+0

沒錯,只有當您擁有3個固定配置,而不是每個客戶的配置時纔有效。 – Marthijn 2012-02-26 09:31:41

1

不知道我是否理解正確。你有兩個不同的功能集,並希望將它們加入到一個單一的代碼庫中?他們在什麼級別相似?

我上保持的數據,並邏輯層(More Here)一個單一的代碼庫,和表示層上depdending上的差異的量的工作執行下列操作之一:

  • 創建另一個asp.net MVC3使用我的來自其他層的「共享」庫的項目
  • 在一個單獨的asp.net mvc3項目上創建所有的功能,然後在路徑上啓用/禁用某些東西,如果你想要的話,你也可以在某些配置上做到這一點文件,因此不需要爲每個客戶端構建特定的版本。

沒有更多的細節我不能說太多。

+0

那麼,上下文就是發電,這意味着系統會顯示關於發電廠及其發電機組的數據,這些數據由我們的硬件收集。我一直在處理的系統顯示管理數據,例如商業和維護數據,以及工廠的圖像,以及產品在列表和圖表中收集的數據。現在我需要一種不顯示管理數據的產品,我不知道如何以正確的方式進行操作。 – 2012-02-24 18:25:57

+0

嗯,你可以使用你需要的第二個產品,你已經實現了,現在完全相同的邏輯加任何添加,並簡單地禁止你做什麼不發貨前(見答案的建議)。你有與實施相關的問題? – WDRust 2012-02-24 23:19:19

+0

我想要做一些事情,當你創建基本的菜單(隨樣本之一)這樣的,如果在CSHTML確定是否東西應該或不顯示(通過做一個當)。例如,我不希望在每個控制器操作中創建一個ViewBag項來發送這些數據,但是這些數據是系統的一部分。至少這是我能看到它工作的一種方式。 – 2012-02-25 04:54:06

0

不應該將這些信息放入數據庫(例如,用戶有權訪問哪個視圖)並根據此信息構建菜單?

這意味着你的整個菜單結構將變爲動態的(所以這會改變很多,因爲我想你的菜單是靜態的)。但它會解決你的問題,我猜..

+0

這正是我不想要的。我想要一些可以配置的東西,比如wiki應用程序或Mantis Bug Tracker。如果我要創建不同的角色,我只需使用提供的註釋來執行此操作即可,這足夠了。 – 2012-02-27 16:05:21

相關問題