Картинка блога

Службы 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" »

8 марта, 2011

В JavaScript уже давно есть глобальная функция setTimeout. В полном .NET (например Windows Forms) для этих-же целей можно использовать таймер (Threading.Timer) с настройкой без повторений. А вот для SilverLight такой метод реализовать почему-то забыли, хотя именно в интерфейсе пользователя он необходим больше всего. Примеров можно придумать массу. Первое что приходит в голову — отложенное выполнение […]

Продолжить чтение "C#: Silverlight таймаут (Timeout)" »

Тема не новая, просто еще раз с ней столкнулся, в одном неожиданном для меня месте. Так что, если вы работаете со значениями с плавающей точкой, будьте готовы к вот такому, с первого взгляда не понятному явлению. Это скриншот из панели WatchList VisualStudio 2010, получается, что 1.6+0.4 не равно 2, если используется тип float. Попробую объяснить.

Продолжить чтение "Неравенства вещественных чисел." »

Для описания API проекта или библиотеки, а иногда — просто придания ценности проекту и облегчения жизни следующим разработчикам используются комментарии кода. Тут 2 приема «//» комментарий кода «///» комментарий для документации с дополнительными тегами и т.д. Комментарии в тремя косыми конвертируются студией в XML файл документации (если этого не происходит, нужно поставить соответствующий флаг в […]

Продолжить чтение "Документация на основе комментариев C# кода" »

19 сентября, 2010

Речь пойдет о StringTemplate 3.1 для C#, который я использовал для генерации веб страниц. Вообще, этот движок шаблонизации используется для разных целей — например, для генерации кода или SQL. Основным достоинством считается то, что библиотека переписана на разных языках — C#, Java, Python и т.д. Хоть о StringTemplate написано несколько больших страниц, документации все еще […]

Продолжить чтение "StringTemplate на C#. (Часть 1)" »

19 сентября, 2010

И так, я рассказал об основных приемах использования StringTemplate. В качестве завершения, хочу остановится на работе со словарем, условиями и циклами в шаблонах. Для начала, нужно запомнить таблицу разрешения имен:

Продолжить чтение "StringTemplate на C# (Часть 3)" »

19 сентября, 2010

В первой части я показал пример простого создания шаблона и его генерация в файл. Теперь, расскажу о дополнительных, интересных свойствах StringTemplate. Скиннинг или наследование шаблонов В StringTemplate предусмотрено наследование шаблонов. Предположим, вы создаете сайт с разным дизайном, или на разных языках. В таком случае, можно создать осную папку шаблонов (в моем примере — это super), […]

Продолжить чтение "StringTemplate на C# (Часть 2)" »