Lots of things going on behind the scenes at FirstPartners. One of which is the Spring Framework training course that we’re giving on Wed 30th May in Bewley’s Hotel, Ballsbridge, Dublin. Interested in going? – you can book here (via Trigraph). Can’t make it? We’ll probably do a follow up.
What are you missing? Apart from the crash test dummies (below), there’s loads of lego blocks, Swiss mountains, trains crashing through walls and a Kangaroo. (Spring, Geddit?). You might even learn something about Java along the way.
Agile Projects using the Spring Framework
Delivery: Public or In-house
Course Length: 0.5 days. Optional mentoring / follow up session if required by Client
Course Approach: Lecture, discussions
Level: Beginner / Intermediate
Spring, with good reason, is the most actively used framework in the Enterprise Java world today. The half- day briefing shows the problems that Spring can solve for your projects, core Spring concepts such as Inversion of Control and integration with existing Enterprise Java technologies for database access, messaging and web deployment. The briefing also shows how to use Spring to make your projects more agile, improving quality and reducing deployment time.
- Following completion of this course, students will be able to:
- Understand why Enterprise Java is the mostly widely used corporate technology, and how Spring both simplifies and improves this technology.
- Understand core Spring concepts such as Inversion of Control (IOC), configuration , deployment and testing.
- Describe how to integrate Spring with Enterprise Technologies such as Databases, Messaging and Web 2 frameworks.
- Understand how Spring can make your projects more agile and the benefits it brings to your organization
- Map out a plan of how to introduce the Spring framework to existing systems.
Section 1: The Problems That Spring Solves
- Who are you? Who are we?
- What is Spring?
- What is (Enterprise) Java?
- The problems with Enterprise Java
- Why Enterprise Java is costing you money.
- The Deployment Scale
- Java Classes and Objects
- Just enough XML to get by
- Core Spring – Inversion of Control pattern
- Spring Configuration and my First Spring App
- Deployment via Web, Enterprise Java and Command line
- Spring on other platforms (.Net , Ruby and Groovy)
- Alternatives to Spring
- Spring and Java 5 – easier development
- Starting out – just a little Spring in your Step.
Section 2: Core Spring and Enterprise Spring Integration
- Spring Web Framework (MVC)
- Spring Web with Struts , JSF , XSLT , Tiles and GWT (Google Web Toolkit)
- Spring and Ajax in Web 2 Applications.
- Spring Webflow
- Spring and Databases (Hibernate and JDBC)
- Spring and Messaging (MQ and JMS)
- Spring Remoting and Web Services
- Aspect Orientated Programming (AOP)
- Transactions in Spring
- Appfuse – ready to roll Spring projects with Maven
- Administration of your Application using Spring and JMX
- Scheduling using Spring and Quartz
- Spring and Acegi Security
Section 3: Practical Spring – make your project more Agile
- The problems with IT Projects
- What is Agile
- Spectrum of Agility
- How Spring makes your project more agile (and your customer happy)
- Key Agile Practices
- Unit Testing with Spring
- Integration Testing
- Mock Objects
- Spring IDE
- Spring and Business Rules
- Spring and Workflow
- Alternative Spring configuration.
- Extending Spring to meet you (obscure) needs.
- What’s new in Spring 2.5 (and coming up for Spring 3)
- Managers and Project Managers wishing to understand the benefits of adding Spring to their projects.
- Software developers needing an introduction to Java and the Spring Framework and integration with key Enterprise technologies.
- Support, Database , Web Designers and other IT professionals needing to interface with Spring and Enterprise Java systems.
- .Net developers wishing to understand the concepts behind the Spring.Net framework.
Enterprise Java (Trigraph) and Agile Project Management (Trigraph)
Some high level exposure to the Java, .Net or other Object Orientated language would be beneficial but
Fergal Breen asked to blog about the Dublin Silverlight event, but Stephen Downey beat me to it. (Update: Ken McGuire is also writing about the event)
Microsoft Silverlight is a flash competitor; It looks good and is well worth checking out, but I’ve got my reservations if it is truely as portable as Flash (see comments on Tom Raftery’s Silverlight launch post). All the same, Silverlight is going to be big (it’s backed by Microsoft), and the IDE / Editor is setting a good standard.
Not sure? Go to the Event and make your own mind up.
Flash is created by cool people who wear black and use Apple Macs. If you’re not sure as to what flash is, the chances are that if you’ve seen something on the web recently that made you go ‘wow’ for it’s coolness, then it was built using Adobe Flash.
To add substance to this froth Java people can use Flash (instead of normal web pages) to create cool pages that do useful stuff. For example Google Analytics uses Java and Flash to create a stunning User Interface. Even though Ajax and DHTML give you a lot of interactivity on your web pages, Flash goes one better at the small cost of not being as good for SEO and requiring a plugin (that most people already have installed).
So, what are you to do if you want to combine the coolness of Flash with the heavy lifting of Enterprise Java on the Server? The two main options are:
- Flex from Adobe is one way for Java people to create flash. The core toolkit is free, but the editor costs about $500
and that’s before you pay for using it on your servers. More details in the previous blogposts on Adobe Apollo and Adobe Flex.
- Open Laszlo Project is open source all the way, but does’t have a drag and drop editor (i.e. it’s more technical than graphical). Still , it allows you to create some cool effects , such as this Flash Clock.
Which framework will win out? I don’t know , and that’s before you even consider the Standard Java Web Frameworks such as Struts 2.
More (In progess) notes on Open Java and Flash are on the wiki. In an impulse buy , I bought the OpenLaszlo in Action yesterday. As an EBook , with rebate (coupon LZ35607 before the end of August) it costs about 10 Euro. Initial impressions are good (both for the book and Open Laszlo) , but I’m still working my way through it (so don’t quote me on it).
Disclaimer: I get a rebate if you buy the book from Amazon, but not if you buy the (Cheaper) E-Book direct from Manning. I bought the E-Book this time, but have got free books from Manning in the past for having reviewed (as yet unpublished) JBoss items.
(Struts is one of the most popular way for companies to build their websites. This was to be posted on Bill moaning about Struts 1 problems, but Bill’s blog isn’t accepting comments at the moment.)
I hate to spoil your Struts 1 party , but most of these problems have been known for some time (and the Struts team would be the first to articulate them). Struts 2 is a huge improvement and , as you mention, there are good alternatives out there (including Spring MVC).
The problem is that migration from Struts 1 to (for example) Struts 2 , while easy, still carries a risk for the project in question. It can be hard to convince the business decision maker when all they see is pain (‘so you’re going to break the existing site?‘) for very little gain (‘where’s the immediate payback of upgrading?‘).
My advice is to stick with Struts 1 on existing projects. Use Struts 2 (or even better, Appfuse) on new projects. And for new code on existing projects, consider running them both side by side. They’re all tried and tested solutions.
I’ve been playing with Yahoo’s latest toy – see Yahoo Pipes in 10 easy steps.
It’s a very good example of a Web 2 tool. While it is still in beta it already allows you to combine / filter / clone and edit RSS streams. (RSS = a summary of a website, offered by many sites, including this one – just look for the orange logo). In the same way that SQL queries a database, Pipes allows you to query Websites (or to be more precise RSS streams) for the information that you want.
Yahoo Pipes is worth checking out for the following reasons:
- The user interface (finally) puts Gmail to shame. Just how do they generate the dynamic / curvy pipes linking the boxes?
- It’s completely graphic. Users with at a ‘power user of Excel’ level can generate streams that would previously have taken an experienced programmer a number of days.
- It’s another piece on the Web2 infrastructure. All other desktop apps have migrated to the web. It was just a matter of time before developer tools did as well. Does it make sense for you? Your call.
Pipes, for the reasons below, is not yet going to displace teams of Java people who do nothing but code RSS streams all day. Before, the choice on many IT projects was Build , Buy or use Open Source (or various combinations of those three). Online Web 2 apps and services (of which pipes is only one example) gives a fourth option to put into the mix. So what does Yahoo pipes need to overcome the ‘toy’ label and become a ‘serious’ option for IT projects?
- The problem is, it’s free. How do Yahoo intend making money out of Pipes? More accurately , will they make enough money so that my project can still use it in 3 years time.
- You’re stuck with Yahoo. If you build against pipes, you’re stuck with them. Even in the database world, it is possible, if expensive, to switch product supplier. I’d love Yahoo to open source pipes to solve this dilemma, and allow them to build a business around the ‘pipes hosting’ part.
- It’s completely graphic. This is mainly a good thing but no doubt most developers would still like the option to see and edit the generated code.
- It’s hard to extend. If there is a way of extending it with my own ‘widgets’ , then I missed it. I can host RSS-generating code on my own server, but this detracts from pipes overall ease of use.
What do you think – will Yahoo Pipes take off , or be quietly abandonded?
Update: Apollo has since been rename AIR – Adobe Integrated Runtime. Personally, I Preferred the ‘Flex’ name.
What is Adobe Apollo? You know, Adobe , the people that give us the PDF reader.
Is Apollo the new Java for this Decade? Will it replace Atlas and .Net? Is Apollo an answer to problems we have in building web sites that all users can see? Will Apollo replace Ajax , Flash and plain vanilla HTML? Does it play well with Ruby and JRuby?
I don’t know. And neither does the Financial Times Tech Blog. But it does say
Adobe (and incidentally eBay) looks like it has a winner – if only the company can find a better way to explain what Apollo does.
I do know that Apollo may fix the pain of cross-platform web development. So, I’m over to the Adobe Labs site to find out more. Ajaxian has the demo. Mike Chambers (Adobe product development) has the slides. According to Mike:
Apollo is a cross-operating system runtime that allows developers to leverage their existing web development skills (Flash, Flex, HTML, Ajax) to build and deploy desktop RIA’s.
Translation into plain English:Powerful web pages,easy to build , loads of pretty colours. If it’s delivered as promised
No matter what car you drive , the chances are it was influenced by the Mini. Introduced in the UK in the 1960’s a whole generation of families was crammed into a car that popularized the notion of front wheel drive. While small , it was practical and drove so well it even starred in films such as The Italian Job. Recently, a more modern version was released with none of the parts but all of the spirit of the Original.
We’ll come back to the Mini, but if you build websites using Java, then at some point you have used Struts. The original Struts is proof that a framework / project / product doesn’t have to be the best to be the most widely accepted. It just has to be in the right place at the right time, and ‘do what is says on the tin’ – in this case a fairly useful implementation of the ‘Model-View-Controller’ design pattern.
So what’s the link? Seeing the original Mini from the outside may bring a smile to your face, but on the inside it’s cramped and unfortable. You may have happy memories of websites you built using the original Struts, but lately your thoughts have been straying to more modern frameworks, perhaps with Ajax and integration with Spring built in.
This is where Struts 2 comes in. Like the Mini, it has (almost) none of the parts , but all of the Spirit of the original. It’s based on Webwork which sounds scary, but most Struts Drivers will be able to climb in , find the Struts.xml file and get the engine running within minutes. Struts 2 is easier to drive (JavaBeans instead of Action Forms), more powerful (it can use Ajax and JSF) and comes with more optional extras (e.g. it’s integration with other frameworks like Webwork and Spring).
Best of all the Struts team have a clear migration path between the old and new Struts. You can use both side by side in your
garage application, and change over the parts piece by piece. Spare parts for the original Struts will still be available for quite some time, both from the original team and the large dealer developer network that has built up around the framework.
What do you think? When Are you going to give Struts 2 a try?