Tuesday, August 25, 2009

A look at my tool box

Hello;

Its my assumption that you are a java developer. In this blogs, i will be writting about creating lightweight, high performant java application. Today i will take you through the contents of my tool box and why i settled for each of the tools. In the subsequent posts, we will be creating a complete java application using the aforementioned tools. Be my guest.

Every java developer has to choose the following:
  • An IDE
  • Presentation framework
  • Middleware framework
  • persistence framework
  • Testing framework
  • Building mechanism
  • Deployment environment
The IDE
   There are a number of great java IDEs available. Some of them are commercial (You need to part with some money to use) while others are freely available. I will be focusing on the free / opensource tools in this blog. The most popular open source java IDEs are Netbeans and Eclipse. Each of them has its pros and cons and the choice of either in my opinion is a matter of personal preference. I happen to have started with netbeans but ended up with eclipse. When i was new to java development, i needed a tool that would do most of the work for me. Netbeans generated the build scripts for me, integrated will with the deployment environment and did alot of code generation for me. At first this seemed to be a good thing. Later on i came to realise that i needed more controll  over my project. I needed to orchestrate the build/packaging myself. I learnt how to use ANT and started managing my projects. I realised that Netbeans was imposing the project directory structure. After trying eclipse for sometime, i got a taste of flexibility. I could create my project anyway i want. i have been using eclipse since then and it works for me.  As i said, i prefer less magic on my project and i therefore dont put any plugins on my Eclipse.  In short, Eclipse is my IDE of choice.

 Middleware framework
What i call the middleware framework is what sits at the middle tier of my 3-tier applications. This is what holds the application together. I have several options. The two main ones are :
  •  EJB3
  • Springframework
I started using EJB3 because it is a standard and its easy to use. I am able to write great applications using EJB3. However, i always have 2 issues.
  1. Unit testing - Unit testing EJB3 applications is a complicated business. You have to decide whether to use mock objects, embedded containers or in-container testing. 
  2. Deployment - You require to EJB containers to deploy your application. EJB application servers are not what i would call lightweight.
My other option is the springframework. Spring framework elegantly tie all the components of your application together. Unit testing is very easy and you can deploy your application in any servlet container. Servlet containers lighter than their EJB counter parts.  I will be showing you how to use the springframework in your n-tier application.


The persistence framework


--- i need to get a cup of coffee. i will be back tomorrow. 
Good night.

No comments:

Post a Comment