One of the things that I found particularly interesting was how the decision to hand-code versus generate was illustrated. The concept is very simple, and I’ve discussed it over and over again in various places (webinars, screencasts, blog posts), but until I saw the diagram, I never really considered it something that needed to be illustrated. But now that I’ve seen it, I see the value. I’ve recreated the diagram (with permission of course), and I modified it slightly to make it more general.
To achieve the benefits of code generation in the manner illustrated, a developer needs to be very familiar with all of the artifacts that can be generated. ME4S 9.0 is the present version, and it can generate software components for Spring MVC, Spring Web Flow, Spring Security, REST, JAX-WS, Adobe Flex, Google Web Toolkit (GWT), iPhone w/ iWebKit, JPA, DAO and JSF 2.0/Primefaces. The thing that differentiates a ME4S expert from a beginner is that the expert knows how to squeeze everything they can out of code generation. Code generation is always their first option, and they will only revert to hand-coding when code generation options don’t exist.
I hope this post is helpful to current and future ME4S users. I realize that some ME4S users don’t view the code generation functions of ME4S in this manner. The primary ME4S use case for many developers is to use the code generation functions to quickly a generate a fully implemented, ready-to-run application. Just remember that generating fully-implemented, ready-to-run applications is a testament to the completeness and quality of the ME4S code generation functions, but it’s not the only use case. :-)