четверг, 2 августа 2012 г.

Миграция на .NET платформу: Базовый инструментарий

Просто читать книги по языку не интересно - хочется надо что то пробовать писать. Для этого необходимо понять:
  • в чем писать (IDE)
  • как это запустить
  • где это все хранить

... в чем писать (IDE)?

Альтернатив как бы особо то и нету. Конечно же, кроме Visual Studio есть сторонние IDE для работы с C# кодом, но больше напоминают поделки студентов.

... как это запустить?

есть нечто напоминающее JDK - .NET framework. Включает в себя виртуальную машину, базовый набор библиотек и инструментарии для отладки и разработки. Похоже, что есть 4 основные (переломные редакции):
  • .NET 1.0 - самая первая и самая убогая версия. В данное время практически не используется.
  • .NET 2.0 - первая доведенная до юзабельного состояния версия. Вылечили многие детские болезни 1.0. Начали интересные синтаксические отличия от Java :)
  • .NET 3.5 - не только язык, но и платформу перекопали на столько, что у многих библиотек появились версии до 3.5, и после 3.5. Также, полным ходом внедряется элементы из функциональных языков.
  • .NET 4.0 - уже не самая новая, но вполне свежая и актуальная версия. "Типа" много усовершенствований, новая версия виртуальной машины CLR, доработан UI фреймверк и т.д.

... где это все хранить?

По поводу кода - у VS есть вполне достойные плагины для работы с SVN и Git репозиториями.
По поводу настроек - тут все немножко сложнее (по сравнению с Eclipse). Настройки проектов и солюшенов хранятся в файлах sln и csproj. Как правило, эти файлы вместе с исходниками находятся под контролем версий. А вот глобальные настройки IDE (горячие клавиши, окна и др.) хранятся в "Мои Документы/Visual Studio XXXX" и об этом желательно не забывать, чтобы после перестановки ОС не было "мучительно больно":)

Миграция на .NET платформу

После долгого писания на Java, выдалась возможность вплотную познакомится с MS .NET. В начале, незнание платформы вызывало чувство раздраженности и полной беспомощности, но позже, начал вырисовываться круг того, что надо выучить, понять и выполнить.
Далее мои основные впечатление о том, как перестроиться на .NET платформу в смысле обустройства рабочего пространства и налаживание эффективной работы.
У меня получилось следующие группы того, что срочно необходимо сделать или узнать, для того, чтобы начать эффективно работать:
  1. Базовый инструментарий - в случае с .NET надо разобраться а) какие .NET Frmaework -и бывают. как их ставить; б) определиться с IDE
  2. Начальные сведения о платформе - а) основы синтаксиса C# б) минимум знаний чтобы создать, скомпилировать и запустить проект
  3. Эффективный локальный инструментарий - инструменты на локальном компе
  4. Основная информация о платформе - а) минимальный набор знаний чтобы начать работать б) места, где можно найти нужную информацию
  5. Базовые фреймверки - xUnit, Mock, UI (RCP, Forms), XML (DOM, SAX, serialization etc)
  6. Инструментарий для жизни проекта - Build tool, CI server etc
Чет дофига получается... поэтому буду вставлять ссылки по мере написания сообщений.

суббота, 28 июля 2012 г.

Java Decompiler

Был замечательный проект JD (Java Decompiler). Но, судя по всему, автор забросил этот проект - обновлений нет уже очень давно, eclispe update site не работает...
Но нашелся добрый человек, который взялся поддержать и допилить этот проект - Mchr3k - JDEclipse-Realign (eclipse update site - http://mchr3k-eclipse.appspot.com/).

вторник, 24 июля 2012 г.

Enterprise интерфейсы

Enterprise приложения имеют корявые интерфейсы. И не просто карявые, а исключительно уродливые и неудобные! (крик души :( )

Исходя из наблюдений, этому есть 2 главные причины:
  • 'Нам это не нужно' или 'некогда заниматься'
  • Дизайн делают программисты


'Нам это не нужно' или 'некогда заниматься'

Как ни странно, но заказчику 'некогда' и 'незачем' всякими там красивостями заниматься. Например, на нескольких последних проектах, заказчик 'не смог' найти подходящие иконки для своих кнопочек, тулбарчиков и и даже 'не нашлось' символики для страниц «about». А уж про всякие там дизайн, юзабилити и прочую ересь даже и вспоминать не приходится.

Дизайн делают программисты

Это вообще отдельный предмет восхищения. Вроде бы умные люди, но как начнут рисовать удобные интерфейсы... Достаточно вспомнить корпоративные системы (Service/Help desk, jira и т.д.). А если еще на запутанные страницы визарды натянуть AJAX – так вообще загляденье получается.

Из недавнего

Образцово-показательный подход программиста к проектированию UI: Есть сущность. Допустим человек. И есть около десятка списков, которые характеризуют связи этого человека – например список детей, машин, сотрудников, домов и т.д. Вообщем совершенно разнородные данные.
Так вот, подход программиста к построению UI для управления этими списками: а давайте сделаем таблицу, в которой каждая колонка будет представлять конкретный список. Т.е. есть таблица с сортировкой по колонкам, выделения выбранной строки раскраской четных строк и т.д.. И в этой таблице первый столбец это 'дети', второй столбец это 'машины', третий это 'сотрудники'. И таких столбцов порядка 10-15!. Возникает 2 вопроса: 'Почему именно так?' и 'Что в этом случае будет представлять строка этой таблицы?'.
Ответы поражают еще больше чем предложенная идея: 'Так будет компактней. А то, что столбцы вообще не связаны другом с другом, дык это не беда. Ведь и так же все понятно.'

Assembly Signing Issue (error CS1577 in VS2010)

Сюрприз мля - 2010-ая студия не умеет нормально подписывать manage C++ проекты. Симптомы: "error CS1577: Assembly generation failed -- Referenced assembly 'BlahBlahBlah' does not have a strong name" Лечится напильником: читать здесь - Proposed Workaround for C++/CLI Assembly Signing Issue with VS2010 SP1