Friday April 29th

Thursday April 28th

Wednesday April 27th

.NET Application Modeling Language (nAML) Specification and Tools

Understanding the architecture and code in software application plays as major factors while building good software products. This free e-book introduces a new visual modeling technique, termed as “nAML” (.NET Application Modeling Language) which overcomes the limitation of typical modeling languages by providing revolutionary way! Nothing much to say, just download it and you can get to know how POWERFUL it is!


Link does to download page. Project page is at

Oh dear god, I thought this was actually from Microsoft for a second. That would've been the last straw.

Okay, I just read through this.

1) There's nothing in here that doesn't apply to JAVA or most any other platform language.
2) The point of UML is as an abstraction of your code. Having a one-to-one mapping of data and keywords to your model does not seem to be a valuable use of time.

Hi ignu,

Thanks for your input. The project is in BETA 1 stage now... however in the next releases you will be able to see more advanced samples specific to .NET (for instance delegate, operator overloading, WCF, WWF etc). We'll include more smart and nice samples to show the POWER of nAML. Till then, if possible please provide some constructive feedback.

Thanks again.

Hi ignuk,

No this is NOT from Microsoft, but an personal effort.

You're trying to model at an abstraction level so low that writing code would just be simpler.

Modeling a for loop?

You're just writing your code twice. This violates DRY, not to mention any form of usefulness.

And there's no construct in .NET that's so unique that it requires a .NET specific modeling language. WCF, WWF are all just implementation details.


Thanks for your point. nAML is not about to model the 'whole' application all the time. In most cases having a way to illustrate the complex logic makes better sense. The same applies on common logic and workflow. For instance you have 200 logical entities, most of which being implemented on a common pattern, like the model for multi-layer architecture. In those cases having a full workflow with implementation details for a SINGLE entity really helps some times (i say some times, NOT all times) the developers a lot. Unfortunately none of the modeling langauages provides this mechanism to visually model the low level implementation details along with structural info. nAML tried to overcome this type of issues, where you can model structural and behavioural info at the same time and if needed can model from top level or low level point of view.

Thanks again.

In last couple of years in my software development career, I have worked several mid and large scale projects, from system analysis, designing architecture, implementation to tester level. To express both requirements and technical concepts, visual modeling became a vital need for me, especially for very complex level problems and corresponding candidate solutions. I became (and still) a big fan of UML, which has very powerful notations and semantics to describe a system visually from different point of view. This smart visual modeling language made my software development life much easier, even while I was reviewing the requirement and technical models after a long interval.

In many cases, on my recent software projects, I have been feeling need of a simpler semantic notation, where I can model an existing and proposed system in a single diagram, both from structural (static) and behavioral (dynamic) point of view, from physical to logical point of view and moreover which will be easy enough to be implemented quickly with a small set of notations. Having both structural and behavioral components along with low level view in a single diagram, may require a considerable big space. However for a complex system and/or concept this can be considerable to have the whole model illustrated in a wide big whiteboard or wall enabling the system stakeholders and architect to view the system from deeper view.

After establishing the notations and semantics for nAML and its successful implementation, I just wanted to share the idea with others, so that others can be benefitted. Using nAML doesn’t mean that you have to leave your existing modeling practices, but if the new concept really adds some benefit on your developer life, don’t forget to have your own feedback to make nAML better.

take any example, turn it into code. which is more expressive?

I argue the code is.


dnk needs downmod.


Commenting on Stories is limited for now and will open up to those recommended by the community. Learn how
Loading DotNetKicks...
brought to you by the Kicks Network