2010-09-14 18 views
0

我建立了一個構建爲ASP.NET 3.5 Web App的Web應用程序。我們最近修改它以將MVC混合到應用程序中以實現一些新功能。我的ASP.NET MVC控制器應該代表什麼 - 「真實世界」應用程序

現在,它在那裏,我們希望利用MVC儘可能就開始「改造」,從笨重的web表單的應用更容易維護和測試MVC應用程序。

剛剛添加一些新功能時出現的問題是控制器應對某個操作負責。

讓我更詳細。

該場景涉及我們的應用程序中至少三個主要概念領域。該應用程序需要能夠將它們的PREFERENCE設置爲默認MAP視圖,同時它們位於SEARCH屏幕上。首選項,地圖和搜索是我們系統中的所有主要概念。此外,這種偏好設置(基本上,地圖應該從何處開始)可以用於在多個搜索頁面中設置初始地圖(它基本上是搜索偏好設置)。

現有MVC控制器在應用程序是一個MAPCONTROLLER,用3個動作,其負責生成HTML或JSON數據把在地圖上。

,我們現在需要做的是什麼,是添加一個MVC路徑(控制器+行動),以允許客戶端查看保存的一些信息作爲他們的偏好。基本上,只要他們在搜索頁面上查看地圖,他們就可以點擊一個按鈕,顯示「記住這是我的默認地圖視圖」,從那時起,他們的地圖總是以該視圖開始。

我的問題是(和我道歉,但我想是非常非常清楚,我看到太多的問題沒有上下文幫助)。我的控制器應該代表什麼?我顯然有涉及3個主要系統領域。使用SaveDefaultMapView操作(不需要視圖)創建新的SEARCH或PREFERENCES控制器,或者在xisting MAP控制器上搭載,是否合適?即使這個新功能比實際地圖生成更關注搜索和偏好? MVC控制器應該主要與屏幕(搜索頁面/搜索子系統),正在操作的域/數據(偏好),還是在採取行動時詳細檢查的特定視覺元素(地圖)對齊?

所有的實例和訓練營項目都很好,但他們都太乾淨,簡化申請鉅額遺產的應用程序。我們如何圍繞一個系統設計他們的MVC組件,這個系統將許多領域問題融合到單個網頁中?

謝謝大家!

回答

0

控制器組織方式沒有硬性規定。你按照對你最合理的方式來組織它們。這將需要一些實驗,因爲您可以看到路由如何工作,並且可以找到最乾淨,最優雅的設計。

ASP.NET MVC在這方面是出色的不可知論者。它並不關心你如何設計你的控制器/路由子結構,而且它足夠靈活以處理大多數任何設計。

您的應用程序設計應該在模型方面很重。你的控制器應該比較小,如果您發現您在控制器中填充了大量邏輯,則應該將該邏輯重構爲模型,或添加一個服務層來包含邏輯。您的控制器層最好被認爲是「配線架」;它是您通過路線將您的傳入網址連接到您的模型/服務圖層和視圖模型/視圖的地方。

你一定要檢查出Project Areas,因爲這可能是一個適當的機制來包含你的三個不同的系統領域。

0

謝謝,羅伯特。 我想我可以修改一下......其他人發現哪些指導方針有助於保持其控制器責任的組織性和邏輯性? 雖然我上面的示例僅涉及我們的3個領域,但我期望最終將用MVC替換大多數/全部應用程序。此外,我提到的3個領域中的每一個都與多個其他領域有關係(例如,地圖可用於繪製若干基於位置的實體,偏好可應用於系統的任何區域,並且像地圖一樣,能夠搜索幾種商業實體(一次一個,而不是全部) 因此線條模糊不清我有興趣聽取其他人如何找到有效的控制器組織指南 哦,至少,我們堅持使用瘦身控制器/胖模型範例!

+0

我沒有得到有關此貼子的通知,因爲您發佈了問題的答案,而不是我的答案下的評論。研究它..這應該很長的路要回答關於如何組織控制的所有問題RS。 – 2010-09-24 05:06:51

相關問題