Начинающие и опытные разработчики

Наверно про это уже много где написано, правда я не могу вспомнить и привести конкретные источники, но то что я читал про это – точно. Чем отличается опытный разработчик от начинающего? Философичный вопрос который может вызвать множество споров и комментариев, несогласных и согласных. Как-то так получилось, что наверно я на собственном примере и проектах увидел эту разницу и вспомнил что читал о ней, но не верил в нее по всей видимости.

Как вы думаете в чем же разница?

Подробнее

Логика на INotifyProperyChanged

Сложность 200-300

В основном я пишу о практических подходах, конкретных реализациях идей и достаточно редко об общей структуре приложений. Как они строятся, как лучше разрабатывать приложения, какие подходы лучше поддерживаются и так далее. Я думаю, что все согласятся, что нельзя написать единое руководство по тому как надо писать приложение. Если бы такое можно было написать, то такое руководство давно было бы написано людьми гораздо более умными и выдающимися, чем я на текущий момент =) Наверно, если бы такое руководство существовало, то наша профессия была бы не столь востребована и весь рынок разработки захватили китайцы и индусы, так как они более усидчивы и исполнительны. К счастью такого руководства пока что нет, да и вряд ли появится, так что смекалка и нестандартность подходов все еще играет на нашей стороне.

Так как идеальную архитектуру не описать, то попробую хотя бы рассказать как не стоит делать в большинстве ситуаций. Хотя, на мой взгляд, описанный ниже подход вообще нигде нельзя применять.

Я уже не раз писал и говорил насколько мне не нравится явная реализация INPC при реализации MVVM для WPF, но недавнее открытие в проекте коллег не смогло меня оставить равнодушным. Честно сказать, я не представлял, что таким образом можно построить логику приложения, но что есть, то есть. Итак, не будем более затягивать вступление и обратим взор на код.

Подробнее

Could not find required file ‘setup.bin’

Да, вот такое странное название для не менее странной проблемы, когда на «чистой» машине не собирается проект для публикации с помощью ClickOnce.

Совсем недавно, при разборе проблемы с применением PostSharp при сборке на билд-сервере, столкнулся с проблемой, что на чистой машине, где стоит только сам билд-сервер TFS, новый фреймворк с SDK не собирается проект. Полностью сообщение об ошибке выглядело следующим образом:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (4486): Could not find required file ‘setup.bin’

После того, как первое недоумение прошло и раскопки файла .targets тоже ничего не дали, решено было обратиться к гуглу и он выдал удивительные вещи. Оказывается установленного ПО недостаточно для сборки ClickOnce.

Ручным решением проблемы может быть следующее:

1. Необходимо скопировать с машины разработчиков всю папку c:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A

2. Далее в регистре прописать\создать ключ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\GenericBootstrapper\11.0 со значением C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\

После чего все заработает.

Очень странное поведение и решение для линейки последних продуктов Microsoft, но что поделать. В общем и целом я полностью поддерживаю практику того, что билд-сервер должен быть максимально чист от инструментов разработчика, но по всей видимости самым лучшим решением будет поставить на билд-сервер последнюю версию студии с которой вы работаете и не задумываться над описанной проблемой. Возможно может всплыть что-то еще, от того, что студия не установлена на билд-сервере.

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

Так что будьте прагматичны и руководствуйтесь логикой и ситуацией, а не просто выполняйте бездумно правила и рекомендации.

 

Hard’n’Heavy!