2009-01-13 74 views
1

對於某些人來說,這可能是一個愚蠢的問題,但是從共享驅動器運行Windows Forms .Net應用程序的優點/缺點是什麼。直到最近,我甚至不知道這是可能的。從研究看來,.Net 3 SP1允許這種行爲(不需要任何安全更改)。從映射的驅動器或共享文件夾運行.NET程序 - 優點/缺點

我很好奇任何併發問題或可伸縮性。

此外,我假設.Net仍然需要在每個客戶端上運行共享驅動器的應用程序。任何幫助表示讚賞。

回答

4

我們有許多用.Net編寫的控制檯程序,可以進行夜間批處理。這些程序「活着」在通過映射驅動器訪問的SAN上。由於我們仍然使用.Net 2.0,處理服務器必須專門配置以允許這些程序運行,當然處理服務器需要安裝該框架,但是否則它的效果很好。 .Net3.5sp1甚至可以修復特殊配置。

現在,這種情況可能與您的想法有所不同。如果您想將應用程序部署到共享文件夾,以便許多不同的用戶可以訪問它,這是一個壞主意。如果你寫入與應用程序相同的文件夾中的任何數據文件(無論如何都是一個壞主意,但人們總是這樣做),那麼所有用戶都會共享(並鎖定)這些文件。此外,當前運行該程序的任何用戶都會導致文件系統在程序文件上放置一個鎖,可能會使您無法部署更新。如果你想這樣做,.Net提供了一個名爲ClickOnce的優秀系統來支持將應用程序部署到網絡共享。

2

您需要在每個客戶端上安裝正確的.Net版本,但沒有理由不能從共享驅動器運行,我們在此處和客戶端沒有問題,只要用戶有權訪問該共享。

2

併發性和擴展性不是問題,但在最極端的情況下。您只是使用網絡共享作爲提供組件的驅動器。該應用程序仍在工作站上運行,僅消耗該機器的操作系統資源和CPU週期。與ASP.NET應用程序不同。

如果應用程序本身使用某種共享資源,而非非典型的dbase服務器,那麼併發性和擴展性肯定會發揮作用。但是,無論應用程序是否從網絡共享運行,情況都是如此。

一個考慮因素:部署更新可能很困難。您必須讓所有用戶退出應用程序,以便在任何程序集上都沒有鎖定。將其構建到應用程序中將是明智的。像查找特定文件名的FileSystemWatcher一樣簡單,將完成工作。

相關問題