2009-12-02 58 views
3

如何在Visual Studio中構造整個應用程序?

我的項目工作,其中有3個獨立的部分(ASP.NET MVC,的WinForms,Silverlight的)和15個項目(通用,API,服務,庫和WinForm的的CAB的)。

決議

1)所有項目在一個解決方案
2)對於每一個部分都有解決方案

什麼是對付在Visual Studio解決方案和項目的最佳方式?

如果我重構,首先是很好的。
其次是更好的清晰度。

回答

1

我都這樣做。您可以將一個項目添加到多個解決方案。

+0

我已經發出這個配置的問題。如果您在同一個解決方案中添加對項目的引用,然後將引用的項目另存爲另一個解決方案...第一個解決方案中的項目引用將會被破壞。這是發生在我身上的事情。 (VS 2008) – 2009-12-02 11:05:14

+0

我從來沒有像這樣的問題。 – GvS 2009-12-02 13:12:53

+0

我同意@GvS,我從來沒有遇到過一個項目被多個解決方案託管的問題。 – kenny 2009-12-29 21:42:21

0

我的偏好是在某些全球範圍內創建共享項目,並在需要時將其添加到特定應用程序配置(解決方案)中。針對解決方案的非共享項目可以在該解決方案中生存。請記住,在一個解決方案中對共享項目所做的更改會影響其他任何使用該解決方案的解決方案。

0

每個應用程序自然是一個解決方案(EXE或託管無關緊要)。然後放置您經常調試或重構的所有程序集。

其他保留爲已編譯的二進制文件。

0

我會爲每個部分提供一個解決方案,這意味着每個ASP.NET MVC,silverlight和winform都有自己的.sln文件。

就重構而言,它應該沒有關係,因爲如果您安裝了Resharper,那麼當您在其他解決方案中重構代碼時,未更新的csprojects的cs文件將以紅色發光(無需編譯) (將所有xxx更改爲yyy選項)

0

我的首選項是隻有一個解決方案文件,然後在每個(服務,通用,演示文稿等)下創建解決方案文件夾。

然後,在Presentation文件夾下爲Web,Windows和Silverlight創建單獨的文件夾。每個項目將被放置在適當的文件夾中。

對我來說,這是最簡單的方法來保持一切都在同一屋檐下。更容易編譯,共享資源和管理源代碼管理。

因此,對於我而言,典型的解決方案可能會在樹中有15-20個不同的項目,具體取決於解決方案的複雜程度。

0

我實際上認爲第一個會更好清晰。原因在於,如果編譯器向您致敬WinForm項目,那麼更容易知道是否更改了MVC的共享項目。另外,您應該能夠設置調試器,以便在單擊調試時只調試選定的項目(在單擊調試按鈕之前選擇MVC,WinForm或Silverlight)。這使您可以更輕鬆地調試MVC,Winform和Silverlight,而無需更改任何調試設置。

1

根據各個項目的規模,我會爲所有項目使用單一解決方案。我從來沒有把解決方案文件夾中的項目,保留共享程序集,讀我的文件等。

我建議在解決方案項目文件夾中創建SolutionInfo.cs並在所有項目中添加對此的引用。然後,您可以刪除AssemblyInfo.cs文件中的大部分程序集屬性。我在AssemblyInfo中只有3個屬性:AssemblyTitle,AssemblyDescription,Guid。其他屬性在我所有的項目中共享。

將所有項目都放在同一個解決方案中可確保您擁有適當的名稱空間,並且不同客戶端實現之間不會發生衝突。

根據命名空間命名項目,例如如果您的項目命名爲「Sport」,則將解決方案命名爲「Sport」,「Sport.Common」,「Sport.Web」等共享庫。

當我遇到需要花費大量時間編譯的性能問題時,我纔開始考慮在多個解決方案中分離項目。將所有內容都放在同一個解決方案中可以更容易管理,尤其是在使用源代碼管理系統的情況下。

相關問題