Службы Windows это удобный способ запускать и контролировать программы, выполняемые на заднем плане. Они часто используются в больших приложениях или как альтернатива консоли или Form приложения, которое можно спрятать в трей. Сегодня я попробую объединить все идеи и наработки касательно сервисов и консольных приложений, используемые мной за время моего «молчания» лета.
Продолжить чтение "Еще раз о работе со службами (Windows Service) на C#" »
В Visual Studio есть шаблон для создания сервисов. Проблема в том, что запустится они могут только с помощью SVCUTIL, а это отнимает время на сопровождение (обычный F5 гораздо удобней и быстрее). Еще возникают неудобства с отладкой — конечно, Debugger.Launch() никто не отменял, но эти 5 секунд хлопанья по окошкам для подключения программы к студии быстро […]
Продолжить чтение "C#: Запуск Windows сервисов как консольных приложений" »
Устал я ждать обновление Longterm версии, так-что решил обновится уже сейчас. Longterm версия сейчас 2.6.7 особо не отличается от описанной в моем предыдущем посте. И для меня, как для человека, пишущего код на C# практически каждый день — морально устарела. Чтобы сохранить Вам, дорогой читатель немного времени, выложил я также, обновленные скрипты. Сегодня речь пойдет […]
Продолжить чтение "Компиляция Mono 2.10.2 с исходного кода" »
Из коробки последняя версия Mono живет только в дистрибутивах от Novell. Главный пример тому OpenSUSE. В других дистрибутивах — таких как Debian, Fedora и Ubuntu в репозиториях пылится не очень свежая версия. Обычно это LTS версия 2.6 занимающая свое место с конца 2009-ого года. Следующей LTS версией будет 3.x релиз которой еще не запланирован. Чтобы […]
Продолжить чтение "Установка Mono 2.10.2 и MonoDevelop 2.6 на Debian" »
В JavaScript уже давно есть глобальная функция setTimeout. В полном .NET (например Windows Forms) для этих-же целей можно использовать таймер (Threading.Timer) с настройкой без повторений. А вот для SilverLight такой метод реализовать почему-то забыли, хотя именно в интерфейсе пользователя он необходим больше всего. Примеров можно придумать массу. Первое что приходит в голову — отложенное выполнение […]
Тема не новая, просто еще раз с ней столкнулся, в одном неожиданном для меня месте. Так что, если вы работаете со значениями с плавающей точкой, будьте готовы к вот такому, с первого взгляда не понятному явлению. Это скриншот из панели WatchList VisualStudio 2010, получается, что 1.6+0.4 не равно 2, если используется тип float. Попробую объяснить.
Для описания API проекта или библиотеки, а иногда — просто придания ценности проекту и облегчения жизни следующим разработчикам используются комментарии кода. Тут 2 приема «//» комментарий кода «///» комментарий для документации с дополнительными тегами и т.д. Комментарии в тремя косыми конвертируются студией в XML файл документации (если этого не происходит, нужно поставить соответствующий флаг в […]
Продолжить чтение "Документация на основе комментариев C# кода" »
Речь пойдет о StringTemplate 3.1 для C#, который я использовал для генерации веб страниц. Вообще, этот движок шаблонизации используется для разных целей — например, для генерации кода или SQL. Основным достоинством считается то, что библиотека переписана на разных языках — C#, Java, Python и т.д. Хоть о StringTemplate написано несколько больших страниц, документации все еще […]
И так, я рассказал об основных приемах использования StringTemplate. В качестве завершения, хочу остановится на работе со словарем, условиями и циклами в шаблонах. Для начала, нужно запомнить таблицу разрешения имен:
В первой части я показал пример простого создания шаблона и его генерация в файл. Теперь, расскажу о дополнительных, интересных свойствах StringTemplate. Скиннинг или наследование шаблонов В StringTemplate предусмотрено наследование шаблонов. Предположим, вы создаете сайт с разным дизайном, или на разных языках. В таком случае, можно создать осную папку шаблонов (в моем примере — это super), […]