Картинка блога
26 февраля, 2009

Вчера я завершил основную часть программы YouTube View. Основной задачей которой является конвертирование файлов из YouTube в AMV. AMV это расширение файла, который можно просматривать на дешевых китайских плеерах. Среди дополнительных возможностей — скачивание и просмотр YouTube роликов без браузера. Пользуйтесь на здоровье. 😉

Продолжить чтение "YouTube View v0.1" »

Часто возникает потребность отфильтровать одинаковые элементы в списке. В LINQ есть метод Distinct, который получает интерфейс IEqualityComparer. Не совсем понятно, почему метод не может получать lamda-выражение. Следующий код должен исправить положение:

Продолжить чтение "Фильтр одинаковых объектов в LINQ." »

25 февраля, 2009

Microsoft предоставляет несколько способов для решения этой задачи. Все они требуют предустановленного Office соответствующей версии. Автоматизация Excel или другого Office приложения с помощью interop (m_objExcel = new Excel.Application();). Доступ к файлу через ODBC (об этом методе пойдет речь в этой статье). Использование OpenXML SDK (только для Office файлов с окончанием «X» — xlsx, docx).

Продолжить чтение "Чтение Excel файлов (XLS, XLSX) из C#" »

Во время написания своего диспетчера обновлений, наткнулся на одну задачку. Версия последнего обновления сравнивается с версией самого приложения и если последняя устарела, должна осуществятся замена файла с сервера. Оказалось, что проблема не тривиальна, за исключением тех, кто держит все классы и «неймспейсы» .NET в голове.

Продолжить чтение "Версия .NET сборки без блокирования файла." »

16 февраля, 2009

Один мой друг и коллега спросил меня — «Как тебе удается с первого раза писать красивый код?». На самом деле, сразу скажу, что «красивый» код получается у меня гораздо реже, чем не «красивый». В большинстве случаев, это становится понятно после дюжины изменений по требованию заказчика. Проблем не лишены и программы, написанные для себя. В обоих […]

Продолжить чтение "Как писать красивый код?" »

При создании более или менее сложных приложений для Windows. Неизбежно возникает проблема организации доступа к данным из разных потоков. В Windows.Forms это выглядит так: Cross-thread operation not valid: Control ‘textBox1′ accessed from a thread other than the thread it was created on. В WPF это выглядит так: System.InvalidOperationException: The calling thread cannot access this object […]

Продолжить чтение "Мультипоточность в Windows.Forms и WPF" »

6 февраля, 2009

Adobe Flash, или компонент Shockware Flash встроить в форму относительно легко. Точнее, также легко как и любой другой ActiveX компонент. Тем не менее, этот процесс не защищен от проблем, например, таких: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

Продолжить чтение "Загрузка Flash в Windows.Forms и WPF." »

5 февраля, 2009

В прошлом году мне посчастливилось поучаствовать не лекциях (или конференции, кому как нравится) под названием Live Services JumpStart 2009. Обсуждались такие темы как Live Services, Mesh и немного Azure. Последняя является, так сказать, средой для запуска приложений в вычислительном облаке.

Продолжить чтение "Azure, Mesh и Live Services от Microsoft" »

В одной из моих прошлых записей я рассказывал, что LINQ не совсем белый и пушистый, а иногда даже сильно ругается. Речь шла о методе SaveOrUpdate, сейчас я продолжу тему. Прошлый пример похож на то, что по сути должен делать сам LINQ to MS SQL провайдер, естественно с кучей дополнительных деталей, на которых по всей видимости, […]

Продолжить чтение "LINQ Insert or Update еще одно решение." »

4 февраля, 2009

Давно не писал уже ни строчки в блоге, связанно это с целым рядом обстоятельств. Некоторые обстоятельства хорошие, некоторые не очень. Прежде всего это связанно с нехваткой времени. Вот и сейчас пишу из-за бессонницы. Появилось у меня непреодолимое желание, что-то написать, даже спать не могу! 😉 А писать есть о чем. World Secret В прошлом году […]

Продолжить чтение "YouTube to AMV и WorldSecret.info" »