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

От редакции

Воскресенье, 12 Сентябрь, 2010

Друзья! И снова на связи онлайн-журнал NAV4U.

Мы по-прежнему несем луч Navision в массы. Хотя уже и не так агрессивно как раньше.Так как с момента выхода в свет прошлого юбилейного десятого номера прошло довольно много времени, то и новостей будет много. Но начну я конечно с новости главной:

1го сентября 2010 года поступила в продажу русская версия Microsoft Dynamics NAV 2009 SP1. Ура товарищи!

 dynamicsnav2009.png

Запуск был качественный, с в том числе с привлечением Dan Brown (General Manager Microsoft Dynamics NAV). Посмотреть видео можно по этой ссылке. Что еще произошло:

  1. Был аннонсирован Microsoft Dynamics NAV 2009 R2
  2. Произошли кадровые перестановке в международном Microsoft Dynamics
  3. Изменения в лицензионной политике (это важно при использовании, в том числе, и веб-служб).
  4. Обновлен пакет для тестирования приложений (про это чуть подробнее будет рассказано чуть ниже).
  5. Продолжается развиваться и поддерживать Microsoft Dynamics NAV EXPRESS. 

Что касается локализации, то стоит отметить следующий немаловажный факт. Еще до выхода NAV 2009 SP1 RU, командой Microsoft был предложен новый механизм общения с сообществом Dynamics NAV в России: открытие Microsoft Terminology Community Forum. Сертифицированные партнеры могли (и могут до сих пор - ресурс функционирует до 30 сентября) внести свою лепту в перевод важнейших терминов системы.

Помимо этого, стоит отметить кардинально изменение модуля HRP. Который, к тому же, стал абсолютно бесплатным. 

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

Реализация матричной формы с помощью веб-служб

Воскресенье, 12 Сентябрь, 2010

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

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

Уже догадались к чему я клоню?

Да, да. Я тоже подумал о создании матричной формы.

Как известно в версии NAV 2009 с матричными формами есть проблемы. Даже так. Изначально в Dynamics NAV 2009 матричные формы перестали поддерживаться и были заменены недружелюбными поделками на базе страниц (Page). Хотя я и не являюсь фанатом матричных форм, однако волею судьбы внес некий вклад в смягчение сложившейся ситуации:

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

Далее…

Подключение матричной формы в ролеориентированный клиент

Воскресенье, 12 Сентябрь, 2010

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

Пожалуй приступим.

Создадим новый проект типа Class Library (File > New > Project). Назовем его NAV4U.ItemMatrix.

Далее добавим ссылки на сборки, которые отвечают за базовую графическую функциональность и создание Windows интерфейса:

  • System.Drawing
  • System.Windows.Forms

Кроме этого нужно добавить ссылку на библиотеку Microsoft.Dynamics.Framework.UI.Extensibility.dll из папки «C:\Program Files\Microsoft Dynamics NAV\60\RoleTailored Client».

Добавим необходимые using директивы:

  1. using Microsoft.Dynamics.Framework.UI.Extensibility;
  2. using Microsoft.Dynamics.Framework.UI.Extensibility.WinForms;
  3. using System.Windows.Forms;
  4. using System.Drawing;

Добавим ссылки на веб-службы:

ItemCardWS http://localhost:7047/DynamicsNAV/WS/CRONUS%20International%20Ltd/Page/ItemCard

LocationListWS http://localhost:7047/DynamicsNAV/WS/CRONUS%20International%20Ltd/Page/LocationList

Далее…

Пример Web-интерфейса для работы с NAV 2009. Часть 1.

Воскресенье, 12 Сентябрь, 2010

В предыдущем выпуске был приведен ряд статей, рассказывающих об основах функционирования Web Services в Dynamics NAV. Помимо основ, были приведены несколько небольших примеров того, как можно реализовать Web Service под нужды конкретной задачи. В качестве клиентов выступали Windows Service и Win Forms, которые обращались к NAV…

Но чего в предыдущем выпуске (да и во всех остальных тоже) не было, так это реализации хотя бы элементарного Web Interface для NAV. Собственно, решением данной задачи мы и займемся.

Пару месяцев назад довелось мне участвовать в оживленной дискуссии на http://mibuso.com/forum/. Суть заключалась в том, что автор темы не мог справиться с некоторыми трудностями, которые возникли у него во время реализации веб-клиента для NAV… Когда же автор того топика разрешил удаленно приконнектиться с помощью TeamViewer к его машине и посмотреть  на того самого клиента, я был удивлен: передо мной был web-интерфейс классического клиента. Один в один. Дальше углубляться не стали, он пооткрывал пару форм, но этого хватило, чтобы произвести немалое впечатление… Реализация, хотя бы отчасти, более/менее функционального web-клиента, прежде всего, поможет им обойти ограничение по количеству конкурентных пользователей. Хотя тут тоже не все так просто… Причем все – абсолютно легально…

Итак, какие же инструменты и технологии пригодятся нам сегодня:

  • IIS (Internet Information Services);
  • PHP (PHP: Hypertext Preprocessor);
  • WCF (Windows Communication Foundation);
  • ASP.NET, AJAX.

Перечислено много чего, но взято будет совсем понемногу от каждой составляющей…

Далее…

Пример Web-интерфейса для работы с NAV 2009. Часть 2.

Воскресенье, 12 Сентябрь, 2010

В предыдущей статье  мы говорили о том, как с использованием клиент/серверных технологий можно без труда реализовать простейшее web-приложение с тем, чтобы интегрировать его с NAV’ом. Собственно, последнее действие мы и будем реализовывать прямо сейчас…
Для начала, напишем простейший Codeunit и опубликуем его в качестве web-сервиса:

m1_picture-10.png

Далее…

NAV 2009 SP1 testing. Модульное тестирование кода в NAV 2009 SP1.

Воскресенье, 12 Сентябрь, 2010

Поговорим немного о возможностях тестирования в NAV 2009 SP1 и сравнении этих возможностей с тем, что мы имеем сейчас…
Известно, что в как более старых версиях, так и в версии 5.0, достаточно просто заниматься процессом «тестирования»: попробовал сам в ручном режиме несколько сценариев, отдал пользователю пресловутую форму с кнопками и ждешь, когда же он сообщит о найденных на ней ошибках. Понятно, что здесь я немного утрирую, но суть примерно такая, согласитесь?

Собственно, это даже не testing как таковой, поскольку процесс тестирования довольно многогранен:

  • тестирование производительности;
  • тестирование безопасности;
  • тестирование интерфейса, бизнес-логики и т.д…

Все-таки разработка в NAV – прикладная, поэтому нанимать в штат профессионального тестера для выполнения перечисленных вещей выглядит довольно абсурдно…

Вообще, на мой взгляд, тестирование в Навижине – это и не тестирование вовсе. Это – верификация. Т.е. мы проверяем алгоритмы на основании опытных данных, доказывая этим, что ошибки и дефекты отсутствуют с нашей точки зрения (с точки зрения изменяемых и предлагаемых нами методов решения проблемы). Но гарантировать отсутствие дефектов с учетом человеческого фактора (пользователя) не представляется возможным…

И все бы ничего, если бы не одно «Но», о котором я уже написал: конечный пользователь. Человек – не машина и предвидеть какие-то специфичные ошибки/слабости системы, подчас, не в состоянии.

Далее…