Архив ‘Выпуск 9’

От редакции

Вторник, 1 Сентябрь, 2009

Приветствую, Коллеги!

Сегодня (1 сентября) Microsoft Dynamics, как и обещал, выпустил очередной Service Pack для Microsoft Dynamics NAV 2009.

Отличная новость.

Появление на рынке революционной версии NAV 2009 в ноябре 2008 года было знаменательным событием. Однако ни появление трехзвенной архитектуры, ни ролеориентированный клиент, хотя и приятны сами по себе, отнюдь не являются ключевым бизнес преимуществом Microsoft Dynamics NAV. Знаменательно в том релизе было другое - за Navision взялись по серьезному. А с выходом Service Pack 1 начинаешь верить, что это надолго.

На данный Service Pack повлияли как результаты TAP программ, так и обратная связь через Microsoft Connect. Кроме того специалисты Microsoft Dynamics прислушивались к голосу коммьюнити (по крайней мере англоязычному).

Сегодняшний выпуск тоже будет полностью посвящен Microsoft Dynamics NAV 2009 SP1. Точнее одному из новшеств, которое появилось в данном Service Pack. Я имею в виду подключаемые компоненты. Все пять статей выпуска будут на эту тему, и честно скажу - еще есть что рассказать.

Отдельно хочется выразить благодарность Сергею Проценко, который мало того, что снабдил литературой (Рихтер),  так еще провел техническое ревью большинства статей. Также не могу обойти вниманием Christian Abeln, который дал ряд ценных советов и комментариев в части API подключаемых компонентов.

Сегодня в номере:

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 1. Динамическое форматирование

Вторник, 1 Сентябрь, 2009

В данной статье мы начнем беседу об еще одном новшестве, появившемся в Dynamics NAV 2009 SP1 – подключаемых компонентах – addin’ах. С помощью этой технологии с ролеориентированным клиентом можно “творить чудеса” и добавлять в него возможности, ранее недоступные.

Итак, как было сказано выше, с версии Dynamics NAV 2009 SP1 в ролеориентированный клиент можно добавлять новые элементы управления. Спрашивается где их взять? Ответ точно такой же как и для OCX библиотек: купить у третьих лиц или написать самостоятельно.

Если с пунктом “купить” все ясно, то вот на пункте “написать” хотелось бы остановиться подробнее. В этом номере  планируется привести ряд примеров по созданию подключаемых компонентов.

Для начала подготовим рабочее место. Естественно нам потребуется Microsoft Dynamics NAV 2009 SP1.

Подключаемые компоненты можно создавать для ролеориентированного клиента, это указывает на то, что нам потребуется сам ролеориентированный клиент. Так же нам нужен Microsoft Dynamics NAV Server (напомню, что ролеориентированный клиент является элементом трехзвенной архитектуры и без сервера работать не будет). Кроме того, чтобы подключить новый компонент нам потребуется классический клиент (разработка по-прежнему ведется в классическом клиенте).

Но это еще не все. Подключаемый компонент мы будем создавать с помощью Visual Studio (сейчас без нее никуда, настоятельно рекомендую заняться изучением - в жизни пригодится). Получить бесплатную версию можно здесь: http://www.microsoft.com/express/download/ (нас интересует Visual Studio Express for C#).

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 2.1. Мини браузер

Вторник, 1 Сентябрь, 2009

В данной статье продолжим работу с подключаемыми компонентами – новой возможности, появившейся в Dynamics NAV 2009 SP1. В предыдущей статье обещались чудеса, а показали всего лишь динамическое форматирование. В данной же статье все будет серьезней.

Начнем с того, что откроем Visual Studio 2008 и создадим новый C# - проект типа Class Library (File > New > Project). В открывшемся окне New Project введите название проекта. Microsoft рекомендует использовать следующий формат имени: МояКомпания.МойПродукт.RtcAddins.

New Project

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 2.2. Взаимодействие с ролеориентированным клиентом

Вторник, 1 Сентябрь, 2009

Итак, мы уже рассмотрели создание и подключение двух компонентов в ролеориентированном клиенте. В данной статье мы продолжим работу над NAV4U.WebAddin и попробуем разобраться с некоторыми нюансами, связанными с взаимодействием ролеориентированного клиента и подключаемого компонента.

Начнем с того, что предлагается два способа обмена информацией между ролеориентированным клиентом:

  1. С помощью свойства Value, объявленного в интерфейсе IValueControlAddInDefinition
  2. С помощью метода RaiseControlAddInEvent, объявленного в интерфейсе IEventControlAddInDefinition

Оба эти интерфейса реализованы в классе StringControlAddInBase.

Рассмотрим оба свойства подробнее.

Свойство Value.

Свойство Value, реализованные в классе StringControlAddInBase связано со свойством SourceExpr элемента страницы. С помощью этого свойства класс может получать информацию из базы данных, а также обновлять эту информацию.

У свойства Value есть два аксессора: set и get. С помощью этих аксессоров выполняется чтение и запись значения свойства.

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 3. Реализация интерфейса IValueControlAddInDefinition

Вторник, 1 Сентябрь, 2009

Итак, мы сильно продвинулись в теории и практике подключаемых компонентов. По крайней мере, мы так думаем. К сожалению, от полного понимания мы по-прежнему очень далеки. В данной статье попробуем проникнуть в концепции чуть глубже.

Начнем издалека. На панели инструментов Toolbox Visual Studio был обнаружен элемент управления NumericUpDown. Тут же возникло желание опробовать его в деле и в проект NAV4U.StyleControl был добавлен второй класс.

Примечание. Можно было бы создать проект с нуля, но было лень заниматься добавлением ссылок на сборки. Подписывать библиотеку тоже не хотелось. О том как создавать библиотеку “с нуля” можно прочитать в первой статье.

Вот, собственно говоря, код класса:

namespace StyleControl     
 
{     
 
  [ControlAddInExport("NAV4U.NumericUpDown")]     
 
  public class ApNumericUpDown : StringControlAddInBase     
 
  {     
 
    protected override Control CreateControl()     
 
    {     
 
      NumericUpDown tbcontrol = new NumericUpDown();     
 
      return tbcontrol;     
 
    }     
 
  }     
 
}

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 4. Использование компонентов ActiveX

Вторник, 1 Сентябрь, 2009

Да, мощные возможности предоставляет Visual Studio для создания своих собственных компонентов подключаемых к ролеориентированному клиенту. Но технология эта новая, а значит самих компонентов на рынке пока крайне мало. Однако на рынке полно компонентов ActiveX (в том числе бесплатных). Можно ли их использовать в качестве подключаемых компонентов?

MSDN говорит, что можно. Попробуем в этом убедиться на примере Microsoft Office Visio 2007 Viewer.

В первую очередь нужно создать новый проект NAV4U.VisioViewer. Как создавать и подписывать проекты было рассказано здесь.

Далее надо преобразовать определения типов из библиотеки COM-типов элементов управления ActiveX в элементы управления Windows Forms. Для этого используется программа импорта элементов ActiveX в Windows Forms (Aximp.exe). Она поставляется вместе с Visual Studio.

Откройте в проводнике папку C:\Program Files\Microsoft Office\Office12 (наверное не нужно говорить, что на компьютере должен быть установлен Microsoft Office 2007?). Найдите в папке файл VVIEWER.DLL и скопируйте его в папку вашего проекта.

У меня проект находится здесь:
C:\Users\apanko\Documents\Visual Studio 2008\Projects\NAV4U.VisioViewer

Далее…