摘要:本文爲在 Visual Studio .NET 中開發源代碼管理的 Web 項目提供了策略。
簡介
任何一個人都不可能掌握快速而連貫地創建一流水平的軟件應用程序所需的全部語言、技術、工具和方法,因此,大多數專業開發人員都以團隊的形式合作進行開發。這也是效率和經濟效益所需要的。同樣,大多數軟件開發團隊採用並行開發方法,這樣就可以將單個開發人員從“串行開發”的束縛中解脫出來;所謂串行開發,即只有當一位開發人員完成任務後,下一位開發人員才能開始工作。“並行開發”允許多個開發人員同時“隔離”地工作,以穩妥的方式開發某個項目的相同或不同的部分和版本。要發揮並行開發的優勢,團隊必須實現進程化,以便項目開發人員能夠在小衝突變成大沖突之前,迅速、逐步及自動地(某些情況下)對其進行解決。通過確保足夠的開發隔離度,Visual Studio .NET 可以提高團隊的協作能力。
隔離工作時,兩個或多個開發人員可以進行有衝突地更改,並確保至少有一名團隊成員有機會對各個衝突點進行審閱並選擇合適的方案。與以前發佈的 Microsoft 開發工具所不同的是,Visual Studio .NET 現在支持 Web 和非 Web 項目的真正隔離開發。
本文提供了以團隊方式順利開發 ASP.NET Web 項目的策略,介紹了 Web 項目文件管理,以便您更方便地瞭解如何以團隊的形式設置、開發和部署源代碼管理的 Web 應用程序。一個可靠的協作開發策略由以下因素組成:
- 源代碼管理
- 程序的一致性
- 隔離性
要確保協作成功,其中最簡單的方法就是使用源代碼管理解決方案、項目和其他共享資源。源代碼管理可以保護團隊資源不會被意外刪除,保護單個開發人員的更改不會被盲目或無意覆蓋,還可以按版本維護所有項目文件的歷史記錄。Visual Studio .NET 使源代碼管理成爲項目文件管理的擴展,從而降低了源代碼管理的複雜性。您無需離開集成開發環境 (IDE) 或者打開另一個應用程序,即可實現所有源代碼管理操作。
瞭解解決方案和項目
Visual Studio 減少了項目文件管理和源代碼管理中許多單調而複雜的操作。例如,當您在項目中添加新項時,Visual Studio 可以將其保存在存儲區中的某個位置。只要文件是打開的並且按要求與項目編譯在一起,就無需您來確定文件的保存位置。而在開發 Web 應用程序時,瞭解 Visual Studio .NET 如何在後臺管理項目文件,可以爲您和您的團隊節省大量時間和金錢。
解決方案
無論何時從存儲區中創建 Web 項目或打開現有的 Web 項目,系統都將自動創建包含該項目的解決方案。所有 Visual Studio .NET 解決方案都包含一個解決方案文件 solutionname.sln,它存儲解決方案元數據,例如項目列表及其在存儲區中的位置。解決方案包含另一個解決方案文件 solutionname.suo,它跟蹤用戶特定的信息,例如 Visual Studio 項目的默認保存位置。將解決方案添加到源代碼管理時,將只添加 *.sln 文件。而且,從始至終都不會簽入 *.suo 文件。
從源代碼管理的角度而言,以下兩個關於解決方案的重要事項值得注意。
- 解決方案是本地的。解決方案和 Web 項目文件存儲在不同的位置。與 Web 項目的文件項不同,解決方案文件永遠不會存儲在 Web 服務器上,除非您刻意將其存放在 Web 服務器上(建議您不要這樣做)。Web 項目文件(.vbproj 和 .csproj)駐留在 Web 服務器上,而解決方案文件(.sln 和 .suo)以及 Solution Items(解決方案項)文件夾中的所有文件項在默認情況下都存儲在文件系統文件夾中。這一點非常重要,因爲它會影響源代碼管理的 Web 項目的結構和可管理性。
- 創建解決方案,而不是項目。通過先創建一個解決方案,然後再添加項目,您可以在存儲區中維護解決方案及其項目之間的邏輯父子關係。這樣做可以確保多項目解決方案中從屬項目的可搜索性,還有助於避免一些易混淆的問題,這些問題可能會伴隨一些更復雜的源代碼管理操作而出現,例如分支與合併。
- 項目
在管理文件方面,Visual Studio .NET 只包含兩類項目:Web 和非 Web 項目(即本地項目)。
- Web 項目
- 在 New Project(新建項目)對話框的 HTTP 位置創建的所有項目。這些項目主要用於向 Web 瀏覽器(即被稱爲 Web 應用程序的項目)提供內容,還可以在開發人員需要在服務器 (Web Services) 之間共享數據時使用。
- 本地項目
- 在非 HTTP 位置創建的所有項目(例如,C:/MyProjects 或 \\MyComputer\MyProjects)。最常見的本地項目用於創建 Windows 應用程序。
與解決方案文件 *.sln 一樣,所有項目都包含一個項目文件,用於標識其各項在計算機文件系統中的物理位置。例如,當您向 Visual BasicASP.NET 項目添加文本文件時,其相對路徑將被插入到項目文件 (*.vbproj) 中。
Web 項目ASP.NET Web 項目是一種快速應用程序開發 (RAD) 模板,適用於基於 Web 的瘦客戶機應用程序。在 ASP.NET Web 應用程序中,Web 窗體頁通過瀏覽器向用戶提供信息,並使用服務器代碼實現應用程序邏輯。Web 應用程序是圍繞 ASP.NET 建立的,ASP.NET 是一個平臺,包含在 Web 服務器上開發和運行應用程序所需的設計時對象和控件以及運行時執行環境。
管理源代碼管理下的 Web 項目時,需要注意以下事項:
- 使用 Visual Studio .NET 執行所有可用的源代碼管理操作。
- 不要以手動方式對文件強制進行源代碼管理。使用 Add to Source Control(添加到源代碼管理)或 Check In(簽入)命令時,所有應由源代碼管理的文件都將自動被存放在那裏。
Visual Studio 通過以下兩種方法之一訪問和管理 Web 服務器上的文件:文件共享,這是 Visual Studio .NET 中的新功能;或 FrontPage,它已經在 Visual InterDev 中使用。默認情況下,使用新增的文件共享訪問方法。
- 文件共享
- Visual Studio 使用基於 Windows 的文件管理命令訪問 Web 項目文件。文件共享是默認的 Web 訪問方法,它爲源代碼管理提供良好的支持。
- FrontPage
- 所有文件都使用 HTTP 協議進行管理。來自 Visual Studio 的源代碼管理請求通過 FrontPage Server Extensions 被轉發到源代碼管理提供程序(例如 Visual SourceSafe)的服務器安裝。FrontPage 訪問方法支持的源代碼管理命令比文件共享訪問方法支持的命令要少。
- 項目文件
與本地項目不同,Web 項目不能包含其項目目錄以外的文件項。將現有文件添加到 Web 項目時,Visual Studio 通過將文件複製到 virtual application root(虛擬應用程序根,Web 服務器上的一個目錄,所有項目項和生成輸出都存儲在這裏),從而將其包含在項目中。
配置文件Web.config 文件是一種特殊的應用程序配置文件,可以在設計應用程序時定義其設置。部署之後,無需關閉 Web 服務器即可更改這些設置。多個名爲 Web.config 的配置文件可以出現在 ASP.NET Web 應用程序服務器的多個目錄中。每個 Web.config 文件都將配置設置(例如 IIS身份驗證設置)應用到其自身目錄的源文件中。
您可以在 Web 項目中創建自定義配置文件,覆蓋默認的 Web.config 文件(例如,mysettings.config)中的設置。在團隊開發環境中工作時,有時候需要創建此類文件。對於 Web 項目,Web.config 是唯一要添加到源代碼管理的 *.config 文件。
不進行源代碼管理的文件Projectname.vbproj.webinfo 是特殊的項目文件,用於記錄虛擬應用程序根。由於每個用戶的項目工作副本必須包含其自身的虛擬應用程序根,因此 *.webinfo 文件不會出現在 Solution Explorer(解決方案資源管理器)中,也不會被添加到源代碼管理。因此,如果您分配了 *.webinfo 文件,則每個開發人員的更改都將在沒有事先警告的情況下保存到您的個人文件之上。
除 webinfo 文件外,Visual Studio .NET 也不會向源代碼管理添加特定的項目文件。大多數排除的文件都包含不能共享的用戶特定的設置。與 *.suo 文件一樣,下列 Web 項目文件也不應添加到源代碼管理:
- 生成輸出
- *.vbproj.user、*.csproj.user
- *.vbproj.webinfo、*.csproj.webinfo
- *.scc、.vspscc、.vssscc 等等。
- 包含可覆蓋標準 Web.config 文件的用戶設置的所有配置文件。
- 默認情況下在 Solution Explorer(解決方案資源管理器)中隱藏的所有文件(aspx.vb 和 aspx.resx 文件除外)。
- 出自:http://www.qqread.com/soft-engineering/i658129102_3.html