понедельник, 26 декабря 2011 г.

.NET Notepad идет в массы!

Здравствуйте. Сегодня мне пришло весьма интересное письмо:
Congratulations,

.NET Notepad, one of your products, has been added to Softpedia's database
of software programs for the Windows operating system. It is featured with
a description text, screenshots, download links and technical details on
this page:
http://www.softpedia.com/get/Office-tools/Text-editors/NET-Notepad.shtml

The description text was created by our editors, using sources such as text
from your product's homepage, information from its help system, the PAD
file (if available) and the editor's own opinions on the program itself.


".NET Notepad" has been tested in the Softpedia labs using several
industry-leading security solutions and found to be completely clean of
adware/spyware components. We are impressed with the quality of your
product and encourage you to keep these high standards in the future.

To assure our visitors that .NET Notepad is clean, we have granted it with
the "100% FREE" Softpedia award. To let your users know about this
certification, you may display this award on your website, on software
boxes or inside your product...

суббота, 24 декабря 2011 г.

Реализация поведения контролов в Silverlight

Здравствуйте. Сегодня поговорим о том, как определять поведение для различных контролов в Silverlight. Начнем с простого перетаскивания по канвасу. Задача, в принципе, очень простая, и даже просто погуглив можно найти нужное решение (например, раз и два), но я хочу сделать это решение чуть более универсальным.
Итак, в основе перетаскивания лежит использование 3х событий: MouseLeftButtonDown, MouseLeftButtonUp и MouseMove.

пятница, 23 декабря 2011 г.

Получение количества строк в каждой таблице базы данных

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

вторник, 20 декабря 2011 г.

Готовим вкусный блокнот из AvalonEdit и AvalonDock

Всем привет. Сегодня хочу поделиться опытом работы с контролами AvalonEdit и AvalonDock
Итак, моя цель - сделать блокнот с подсветкой синтаксиса, intellisense и оконным интерфейсом, как у Visual Studio 2010.

четверг, 27 октября 2011 г.

Использование готовых XML редакторов

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

среда, 26 октября 2011 г.

Полезный класс для тестов

Часто бывает так, что для тестирования класса нужен набор объектов, заполненных произвольными или предопределенными данными. Но заполнять эти объекты - дело муторное. Ниже простой в исполнении и использовании класс, предназначенный специально для заполнения объектов.

вторник, 25 октября 2011 г.

Umbraco CMS за 5 секунд

Решил попробовать поставить Umbraco CMS используя WebMatrix. Процесс оказался настолько простой, что даже комментировать скриншоты нет нужды.

Устанавливаем DotNetNuke за 5 минут

Доброе время суток. Решил я на днях поиграться с таким замечательным инструментом, как WebMatrix. Начал я с установки DotNetNuke.

пятница, 2 сентября 2011 г.

Энкодинг и декодинг строки

В процессе работы часто приходится кодировать/декодировать строки. Обычно это предполагается делать в рамках Веб-приложения, потому использование конструкции
HttpContext.Current.Server.HtmlEncode(source); * This source code was highlighted with Source Code Highlighter.
выглядит оправданным. Но за рамками Веб приложения этот код порождает NullReferenceException. Потому я бы советовал использовать
HttpUtility.HtmlEncode(source); * This source code was highlighted with Source Code Highlighter.
Так как это будет работать везде. Как бонус - расширяющие методы для энкодинга
  1. public static string ToHtmlEncoded(this String source)
  2. {
  3.   var result = HttpUtility.HtmlEncode(source);
  4.   if (result != null) result = result.Replace("'", "'");
  5.   return result;
  6. }
  7. public static string ToHtmlDecoded(this String source)
  8. {
  9.   var result = source.Replace("'", "'");
  10.   result = HttpUtility.HtmlDecode(result);
  11.   return result;
  12. }
* This source code was highlighted with Source Code Highlighter.

четверг, 1 сентября 2011 г.

Идея

Практика создания простого приложения.

Всем доброе время суток.
Для меня в данный момент инетресна тема создания рабочего приложения (или серии приложений - как повезет) от начала и до самого конца. Тема интересная потому, что это позволяет:

1. Проверить свои силы в разных областях программирования
2. Изучить новые технологии
3. Встрясти начинающий заплывать ленью мозг

Полезные расширяющие методы

То ли где то увидел, то ли сам придумал.. в обще мне помню, откуда взял эти расширяющие методы, но мне с ними намного удобнее.
  1. namespace AMuradov.Extensions
  2. {
  3.   public static class StringExtensions
  4.   {
  5.     public static string StringFormat(this string source, object arg)
  6.     {
  7.       return string.Format(source, arg);
  8.     }
  9.  
  10.     public static string StringFormat(this string source, object arg0, object arg1)
  11.     {
  12.       return string.Format(source, arg0, arg1);
  13.     }
  14.  
  15.     public static string StringFormat(this string source, object arg0, object arg1, object arg2)
  16.     {
  17.       return string.Format(source, arg0, arg1, arg2);
  18.     }
  19.  
  20.     public static string StringFormat(this string source, params object[] args)
  21.     {
  22.       return string.Format(source, args);
  23.     }
  24.  
  25.     public static bool IsNullOrEmptyString(this string source)
  26.     {
  27.       return string.IsNullOrEmpty(source);
  28.     }
  29.   }
  30. }
* This source code was highlighted with Source Code Highlighter.

Этот код можно использовать так:

  1. var someString = "{0}";
  2. //...
  3. if (!someString.IsNullOrEmptyString())
  4. {
  5.   var text = someString.StringFormat(10);
  6.   // Что то делаем с этим текстом
  7. }
* This source code was highlighted with Source Code Highlighter.

Application_Error и объекты сессии

Наткнулся на вполне логичный но неочевидный баг.

Не следует использовать объекты сессии в событии Application_Error, поскольку исключение, приведшее к ошибке, может возникнуть в том контексте, в котором сессия ещё не доступна. Тогда попытка доступа к сессии порождает второе исключение.

пятница, 11 марта 2011 г.

Первая запись

Доброе время суток. Я таки планирую начать тут писать о чём-либо. Просто для себя. Это пробная запись - на ней я потестирую как тут что работает, ну а дальше будут посты по конкретным темам. Не обещаю писать часто, но писать буду.