Complexity tool - Dynamics AX 2009

We wanted to include the complexity analysis in our CI (Continuous Integration) environment within the Microsoft Dynamics AX 2009. This is especially important for us, as we are very agile (more than 3 years of Scrum), and have top notch technical environment to support this in the .NET world (Microsoft Visual Studio with Team System).

We were missing software quality indicators which can help developers check their code in Microsoft Dynamics AX 2009 environment. Now together with the existing CI tools in DAX (Dynamics AX) technology has enabled better software quality which is very important in the lean approach, because your work quality is not only affecting end-user, but also the others who work on it during the process, which in software production can be many people.  

I knew of great tool that was created for Dynamics AX 2004 that supports software metrics like: Cyclomatic Complexity, Lack of Cohesion of Methods, Number of Source Lines, Comment Percentage. I tried to add it to our environment, but found some issues. These were easily fixed using DAX's Code comparison tools. You can download the updated version here (110 kb). It also includes the short manual (2 steps) for user setup. Just unzip the archive, import the XPO (choosing to overwrite the existing elements).

If you have time, take a look at good grad paper from the original tool author can be found.

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

Best Innovation in Business use of IT

In the aftermath of our success with the big jump from version 3 to version 5 of Microsoft Dynamics AX 2009, we have extended our winning streak by winning the Serbian Association of Software Engineering’s Plaque for Innovation in Business use of IT. 

For that matter I’ve been an honoured guest in the national radio show Digital Icons along with other winners.

Also the national television made a report on the Plaque winners during the final ceremony and can be seen here. A new company that specializes in electronic media also made the report which can be seen here.

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

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 v1.2.zip (104.31 kb). Just unzip it to directory where your BlogEngine.NET is installed.

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

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:
  • The Big Jump - From “Axapta 3.0” to Microsoft Dynamics AX 2009
  • Scrum with Team Foundation System 2010
  • 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 trained 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. 
Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

Delta Sport Wins International ICT Award, Diskobolos in services category

After successful presentation of our solution in the final round, I am happy to announce that Delta Sport has won the International ICT Award, Diskobolos (Discobolus) in services category.

The Diskobolos award is given by JISA (Union of ICT Societies of Serbia) for the best achievements in the usage of information and communication technologies in almost all fields of social and trade life. According to the jury votes, DS Retail - Delta Sport retail software was announced the best one in the Services category.

At the official ceremony in the Continental Hotel, on behalf of the company, I received the award. I am glad that I received good feedback about my presentation at finals and speech at award ceremony, since speaking from static stand was a new experience for me.

I would once again like to emphasize that this solution is result of work of the whole company, and it's long time know-how in retail, and to thank to all the people in company, and especially the ones that I mentioned in the post about our solution getting into finals.

Here are some photos from finals presentation (first row) and awards ceremony (second and third row).

Bojan Jovicic at Diskobolos 2008 (Final Rounds Presentation) #1   Bojan Jovicic at Diskobolos 2008 (Final Rounds Presentation) #2
 Bojan Jovicic at Diskobolos 2008 Awards Ceremony #1  Bojan Jovicic at Diskobolos 2008 Awards Ceremony #2
 Bojan Jovicic at Diskobolos 2008 Awards Ceremony #3  Bojan Jovicic at Diskobolos 2008 Awards Ceremony #4

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

Our Software Solution Has Entered Final Round for International ICT Award

Diskobolos (Discobolus)  I am very happy, because our (DELTA SPORT) software solution has entered final round for Diskobolos (Discobolus) International ICT Award in services category. I will be presenting our software solution tommorow (10.12.2008) at the Serbian Commerce Chamber, infront of DELTA SPORT.

You can read more about the Diskobolos prize at: http://www.jisa.rs/engleski/diskobolos/diskobolose.htm

This solution is results of work of whole company, and it's long time know-how in retail. The people that contributed most are my closest associates. Althought the team is very small, we are trying to maintain very high quality standards. We are focused on Scrum, and also use agile principles like continious integration, pair programming, etc. Our team is very flexibile, and we are using newest technologies. We try to find proper balance between generalization and specialization, and apply solutions like design patterns.

Here are the people that made the core of our Development team for this project (in order that they started working): Nemanja Vrndić, Marijana Šneperger, Milan Novaković, Ivana Gojković, Boris Tarana, Marko Mihajlović, Vladimir Dimitrić

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

Speaking at MS Sinergija (Synergy) 2008

It was that time of year again - Microsoft Sinergija (Synergy). This time entitled "Where IT all comes together", MS Sinergija 2008 was tech event of the year. It lasted from 14.10. - 17.10. and had over 100 lectures held.

I had great pleasure to be one of the speakers with most lectures, and I held 5 lectures. Two of them were in IT Management track, and other 3 were technological. In one of them, I spoke together with my brother Nenad, who also had 5 tracks like me (we were the only ones speaking at 5 lectures).

This lectures are results of long time effort, but also of hard preparations before the conference. I received great feedback, both from people attending the conference, but also from other speakers who attended some of my lectures.

The lectures I held were (in order that they were held):

  • Wednesday
    • Domain Specific Development With VS 2008 (together with my brother Nenad)
    • Agile Development with Team System
  • Thursday
    • Writing Maintainable and Robust Applications with Microsoft Visual Studio 2008 Team Edition for Software Developers
    • Visual Studio Team System 2008 Extensibility for Agile Project Management with SCRUM
  • Friday
    • Improving Code Performance with Microsoft Visual Studio 2008 Team Edition for Software Developers

At each lecture I gave presents: 3 books (Mostly Design Patterns from GoF and Refactoring from M. Fowler) and 2 Nike T-Shirts (one for men and one for women, courtesy of my company, DELTA SPORT). So in total 15 books and 10 T-Shirts. I am sorry I could not reward all the people who where involved in lectures, and will try to fix this next year.

Bojan Jovicic speaking at Sinergija (Sinergy) 2008 #1 Bojan Jovicic speaking at Sinergija (Sinergy) 2008 #2
Bojan Jovicic speaking at Sinergija (Sinergy) 2008 #3 Bojan Jovicic speaking at Sinergija (Sinergy) 2008 #4
Bojan Jovicic speaking at Sinergija (Sinergy) 2008 #5 Bojan Jovicic speaking at Sinergija (Sinergy) 2008 #6

You can see some feedback (with focus on my Agile lecture) at http://horizontblog.com/?p=171

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

Sinergija 2007 Speaking Engagement

Sinergija (Sinergy) 2007This year I will be one of speakers at Sinergija 2007 (Synergy 2007).

Sinergija is Microsoft annual conference about new technologies. I am only speaker that is comming neither from Microsoft, neither from company that is Microsoft partner, and neither from company that is primarily IT oriented.

I will be holding 3 tracks:

  • Design Patterns with Visual Studio 2008
  • WCF Improvements in Visual Studio 2008
  • Refactoring to Patterns with Visual Studio 2008

My company (DELTA SPORT) has provided nice Nike+ T-Shirts for prizes.

See you there.

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

Sample Design Patterns in Dynamics AX (X++)

Design Patterns in Microsoft Dynamics AX

I have completed a project that contains sample implementation of all GoF (Gang Of Four: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides) design patterns, in X++ (Dynamics AX programming language).

This implementations are sample, and are to be used as starting point. The samples are mostly abstract, and can be used for learning purposes. Patterns are grouped in categories as in original book "Design Patterns: Elements of Reusable Object-Oriented Software".

Here is the code for sample project: PrivateProject_SampleDesignPatterns.zip (9.09 kb)

And as Martin Fowler sais in his book "Analysis Patterns: Reusable Object Models": "Patterns are suggestions, not prescriptions".

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati

SysDictClass method implementedBy() returns as if class implements itself

Iterator Design PatternDuring my research of iterator design pattern usage in Dynamics AX, I was using reflection in X++ to check class hierarchy of some classes that are part of kernel. 

In class SysDictClass, method implementedBy() returns list of classes that implement given class or interface. What is strange is that it always returns that same class in this list, as if it is considered that class implements itself.

Finding this very strange, I made simple workaround. It is part of job that shows some basic reflection stuff, and it does not show that class implements itself.

Here is the code for this simple job: Job_ReflectionJob.zip

Facebook Google Buzz BlinkList Del.icio.us Digg It! DZone It! Furl NewsVine Reddit StumbleUpon Technorati