2010-02-15 138 views

回答

1

如果你的目標只是複製UI行爲由ASP.NET作爲交付然後是假設好的分區你可以重新使用相當多的代碼。你會問爲什麼你想這樣做,但。

另一方面,如果目標是爲用戶提供更豐富的交互體驗,那麼很可能你會發現即使設計良好的業務層也不會像這樣完全不同的用戶界面需要它至。

+0

謝謝。現在,我必須學習Silverlight 3。 – VansFannel 2010-02-15 17:47:01

3

假設您具有典型的演示文稿,業務邏輯和數據圖層,並且假設您已將代碼孜孜不倦地分離到這些圖層中,則應該能夠用Silverlight界面替換Web窗體,並將BL和DAL完好無損。

然而,真正的項目往往有點混亂,使這樣的轉變更加困難。如果你使用的是SqlDataSource,你可能會遇到問題。

+0

+1 - ASP.NET項目可能會搞得一團糟:) – slugster 2010-02-15 10:58:55

+0

我使用實體框架來訪問SQL Server 2008數據庫。爲什麼同比說我會使用SqlDataSource時遇到問題? – VansFannel 2010-02-17 08:12:49

2

這些都是一些好點@Andy,並就他所說的擴大:

我做了同樣的事情現在。因爲我有一個相當全面的業務層,所以我能夠做很多工作(值幾個星期),在那個時候我只需要向該業務層添加一個功能。這很重要,因爲它減少了所需的測試量。它還使得任何剩餘的測試更容易,因爲它可以更容易地比較舊版應用程序和新版本的輸出。

真正幫助實現這一目標的一種模式是門面模式。我構建了一個位於業務層頂部的WCF層,通過使用facade模式,我可以返回更適合新的Silverlight接口的結果,而不會干擾業務層。

很可能您的新UI與ASP.NET版本的體系結構截然不同。您將能夠在UI,代碼和數據之間實現更加清晰的分離。我感到非常自豪的一些ASP.NET代碼在等效的silverlight代碼旁邊看起來很正常。準備砍下你的舊代碼時,並消除眼前這些代碼的業務規則背後:)

+0

Facades絕對是一個好主意,你甚至可以在WCF端有另一個圖層(類),例如UIApplicationServices與業務層接口,但不承擔任何特定的用戶界面。然後,WCF服務外觀與UIApplicationServices交談以向UI提供服務(無論是ASP.Net,Silverlight,WinForms等)。關於使用類似UIApplicationServices的很酷的事情是,您可以直接從webform調用(例如,在首頁加載時填充下拉列表),然後使用AJAX消費其他操作。 – 2010-02-24 01:10:45

相關問題