Tuesday, 1 June 2010

The new X++ editor in action

During the last couple of months Vincent published more details on how the upcoming X++ editor will present itself.

I previoulsy discussed some of the features which the community have called out for and it seems that Microsoft hear our prayers.

In this post Vincent shows some nice screenshots of the new IntelliSense, (which AxAssist provides for 3.0, 4.0 and 2009) and in this video you can see some of the new features in action.


Monday, 11 January 2010

Summary of AX6

Just thought I would post some of the links I found regarding AX6:

mpf has a series on the new AX Models, which will form the basis of deployment in future versions. The series consists of 4 parts, all of them well worth the read:

AX Models - Part 1 - Deploying models
AX Models - Part 2 - Manifest and Signing
AX Models - Part 3 - Multiple Models per Layer
AX Models - Part 4 - Working with Models Inside MorphX

Furthermore, Vincent has some nice changes made to the Editor, which can be seen here:

Dynamics AX6 - The new X++ editor

It appears that some of the things I discussed in x++ and C# compared are being implemented, which is much needed and widely wished for, as can be told by the number of comments on Vincent's post.

All in all, some nice improvements are bound for AX6 - when more details and posts appear around the net, I will add them to this post.

If you know of posts which relate to AX 6 which I havn't got on my list, please feel free to add them in the comment field, and I will add them to the list.

EDIT:
Having browsed through mpf's blog again - I found a few more posts on AX6:
AX6 sneak preview - X++ Unit test improvements
AX6 sneak preview - elements with 32 bit IDs
AX6 sneak preview - SQL AOD

Microsoft has also published their statement of direction, in which further functionality changes which will influence developers and their work are mentioned, so if you have access to PartnerSource it's a must read, as it gives an indication where AX is headed
Statement of Direction for Microsoft Dynamics AX

Thursday, 7 January 2010

Preview to review of Microsoft Dynamics AX 2009 Programming: Getting Started


As I mentioned in my post on the new feature of community content on MSDN, a new developer book has been published by Packt Publishing, viz. "Microsoft Dynamics AX 2009 Programming: Getting Started" by Erlend Dalen.

I have the privilege of writing a review of the book, but until I read the book from page to page, there is a sample chapter for you all the study titled "Searching for Data".
Having scanned the content of the book I am certain that it will provide the novice AX programmer with an easy accessable introduction to the programming language itself, its core syntax and structure along with step-by-step guides on how to e.g. create queries, as exemplified in the sample chapter which you can download from the link above.

One thing that I can readily tell is that 'foo' and 'bar' examples have been substituted with a business-like scenario of a car rental, so you get the feel of real life examples while learning the basics.

Enjoy the sample chapter and stay tuned for a full review.

Sunday, 20 December 2009

MSDN with wiki content on AX 2009

There are many reasons why we bloggers blog, depending on the type of posts you post of course. Some rant about their personal relationsships, some about political stuff, and yet some about their work and / or hobbies. I fall into the last category - my posts are for myself ( so I don't forget stuff ) and for other AX people, much in the same way as Willy. When I started on AX development I knew only very little about programming in practice and very much about theory ( having a MA in Information Technology ). During my studies I buddied up with Tino at the VISL-project where I did the user-oriented studies and he did the programming ( his programming skills are still out of this world ).

So when it got round to AX development, I was scared s**tless over the lack of how-to's, documentation and manuals for AX. Much of know-how seemed to be anchored in the people who somehow were in contact with the Damgaard company or former Damgaard employees and the most common respons to programming problems was "see if you can find similar functionality in the std. application, and steal with pride". However, many of the problems were not represented in the std. application though of such a general nature, that someone out there must have a solution or hint to how to solve it. And this is where blogs and forums enter the scene. There are a plethora of blogs and forum posts out there which deal with, suggest solutions to an almost ever increasing pool of good questions ( imo - there are no stupid questions ).
Two of the sites which helped me - and continue to do so - are Axaptapedia and the Axapta Programming site and to a lesser extend MSDN, and this blog is my way of repaying the AX community in the same way I was helped in my hours of need for specific problems, and general discussions on AX related stuff.

Then I read the Microsoft Dynamics AX SDK Updates Blog and as of Nov. 10th Community content ( or wiki content ) can be added to articles ( currently only SDK 2009 - but 4.0 is in the making ). Great days are ahead of us - more books on X++ development are published now than when I started, the most recent ( 'Microsoft Dynamics AX 2009 Programming : Getting started' by Erlen Dalen ) appears to be an up-to-date of Steen Andreasen's MorphX IT ( which I still recommend to new AX developers ), but adding the possibilty of contributing to MSDN will increase it's overall value to AX developers out there. Kudos to the MS AX2009 SDK team which do a great job adding value to the documentation which was sparse to say the least until an increased effort from MS came about some years ago.

Happy hacking,
Steffen

Tuesday, 24 November 2009

Pass by reference vs. pass by value

This one is for myself, as I often forget how to implement pass by reference and pass by value, and what the difference is between them.
Pass by reference:

Declare varible and set it :
SalesLine salesLine = salesLine4

Down-side is if salesLine4 changes - so does salesLine

Pass by value:

SalesLine salesLine;
salesLine.data(salesLine4);

Happy ax-hacking

If salesLine4 changes - salesLine doesn't

Monday, 16 November 2009

Deleting duplicate records in SQL

Recently I needed to delete some duplicate records across several companies in AX. The table is self-contained so I needn't worry about delete actions or validation and as there are several companies I wanted to try and do it SQL-style. So this is what I came up with

DELETE FROM [Table with Duplicates]
WHERE [Primary Key Field] IN
DELETE FROM [Table with Duplicates]
WHERE [Primary Key Field] IN
(
SELECT a.[Primary Key Field]
FROM [Table with Duplicates] a,
[Table with Duplicates] b

WHERE a.[Primary Key Field]!= b.[Primary Key Field] -- i.e. Userkey
AND a.[Value to check]= b.[Value to Check] -- i.e. Lastname
AND a.[Second Value to Check] = b.[Second Value to Check] -- i.e. Firstname
AND a.[Primary Key Field] < b.[Primary Key Field] -- i.e. Userkey
)

Respect to the original poster at SQL Server forum.

Remember always to backup your data and try the SQL-statement on a test table before you do anything on data which will be used in live environments.

Wednesday, 2 September 2009

The future of X++

During the summmer Microsoft announced that X++ based Web User Interface is discontinues in the next version of EP which hardly comes as a surprise - Dilip has some nice thoughs on the subject, and as he says this will allow developers to use Web 3.0 Framework.

On Channel 9 - "Dynamics Program Manager Peter Villadsen and Software Developer Gustavo Plancarte teach us about a new tool they've developed that translates X++ byte code into MSIL. We learn a lot of history along the way and gain insights into the process of taking X++ into the .NET age.

Microsoft Dynamics features a proprietary language called X++ (basically a superset of Java, with some strong data primitives added) and a complete stack (compiler, interpreter and debugger) that goes with it. The new feature Peter and team have developed is a tool to generate managed code from the X++ intermediate language produced by the X++ compiler. This will have profound impact on the performance of the business applications written in X++, and it very clearly points to where they'll be going in the next few releases of Dynamics Ax."

Watch the video here.

My thoughts on the subject - as I posted on Dilip's blog, is that X++ sooner than later will become the new COBOL; 'pure' X++ code and developers will never die completly due to the exsisting code-base already out there, which has to be maintained but when the full implementation of an intermedia langauge parser comes into exsistence .NET programmers will be able to code Dynamics AX customizations in e.g. Visual Studio. There are many blessings in X++ - Extended Data Types and it's function to name one - which does not exsist in other languages ( to my knowledge ) which newer generations of developers will probably not fanthom if the platform will be migrated completly to the .NET-platform.

The progress begs the question - what are the advantages in the migration from X++ to .NET? Hard to tell for a X++ 'evangelist' but one thing could be the that Microsoft wish to consolidate NAV and AX development to the .NET platform through the intermediate language and thus open ERP development to the many exsisting .NET developers. This will perhaps position Microsoft better in the ERP market versus e.g. SAP if in a few years all the .NET programmers will be able to develop ERP solutions?

The days where a X++ developer could get by with "only" SQL and X++ skills are soon to end. Already for ISVs to give customers the full advantage of their Dynamics AX 2009 investment, their competencies has to include .NET programmers and Business Intelligence people (e.g. MDX, Reporting Services) on top of the traditional X++ and SQL teams. This will bring new challenges to ISVs and Dynamics AX team composition.