Вопрос о наилучшей практике автоматического применения - PullRequest
1 голос
/ 02 октября 2009

У нас есть автоматическое приложение без пользовательского интерфейса, которое периодически запускается.

Это приложение VB.NET. Вместо того, чтобы разрабатывать его как службу или бесформенное приложение Windows, он разрабатывался с формой, и весь код помещался в логику form_load с оператором «END» в качестве последней строки кода для завершения программы.

Кроме создания программы, которая использует ненужные ресурсы форм Windows, есть ли веская причина для отправки этого кода для доработки, чтобы изменить его, чтобы поместить логику запуска в подкаталог MAIN файла BAS?

Если программа предназначена для входа и выхода из микса (в отличие от непрерывного запуска), есть ли смысл сделать ее службой?

Если приложение разработано с помощью формы, нужно ли мне беспокоиться о том, чтобы было представлено диалоговое окно, на которое никто не ответит, даже если в приложении нет команд MessageBox?

Я помню, что когда-то в VB6 было что-то, что можно было проверить, чтобы приложение работало без присмотра, предположительно, чтобы избежать диалогов.

Ответы [ 5 ]

4 голосов
/ 02 октября 2009

Я не знаю, есть ли условия, когда это не будет работать.

Однако, если код был предоставлен кем-то, с кем вы будете работать в будущем, я бы посмотрел на это как на возможность помочь им понять лучшие практики (а это не так) и помочь им понять, что вы ожидаете лучших результатов. код практики, который будет доставлен.

3 голосов
/ 02 октября 2009

Прежде всего, вам не нужно запускать его в форме. Для презентации есть формы, поэтому делать это не следует.

Если вы не хотите связываться с преобразованием приложения в Службу (не сложно, но и не очень просто), вы должны создать консольное приложение, а затем запланировать его с помощью планировщика задач Windows.

Таким образом, вы создаете консольное приложение с функцией Main, которая делает именно то, что вам нужно.

В любом случае, программист может показывать окна, поэтому сообщения не должно быть. Любое общение должно осуществляться через вход в систему: локальные файлы, события windows, база данных.

Если вам нужна дополнительная информация по любому из них, спросите меня.

1 голос
/ 02 октября 2009

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

Однако, похоже, что разработчик должен был выбрать проект «Консольное приложение» вместо проекта «Windows Forms» для создания этого приложения.

0 голосов
/ 02 октября 2009

Если вы не хотите, чтобы окно консоли отображалось, просто выполните следующее.

Создайте новый класс «Program.vb», добавьте открытый общий метод Main () и переместите логику «OnLoad» из формы в этот метод.

Затем удалите форму и измените объект запуска проекта (доступно в окне свойств проекта), чтобы использовать Program.Main вместо формы.

Это будет иметь тот же эффект, без использования ресурсов форм Windows. Затем вы можете удалить ссылки на System.Windows.Form и System.Drawing.

0 голосов
/ 02 октября 2009

Отправь обратно. Приложение объемнее и медленнее, чем нужно, хотя это не будет большой проблемой. Вероятность истощения ресурсов несколько выше. Но главная причина: преобразовать его в консольное приложение очень просто.

...