Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 5

My report from the technical conference.

 

Our fifth (and last) session on opening day, Tuesday February 23, 2016 was another breakout session. I chose Microsoft Dynamics AX Application Lifecycle Management (ALM) with Joris de Gruyter, Senior Solution Architect.

 

Being Joris, this was another overfull session. 🙂 Also everyone is understanding how crucial ALM is to implementations going forward. Please find below my notes from the class. I hope that you will agree that it’s of interest, and look up the recording when it’s posted.

 

Agenda

  • Source control: Setup, usage, advanced scenarios (branching shelvesets, Git)
  • Testing: X++ unit tests, task recorder, test data
  • Automated builds: Build VM, build definition, output

 

 

Source Control

  • Visual Studio Team Services (VSTS) and LCS
    • Initial setup
    • Deploy Dev and Build VMs separately, not at once – URL issues, can start and stop separately, naming
  • On the VM
    • Workspace mapping
    • Creating your first version controlled model

 

 

Demo: Setting up

  • If you deploy a local VM, it’s a development environment
  • Project settings is where everything is set up
  • Go to your profile > security to create personal access tokens
  • Build agent can be used (deployment settings)
  • VSO credentials are deprecated, if you used them in earlier versions or CTPs
  • Then map the workspace: Metadata and project documents. Don’t check in all the code, only check in what you need, otherwise the build takes hours.
  • Projects are not so important in AX ‘7’ just try to be consistent
  • Then start working. Add it to source control. But an edit will automatically check it out. Since we went to files, source control “just works.”
  • Create a new model. Add the descriptor file.

 

Source control

  • Branching / merging
    • Trunk/main and releases
  • Advantages and disadvantages of branching and merging
    • Needs strict policing and tracking through environments (versioning?)

 

 

Demo: releases branch

 

Source control

  • Shelvesets
    • Work as expected (don’t forget to delete when done)
    • Can work with build VM, we’ll get to that
  • Code reviews
    • Code reviews use shelvesets, which work
    • However, reviews use XML viewers to look at the work
  • Compare with previous version

 

Demo: Shelvesets

 

Do not share a (development) VM because you are editing files

 

Source control

  • Other VCS
    • Whatever Visual Studio supports (or add-ins) should work but are not supported
  • New VSTS Feature
    • One VSTS project with both TFVC and Git repositories
    • Not officially supported and manual labor

 

 

Testing

  • X++ Unit testing
    • SysTest framework
    • Advantages to using extensions, handlers, etc.
  • Task recording
    • Essentially “Coded UI tests” from task recorder output
    • Data points can be coded in
    • Validations
  • Integration inside Visual Studio

 

 

Demo: Testing

  • Validate a field ex: credit limit and number of days to pay
  • Put your tests in a separate package because there’s no need to deploy the testing to production
  • After building a test, stop and start Visual Studio
  • Task recording then look at the code it wrote

 

There’s documentation on how to get the task recorder to do load testing [I did a search of the wiki at https://ax.help.dynamics.com/en/ but did not find it; it could be in LCS; I did not check there.]

 

Testing

  • Test data for unit tests
    • Independent of other tests
    • Setup and rollback
    • Isolate
  • Test data for coded UI
    • Planning is everything
    • Chaining is not recommended
    • Build vs Dev VM

 

 

Automated builds

  • Build VM from LCS
    • Agent pool
  • “Clean build” principle
    • Packages, DB, full clean option
  • VSTS build definition (vNext)
    • Add scripts, demand agent capabilities, support branching
    • proj

 

 

If you do it from Visual Studio, it includes everything from the dev box. This isn’t really desirable

 

Demo: Build setup

VS TS > Build > Build Main

Edit and see the steps

Repository > mapping note this, check it. By default it’s correct, but if you start branching it may not be.

Deltas can be an issue if you’re using shelvesets.

Interesting variables

Skip sync

Skip deploy reports

Triggers: Continuous integration, scheduled, gated check-in

Retention

General > demands

Update model version number with build number (Hey Steve! Should we send your code that does this?)

Gated check-in: only if it all succeeded [Sounds like a great idea to me…]

 

Dependencies

If you have dependencies on binaries, check the dll’s in to VSTS

Output: – deployable package, and a model (they are called runtime and source)

 

Happy DAXing!

Posted in ax 7, AX7, Dynamics AX | Leave a comment

Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 4

My report from the technical conference.

 

Our fourth session on opening day, Tuesday February 23, 2016 was another breakout session. I chose Developer experience and customization in the newest release of Microsoft Dynamics AX with Robert Badawy, Senior Program Manager and Peter Villadsen, Principal Project Manager.

 

Last year I had mentioned that any Villadsen session was a must-attend. Well, apparently word is spreading! The crowds were spilling out the door (insert foreshadowing to the day 2 sessions). Fortunately, I was able to attend. Here are my notes.

 

The Development Environment

Extension on top of visual studio that handles all we need

Metadata includes source code (open code, source code, are a recurring theme in this conference)

IMG_2105

 

The Visual Studio development tools

Visual Studio is the exclusive integrated development environment

  • Familiar AX 2012 concepts and patterns, like model elements, models, tree designers, the AOT, and others have been adapted to the Visual Studio development paradigms
  • There is no AOS needed at design/compile time as development is performed against files
  • A model element is represented by an XML file containing metadata and source code
  • The model store is represented as a set of folders and XML files, organized by model
  • Executing X++ code, displaying a form, or running a report is integrated with the familiar Visual Studio debug (F5, Ctrl-F5) experience
  • Execution is through the AOS web application that is running in the local IIS

 

Make sure you understand these bullet points

There are no blobs in the database, everything is open (see?)

 

Demo

Visual Studio with AX extensions installed

AOT is in Application explorer (AE), similar to 2012, but it’s a read-only view

New in the AOT is the model view

AE has a lot of nice search features

New: Static preview of the form you’re working on

There are XML files behind what you’re working on in VS

You can set your form as a startup object

A Build is an incremental build. It now includes report deploy, cross reference, can do sync

AOS was not running till we hit F5

Every project belongs to one model

 

Overview of packages and models

Definitions

  • A Dynamics AX model is a group of elements (metadata and source files) that typically constitute a distributable software solution (including customizations of an existing solution). A model is a design-time concept.
    • For example: A warehouse management model, a project accounting model, etc.)
  • A Dynamics AX package is a deployment and compilation unit of one or more models. It inclues model metadata, binaries, cubes and other associated resources. One or more AX packages can be packaged into a deployment package, which is the vehicle used for deployment on UAT and production environments.
    • Packages are packed into a deployable package file for deployment to Sandbox or production environments.

 

Package is like a modelstore (already compiled)

Model is source code. Multiple models are in a package.

 

 

Packages, models, and Visual Studio projects

IMG_2108

Packages on disk

  • Packages are folders located in the model store folder of the Dynamics AX application.
  • The default model store folder is typically “C:\Packages\”.

 

Model descriptors

  • A package folder contains a descriptor folder that lists all models that belong to the package.
  • A model descriptor file contains metadata about a model’s properties.

 

Application Explorer – we skipped over this slide

 

Full build dialog

  • Access the full build dialog from Dynamics AX > Build models…
  • All packages are listed, one package = one compiled assembly.
  • Models within a package are shown in brackets.

 

Package dependencies graph

IMG_2112

Demo

K service volume\aos services\packages local directory \ package \model \axtables

Productivity features – from an extended TAP program

  • Drilling
  • Add search results to project
  • Add BP errors to new project
  • You don’t package a project or a model

 

The Dynamics AX customization framework

 

AX 2012: Layers and models. Compile collapses customizations across models and layers

 

Customization concepts in Dynamics AX

Overlayering, extensions, and hybrids

Don’t overlayer MS code – create an event delegate

 

Extensions: Concept and value proposition

IMG_2115

Supported extensions as of today

Metadata: new elements, extend tables, forms, menus, enums, duties/roles, data entities

Source code: New X++ classes, app events, framework events, plugins, extension methods to classes and tables

No more client and server tier (server only)

No more client, only web browser

 

At this point I needed to leave to take an important call – regarding a new job – the parts that I missed are a demo on customizations and a Q&A.

Happy DAXing!

 

 

 

Posted in ax 7, AX7, Dynamics AX | Tagged , | 2 Comments

Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 3

Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 3

My report from the technical conference.

 

Our third session on opening day, Tuesday February 23, 2016 was our first breakout session. I chose “Development Application Lifecycle Management (ALM): Setting up build and test automation” by Shailesh Nikam, Senior Program Manager.

 

Developer ALM – hope the photo is clear enough – is tied in with source control. There is a build VM. Task recording creates an XML file and can be used to generate a test. This enables us to do essentially continuous validation, or what we used to call regression testing.

 

IMG_2095

 

The capabilities of build and test automation in AX7 are: developer topology deployment from LCS, build orchestration, and testability. There is a long list of sub-details, which you will see if you check out the system on CustomerSource or DLP, but I want to point out that using Visual Studio Team System, we can now have LCS discover and build AX models. Similar to everything else in the new AX, it is XML based. You can customize the MSBUILD tasks, so it’s got a default yet is as flexible as you need. Gloriously, we can auto-generate test code from task recordings.

 

Developer topology deployment – LCS: you choose DevTest option for cloud deployment, choose the dev and build VM configuration, can update custom settings for build agent and branches. Visual Studio Team System integrates and auto-configures the build VM.

 

Visual Studio Team System – build orchestration. One highlight here is that you have extensibility using PowerShell. Again, you can customize the build order, and select the modules and projects to build. This enables the creation of both a deployable and a source package and the upload of build artifacts to VSTS for release management.

 

IMG_2098

 

Testability. We can use the SysTest framework to author unit and component tests, set up a custom data set for validation and automated tests, auto-generate test code from task recordings, and report on the execution via either the VSTS web interface or the Visual Studio IDE.

 

We then had a demo.

  1. Deploy developer and build VM from LCS. You select the environment topology: Azure or locally (a vhd). You go to project settings in Visual Studio Team Services and connect up the machine and VS). There should be a 1:1 mapping of the LCS project to a VSTS project. It takes about 4 hours to deploy.
  2. Create test code from task recorder. In Visual Studio you import the task recording. Look at the code and the test attribute: SysCodeGenAttribute(), SysTestMethodAttribute(). You can add build steps (PowerShell, sync, report deploy, generate packages, publish artifact packages, test setup, execute tests, test end, publish artifact, additional logs.
  3. Reporting on VSTS web interface and within desktop Visual Studio. It tells you how many tests passed and failed, and you can drill into the failures.

 

IMG_2101

 

Moving ahead: we are looking at updating the wiki, having better cost effective options for cloud dev to build, dev/build/test as a service, and much, much more… Microsoft is soliciting feedback to see what features YOU would like to see in this.

 

All of the above is open source, to boot.

 

There were lots and lots of questions. I’ll recap just a few here. If you have a bad test, you must redo them all, unless you disable specific tests. You can turn best practice checks on or off. Testing can be run locally, too, so that you can check it BEFORE you build it. J Task recorder is not very resilient when you have field name changes. You need consistent test data between environments. Custom fields break test scripts. You don’t really want Microsoft’s test scripts because of quantity and data dependence. The build is quicker because it’s just a partial build (four hours is now sixteen minutes). Scalability is still an open question.

 

I hope this “just the facts, ma’am” note from the session does not mask how enthusiastic I am and we should all be for this automated testing. It’s a far, far cry from earlier versions, and finally legitimizes the bastard testing child. This should become de rigeur in every product and implementation!

 

I hope you have enjoyed this post. I am now heading home from the conference (bummer), but will of course continue to update on each session!

 

Happy DAXing!

 

 

 

 

 

 

 

Posted in ax 7, AX7, Dynamics AX | Tagged , | Leave a comment

Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 2

Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 2

My next report from the technical conference.

 

Our second session on opening day, Tuesday February 23, 2016 was another general IMG_2083session. This one by another crowd favorite Sri Srinivasan, General Manager, Dynamics AX Platform R&D.

 

Today, Sri was all about the cloud. Sri talked about how the new Microsoft Dynamics AX maximizes the cloud. This wasn’t just a major release, it was a major release! 🙂 He recapped our journey from when Microsoft purchased the software, till now, and the additions/focuses of the versions:

Our Journey

2002 – Axapta 3.0

2006 – Dynamics AX 4.0. Platform built on delivering scale and reliability

2008 – Dynamics AX 2009. Platform scale and expanded industry footprint

2011 – Dynamics AX 2012. Built for industry, differentiated application lifecycle management through lifecycle services

2016 – Dynamics AX. Powered by Azure Cloud.

 

He explained how AX is now a complete solution (immersive experience, web based client, global industries, and azure cloud enabled) and has change management (integration platform, application lifecycle exp., developer experience, continuous update). In fact, the update will be like none before, and can truly be all but continuous. This is a big improvement over scheduling updates months in advance. Gone are the days of having a binder on how to perform a task in AX.

 

He demonstrated lifecycle services, and how the asset library enables us to deploy not just code but also data from it.

 

He demonstrated import, showing how we have a “recent” area where we can quick click to our more recent forms. We saw how movable help followed the cursor. We can filter a form, then add it to our workspace. We can even pin it to the dashboard.

 

Dynamics AX’s differentiated capabilities are:

  • Change management (user training)
  • Data governance
  • Complete solution

 

Sri then gave us many more details on how the cloud is going to work. It seems MS has shifted from a time-based payment to a user based subscription. A relief for those of us who went crazy to shut down the machines at night! We can have automatic provisioning, all sorts of Azure software, we can scale, we have application lifecycle management, servicing is easier, MS manages our cloud, and we have an enhanced upgrade/update. All thanks to the cloud.

How does the AX cloud differentiate?

  • Simple user based subscription
  • Customer’s choice
  • Deployment choice
  • Packaged solution

 

Visual Studio has tools for us to use. The client is HTML5 running on a Windows universal app, iOS, Android. The app is AX, of course, and the data is Power BI, SSRS, SQL, Blobs, DocDBs.

 

Sri went over the LCS solutions and the ones on the Azure marketplace, and noted that we are the only ERP with 50 solutions on ship date! Just imagine not having to install ISVs!

 

He then discussed our capabilities beyond this week’s RTW – what they’re planning for the future. And as far as we’ve come, it seems we’ve only touched the tip of the iceberg.

 

There was discussion of the Dynamics AX entity store and PowerBI, and how you can create new measures on the fly. A PowerBI license will be included with AX.

 

Finally, Sri showed us the Dynamics AX Roadmap. I won’t publish it here, since I don’t know if OK, but I would be surprised if it’s not on twitter already. The expectation is that we will have an on-premise/private cloud this fall, along with data upgrade. UIs and UAs will also keep coming. Microsoft asks for us to reach out to them on ways to improve the product.

 

And that was only the second of five sessions on the first day! The punchline here, besides what I’ve already mentioned, is that MS is eager to responsive to customers’ needs.

 

Happy DAXing!

 

 

 

 

 

 

Posted in ax 7, AX7, Dynamics AX | 1 Comment

Microsoft Dynamics Technical Conference, 2016 / Day 1 Session 1

A report from the Emerald City, where despite the fact that the weather was “mostly sunny” today, the talk of the town is the new Dynamics AX. While it’s my habit to provide a daily report, I only was able to type up notes from the first of five sessions today, so will publish that one, rather than wait for the full day’s report. I know everyone is on the edge of their seat to hear about (what MVP Lane Swenka quoted Sri Srinivasan as) a sexy ERP.

 

A couple of conference notes. While CRM was part of last year’s conference, it is not this year. And despite the fact that it’s billed as a technical conference, there are a LOT of functional sessions. Attendance is at a record 1375.

 

Our first session today was a general session with Daniel Brown, general manager of Microsoft Dynamics AX research & development. He IMG_2069certainly did a great job revving the crowd. The focus is “Business Process Transformation and the new Dynamics AX”. You will see a recurring theme on how the new AX is focused on the business, and how it can be better for the businesses, rather than how business can adapt to their ERP.

 

The huge announcement was that yesterday (Monday), we shipped the new Microsoft Dynamics AX! It is now in General Availability, or what’s now called RTW (released to world? Corrected: release to web. Thanks to Bertrand Caillet!).

 

A great way to summarized the drastic changes to the system is to copy the bullet points that Dan provided to us:

 

What is it?

– Intelligent user interface

– Proven business logic

– Continuous life to your system

– Business anytime, anywhere

 

He went into details on how much better the user experience is. We are certainly cloud first, mobile first. Dan did a demo for us and at the end revealed that he had done it all on his smartphone. He discussed business process reinvention tailored for the particular employees and their roles, or personas. Business process insight integrates exciting new changes in PowerBI – which he did not discuss in detail, but I have seen elsewhere that there are big changes – circling around real time analytical data. We can also take action based on the insight that is provided. It’s well integrated with Office including import and export. Data management is done via data entities – there are now 1700 of them. Possibly a tenfold increase from the version you are currently on!

 

Cross-company data entry is quite different now.

 

Data entry, in fact, has changed. You can create a general journal in AX, and open it in excel. It has a shipped template thanks to the data entities. You can enter data in Excel, where the user might be more comfortable, and then publish it back to AX.

 

Globalization is another area which has undergone drastic transformation. In days past, a V.0 would ship with few localizations and they would catch up later. Not now. We have a UI in 40 languages, a UA (help) in 17 languages, and regulatory reporting for 16 countries. Many more of each are on the way. Localization is configurable. There are curated solutions available for this, which meet a “very high bar.”

 

Agility is another hot topic. We are working much more granularly now, in that developers can do component level work, and we can more precisely service the ERP.

 

Lifecycle, ah, everyone has heard talk about that by now. Deploying code via the cloud? Unattended deployments done automatically via builds which can be customized? Step right up, folks, and prepare to be amazed… Help is now Wiki-based and task recordings, well, they’ve now got capabilities you’ve never dreamed of. In short, cycle time is much less.

 

Over 70 ISVs with 130 solutions were in the onboarding process, with 48 curated solutions, and 45 of them in the Azure Gallery. Though I heard on twitter that we actually had a few more than that. When have we ever released a V.0 with dozens of ISV solutions ready on GA day?

 

Quality has not been neglected in the looking forward. There are huge strides made with automated testing, to support a “Zero Bug Backlog” which translates to reduced time of open bugs. Multiple previews were delivered in a very large TAP to ensure quality.

 

Nine or ten companies have already gone live with the software. Several more on the way.

 

There are some deprecated items; however, a head was in the way of them when I took my photo of the slide (sorry). I can tell you that Advanced WMS takes the place of WMS II.

 

Finally we had our call to action: to learn about business processes at the technical conference. I will paste here the areas and their number of sessions so you can judge the focus.

 

– Horizontal

  • Financials (19)
  • Human resources (3)
  • Project management (3)
  • Supply chain (26)

– Industry

  • Manufacturing (7)
  • Public sector (2)
  • Retail (12)
  • Service industries (1)

– Process Tech

  • Business intelligence (5)
  • Integration (1)
  • Office (2)
  • Performance (2)
  • Support (1)
  • User experience (3)
  • Workspace (3)

– Types of Courses

  • Ask the Experts (7)
  • Breakout sessions (59)
  • Hands-on labs (8)
  • Round table/focus groups (16)

Please enjoy, and thank you for your patience in seeing about the other sessions!

 

Happy DAXing!

Posted in ax 7, AX7, Dynamics AX | Tagged , , | 3 Comments

Microsoft Dynamics Technical Conference

I expect you all have heard by now about the technical conference, coming up fast! I want to note some key points:

  • Focus will be on the new version, informally called AX ‘7’, which is currently scheduled for release soon after the conference.
  • Scope is strictly AX – no CRM like last year.
  • Schedule is out at https://www.microsoft.com/en-us/dynamics/techconference/Session-Catalog.aspx . Use the schedule builder to maximize your time. I had a devil of a time choosing between the offerings at times! Two speakers I practically worship go on at the same time; I am anguished!
  • Fun to be had, outside of the conference, include the Living Computer Museum (check their hours before heading over there). It is a well-kept secret which should not be.

Before and after training are available.

 

So, how important is this, you ask? My answer: very. When it looked like my company would not have the budget for me to go, I paid for my own registration, requested vacation days, and booked flights with points. And I’m glad I did, because I’m hearing from colleagues that people, who very much wanted to go, are not getting the opportunity. I realize that not everybody can do this, but if you can, then do! Hope to see you there!

TechConf2016

 

Happy DAXing!

Posted in ax 7, AX7, Dynamics AX | Tagged , , | Leave a comment

Adapting to the Changing AX Landscape

This is my tenth year in Axapta/AX and either I didn’t used to pay attention, or the landscape is changing more drastically than ever before.

 

Economic difficulties, some new and some residual from a decade ago, are forcing companies to redefine themselves and their missions. A quick glance at owler.com tells me that just in the past few months, Microsoft has acquired UC Commander, Hitachi has acquired Ignify, UXC Eclipse NZ acquired AX and BI from Koorb, Infosys acquired oil and gas consultant Noah Consulting, and based on rumors, speculation, and the economic indicators, there are more on the horizon.

 

Microsoft is offering its new version of Dynamics AX in “cloud-only” mode initially. Partners who wish to provide solutions must deliver to and document in Azure.

 

What’s more, the trend in recent years has been for customers to get much more sophisticated than ever before. Witness the interactions in the forums at AXUG. End users are watching and learning, and taking the reins.

 

What is one to do? I’ve been asked this by colleagues – of course, as a casualty I might not be your best judge – but I might also have some hindsight.

 

  • Skill up. My dad’s lifelong lesson to me was “Keep your options open.” Your new skill may be useful at a new position, or it might show the world that you are willing and eager to learn and be flexible as needed.
  • Network. I did not realize until recently just how much of the industry I had covered in my network. LinkedIn is a lifeline here (though not the only one). This is not just useful in job searching (though very much so), but also in gaining a different perspective of the business. p.s. #DynTech2016 is an excellent opportunity here.
  • Be flexible. Try different methodologies. Consider traveling vs commuting vs remote. Play with a new module, or BI, or integration.
  • Contribute. Perhaps you have a suggestion for a question asked on a forum. Or a comment on a blog. You don’t need to start big, just start getting out there.

 

Have more? I’m sure I’ve missed some. Please comment below!

 

Happy DAXing!

LogoEvolution

Posted in Dynamics AX | Leave a comment

Passed Exam MB6-890 Microsoft Dynamics AX Development Introduction!

It’s been a very eventful few months, hope that you all are keeping up on the many AX happenings! I have so much to update but in the interest of not appearing ADD I will keep this post to the one topic of the exam.

 

As you may have read in an earlier blog post, I was asked to consult on the creation of the development exam for the newest version of AX, then called AX ‘7’, now simply “Microsoft Dynamics AX” [though I suspect it will be AX ‘7’ informally for quite a while more]. I was under a NDA and did not disclose much about it.

 

Now I can say that I simply advised on the topics they were considering. How often they were used and how critical they were to the job. I had no knowledge of any of the actual questions.

 

The exam was released last month, much earlier than I’d expected, and before I knew it, the holidays were here and it was the new year.

 

Two things converged to make me decide to sit for the exam. First, it is time for a job change, and certification certainly helps to make one marketable. It shows potential employers that yes, you may have been in the AX space for a decade, but you are still keeping fresh on the latest happenings. Second, what I had seen of the topics they were considering made me optimistic that they would be fair and balanced.

 

I sat for the exam Tuesday. I chose that day only because it was the last possible day to take the exam and get a free Second Shot. 🙂 I’m so pleased to report that I do not need the second shot.

 

Judging by the twitter chatter, there are few who have dared this yet. Many have asked me about preparation for the exam. Please view the exam description at Microsoft Learning and note that Self-paced training refers you to the Dynamics Learning Portal. This is the first time that I recall, where training was strictly in video form – no books I could download – I really suffered from that – love my books!

 

I am happy to report that I feel the DLP prepared me very well for the exam. I feel that anyone who studies the videos will be able to pass the exam. Note: Rob Hensley warns us of an error in the video.

 

So don’t be shy, give it a shot – certify!

 

EDIT: I did note three questions which were unclear or misleading, and gave feedback on them in the space available.

 

Happy DAXing!

congratsmb6890

 

 

Posted in AX7, Dynamics AX | 6 Comments

MB6-890 Dynamics AX7 (Development) Exam

I was privileged to be asked to consult on developing the technical exam for the next version of AX. They called it MB6-890 Dynamics AX7 Exam. I referred a friend, also, who asked how I got onto their list. I don’t really know – got on the right person’s radar, I guess. At any rate, we have been working towards the next version, and in fact spent last week in Bellevue learning to upgrade. That’s for another blog.

 

My employer gladly issued a limited release (thank you!) so that I could work on this project. I am honored and flattered to be part of it. I can’t disclose details, of course, but I will say that if you have been paying attention to know that Visual Studio is coming up front and center, and if you have taken any previous development exams, then you know what topics are being considered for this exam.

 

In short, I saw no ugly surprises, and everything is as expected of a high quality exam like the AX technical exams have been.

 

EDIT: I did note three questions which I found unclear or misleading, and gave feedback on them.

 

Happy DAXing!

Posted in AX7, Cloud, Dynamics AX | Tagged , , , | 4 Comments

Book Review: Learning MS Dynamics AX 2012 Programming

I recently read Learning MS Dynamics AX 2012 Programming, by Mohammed Rasheed and Erlend Dalen, published 2014 by Packt Publishing, and wanted to share my thoughts with you.

First, the basics. Dalen has published before (Microsoft Dynamics AX 2009 Programming: Getting Started), whereas this appears to be Rasheed’s first foray into authoring. The chapters in this book are organized as follows:

Chapter 1: Understanding Dynamics AX 2012Learning MS Dynamics AX 2012 Programming
Chapter 2: The X++ Language
Chapter 3: Storing Data
Chapter 4: Data User Interaction
Chapter 5: Searching for Data
Chapter 6: Manipulating Data
Chapter 7: Integrating Data
Chapter 8: Integrating with Standard AX
Chapter 9: Creating a New Module
Chapter 10: Working with .NET and AX
Chapter 11: Web Services
Chapter 12: Enterprise Portal
Appendix A: Links
Appendix B: Debugger

Target audience: “This book is for developers who are new to Microsoft Dynamics AX and consultants who know the functional side of AX, but would like to learn how AX works behind the scenes. Experienced AX developers might also pick up some good pointers here and there.” The book definitely assumes prior knowledge of object-oriented programming; if you are starting in AX development and not familiar with OOP principles, please check them out first.

R3: As this book is so recently published (Dec 2014), I would have liked to have seen it be about R3; but it’s not (example: “The Application Object Tree (AOT) is where you find all code elements in AX”). R3 is acknowledged. In addition, the links include InformationSource, which was decommissioned prior to the book’s publication.

Pros: The chapters flowed well, both within and between. There is a lot of good discussion about best practices, which is important to start with and should not be a later add-on. There is a superb reference in Chapter 2, which any developer should bookmark for later. There are good code examples; for instance, a form splitter. The Integrating Data chapter discusses TextIO, XMLWriter, ODBC etc. which are not usually found in a beginner book but very useful. The selling point of the standard AX chapter is its discussion of inventory dimensions – this is key to AX 2012. I appreciated the chapter on creating a new module, as this material is not often covered. The .NET chapter is one that I personally plan to go back to and study; as an old-timer in AX since version 3.0, I need to “fresh up” on the newer technologies.

Cons: I found Chapter 1 to be confusing; I would not want it to be my first exposure to AX. The book is sorely lacking in SDK links (the SDK in general is linked in the appendix, but topical relevant links within the text would be much appreciated). There is not too much explanation of why you do things; just the statement that you do.

Recommendation: If you are new to developing in AX, and are working in 2012, especially RTM, this is a good book to purchase and keep on your (virtual) bookshelf. If you have experience, then weigh the chapters above. With intermediate level developers, the chapter two reference probably makes it for you. With more advanced developers, consider if you want to study inventory dimensions, new modules, or .NET – if so, this is likely to be something you’ll want. Personally, I would buy it, as it is a value add to my AX book collection.

Disclaimer: I was given a free e-copy of the book for review, and have strived to do a fair and impartial one. I thank the publishers for their consideration.

To buy it: It can be purchased at http://bit.ly/LearningMS

Happy DAXing!

Posted in Dynamics AX | Tagged , | Leave a comment