2009-12-23 74 views
0

我正在寫一個Windows窗體應用程序,將其出售給中小型公司,供局域網用戶使用。Windows窗體部署

爲了方便網絡管理員,我想使用.net 3.5 SP1,並有從網絡共享運行的應用程序。這樣,客戶端安裝很少(我知道他們必須安裝.Net 3.5 SP1)。

管理員將安裝該應用程序在服務器,運行Windows安裝程序,然後通過電子郵件的用戶的路徑的網絡路徑,使他們能夠開始使用該應用程序。另一種方法是讓管理員在數百臺PC上安裝應用程序,我試圖避免這種情況。每次我更新應用程序時,管理員只需要將其重新安裝到一臺服務器中即可。

又,應用程序將具有SQL Express數據庫連接到它來存儲其數據,或者它可以被配置來訪問外部服務器的SQL(同一LAN)。

如果您使用了此類部署,我想知道您的意見,以及我應該注意的是什麼。

我擔心上的.Net 3.5 SP1滲透了一點,但我使用LINQ到SQL遍,所以我不認爲我有任何其他的選擇。

在此先感謝。

回答

1

不是一個好主意。大多數地方要麼足夠小,在每個工作站上運行安裝程序都很好(和標準做法),或者他們已經有能力執行自動安裝。

最好的辦法是堅持使用標準的MSI軟件包,讓客戶決定如何使用現有工具來部署MSI。

您可以引入一些自動更新邏輯或使用Click Once部署,但它們都有問題。

+0

Bryan, 如果您是一家擁有250名用戶的公司的網絡管理員,您會購買一臺必須安裝在250臺電腦中的軟件,或找藉口不買它? – anon2009 2009-12-23 16:42:08

+0

如果可能,我試圖避免客戶端安裝。對於我試圖請求的管理員來說,這是一個維護頭痛的問題 – anon2009 2009-12-23 17:02:54

+0

不,我會有一些可以讓我自動部署MSI的計算機。這是一個已經被許多方面解決的問題。 – 2009-12-23 18:13:42

0

您是否可以使用OneClick部署?有些陷阱需要注意,但它應該處理自動更新。

的稍強的方法是安裝一個自我更新的EXE(如此這般一個數據庫來檢查發佈的版本,下載,它需要這些組件,裝載最終應用之前)。

0

看一看這裏: http://weblogs.sqlteam.com/jhermiz/archive/2007/08/14/60284.aspx

,關於CLR使用CAS運行.NET框架計劃(代碼訪問安全)。這意味着您不再爲網絡上的用戶/組分配權限。相反,您將信任分配給程序員開發的實際代碼。基本上,您的應用程序組合文件將與機器的安全策略進行比較。當你在你的本地機器上運行你的應用程序時,它的工作方式非常好,這是因爲你正在MyComputer區域運行你的代碼。默認情況下,MyComputer區域具有FullTrust(無限制權限)來執行幾乎任何操作。這就是爲什麼該應用程序在您的本地PC上工作得很好......現在爲什麼它不能在服務器上工作。在服務器上

您的申請保釋,因爲服務器是更嚴格的給予其區是不具有完全信任從任何一臺機器只是任何人都可以運行一個可執行的LocalIntranet區。另外,它更加安全(這是從現在起微軟安全背後的全部理念,使它更安全)。由於現在不是任何人都可以將共享服務器中的可執行文件放在一起並運行它們,它也變得更有意義。

有幾種方法可以避免這種情況。您可以採取正確的方式,這需要更長的時間,似乎更復雜一點,或者您可以採用另一種方式,這種方式要快得多,但卻是不好的做法和安全漏洞。

2種方式是:

  • 創建一個強名稱密鑰,並在您的應用程序集信息使用 。VB 文件
  • 修改安全策略,充分 信任LocalIntranet區
+0

Robert, 我知道CAS,但明智的做法是「觸摸」工作站嗎? – anon2009 2009-12-23 16:43:58

+0

編輯: 我想盡可能避免客戶端安裝。對於我試圖取悅的管理員來說,維護令人頭痛。 – anon2009 2009-12-23 16:45:36