面向服務器的快速應用程序開發(RAD)
Visual Studio .NET將極大地降低創建網絡應用程序的復雜性。創建成功的網絡應用程序的關鍵是將重點放在中間層上。商務邏輯和應用程序的大部份都出現在中間層服務器上。Visual Studio .NET開放系統采用了快速應用程序開發(RAD)開年,Visual Basic開發人員已經習慣了快速地裝配基于Windows的用戶界面, 并將它應用于構建中間層對象。關鍵領域包括:
服務器資源管理器 (Server Explorer)
服務器資源(Server Resources)
輕松地設置和部署基于服務器的應用程序
在應用程序部署后,使用運行時跟蹤(Run-Time Tracing)對它們進行調試
Visual Studio .NET擁有開發人員成功地創建功能強大的中間層應用程序所需的所有工具。開發人員可以:
利用MSMQ(Microsoft Message Queuing)保證消息的傳送和跨平臺通信。
將應用程序錯誤寫入到共享的事件日志記錄中,或使用計劃任務安排某個組件在預定的時間激活。
從網絡上的任何一臺計算機中讀取性能指數。
編寫當文件系統變化時激活和執行的組件。
直接將這個功能性拖放到他們的應用程序中,從而使得開發人員可以將重點放在商務問題上,而不是放在組件的組裝配合上。
服務器資源管理器 (Server Explorer)
編寫中間層組件的最大的一個挑戰是發現在企業網絡上有哪些可用的應用程序服務。并且一旦被發現,它們將很難集成到你的應用程序中。
在Visual Studio 6.0中,啟用了Microsoft SQL Server和Oracle數據庫的發現功能。此外,Visual Studio可以都這些數據庫中的模式和數據進行處理。使用數據視圖(Data View)窗口,開發人員可以指向一個數據庫,然后將節點以深入研究數據庫的結構。Visual Studio還提供了一種修改數據庫結構的方法。例如,開發人員可以連接到 SQL Server以查看和修改表格、視圖和存儲過程。
在Visual Studio的下一個版本中,Server Explorer從今天的數據視圖(Data View)又向前走了一大步,可以顯示整個計算機,包括數據庫、消息隊列以及安裝在計算機中的所有其他服務器元素。
你可以將服務器資源管理器 (Server Explorer)中的某些資源添加到Visual Studio設計器中。當你將這些項目中的某個項目添加到自己的設計器中時,Visual Studio將自動創建一個引用你選定的特定資源的組件。例如,你可以選擇某個特定的消息隊列,然后將其添加到組件設計器(Component Designer)中。Visual Studio將自動創建一個引用這個特定隊列的Message Queue組件。
你可以使用服務器資源管理器 (Server Explorer),在自己的Microsoft Windows服務上執行管理任務。這包括啟動、停止、暫停和繼續服務。服務器旁邊的圖標將根據該服務的當前狀態變化。
默認情況下,服務器資源管理器 (Server Explorer)將把上一次的配置作為你的會話的一部分保存,并在你下一次訪問服務器資源管理器 (Server Explorer)時重新打開它。你還可以按名稱保存特殊配置,并在它們之間進行切換。例如,你可以為軟件開發周期的每個階段設置一個專用的服務器資源管理器 (Server Explorer)配置。
組件設計器(Component Designer)允許進行拖放式程序設計
與窗體設計器允許快速創建客戶端應用程序的方式相同,服務器資源管理器 (Server Explorer)提供了一種快速地、圖形化地創建服務器端組件的方法。組件設計器(Component Designer)將RAD基于窗體的程序設計概念應用到了創建中間層對象中-一種用于創建非可視化對象的可視化方法。現在開發人員無需編寫大量的服務器端代碼,他們可以把將在服務器上運行的服務器組件拖放到設計表面上,再使用屬性瀏覽器將它連接起來,然后雙擊,接著該對象的代碼將被打開。
服務器資源(Server Resources)
有保證的消息傳遞和跨平臺通信
Microsoft Message Queuing使得開發人員可以通過發送和接收消息,快速、可靠、同步地與應用程序通信變得很容易。
MSMQ提供了:
與斷開連接的用戶一起創建應用程序的能力- 如當銷售人員在遠方工作時。
有保證的傳遞-例如,對于股票經紀人來說,如果他們的訂單輸入應用程序即使丟失一份訂單,都可能損失上百萬美元。
并發執行,處理多個工作請求。
自動將你的活動記入日志,對于保留審計線索和恢復數據很有益。
到IBM MQSeries的連接,實際上它可以在從大型機到AS/400的每個平臺上運行。
開發人員需要能夠發送和接收消息,創建消息隊列,并管理這些消息隊列。利用下一版本的Visual Studio,Server Explorer和MSMQ組件可以簡化執行任務。
通過將一個消息隊列從服務器資源管理器(Server Explorer)拖放到組件中,該消息隊列和消息的默認數值允許開發人員使用下面的一行代碼發送簡單的消息。
接收一條消息就像下面一樣簡單。
當開發人員在Visual Studio .NET中對MSMQ進行編程時,有兩種選擇:
要發送一條消息,你需要將該消息與一個消息隊列(Message Queue)相關聯。這個對象允許開發人員直接與該隊列進行對話,并盡可能有效地發送消息。
簡單地將現有的隊列拖放到一個組件中,以開始直接針對該組件進行編程。或者直接在Visual Studio中創建、刪除和重命名隊列。
下一個步驟是提供要發送的數據。用戶可以在這個消息隊列上調用發送方法,然后數據將發送到指定的隊列。
消息隊列(Message Queue)組件將從自變量中獲取數據,接著將數據加入到消息中,然后將消息發送給指定的隊列。
將應用程序錯誤寫入到一個共享的事件日志記錄中
用于Microsoft Windows NT和Windows 2000的應用程序定期地將警告和錯誤寫入到事件日志記錄(Event Log)中。事件日志記錄為Windows和應用程序提供了一個標準地、集中的方法來記錄重要的軟件和硬件事件。事件日志記錄(Event Log)為查看日志記錄提供了一個標準的用戶界面,并為檢查日志記錄提供了一個編程接口。
在Visual Studio .NET中,開發人員可以將事件日志記錄(Event Log)從服務器資源管理器(Server Explorer)拖放到組件中,然后編寫應用程序專用的代碼來讀寫事件日志記錄(Event Log)。
還可以創建和編寫自定義事件日志記錄。要做到這一點,只需從工具箱中拖動一個事件日志記錄(Event Log)組件,接著為該日志記錄指定一個隊列名稱,然后日志記錄將自動創建。
最后,你可以在一條記錄被寫入到日志記錄時運行代碼。例如,當一條錯誤記錄被寫入到應用程序日志記錄時,將通知管理員。
使用計劃任務安排某個組件在預定的時間激活
在預定的時間運行組件對于企業客戶來說是一項很重要的需求。企業按計劃經營。書店要在每個營業日結束時關閉。查賬需要每月進行。需要在每天的早晨提供詳細的報告進行分析。這些都是計劃任務的例子,這些都是自動處理發生的場合。
多年來,Visual Studio已使得創建在Windows操作系統內部運行的可執行文件和組件變得很容易。現在,Visual Studio允許用戶創建可以按預定的時間和間隔運行的應用程序和組件。
例如,一個零售連鎖店可能會使用計劃組件。在商店關門時,商店數據庫的內容必須傳送給公司總部。每個商店內在指定時間運行某個計劃組件。該計劃組件檢查這一天的新的銷售情況,將它們打包,然后發回總部。 此外,每個商店在凌晨兩點進行存貨分析。低于某個指定閾值的商品將從經銷商那里定購。
要使用計劃組件,可以將計劃事件(Scheduled Event)組件從工具箱拖放到組件設計器(Component Designer)中。一旦ScheduledEvent成為該組件的一部分,你就可以通過在屬性窗口中設置屬性來對其進行自定義。雙擊該組件填充在組件激活時執行的代碼:
使用性能計數器(Performance Counters)從任何一臺網絡計算機中讀取性能指數
性能監控是指獲取和分析應用程序、服務和驅動程序提供的性能數據,以確定系統的瓶頸,并對系統和應用程序的性能進行調整的過程。Windows 2000和Windows NT提供了通過性能計數器和性能監控器(Performance Monitor)應用程序,對系統性能進行監控的方法。此外,性能監控器(Performance Monitor)可以在達到閾值時對計數器數值進行響應。例如,將事件寫入到事件日志記錄中或關閉計算機。
Visual Studio .NET將提供一個組件,它可以很容易地創建新的計數器,讀寫任何性能計算器的數值。這個組件的一個用途就是報告每秒鐘處理的訂單數。一個商務對象有一個可以在部署后修改的屬性,用來打開或關閉對處理每個訂單的計時。當負荷很重、吞吐量減少時,管理員可以打開這個工具,如何使用性能監控器(Performance Monitor)來確定應用程序的運行情況。如果管理員發現系統的負荷很重,并且應用程序不能足夠快地對訂單進行處理,可以對資源進行重新分配以提高性能。
要使用性能計數器(Performance Counter)組件,只需將它從服務器資源管理器(Server Explorer)中拖放到一個組件中,然后雙擊它編寫應用程序專用的代碼。
目錄監視器(Directory Watcher)在文件系統發生變化時激活
當今使用的一個常見的商用實踐是編寫長期運行的應用程序,對文件變化進行監控以取消商務過程。利用Visual Studio .NET目錄監視器(Directory Watcher)組件創建一個更加有效的方法來完成此項工作非常容易。該組件對系統目錄變化通知進行監聽,并在目錄或目錄內的某個文件發生變化是激發事件。
開發人員使用這個組件的一個例子就是FTP(File Transfer Protocol,文件傳輸協議)。設想有一個基于Web(網絡)的新聞網站設立了一個FTP服務器。來自世界各地的新聞記者都可以將他們的題材上載到這個FTP服務器上,目錄監視器(Directory Watcher)組件將使用電子郵件通知編輯。
簡單地將一個目錄監視器(Directory Watcher)組件從工具箱中拖出,然后設置確定該組件何時激活的屬性即可。組件可以在目錄發生變化、被創建或被刪除,以及某個文件被添加、重命名或被刪除時激活,然后執行代碼。雙擊該組件編寫在文件或目錄事件發生時執行的代碼。
輕松地設置和部署基于服務器的應用程序
企業管理人員面臨著部署分布式應用程序組件,并在它們的生存周期內對它們進行管理的挑戰。組件開發商和解決方案集成商承擔著向管理員和開發人員提供足夠的信息來推動應用程序部署的任務。在分布式應用程序模型中,目標是使組件開發商和集成商能夠非常容易地提供部署信息,而不會犧牲管理員的模型的有效性。
部署的目標是很容易地將來自多種平臺的解決方案或任意規模的項目或結構傳送給其他多種平臺。Visual Studio .NET部署通過跨多平臺和計算機工作解決了這個問題。它允許進行n層部署(即在.單一操作中,部署到多臺目標計算機)。它還使得部署到網絡(Web)服務器和COM+服務器變得很輕松。
創建跨越Windows DNA應用程序所有分層的安裝應用程序
開發人員常常需要部署一個分布式應用程序的全部3個分層,這些分層通常都是使用多種語言編寫的。利用下一個Visual Studio版本中新的部署工具,創建一個多層的安裝程序十分容易。
部署過程中使用自定義安裝程序(Installer)設置服務器資源
將應用程序服務器功能應用到中間層組件中將會產生對該服務器的依賴性。開發人員可以創建一個組件,然后將一個消息隊列(Message Queue)從工具箱拖放到一個類上。這個消息隊列(Message Queue)將存在于這個開發人員的計算機上。但是,當部署這個應用程序時,如果這個隊列不存在則需要重新創建。Visual Studio .NET包括自定義安裝程序,可以確保依賴這些基于服務器的資源可以在部署時創建。
在屬性(Properties)窗口中有一個鏈接,Add Installer,當點擊這個鏈接時,將會向一個包含消息隊列安裝程序化(Message Queue Installer) 組件的項目中添加一個新類。消息隊列安裝程序化(Message Queue Installer) 組件知道如何創建一個消息隊列的細節。
在應用程序部署后,使用運行時跟蹤(Run-Time Tracing)對它們進行調試
跟蹤是允許開發人員對應用程序進行測試的一個特性。這樣的測試允許開發人員和管理員對所部署的應用程序的健康狀況進行監控,而不是運行調試器。(有時使用調試器會隱藏錯誤,使性能和線程問題變得不明顯)。對于分布式的多層的應用程序來說,跟蹤是一個非常重要的監控和調試工具。這樣的應用程序可能會包含只有在重負荷和實際環境所固有的隨機性的情況下才會觀察得到。
理想情況下,開發人員可以在它們的生產代碼中包括開銷最小的(最多影響性能和大小的10-15%)跟蹤工具。當系統不能按預期執行時,他們可以在系統運行的同時打開用于生產代碼的跟蹤功能,然后確定問題。跟蹤功能允許開發人員在不打亂運行系統的情況下,將問題隔離,然后修正它們。
部署后使用動態屬性改變應用程序的功能性
使用生產網絡(Web)應用程序的最常見的一個問題是,開發人員需要在網站運行的同時改變應用程序的行為。Visual Studio .NET 提供了創建動態屬性的能力,可以在應用程序部署后對它們進行修改。實際上,這些屬性可以在應用程序運行時從XML文件中檢索。開發人員可以很容易地修改這個文件,以改變應用程序的行為,而無需編寫、編譯和部署新代碼。
動態屬性值可以在應用程序部署和應用程序運行時進行修改。你可以使用工具,入記事本或Visual Studio .NET中內置的XML編輯器,來編輯屬性和改變屬性值。動態屬性的一個例子是到數據庫的連接字符串。如果這個應用程序將連接字符串硬編碼到應用程序中,那么在將應用程序從開發轉到測試再轉到生產時,開發人員需要重新編譯這個應用程序。通過將這個屬性設為"動態",連接字符串值可以在應用程序部署后修改。當下一次應用程序運行時,將使用新的數值,從而將應用程序指向一個不同的數據庫而無需修改源代碼。動態屬性設置可以被項目中的多個屬性共享,這樣只須在一個位置更新共享的連接字符串。
結論
Visual Studio .NET提供了發現機制來搜索企業網絡上的所有XML網絡服務(Web service)、數據庫、消息隊列、事件日志記錄、性能計數器和其他服務器資源。 此外,它允許開發人員將這些服務器資源拖放到一個"可視類"上,開始以圖形化的方式進行程序設計。非常簡單地,這意味著Visual Studio .NET允許為服務器進行快速應用程序開發。
分布式網絡應用程序很難進行設置和部署。但是,利用Visual Studio中的新工具,微軟公司提供了一個安裝工具來分布一個分布式應用程序的所有分層。并且利用Visual Studio .NET中的新功能,開發人員可以將發布-部署調試和功能變化內置到他們的應用程序中。
服務器資源管理器 (Server Explorer)
服務器資源(Server Resources)
輕松地設置和部署基于服務器的應用程序
在應用程序部署后,使用運行時跟蹤(Run-Time Tracing)對它們進行調試
Visual Studio .NET擁有開發人員成功地創建功能強大的中間層應用程序所需的所有工具。開發人員可以:
利用MSMQ(Microsoft Message Queuing)保證消息的傳送和跨平臺通信。
將應用程序錯誤寫入到共享的事件日志記錄中,或使用計劃任務安排某個組件在預定的時間激活。
從網絡上的任何一臺計算機中讀取性能指數。
編寫當文件系統變化時激活和執行的組件。
直接將這個功能性拖放到他們的應用程序中,從而使得開發人員可以將重點放在商務問題上,而不是放在組件的組裝配合上。
服務器資源管理器 (Server Explorer)
編寫中間層組件的最大的一個挑戰是發現在企業網絡上有哪些可用的應用程序服務。并且一旦被發現,它們將很難集成到你的應用程序中。
在Visual Studio 6.0中,啟用了Microsoft SQL Server和Oracle數據庫的發現功能。此外,Visual Studio可以都這些數據庫中的模式和數據進行處理。使用數據視圖(Data View)窗口,開發人員可以指向一個數據庫,然后將節點以深入研究數據庫的結構。Visual Studio還提供了一種修改數據庫結構的方法。例如,開發人員可以連接到 SQL Server以查看和修改表格、視圖和存儲過程。
在Visual Studio的下一個版本中,Server Explorer從今天的數據視圖(Data View)又向前走了一大步,可以顯示整個計算機,包括數據庫、消息隊列以及安裝在計算機中的所有其他服務器元素。
![]() 圖1. 服務器資源管理器 (Server Explorer) |
你可以將服務器資源管理器 (Server Explorer)中的某些資源添加到Visual Studio設計器中。當你將這些項目中的某個項目添加到自己的設計器中時,Visual Studio將自動創建一個引用你選定的特定資源的組件。例如,你可以選擇某個特定的消息隊列,然后將其添加到組件設計器(Component Designer)中。Visual Studio將自動創建一個引用這個特定隊列的Message Queue組件。
你可以使用服務器資源管理器 (Server Explorer),在自己的Microsoft Windows服務上執行管理任務。這包括啟動、停止、暫停和繼續服務。服務器旁邊的圖標將根據該服務的當前狀態變化。
默認情況下,服務器資源管理器 (Server Explorer)將把上一次的配置作為你的會話的一部分保存,并在你下一次訪問服務器資源管理器 (Server Explorer)時重新打開它。你還可以按名稱保存特殊配置,并在它們之間進行切換。例如,你可以為軟件開發周期的每個階段設置一個專用的服務器資源管理器 (Server Explorer)配置。
組件設計器(Component Designer)允許進行拖放式程序設計
與窗體設計器允許快速創建客戶端應用程序的方式相同,服務器資源管理器 (Server Explorer)提供了一種快速地、圖形化地創建服務器端組件的方法。組件設計器(Component Designer)將RAD基于窗體的程序設計概念應用到了創建中間層對象中-一種用于創建非可視化對象的可視化方法。現在開發人員無需編寫大量的服務器端代碼,他們可以把將在服務器上運行的服務器組件拖放到設計表面上,再使用屬性瀏覽器將它連接起來,然后雙擊,接著該對象的代碼將被打開。
![]() 圖2. 組件設計器(Component Designer) |
服務器資源(Server Resources)
有保證的消息傳遞和跨平臺通信
Microsoft Message Queuing使得開發人員可以通過發送和接收消息,快速、可靠、同步地與應用程序通信變得很容易。
MSMQ提供了:
與斷開連接的用戶一起創建應用程序的能力- 如當銷售人員在遠方工作時。
有保證的傳遞-例如,對于股票經紀人來說,如果他們的訂單輸入應用程序即使丟失一份訂單,都可能損失上百萬美元。
并發執行,處理多個工作請求。
自動將你的活動記入日志,對于保留審計線索和恢復數據很有益。
到IBM MQSeries的連接,實際上它可以在從大型機到AS/400的每個平臺上運行。
開發人員需要能夠發送和接收消息,創建消息隊列,并管理這些消息隊列。利用下一版本的Visual Studio,Server Explorer和MSMQ組件可以簡化執行任務。
通過將一個消息隊列從服務器資源管理器(Server Explorer)拖放到組件中,該消息隊列和消息的默認數值允許開發人員使用下面的一行代碼發送簡單的消息。
| mq.Send "Hi Mom" |
接收一條消息就像下面一樣簡單。
| message = mq.Receive |
當開發人員在Visual Studio .NET中對MSMQ進行編程時,有兩種選擇:
要發送一條消息,你需要將該消息與一個消息隊列(Message Queue)相關聯。這個對象允許開發人員直接與該隊列進行對話,并盡可能有效地發送消息。
簡單地將現有的隊列拖放到一個組件中,以開始直接針對該組件進行編程。或者直接在Visual Studio中創建、刪除和重命名隊列。
下一個步驟是提供要發送的數據。用戶可以在這個消息隊列上調用發送方法,然后數據將發送到指定的隊列。
| Dim mq as new MessageQueue ("\MyMachineQueue1") mq.Send "This is the message" mq.Send 7 mq.Send myOrder |
消息隊列(Message Queue)組件將從自變量中獲取數據,接著將數據加入到消息中,然后將消息發送給指定的隊列。
將應用程序錯誤寫入到一個共享的事件日志記錄中
用于Microsoft Windows NT和Windows 2000的應用程序定期地將警告和錯誤寫入到事件日志記錄(Event Log)中。事件日志記錄為Windows和應用程序提供了一個標準地、集中的方法來記錄重要的軟件和硬件事件。事件日志記錄(Event Log)為查看日志記錄提供了一個標準的用戶界面,并為檢查日志記錄提供了一個編程接口。
在Visual Studio .NET中,開發人員可以將事件日志記錄(Event Log)從服務器資源管理器(Server Explorer)拖放到組件中,然后編寫應用程序專用的代碼來讀寫事件日志記錄(Event Log)。
還可以創建和編寫自定義事件日志記錄。要做到這一點,只需從工具箱中拖動一個事件日志記錄(Event Log)組件,接著為該日志記錄指定一個隊列名稱,然后日志記錄將自動創建。
最后,你可以在一條記錄被寫入到日志記錄時運行代碼。例如,當一條錯誤記錄被寫入到應用程序日志記錄時,將通知管理員。
使用計劃任務安排某個組件在預定的時間激活
在預定的時間運行組件對于企業客戶來說是一項很重要的需求。企業按計劃經營。書店要在每個營業日結束時關閉。查賬需要每月進行。需要在每天的早晨提供詳細的報告進行分析。這些都是計劃任務的例子,這些都是自動處理發生的場合。
多年來,Visual Studio已使得創建在Windows操作系統內部運行的可執行文件和組件變得很容易。現在,Visual Studio允許用戶創建可以按預定的時間和間隔運行的應用程序和組件。
例如,一個零售連鎖店可能會使用計劃組件。在商店關門時,商店數據庫的內容必須傳送給公司總部。每個商店內在指定時間運行某個計劃組件。該計劃組件檢查這一天的新的銷售情況,將它們打包,然后發回總部。 此外,每個商店在凌晨兩點進行存貨分析。低于某個指定閾值的商品將從經銷商那里定購。
要使用計劃組件,可以將計劃事件(Scheduled Event)組件從工具箱拖放到組件設計器(Component Designer)中。一旦ScheduledEvent成為該組件的一部分,你就可以通過在屬性窗口中設置屬性來對其進行自定義。雙擊該組件填充在組件激活時執行的代碼:
| Public Sub SchdEvent1_OnScheduledEventReceive (EventSource as Object, e as ScheduledEvent) 'User code goes here… End Sub |
使用性能計數器(Performance Counters)從任何一臺網絡計算機中讀取性能指數
性能監控是指獲取和分析應用程序、服務和驅動程序提供的性能數據,以確定系統的瓶頸,并對系統和應用程序的性能進行調整的過程。Windows 2000和Windows NT提供了通過性能計數器和性能監控器(Performance Monitor)應用程序,對系統性能進行監控的方法。此外,性能監控器(Performance Monitor)可以在達到閾值時對計數器數值進行響應。例如,將事件寫入到事件日志記錄中或關閉計算機。
Visual Studio .NET將提供一個組件,它可以很容易地創建新的計數器,讀寫任何性能計算器的數值。這個組件的一個用途就是報告每秒鐘處理的訂單數。一個商務對象有一個可以在部署后修改的屬性,用來打開或關閉對處理每個訂單的計時。當負荷很重、吞吐量減少時,管理員可以打開這個工具,如何使用性能監控器(Performance Monitor)來確定應用程序的運行情況。如果管理員發現系統的負荷很重,并且應用程序不能足夠快地對訂單進行處理,可以對資源進行重新分配以提高性能。
要使用性能計數器(Performance Counter)組件,只需將它從服務器資源管理器(Server Explorer)中拖放到一個組件中,然后雙擊它編寫應用程序專用的代碼。
目錄監視器(Directory Watcher)在文件系統發生變化時激活
當今使用的一個常見的商用實踐是編寫長期運行的應用程序,對文件變化進行監控以取消商務過程。利用Visual Studio .NET目錄監視器(Directory Watcher)組件創建一個更加有效的方法來完成此項工作非常容易。該組件對系統目錄變化通知進行監聽,并在目錄或目錄內的某個文件發生變化是激發事件。
開發人員使用這個組件的一個例子就是FTP(File Transfer Protocol,文件傳輸協議)。設想有一個基于Web(網絡)的新聞網站設立了一個FTP服務器。來自世界各地的新聞記者都可以將他們的題材上載到這個FTP服務器上,目錄監視器(Directory Watcher)組件將使用電子郵件通知編輯。
簡單地將一個目錄監視器(Directory Watcher)組件從工具箱中拖出,然后設置確定該組件何時激活的屬性即可。組件可以在目錄發生變化、被創建或被刪除,以及某個文件被添加、重命名或被刪除時激活,然后執行代碼。雙擊該組件編寫在文件或目錄事件發生時執行的代碼。
輕松地設置和部署基于服務器的應用程序
企業管理人員面臨著部署分布式應用程序組件,并在它們的生存周期內對它們進行管理的挑戰。組件開發商和解決方案集成商承擔著向管理員和開發人員提供足夠的信息來推動應用程序部署的任務。在分布式應用程序模型中,目標是使組件開發商和集成商能夠非常容易地提供部署信息,而不會犧牲管理員的模型的有效性。
部署的目標是很容易地將來自多種平臺的解決方案或任意規模的項目或結構傳送給其他多種平臺。Visual Studio .NET部署通過跨多平臺和計算機工作解決了這個問題。它允許進行n層部署(即在.單一操作中,部署到多臺目標計算機)。它還使得部署到網絡(Web)服務器和COM+服務器變得很輕松。
創建跨越Windows DNA應用程序所有分層的安裝應用程序
開發人員常常需要部署一個分布式應用程序的全部3個分層,這些分層通常都是使用多種語言編寫的。利用下一個Visual Studio版本中新的部署工具,創建一個多層的安裝程序十分容易。
部署過程中使用自定義安裝程序(Installer)設置服務器資源
將應用程序服務器功能應用到中間層組件中將會產生對該服務器的依賴性。開發人員可以創建一個組件,然后將一個消息隊列(Message Queue)從工具箱拖放到一個類上。這個消息隊列(Message Queue)將存在于這個開發人員的計算機上。但是,當部署這個應用程序時,如果這個隊列不存在則需要重新創建。Visual Studio .NET包括自定義安裝程序,可以確保依賴這些基于服務器的資源可以在部署時創建。
![]() 圖3. 添加安裝程序(Add Installer) |
在屬性(Properties)窗口中有一個鏈接,Add Installer,當點擊這個鏈接時,將會向一個包含消息隊列安裝程序化(Message Queue Installer) 組件的項目中添加一個新類。消息隊列安裝程序化(Message Queue Installer) 組件知道如何創建一個消息隊列的細節。
在應用程序部署后,使用運行時跟蹤(Run-Time Tracing)對它們進行調試
跟蹤是允許開發人員對應用程序進行測試的一個特性。這樣的測試允許開發人員和管理員對所部署的應用程序的健康狀況進行監控,而不是運行調試器。(有時使用調試器會隱藏錯誤,使性能和線程問題變得不明顯)。對于分布式的多層的應用程序來說,跟蹤是一個非常重要的監控和調試工具。這樣的應用程序可能會包含只有在重負荷和實際環境所固有的隨機性的情況下才會觀察得到。
理想情況下,開發人員可以在它們的生產代碼中包括開銷最小的(最多影響性能和大小的10-15%)跟蹤工具。當系統不能按預期執行時,他們可以在系統運行的同時打開用于生產代碼的跟蹤功能,然后確定問題。跟蹤功能允許開發人員在不打亂運行系統的情況下,將問題隔離,然后修正它們。
部署后使用動態屬性改變應用程序的功能性
使用生產網絡(Web)應用程序的最常見的一個問題是,開發人員需要在網站運行的同時改變應用程序的行為。Visual Studio .NET 提供了創建動態屬性的能力,可以在應用程序部署后對它們進行修改。實際上,這些屬性可以在應用程序運行時從XML文件中檢索。開發人員可以很容易地修改這個文件,以改變應用程序的行為,而無需編寫、編譯和部署新代碼。
動態屬性值可以在應用程序部署和應用程序運行時進行修改。你可以使用工具,入記事本或Visual Studio .NET中內置的XML編輯器,來編輯屬性和改變屬性值。動態屬性的一個例子是到數據庫的連接字符串。如果這個應用程序將連接字符串硬編碼到應用程序中,那么在將應用程序從開發轉到測試再轉到生產時,開發人員需要重新編譯這個應用程序。通過將這個屬性設為"動態",連接字符串值可以在應用程序部署后修改。當下一次應用程序運行時,將使用新的數值,從而將應用程序指向一個不同的數據庫而無需修改源代碼。動態屬性設置可以被項目中的多個屬性共享,這樣只須在一個位置更新共享的連接字符串。
結論
Visual Studio .NET提供了發現機制來搜索企業網絡上的所有XML網絡服務(Web service)、數據庫、消息隊列、事件日志記錄、性能計數器和其他服務器資源。 此外,它允許開發人員將這些服務器資源拖放到一個"可視類"上,開始以圖形化的方式進行程序設計。非常簡單地,這意味著Visual Studio .NET允許為服務器進行快速應用程序開發。
分布式網絡應用程序很難進行設置和部署。但是,利用Visual Studio中的新工具,微軟公司提供了一個安裝工具來分布一個分布式應用程序的所有分層。并且利用Visual Studio .NET中的新功能,開發人員可以將發布-部署調試和功能變化內置到他們的應用程序中。


