Записки на лету

Microsoft выпустила рекомендации по применению ALM в проектах CRM 2011.

Скачать можно здесь или копию у меня на сайта ALM for CRM 2011 — CRM Solution Lifecycle Management

Как известно, с 18 по 21 марта 2013 г. в Новом Орлеане прошла всемирная конференция Convergence 2013.

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

После чего Вы получите письмо со сылкой и логином на сайт, где Вам станет доступно огромное количество видео по всей ветке Dynamics, по  CRM около 30.

Convergence_2013_Virtual

 Microsoft Dynamics CRM 2011 Scripting CookbookНа днях вышла новая книга Microsoft Dynamics CRM 2011 Scripting Cookbook, книга поосвящена клиентской разработке на JavaScript под MS Dynamics CRM 2011.

Автора книги Nicolae Tarla, это его первая книга. Его блога или еще какой информации я не нашел.

Я ее уже купил, хотя, почитать еще не успел.

Промо коды для покупки книг на сайте издательства (действительны до 20.04.13):

For 50% Off above eBooks | Use Code: EPMIC50
For 20% Off above Print Books | Use Code: EPMIC20
Offer valid till 20th April 2013

Вчера было выпущено обновление Visual Studio 2012 Update 2!

Ка и обещал Брайн Харри, обновления выходят ежеквартально и без опозданий.

Ниже описаны основные функции, которые реализованы в этом обновлении1.

  • Расширенный контроль качества: создавайте тестовые случаи на веб-портале и используйте их со своим кодом через облако благодаря функции управления тестовыми случаями через Интернет.
  • Гибкое планирование: улучшения рабочих элементов и Kanban Board обеспечивают дополнительные возможности настройки в соответствии с особенностями рабочих групп.
  • Разработка бизнес-приложений: создавайте бизнес-приложения, отображающие данные с помощью HTML5, благодаря поддержке HTML-клиентов и SharePoint в LightSwitch.

Чтобы воспользоваться новыми функциями Visual Studio, загрузите Update 2 прямо сейчас!
Подробнее читайте пост на Хабре: Вышел Visual Studio 2012 Update 2, в блоге Брайна Announcing Visual Studio 2012 Update 2 (VS2012.2) и

21-го марта прошла встреча клуба директоров по разработке, членом которого я являюсь с недавних пор.

Для меня это была первая встреча и тема встречи была ROI: Исследование эффективности внедрения инструментария ALM.
Встреча организовывалась компанией Microsoft и проходила на территории офиса компании в очень интересном формате. За основу была взята презентация подготовленная заранее организаторами, но, время от времени, выходил кто-то из аудитории, кто хотел поделиться опытом, и рассказывал, показывал и т.д. Все это сопровождалось бурными дискуссиями. И презентация из 13 слайдов растянулась часа на два и потом продолжилась за ужином.

Отличное мероприятие, очень приятные и интересные люди, было и о чем поговорить и с кем.

ChiefInDevLogo

Обновился портал для разработчиков MS Dynamics CRM, поменяли дизайн на «Метро» естественно, но вот на счет наполнения не очень уверен.
Но, по крайней мере, сейчас найти на нем что-то стало легче.

http://msdn.microsoft.com/en-us/dynamics/crm/

NewCRMDevCenter

Ищем консультанта/аналитика по MS Dynamics CRM 2011.

Вакансия здесь Аналитик (MS Dynamics CRM).

Кому интересно откликивайтесь на вакансию или пишите мне.

Вышел накопительный пакет обновлений №13 (KB 2791312) для Microsoft Dynamics CRM 2011.
Скачать можно здесь http://www.microsoft.com/ru-ru/download/details.aspx?id=37133.

Добавлена поддержка Windows Server 2012 и AD FS 2.1., подробнее здесь Microsoft Dynamics CRM Compatibility List .

Инструкции по обновлению: How to upgrade a Microsoft Dynamics CRM Server application to Windows Server 2012.

Модуль создания отчетов Microsoft Dynamics CRM 2011 теперь поддерживает Microsoft SQL Server Data Tools и Visual Studio 2010.

Добавлена браузерная совместимость для Firefox, Chrome и Safari но, по-моему,  это уже было в UR12 v.2, на всякий случай добавлю табличку.

 

Платформа Internet Explorer Firefox Chrome Safari
Windows XP Version 7* Посл. версия Посл. версия Не поддерживается
Windows Vista Version 8 and 9 Посл. версия Посл. версия Не поддерживается
Windows 7 Version 8, 9, and 10 Посл. версия Посл. версия Не поддерживается
Windows 8 Version 10 for the desktop** Посл. версия Посл. версия Не поддерживается
Apple OS X 10.7 (Lion) Не поддерживается Не поддерживается Не поддерживается Посл. версия
Apple OS X 10.8 (Mountain Lion) Не поддерживается Не поддерживается Не поддерживается Посл. версия

*IE7 не поддерживается онлайн версией Microsoft Dynamics CRM Online, пользователям Windows XP необходимо обновится до IE8.
**Для IE10 совместимость ограничена  десктоп версией и не поддерживается тач-ориентированная версия.
***Windows RT не поддерживается.

 Так же, обновился SDK до версии 5.0.15, скачать можно здесь http://www.microsoft.com/en-us/download/details.aspx?id=24004

Все начинается с малого, как и скрипты на форме сущности, сначала одна функция, затем еще одна и т.д.

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

В общем, хаос рос с объемом кода. :-)

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

Сначала пришла мысль взять так называемый Неймспейс паттерн (Namespace Pattern), который используется, можно сказать, у нас прямо под носом, в примерах SDK.

Выглядит он так:

if (typeof (MYCODE) == "undefined")
{ MYCODE = { __namespace: true }; }
MYCODE.QuoteFormEvents = {
    //Приватные функции
    _doSomethingPrivate: function (param) {

    },
    //Публичные функции
    doSomethingPublic: function (param) {

    },
    __namespace: true
};

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

Для меня ответ пришел, когда я начал разрабатывать приложения для Windows 8 на HTML5 и JScript, а именно начал разбираться, как там принято писать на JScript. Естественно, в этих приложениях очень много скриптов, и также среда исполнения накладывает некоторые ограничения. Так вот, организованы они там по паттерну раскрывающийся модуль, мой вольный перевод — Revealing Module Pattern.

Немного переделанный для использования в CRM он выглядит так:

var QuoteFormEvents = function () {
    //Переменные
    var tempString = "";
    var userId = Xrm.Page.context.getUserId();

    //Функции
    function doSomething() {

    }

    function formOnLoad() {
        doSomething();
    }
    //Объявления
    return {
        UserId: userId,
        FormOnLoad: formOnLoad
    };
}();

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

Если Вы собираетесь написать что-то вроде библиотеки, которая будет использоваться в нескольких местах и для которой понадобится возможность переопределения функций, я бы предложил паттерн раскрывающийся прототип (Revealing Prototype Pattern) как более подходящий.

Про Revealing Module Pattern подробнее здесь: Revealing Module Pattern: Structuring JavaScript Code – Part III

Про Revealing Prototype Pattern подробнее здесь: Revealing Prototype Pattern: Structuring JavaScript Code – Part IV

 

Ричард Кнудсон выпустил виде, где раскрывает что же все-таки нового в 12-м апдейте.

Смотреть здесь Polaris Basics, Polaris Visual Processes и Polaris Session 3