我想要使用Silverlight 4,業務應用程序模板,WCF RIA Services和Entity Framework 4設計CRUD商業應用程序的建議。該應用程序跟蹤對材料樣本執行的實驗室測試結果。它取代了一個(難以維護)現有的Web應用程序。實驗室測試結果存儲在由數百個字段組成的兩個「SampleData」表中。這些表格具有一對一的關係。我使用實體框架的Table Per Type Inheritance將這兩個表合併成一個表,我很滿意。注意:我決定不更改數據庫設計以避免破壞現有的應用程序,but it was considered.如何劃分一個實體與數百個字段?
我的兩難困境是如何分解這個巨大的表。每條記錄代表一個被測試的材料樣本。字段的邏輯分組是通過實驗室測試。我想象我的UI有多個標籤或單獨的頁面 - 每個測試一個。現在的問題是,我吸入所有的字段,但只在分頁的DataGrid中顯示一些字段,並且有明顯的延遲。不是一個巨大的實體,它可能是很好的,有幾個「實驗室測試」實體(每個都代表一種測試類型),它們是我的一個巨型TPT繼承表的子集。我將如何做到這一點?基本SampleData表/實體包含標題字段以及多個子測試結果字段。第二個派生表/實體包含更多通過SampleID鏈接到基礎的測試結果字段。如果分裂,我需要維護每個實驗室測試實體的標題信息。
我願意用一個巨大的表/實體堅持(儘管有輕微的性能損失)。不過,我想知道用這個實體創建我的UI的最佳方式。 DataForm可以選項卡嗎?如果我製作帶有實驗室測試鏈接的儀表板,我應該如何將標題信息與每個測試頁面保持同步?
我知道這是一個廣泛的問題。我希望能夠獲得有關良好設計路徑的建議,這將允許我在添加新實驗室測試(製作更大的實體)時增加應用程序。我希望找到一條能夠簡化維護並利用微軟正在推廣的RAD體驗的途徑。
提前致謝!
如果你不介意我問,你爲什麼覺得web應用程序是很難維持的?我在Silverlight的/ RIA服務切換到ASP.NET MVC,因爲我已經找到了相反的過程:SL/RIA難以維持和發展緩慢的進展。我發現這一切都非常重量級和不靈活。 – 2010-12-17 00:10:12
應用程序的一半是在Asp 1.1中使用古樹視圖和選項卡控件。其中一個標籤有一個框架,其中包含一個完整的Asp 2.0應用程序。需要進行嚴重的重構(並且我已經開始)。多維數組包含數據庫字段名稱和由幻數索引號標識的相應文本框對象。數據庫調用主要是循環來填充數組或執行CRUD。被遺棄的代碼丟棄了應用程序。變量是3或4個字母的首字母縮略詞,因爲誰知道什麼。通常,應用程序將無法編譯,並且會丟失時間。原來的開發人員離開了公司,我這個新人不得不應對這個泥潭。 – DeveloperDan 2010-12-17 13:25:22