Запустите программу .NET с подключенного диска или общей папки - плюсы и минусы - PullRequest
1 голос
/ 13 января 2009

Это может быть глупым вопросом для некоторых из вас, но каковы плюсы и минусы запуска приложения Windows Forms .Net с общего диска. До недавнего времени я даже не знал, что это возможно. По результатам исследований, похоже, что .Net 3 SP1 допускает такое поведение (не требуя каких-либо изменений безопасности).

Мне любопытно узнать о проблемах параллелизма или масштабируемости.

Кроме того, я предполагаю, что .Net по-прежнему требуется на каждом клиенте, который будет запускать приложение с общего диска. Любая помощь приветствуется.

Ответы [ 3 ]

4 голосов
/ 13 января 2009

У нас есть ряд консольных программ, написанных на .Net, которые выполняют ночную пакетную обработку. Эти программы «живут» в сети SAN, доступ к которой осуществляется через подключенный диск. Поскольку мы все еще находимся на .Net 2.0, сервер обработки должен был быть специально настроен для запуска этих программ, и, конечно, серверу обработки требуется установленная среда, но в остальном он прекрасно работает. .Net3.5sp1 даже исправит специальную конфигурацию.

Теперь этот сценарий, вероятно, отличается от того, о чем вы думаете. Если вы хотите развернуть приложение в общей папке, чтобы к нему могли обращаться многие пользователи, это плохая идея. Если вы записываете какие-либо файлы данных в той же папке, что и приложение (в любом случае, это плохая идея, но люди делают это постоянно), то эти файлы становятся общими (и блокируются) всеми пользователями. Кроме того, любой пользователь, который в данный момент запускает программу, заставляет файловую систему блокировать программный файл, что потенциально блокирует вас от развертывания обновлений. Если вы хотите сделать это, .Net предоставляет отличную систему под названием ClickOnce для поддержки развертывания приложений на сетевых ресурсах.

2 голосов
/ 13 января 2009

Параллельность и масштабирование не проблема, но в самых экстремальных обстоятельствах. Вы просто используете сетевой ресурс в качестве диска для поставки сборок. Приложение по-прежнему работает на рабочей станции, потребляя ресурсы операционной системы и циклы ЦП только с этой машины. В отличие от приложения ASP.NET.

Если само приложение использует какой-то общий ресурс, а не типично сервер dbase, параллелизм и масштабирование определенно играют роль. Но это будет иметь место в том случае, если приложение запускается из общего сетевого ресурса.

Одно соображение: развертывание обновления может быть сложным. Вам нужно будет заставить всех пользователей выйти из приложения, чтобы не было никаких блокировок ни на каких сборках. Встраивать это в приложение было бы разумно. Что-то простое, например FileSystemWatcher, ищущий определенное имя файла, выполнит работу.

2 голосов
/ 13 января 2009

На каждом клиенте должна быть установлена ​​правильная версия .Net, но нет причины, по которой вы не сможете запускаться с общего диска, мы делаем это здесь и на клиентах без проблем, пока пользователь имеет доступ к общему ресурсу.

...