Еще один software as website

В новостях Y Combinator проскочило упоминание очередного варианта реализации фреймворка для создания десктопных приложений на HTML5+CSS+JS. Этот проект называется AppJs.

Система строится на основе Node.js. На момент написания поста, проект имеет версию 0.0.2. Базовое открытие окон сделано только для Linux и немного для Windows. Для Mac пока ничего не работает. Исходники на GitHub.

Никакой большой коммерческой организации за проектом не замечено. Лицения MIT.

Categories: Development Tags:

Слава ReSharper-у!

Некоторое время с мучался с тем, что в VisualStudio 2010 невозможно быстро перейти в чужие исходники. Надо было выкачивать, подключать и т.п.

Но сегодня я внимательно посмотрел на окно ReSharper -> Options -> External Sources. И, о чудо, там есть галочка «Allow downloading from external locations»! Для библиотеки Nancy, с которой я сейчас вожусь, исходники оказались, что мне сильно помогло. Буду надеяться с остальными опен-сорсными либами ситуация будет аналогичная.

И пожелание к JetBrains напоследок – сделайте, пожалуйста, напоминалку про эту фичу при переходе на дизассемблер чужих либов.

Categories: Development Tags: , ,

Интеграция Atlassian Bamboo и тестов xUnit.net

18 Февраль 2012 Нет комментариев

Система непрерывной интеграции Atlassiat Bamboo включает множество плагинов для работы с тестами, но поддержка xUnit.net в это множество, к сожалению, не входит. Но интеграция все же возможна, о ней и расскажем.

Итак, имеется solution, состоящий из множества проектов. Проекты, которые собираются в assembly, и названия которых заказчиваются на Tests являются комплектами xUnit тестов. Сборка всего решения построена на MSBuild, осуществляется сервером Bamboo. Для управления внешними сбоками используется NuGet.
Читать далее…

Categories: Development Tags: ,

Правила оформления кода C# v1.0

7 Февраль 2012 Нет комментариев

Сейчас я занимаюсь проектом, который разрабатывался достаточно большое время, но в разработке не применялось никаких правил оформления кода. Поскольку так жить нельзя, считаю важным привести свое видение того, как имеет смысл оформлять код на C#.

Использование такого стиля позволяет:

  1. Быстро ориентироваться
  2. Не задумываться над оформлением
  3. Применять автоматические инструменты контроля стиля (ReSharper)

Описание рассчитано на использование C# версии 3.5.
Читать далее…

Categories: Development Tags:

Автоматическая реализация INotifyPropertyChanged на Spring.NET

4 Февраль 2012 Нет комментариев

В статье ранее я писал как сделать автоматическую реализацию INotifyPropertyChanged на основе расширений библиотеки NInject. К сожалению, моя жизнь с этой библиотекой не сложилась, NInject был заменен на Spring.NET. При этом схему автореализации надо было как-то перенести без особенных изменений прикладного кода. Объясню, что именно я сделал.

Читать далее…

Categories: Development Tags: ,

Неопределенное будущее Titanium Desktop

1 Февраль 2012 Нет комментариев

Около полугода я следил на развитием проекта Titanium Desktop. Идея продукта состоит в том, что можно создавать полноценные desktop приложения на HTML+JS. Я подумывал использовать этот фреймворк в одном из своих проектов. Но сегодня, проверяя новости, обнаружил нерадостное – проект снимают с финансирования AppCelerator и передают сообществу разработчиков. Официальный пресс-релиз можно прочитать здесь.

Все это означает, что проект может приостановиться на неопределенный срок. А значит надо будет взвесить все «за» и «против» прежде чем использовать.

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

Таким образом, многоплатформенных технологий для создания desktop приложений на HTML+JS в доступности не видно. Разве что Adobe AIR, но он пугает чем, что Adobe.

Categories: Development Tags: , , ,

Простая реализация INotifyPropertyChanged

31 Январь 2012 Нет комментариев

При разработке для платформы .NET часто приходится делать так раздражающие всех реализации интерфейса INotifyPropertyChanged на классах-моделях. Типичный пример выглядит так:

class StatisticsRecord: INotifyPropertyChanged
{
    private string name;
    public string Name { get { return name; } set { name = value; NotifyPropertyChanged("Name"); } }	

    private void NotifyPropertyChanged(string name)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(name));
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

На мой взгляд, с этим кодом есть 2 проблемы:

  1. Очень много повторений и кода вызванного необходимостью вызвать NotifyPropertyChanged. Увеличивается количество «тупой» работы.
  2. Использование строковой константы Name в качестве аргумента. Рефакторинг может привести к разрушению биндинга к такому свойству.

Читать далее…

System.BadImageFormatException при загрузке тестов в ReSharper

24 Январь 2012 Нет комментариев

В начале создания авто-тестов в одном проекте на C# начал возникать System.BadImageFormatException при попытке запуска тестов из ReSharper. Выяснение показало, что проблема была в том, что сборка с тестами имела Any CPU. А тестируемые классы были в EXE, который был собран в x86. При этом Windows используется 64х битный, следовательно Any CPU = x64.

Решение просто – указать в тестовой сборке целевую платформу x86. Это делается в закладке Build свойств проекта тестовой сборки.

Categories: Development Tags: ,

Названия обработчиков событий в VS2010

После установки ReSharper на Visual Studio 2010 (всем разработчикам на C# рекоммендую, кста) наиболее активно разражает подсвечивание названий методов, который автоматически генерируются Visual Designer для обработки событий, поскольку название типа «Form1_Load» никак не соответствует идеям начинать название с глагола и не использовать «_». Но это можно исправить.
Читать далее…

Categories: Development Tags: ,

Поучимся?

26 Сентябрь 2011 2 comments

Я считаю, без каких-то новых знаний жить не особо интересно. Поэтому стараюсь учиться. А тут Стэнфорд предлагает уникальную возможность бесплатно поучиться computer science.
Читать далее…

Categories: Development Tags: ,