я также смотрю, какую технологию использовать, я думаю, что 1 вы можете взглянуть на
Appcelerator Titanium - он позволяет разрабатывать для настольных и мобильных платформ с использованием веб-технологии, такие как HTML5 / CSS / JS и для настольных платформ, даже PHP / Python
все еще оценивают его
, также рассматривая RIA (AIR, Silverlight, Titanium) и Native Web Applications (PHP) , ASP.NET MVC). RIA являются мощными в том смысле, что они могут взаимодействовать с файловой системой и, как правило, быстрее, поскольку они существуют локально. веб-приложения не могут взаимодействовать с файловой системой и, как правило, работают медленнее и имеют большую задержку. но так как они существуют в Интернете, я могу получить к нему доступ где угодно.
На самом деле я хотел согласиться с открытыми веб-технологиями, такими как HTML5 / CSS3 / JS / PHP / Python, но серьезно рассматривал платформу .NET. C # / F # / WPF / Entity Framework / Silverlight и функции Windows 7 Значки оверлеев, индикатор выполнения, списки переходов показывают большой потенциал. и возможность использования 1 фреймворка на нескольких языках как для веб-приложений, так и для настольных приложений, даже в RIA, является отличным преимуществом. Я также видел много видеороликов о шаблонах и практиках. MS рекомендует качество и т. д., это просто фантастика, поначалу это может быть трудно выучить, но я думаю, что оно того стоит. недостаток многие скажут, даже я это его закрытый источник. инструменты, как правило, дороже
Вы можете легко написать приложение, которое сделает это за вас. Используйте функцию CreateProcess (), установите флаг CREATE_SUSPENDED в параметрах dwCreationFlags
.
Для вашей конкретной задачи приложение может сделать следующее: вызвать CreateProcess (), чтобы запустить приложение и проверить код ошибки, затем вызовите MessageBox (), чтобы сообщить вам, что нужно прикрепить отладчик, затем после того, как вы нажали кнопку в окне сообщения (MessageBox () возвращает), вызовите ResumeThread (), чтобы возобновить работу приложения.
Итак, что же произойдет, когда произойдет Закрытие
?), но, с другой стороны, глядя на реализацию обработчика, станет очевидно, что происходит.
Думаю, что выбрать, зависит от того, какой из двух вы хотите быть более очевидным; сайт регистрации или реализация обработчика.
Или, альтернативно, вы можете пойти на нечестивую комбинацию обоих методов:
theObject.Closing += ClosingHandlerSaveResults;
Теперь и сайт регистрации, и реализация одинаково очевидны, и ни один из них не выглядит особенно элегантным (к тому же, это, вероятно, нарушает принцип DRY.)
Для записи я предпочитаю первую схему именования, когда theObject
содержится в области, отличной от реализации SaveResults
, и вторая схема, когда я подключаю обработчики к событиям, которые все содержатся в одном классе.
Назовите его в честь того, что фактически делает обработчик.
// event += event handler
saveButton.Click += SaveData();
startButton.Click += StartTheTimer();
Я называю свои обработчики событий аналогично тем, которые создаются Visual Studio (+, =, вкладка, вкладка, которую вы упомянули). Я стараюсь, чтобы имя было последовательным в моем коде, и я знаю, что буду создавать обработчики с помощью автосоздателя VS, по крайней мере, некоторое время.
Подчеркивания меня не беспокоят.
возможно: OnObjectNameEventName, например
private void OnTheClassClosing(object sender, EventArgs e)
Это соответствует внутренним методам событий, и с добавлением имени объекта, это должно помочь различать, кроме того,
Пользователь щелкает форму, вызывает OnClicked, делает свое дело, а затем вызывает событие Clicked, это было бы естественным с моей точки зрения.