Microsoft Sinergija (Synergy) 2011

This year I will be speaking at the annual Microsoft conference Sinergija 2011 (Sinergy).

As a CIO I am very proud that this year there are even two speakers from our company’s IT team, beside myself. This is a significant acknowledgement both to the whole company as well as to my work in inspiring and motivating others to grow and learn, but also to join the community and share the knowledge (starting with 2009 when one of my associates held one track, to 2010 and this with two of my associates being presenters).

You are kindly invited to come and check their sessions:

– System Center Service Manager – Implementing ITIL framework on 19.10. at 10:30 – 11:30.
– Data Mining In Retail Industry on 20.10. at 16:00 – 17:00.

As for me, I will be doing five tracks. The most important is Microsoft Dynamics AX 2012 (a new version of Microsoft’s Flagship ERP system). I will be doing a session on Agile and also three community tracks (one of them is Agile/Scrum User Group meet-up and also Microsoft Dynamics User Group meet-up).

Community tracks are free, so anyone can come (more info:

Microsoft Dynamics AX – Remedy for slow Microsoft Excel import

Recently I have been asked to help with solving an issue that involved reading data from Microsoft Excel (xls format) into Microsoft Dynamics AX.

Original approach was used with default set of classes for Microsoft Excel (SysExcelApplication, SysExcelWorksheets, SysExcelWorksheet, etc.). The excel file in question was very small but with a rather large number of columns (~150). About 200 reads were made per row. What made us investigate this further was the fact that import was quite slow. After doing some basic profiling (we used Microsoft .NET’s System.Diagnostics.Stopwatch so we can cross-compare the results) we found out that the time required to process one row increases almost exponentially.

After that we developed a small application in Microsoft.NET/C# (with Microsoft Visual Studio) that was reading data from Excel using OleDbConnection class and saving it in Microsoft Dynamics AX using .NET Business Connector.  The increase in speed was several orders of magnitude but what is also important is that near exponential growth of time per row was missing.

We then applied the same principle with Microsoft Dynamics in X++ using its set of classes for ADO access (CCADOConnection, CCADOCommand, CCADORecordset). The speed was still around 100 times greater than with default approach and ~2.5 times slower than .NET. With this set of classes we were lacking the ability to do arbitrary (e.g. accessing the previous row values) row access like in .NET, so some caching was needed. Still the speed increase was incredible. Below is the graph of time needed (in milliseconds) to process one row with all three approaches.

If you haven’t tried this approach, I suggest it.  For it will surely out-weight the time needed for implementation, especially with bigger or files with many columns. Connection string and row selection query (you can remove absolute row range) for .NET and X++ should look something like this:

connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;";
rowQuery = strfmt("SELECT * FROM [Excel 8.0;HDR=NO;IMEX=1;Database=%1;].[%2$%3]", filename, "OrderWorkSheet", "A:EJ");

Update: Zubair got in contact with me regarding this, and has produced full X++ samples for XLS and XLSX.

Retail IT Summit 2011

This is one of the conferences where I initially planned to attend as a visitor, because of industrial focus (retail), but I got invited by organizers to present instead.

The event will bring together representatives of leading retail chains in Serbia, who will attend a one day event (10th May 2011) on which they will follow the presentations and exhibitions of the biggest international experts in retail area (you can get more info and detailed list of exhibitors here).

I will be presenting about our way of working with focus on our award winning in-house developed retail solution and its application in sports and fashion retail, with brief touch on our ERP system: Microsoft Dynamics AX.

Decisions Spring 2011

To my great pleasure, I have been asked again to speak about Agile Software Development and Microsoft Dynamics AX at one of the greatest virtual conferences on Microsoft Dynamics products: Decisions! has been hosting these semiannual events for a couple of years now, and they are tremendous, free resources for learning and networking. This time it is spring version, and is again features 4 days dedicated to different Dynamics products, as shown on promo below:

One interesting thing is that expert will be answering questions from the audience through live chat after the sessions. And you may want to consider stopping in to the networking lounge at the event as well and continuing the conversation with the presenters or other attendees, as that tends to get some lively discussion. If you already attended this event, then you know from your own experiences how interesting this can be.

Here are the links for programs for individual days:

And you can register here.

Good Old AI & Microsoft Dynamics AX

Good Old AI Logo

This winter I had lot of opportunities to speak in academic circles. In a sense the presentation was similar to my lecture about Microsoft Dynamics AX to future managers at Belgrade University, but this time the audience was the group that I belong to and which focuses on AI (Artificial Intelligence) application in academic and practical fields.

Good Old AI is an internationally recognized network of award-winning researchers, engineers, and students working in the fields of applied artificial intelligence and software engineering, situated at the University of Belgrade. Almost all the people in the group are young, talented and very motivated researchers or people from the AI field with very deep technical knowledge (here is the link to most of people from the group).

My session was attuned to this so this time it was very technical and was trying to show how easy it is to create new functionalities in Microsoft Dynamics AX and how it is easy to use its out-of-the-box CI (Continuous Integration) capabilities to support agile approaches like Scrum or how to extend it to support high quality development trough software metrics. Here is a more detailed report about my session at Good Old AI’s website:

Microsoft Sinergija 2010 – Review

Having been a regular lecturer in the past four years, I was really excited with this year’s Microsoft annual conference: Microsoft Sinergija. It is celebrating its 10th anniversary and was internationally oriented (both in speaker and audience sense), becoming one of the most important IT events in the region.

Many side events were also organized, both of educational and entertainment type. There was a gala opening, a party and also a remarkable Influencer Summit featuring an outstanding fusion of technical and community content. Here you can read about Influencer Summit and also get some statistics about the whole Sinergija (3000+ attendees).

As I wrote before, I was already invited as a speaker in Microsoft Dynamics Area, but more important was that this year made me even prouder than last year in my coaching career, as now even two of my associates presented on their own. Each held a very informative and amusing track. The auditorium was quite pleased with both of them and so was I. My track was together with our business partner NPS, and we did a really notable talk with demos on their excellent work with us in field of Human Capital Management in Microsoft Dynamics AX.

Microsoft Sinergija (Synergy) 2010

This year I was invited as a speaker in the Microsoft Dynamics area for the annual Microsoft conference Sinergija (Sinergy).

I have been a regular speaker at Sinergija since 2007 when I held 3 tracks, and I got to amazing 5 tracks in 2008, and then back to 3 tracks in 2009.

What was important in 2009 is that one of my associates held one track, and I am really proud of this, and even prouder because this year tracks of two of my associates have already been approved.

Information about me was published on front page of Sinergija’s website and you can find full article in their lecturer series. They also published this on Sinergija’s Facebook Page and in their Facebook lecturer album.

Social Bookmarks 1.2 with support for Google Reader/Buzz

After upgrading of my blog to BlogEngine.NET 1.6, I picked up a new version of source code and got my hands dirty with my modification to SocialBookmarks extension.

My primary goal was to add support for Google Buzz, using Google Reader sharing. I also did some refactoring (IMHO (In My Humble Opinion) better readability and increased maintainability with reduced code size by 1/3)), cleaned HTML a little, and worked on issue with images path, so you can now leave it blank.

Here is the complete file with all images (including Google Buzz and Facebook): SocialBookmarks (104 kb). Just unzip it to directory where your BlogEngine.NET is installed.

BlogEngine.NET 1.5 with Social Bookmarking and Facebook support

Today I upgraded my blog to BlogEngine.NET 1.5.

I installed some extensions. I added the extension for Social Bookmarking ( It was missing Facebook sharing functionality, so I made some modifications to it, and notified the author. I hope he includes Facebook support in new version.

I am attaching just the archive with changes (C# file and 2 images): SocialBookmarks Extension – (7.48 kb)

Microsoft Sinergija (Synergy) 2009

This year the Synergy (Sinergija) had two days of lectures, instead of three days like in previous years. I held three lectures this time:
  • Scrum with Team Foundation System 2010
  • The Big Jump – From “Axapta 3.0” to Microsoft Dynamics AX 2009
  • Maintainable and Robust Development with Microsoft Visual Studio 2010
I was pleased to see that this year we had foreign guests attending the lectures, including my lecture on Scrum that I held in English in the manner of a friendly host.
What I am most proud of, among my this year’s efforts concerning the Synergy is that my role as coach was crowned by the fact that I had coached one of my associates so that he was able to hold a lecture all on his own, after just a few words of introduction by myself.