MyEclipse for Spring 8.6 Released with Flex, GWT and iPhone Scaffolding
Genuitec and Skyway Software have announced the release of MyEclipse for Spring 8.6. The latest release includes accelerators for Spring Core, Adobe Flex, Spring MVC, GWT, Spring Web Flow and iPhone Web applications.
The release also introduces a new set of Spring development editors, Code Assistants, that facilitate the annotation-based development of Spring and JAX-WS artifacts.
InfoQ had a Q&A with the Niel Eyde, Director of Product Management, regarding this new version:
InfoQ: What are the main features of MyEclipse for Spring and what problem does it try to solve?
Niel: One of the main features of MyEclipse for Spring is scaffolding, which consists of generating full or major portions of a Spring application by applying standard application patterns from a minimal set of inputs provided by the developer. From a variety of inputs (Java beans, JPA entities, relational tables, and WSDL/XML) you can generate multiple types of applications, including Spring MVC, Spring Web Flow, Google Web Toolkit (GWT) & Spring, Adobe Flex & Spring, and iPhone Web applications. MyEclipse for Spring also supports web service scaffolding to consume and produce JAX-WS web services, including contract-first and code-first development.
The goal of scaffolding is to accelerate application development. MyEclipse for Spring can generate all layers of an application, including the web, service, domain, and data access layers. We typically see two use cases for MyEclipse for Spring. One use case is to generate fully implemented ready-to-run applications, contextual examples, or functional prototypes. Another use case is to generate specific application layers or components that can be leveraged by application developers in their development projects.
Code assistants are another major feature of MyEclipse for Spring that help developers in their day-to-day development activities. The goal of our code assistants feature is to support annotation-based development. While most Java developers understand the technical use of Java annotations, it's not always clear which annotations are available for a specific technology and when a particular annotation should be used. For example, the Spring framework has excellent support for annotation-based programming; however, there are a lot of supported annotations. Some annotations are applicable to all Spring stereotypes, and other annotations are only applicable to specific stereotypes. Code assistants support annotation-based development by helping a developer understand what annotations are available and in what context the annotation should be used and by providing assistance in configuring the annotations.
A more detailed review of the MyEclipse for Spring features can be found at http://www.myeclipseide.com/me4s
InfoQ: What are the most important additions in the new release?
Niel: In the 8.6 release, we enhanced the existing Spring MVC scaffolding feature and added new scaffolding support for Adobe Flex, Google Web Toolkit (GWT), Spring Web Flow, and iPhone Web. This release includes new code assistants for JAX-WS and Spring stereotypes, including Controllers, Services, Components, and Repositories. As part of this release, we also focused on creating a more comprehensive set of educational materials, documentation and tutorials to support our users and give them the information they need to be successful with MyEclipse for Spring.
InfoQ: How do you see your clients using your product in their every day projects? How would be a typical development process that you would suggest to teams that are considering your solution?
Niel: In general, our clients use MyEclipse for Spring for accelerating application development, creating functional prototypes, learning new technologies, and accelerating application modernization. I’ll briefly explain each of these use cases.
Accelerating Application Development
A developer using Eclipse has a lot of tools available to them, and MyEclipse for Spring adds an integrated set of code generation functions to their Eclipse toolset. Code generation is just a few keystrokes away, and a developer can specify exactly what components they need to generate.
MyEclipse for Spring doesn’t make a distinction between prototyping and development, but many clients find the ability to generate fully working applications from a domain model to be very beneficial to prototyping. Essentially, they can iterate on the domain model, and regenerate an application from the domain model in minutes. Having a running application is very helpful in elaborating requirements with business analysts. Furthermore, you can use the prototype as the starting point for application development.
Learning New Technologies
Developers that are well versed in one technology can leverage those skills in learning new technologies. Developers typically use sample or reference applications as a starting point for learning, but MyEclipse for Spring lets them create contextual examples using their own domain model. One example is a PHP developer who wants to learn Spring. Leveraging the database tables of one of their existing PHP applications, they can immediately generate a Spring MVC (Spring Web Flow, etc...) application. Since the application is based on their domain model, the application is more familiar to them than something they might download from the Internet. Furthermore, they are learning to use the new technology in the proper manner because the “contextual example” encompasses the best practices of the new technology.
MyEclipse for Spring is very useful to organizations that are modernizing their applications, and there are many scenarios where MyEclipse for Spring comes into play. For example, perhaps the organization is moving to Spring from some other technology or framework. Or, maybe they want a richer front-end (GWT, Adobe Flex) for their existing application. In either case, they can use MyEclipse for Spring to jumpstart the modernization effort by leveraging their existing application artifacts for generating a significant portion of the new application components.
InfoQ: With scaffolding being a very important feature of your product, how does it compare with other available solutions like Spring Roo, etc?
Niel: First, let me say that I am a fan of the work that is being done by the Spring Roo team. Our goal in releasing additional generative tooling for Spring has always been to give developers additional options and capabilities that largely complement the free options available from SpringSource.
We have a webpage that highlights some of the key differences between Roo and MyEclipse for Spring here, but at a high-level, there are three differences that stand out the most. The first is the development environment employed across the two tools: MyEclipse for Spring uses Eclipse-based wizards and editors, while Spring Roo uses a scripting language and a command line interface. Eclipse users are already familiar with using wizards and editors, so there’s zero learning curve for getting started with MyEclipse for Spring. The second difference is the application patterns followed by the generated applications: MyEclipse for Spring generates applications that follow a traditional architectural pattern (Controller, Service, Domain and DAO), and Spring Roo generates application that adhere to Domain Driven Design concepts (Aspects & Weaving, no Services or DAOs).
The third difference is in the generated application types: MyEclipse for Spring generates Spring MVC, Spring Web Flow, GWT, Adobe Flex and iPhone Web applications and supports both Spring 2.5/3.0. All required third party libraries are GA, making MyEclipse for Spring suitable for generating components for production applications today. Spring Roo only generates Spring MVC for Spring 3.0. Some early access versions of Spring Roo support additional application types, but they rely on milestone and early access versions of libraries and frameworks.
Again, to see some of the other differences between MyEclipse for Spring and Roo, visit http://www.myeclipseide.com/me4s/faqs/faqs_tool_comparison.php
InfoQ: What is the roadmap for your project? How do you see it evolving in the near future?
Niel: On the scaffolding front, we’re going to continue to explore scaffolding more application types. We also want to provide more fine-grained control of the code generator, including making it easier to customize the MyEclipse for Spring code generation engine by providing custom templates. We also have several new code assistants planned, so stay tuned.
MyEclipse for Spring includes all of the features of MyEclipse Professional, and a 30-day free trial is available.