Every so often I find myself in a heated debate on what the quality bar should be for the code in the solution we are working on. This is an important debate, and for the project's success it should not be down prioritized. The quality bar may vary from project to project: If you are developing an internal tool for your team, you will have a completely different quality bar, than if you where writing software to control a spaceship. So in reality it all depends on the project you are working on. The important thing is to lock down on a quality bar and have all developers buy in and conform.
A part of setting the quality bar for a project is to determine whether to treat warnings as errors. Warnings are an intrinsic part of the tools developers use everyday such as compilers, FXCop, X++ Best Practice Check, PreFast and StyleCop. And for this reason you can have a good, sound, opinionated and often long talk on this fine topic with almost any developer you may cross on your way.
Being a devoted advocate for improving the code quality across any project, I want to share the following general considerations (courtesy of Ryan Harlicker) with you on why to treat warning as errors:
If you are an X++ developer you can learn how to resolve X++ Compiler warnings here.
If you are working on X++ development, but cant' figure out how many X++ Compiler warnings you have, you should read my blog post on AOT Metrics.
While digging in my archives to service a request from a co-worker I stumbled across a few articles I wrote for Damgaard Technet. Those that are still valid, I've polished a bit and made available here.
Behavioral information messages
How to use a form tree control
Delaying method calls
The user friendly Infolog
Showing operation progress
I hope you find them useful.
Make sure to check it out: http://blogs.msdn.com/x/
They already got a cool post on how to implement the observer pattern in X++.
This is the lastest of great AX resources becoming available. This site is an umbrella site for existing information. It ties together news groups, blogs, training materials, downloads, online documentation, and much more.
It didn't take me long to realize this should be my default home page for my iexplorer - this is a site I'll be visiting a lot in the future. Make sure to check it out yourself!
Here is yet another way to hone your Dynamics skills. Both application and development tracks are available.
This is the official statement:University for Microsoft Dynamics is a three-week, intensive training course with foundational and case-based instruction based on real customer situations. Responding to partners’ need for quality training classes led by trainers with field experience, Microsoft is working with selected training partners to offer five tracks covering the core of Microsoft Dynamics AX consulting and development.
Please refer to global training website for pricing, current and upcoming training schedule at: http://university.msregistration.com/
As more classes and new locations become available, they will be posted to the link above.
In Dynamics AX 4.0 we introduced support for Unicode. This was the first major milestone in making Dynamics AX world-ready. With Unicode support we are able to correctly render text and symbols from all written languages in the world. This has enabled us to offer Dynamics AX 4.0 in China (and Japan is in the pipeline).
Rendering text and symbols correctly is not enough to be world-ready. Correctly layout of the text and symbols is just as important. So the next natural step is to implement support for Right-To-Left, enabling texts and symbols to be displayed from the right to the left (Instead of the English layout which is left to right). This will enable us to offer Arabic and Hebrew versions of Dynamics AX 5.0.
I've just received my first screenshot of a pseudo-localized Arabic version of Dynamics AX 5.0. What do you think? Isn't this awesome?
THIS POST IS PROVIDED AS-IS AND CONFERS NO RIGHTS.
We need your help to implement the right feature enhancements for MorphX in Microsoft Dynamics AX 5.0.
Please spend 6-8 minutes on this short survey: http://www.surveymonkey.com/s.asp?u=562263771129
Your input is much appreciated.
The new installment of AX screencasts is now available on Channel9. It is a 20 minute video on MorphX Best Practices in Dynamics AX 4.0 - one of my favorite topics!
Here is the link:
I've attached the PowerPoint slide deck to this post. The deck contains a transcript of the talk in the slide notes.
Here is a link to all screencasts published on Channel 9 with the "Dynamics" tag.
Future screencasts will also show up here.
Today is ZBB for Milestone 1 for the next version of Dynamics AX. ZBB is short for Zero Bug Bounce, which basically means all known defects introduced since last release must be fixed. For the Partner Productivity team it means that all known defects in the new Code Upgrade toolbox are fixed. It also means I get to do what I like the most: Share exciting technology with you!
A big thank you is due to everyone who helped make this happen. All the cool ideas stem from talks with customers, partners and from online surveys. Thank you for providing us your valuable feedback!
Please notice that the icons and text resources below are not finalized yet.
This dialog replaces the dialog you used to get, when you click "Create upgrade project". As you can see, you now have more options. For the normal upgrade conflicts, you are still able to delete obsolete elements (those casting a shadow on an identical element in the lower layer). A new option is to "Auto-resolve property conflicts". Enabling this will automatically resolve conflicts where one property is changed in Your revision, and another property is changed in Their revision on the same AOT node. If the same property is changed in both Yours and Theirs it will still be marked as a conflict.
With the new toolbox you can also create upgrade projects for stale code, that needs to be revisited. By stale code I mean code that violates certain practices, and must be updated before going live. Basically the feature runs the best practice tool on your code and looks for certain types of violations and creates an upgrade project with the violating elements.
The Upgrade Project
The upgrade project itself also offers new functionality. Each conflict, and resolved conflict will have a new icon on the individual node. This makes it quite easy to get an overview of where conflicts are, and where to pay attention. As you work your way through the conflicts, you can mark a conflict as resolved, and the conflict icon changes from a red alert to a green checkmark.
The compare dialog has also had a facelift. First off all the stylesheet has been updated to include some nice gradients. While this is merely eye-candy we also added many new cool features. First of all the compare dialog can now be started by a short-cut key (CTRL-G), and it is promoted to be at the same level as Find in the context menu. This should save you for some mouseclick. Secondly your preferences are now being stored, so the next time you open compare, you don't have to select (again) what you want to compare. And as if that wasn't enough, more information is now available to assist you making the right decisions more easily. For properties the Original value is now included, so you now can see both: Yours, Theirs and Original in the same window.
Do you need to tell your boss when you'll be done with your work? I do. For code upgrade the help is near. You can now print a report, that is fully configurable with estimates for solving the detected conflicts of the various types. The estimates are broken down to the same granularity as the detected conflicts, which is on a per node level. Please note, that the data in the screenshot is staged, and not really meaningful.
At Convergence in Dallas next week, my team will be present. They will share the same information as in this post. If you are there, make sure to pay them a visit.
This posting is provided "AS IS" with no warranties, and confers no rights.