Как начать разрабатывать в Dynamics 365?
Данная статья посвящена основам разработки в среде Visual Studio на языке X++ для ERP-системы Microsoft Dynamics 365 for Finance and Operations. Статья содержит информацию о необходимых знаниях и навыках, которые могут пригодиться, чтобы начать разрабатывать для вышеуказанной системы.
Теория
Для того, чтобы начать разрабатывать в Dynamics 365 недостаточно только знаний языка программирования. Помимо языка, необходимо знать что представляют из себя ERP-система и протекающие в ней процессы, а также нужны знания различных смежных систем.
ERP-система
В начале нужно разобраться что такое ERP-система и для чего она нужна. В нашем случае будет рассмотрена последняя на момент написания статьи версия Microsoft Dynamics 365 For Finance And Operatons.
Что же такое ERP-система? ERP-система — программное обеспечение, реализующее организованную стратегию интеграции производства и операции, управления трудовыми ресурсами, финансового менеджмента и управления активами, ориентированное на непрерывную балансировку и оптимизацию ресурсов предприятия. ERP-система простыми словами – это система управления ресурсами компании.
Microsoft Dynamics 365 for Finance and Operations (далее D365FO) — это облачная система планирования ресурсов предприятия (ERP) Microsoft для средних и крупных организаций. Благодаря интеллектуальному анализу в реальном времени и интуитивно понятному пользовательскому интерфейсу это помогает организациям принимать более взвешенные решения. Система также преобразует бизнес-процессы быстрее с помощью проверенных методологий, таких как распределенное управление заказами (DOM), и позволяет организациям вести бизнес практически в любом месте, в любое время, на любом устройстве. D365FO включает функции для управления финансами, производством, розничной торговлей, цепочкой поставок и распределением, которые помогают предприятиям стать более эффективными.
Наиболее подробно познакомиться с функционалом системы можно по ссылкам:
- Get started with Dynamics 365 for Finance and Operations — описание системы и ее модулей
- Документация по Microsoft Dynamics 365 for Finance and Operations
Среда разработки
Если целью является разработка, то немало важным компонентом является среда разработки. Так как она представляет разработчику множество инструментов, что упрощает и ускоряет разработку.
Среда разработки — комплекс программных средств, используемый программистами для разработки программного обеспечения (ПО).
Среда разработки включает в себя:
- текстовый редактор
- компилятор и/или интерпретатор
- средства автоматизации сборки
- отладчик
Microsoft Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.
Наиболее подробно познакомиться с инструментами можно по ссылке:
Язык разработки
Язык программирования — формальный язык, предназначенный для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель под её управлением.
Для разработки в D365FO также необходимо знание языков запросов и понимание языков разметки.
Язык запросов — это искусственный язык, на котором делаются запросы к базам данных и другим информационным системам, особенно к информационно-поисковым системам.
Язык разметки (текста) — набор символов или последовательностей, вставляемых в текст для передачи информации о его выводе или строении. Принадлежит классу компьютерных языков. Текстовый документ, написанный с использованием языка разметки, содержит не только сам текст (как последовательность слов и знаков препинания), но и дополнительную информацию о различных его участках — например, указание на заголовки, выделения, списки и т. д. В более сложных случаях язык разметки позволяет вставлять в документ интерактивные элементы и содержание других документов.
Весь код Dynamics написан на языке X++. X++ — проприетарный высокоуровневый язык программирования, используемый для разработки в ERP системе Axapta от Microsoft. X++ поддерживает парадигму объектно-ориентированного программирования и использует преимущества наследования, полиморфизма и других методов объектно-ориентированного программирования.
Наиболее подробно познакомиться с языком можно по ссылкам:
Навыки и знания
Основные навыки
Языки разработки
Язык X++ является комбинацией C++ и Java, по этой причине он очень схож с C#, за исключением его бизнес-направленности. Язык содержит множество бизнес-функций.
Пример кода на X++:
static void JobHelloWorld(Args _args) { if (true) { // Эти два вызова info() идентичны для компилятора X++. // В X++ обычно используется второй. Global::info("Hello World, 1."); info('Hello World, 2.'); } if (false) { error("Это сообщение не будет отображено."); } else { // Эти два метода также принадлежат классу Global. // Оператор "+" соединяет две строки. warning("Это как info," + " но для предупреждений, 3."); error("Это как info," + " но для ошибок, 4."); } }
Все же будет плюсом знание языка C#. Так как может встретиться задача, где придется изучать сторонние или писать собственные библиотеки. А так же из-за схожести языков это может послужить неплохим фундаментом. И база знаний X++ не такая большая, как у C#, и таким образом транслируя код можно воспользоваться различными шаблонами разработки.
Пример кода на C#:
using System; class Pgm_CSharp { static void Main( string[] args ) { new Pgm_CSharp().HelloWorld(); } void HelloWorld() { if (true) { Console .Out .WriteLine( "Hello World, Explicit .Out , 1."); Console .WriteLine( "Hello World, Implicit default to .Out , 2."); } if (false) { Console .Error .WriteLine( "Это сообщение не будет отображено."); } else { Console .Error .WriteLine(".Это как .Out," + " но могут быть использованы для предупреждений, 3."); Console .Error .WriteLine(".Это как .Out," + " но для ошибок, 4."); } } }
Вторым по значимости языком является SQL, потому что система неразрывно связана с базой данных. Поэтому знание SQL обязательно для разработчика D365FO, а также не будет лишним и знание T-SQL.
SQL (англ. structured query language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
Пример кода на SQL:
SELECT table3.room_number FROM table1 INNER JOIN table2 ON table1.user_id = table2.user_id INNER JOIN table3 ON table2.phone_id = table3.phone_id WHERE table1.username = 'qux';
Transact-SQL (T-SQL) — процедурное расширение языка SQL, созданное компанией Microsoft (для Microsoft SQL Server) и Sybase (для Sybase ASE).
Пример кода на T-SQL:
USE TestDatabase -- Объявление переменных DECLARE @EmpID int, @EmpName varchar(40) -- Задание значения переменной @EmpID SET @EmpID = 1 -- Задание значения переменной @EmpName SELECT @EmpName = UserName FROM Users WHERE UserID = @EmpID -- Вывод переменной @EmpName в результат запроса SELECT @EmpName AS [Employee Name] GO
Пример обращения к базе данных на языке X++ с помощью интегрированных в язык конструкций:
static void JobCustTable(Args _args) { CustTable tCustTable; SalesPool tSalesPool; ; while select AccountNum, Name from tCustTable order by tCustTable.AccountNum desc where (tCustTable.Name like 'The *') join tSalesPool where tCustTable.SalesPoolId == tSalesPool.SalesPoolId { info(tCustTable.AccountNum + " , " + tCustTable.Name); } }
Наиболее подробно познакомиться с языками можно по ссылкам:
- Сравнение X++ и C# — сравнение синтаксиса X++ и C#
- X++ language reference
- Бизнес-функции X++
- SQL
Иностранные языки
Знание английского языка является обязательным для разработчика D365FO. Причиной тому служит не только то что X++ написан на английском, но и наличие скудного количества литературы на русском языке. Помимо этого придется читать технические задания и вести диалог с консультантами/заказчиками. Но это зависит от уровня разработчика. Минимальным уровнем знания языка по «британской» системе является pre-intermidiate или A2/B1 по общеевропейской со знанием технических терминов.
База данных
Как говорилось выше, система неразрывно связана с базой данных. Поэтому необходимы специализированное ПО для просмотра и управления данной базой. Сама система использует Microsoft SQL Server.
Microsoft SQL Server — система управления реляционными базами данных (РСУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия.
Для управления базой существует SQL Server Management Studio. Доскональное знание системы необязательно, потому что вся разработка ведется в Visual Studio. За базу данных отвечают администраторы, но бывают ситуации, когда необходимо обратиться напрямую к базе.
SQL Server Management Studio (SSMS) — утилита из Microsoft SQL Server 2005 и более поздних версий для конфигурирования, управления и администрирования всех компонентов Microsoft SQL Server. Утилита включает скриптовый редактор и графическую программу, которая работает с объектами и настройками сервера.
Подробно прочитать про SSMS можно по ссылке:
Объектно-ориентированное программирование
Так как язык X++ объектно-ориентированный, то знание и понимание принципов ООП является обязательным пунктом.
Подробно про ООП можно узнать по ссылке:
Бизнес-процессы
Для разработчика важно понимание и знание основных бизнес-процессов, протекающих на предприятии. Например, понимание какие этапы проходит заказ на продажу от заявки клиента до доставки.
Курсы по функционалу D365FO по ссылке:
Рекомендации разработки
Инструмент рекомендаций Best Practices включает около 400 правил, но это лишь небольшая часть тех рекомендаций, которые описаны в руководстве разработчика. Они предназначены для улучшения читабельности, гибкости и производительности кода, а так же для предотвращения исключительных ситуаций.
Наиболее подробно прочитать про рекомендации можно по ссылке:
- Design principles and best practices for data entities
- Best Practices for Microsoft Dynamics AX Development — рекомендуется только для ознакомления, так как в D365FO произошел ряд изменений, но хорошее описание рекомендаций отсутствует.
Контроль версий
Что такое контроль версий, и зачем он нужен? Система контроля версий — это система, регистрирующая изменения в одном или нескольких файлах с тем, чтобы в дальнейшем была возможность вернуться к определённым старым версиям этих файлов.
Наиболее подробно прочитать про контроль версий можно по ссылке:
Дополнительные навыки
Будет плюсом знание таких языков разметки, как HTML, XML, языка стилей CSS и формата JSON. Причиной тому служат наличие задач, связанных с отправкой http-запросов и хранением и передачей данных в форматах XML и JSON.
ERP-система тесно связана с финансами. Поэтому даже для разработчика будет неплохо знание бухгалтерского учета, для понимания проводок.
Еще одним плюсом будет знание других сервисов и приложений Microsoft, таких как Power BI, Azure, Word и Excel.
Инструменты
Ниже представлен список основного ПО и инструментов, необходимых для разработки (не учитывая стандартные средства Windows):
- Microsoft Dynamics 365 For Finance And Operatons
- Visual Studio
- SQL Server Management Studio
- Microsoft Office Excel
- Microsoft Office Word
Примечания
Литература
- Deepak Agarwal Dynamics 365 for Finance and Operations Development Cookbook: Recipes to explore forms, look-ups and different integrations like Power BI and MS Office for your business solutions, 4th Edition. — Packt Publishing, 2017 — 480 с. — ISBN 978-1-78646-886-4.
- Rahul Mohta Implementing Microsoft Dynamics 365 for Finance and Operations: Implement methodology, integration, data migration, and more. — Packt Publishing, 2017 — 562 с. — ISBN 978-1-78728-333-6.
Comments
So empty here ... leave a comment!