You are here : Home Technology Java  Development Services Java Development Services Java Frameworks & Best Practices

Java Frameworks & Best Practices

Java Development Services

Java J2EE Development
Java SWT Apps Development
Java Swing Development
Java JUnit Testing
Java Frameworks & Practices
Java Software Development
Java Web Development
Java Capability Summary

Silicus Java Platform Development Services CapabilitiesJava Platform Capabilities Summary



Download

More Information
Request a Quote
Request Pricing Information
software testing glossary
Java Development Glossary

Java Frameworks & Best Practices

Silicus has researched, tested and internalized an array of Java frameworks and best practices for state of the art web development and product development. Silicus' in-house Java team has worked on increasingly sophisticated architectures and development guidelines to create a manual on industry accepted best practices. Our best practices include norms and standards on user interface techniques, caching and resource management, performance tuning, debugging, testing and web services.

The section below covers an overview of popular web application frameworks and development tools. Numerous frameworks exist today, but evaluating them for their advantages and drawbacks, and incorporating them in your development is a challenging task. Fortunately for you, Silicus has done all the research and comparisons to suggest the most appropriate set of frameworks, tools and methodologies best suited for your development.

Eclipse Java Development

Eclipse is a development platform that is used for building, compiling and running integrated software development tools. It is build of open source software components and tools that can plug in to the development workbench.

The main advantages for eclipse software development are easy to use, stable IDE, higher performance, plug-in available, free to use, extensible. Also, their perspective helps to separate the area of concern in development of a complex system.

Spring Development

Spring J2EE based development aims to minimize dependency of application components by providing a plug-in architecture. Spring associations objects together instead of the objects linking themselves together, called as dependency injection or inversion of control.

Spring's objects are simple POJO's and are configured in XML files. Thus you can plug-in different components during runtime, or for different application configurations. This is particularly useful for applications that do unit testing or applications that deploy different configurations for different parts of the application.

Though dependency injection is the basis of the Spring developer framework, Spring also provides a rich set of tools built on top of its core dependency injection functionality. Spring provides an MVC framework, support for several presentation frameworks, a transaction management framework, DAO support, and support for several O/R mapping tools.

Netbeans Java Development

The NetBeans Platform is a reusable framework for simplifying the development of java based desktop and web applications.

Netbeans IDE provides services that are common to the applications, allowing developers to focus on the logic specific to their part of application.

Apache Struts 2.0:

Apache Struts development is the most popular and free open-source framework for creating Java web applications. It follows the Model-View-Controller (MVC) architecture. The Struts applications framework is designed to help struts a developer create web applications that utilize a MVC architecture.

The main advantage of using Struts programming framework is that it takes care of much of the complexities itself with good design practice and modeling.

Hibernate Development

J2EE Hibernate programming is a powerful, high performance object-relational concept from Hibernate specially used for data persistence. Also it provides query services for Java using Hibernate Query Language so that the developer can write the queries using native SQL.

JavaServer Faces:

JavaServer Faces (JSF) technology is a framework for building user interfaces for web applications. With the simple, well-defined programming model that JSFaces technology provides, developers build Web applications by using the features viz. assembling reusable UI components in a page, configuring these components to an application data source, and writing event handlers at both client end and at server end. Using JSF the web applications handle all of the complexity of managing the user interface on the server, allowing the application developer to focus on their application code.

Apache Wicket:

Apache Wicket is a lightweight component-based web application framework for the Java programming language. With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple.

JBoss Seam:

Seam combines the two frameworks Enterprise JavaBeans (EJB3) and JavaServer Faces (JSF). One can access any back-end EJB component from the front-end by addressing it by its Seam component name. Seam introduces the concept of bijection, taken from Spring's dependency injection feature where objects can be in-jected or out-jected to/from assigned variables using the @In and @Out annotations.

Seam also provides the functionality at the data layer to automatically generate a CRUD (create-read-update-delete) web application from an existing database using the command line tool seam-gen, which is supplied with the framework.

WYSIWYG development in Seam is facilitated through the use of JBoss Tools, a set of plug-ins designed for the open source Eclipse integrated development environment.

Spring Framework:

The Spring framework is the most popular web framework but the core features of the Spring framework can be used by any Java application. Spring provides an extension for building web applications on top of the Java Enterprise platform. Spring is an open source framework basically created to address the complexity of enterprise application development.

The basic advantage of the Spring framework is its layered architecture i.e. it provides support across all layers of your application. This makes Spring a consistent for J2EE application development.

The main power of Spring framework is its Aspect-oriented programming (AOP), and the Inversion of Control (IOC) with Dependency Injection (DI). This makes the application development quicker and simpler.

Open Symphony:

WebWork is a Java web-application development framework. It is built specifically with developer productivity and code simplicity in mind, providing robust support for building reusable UI templates, such as form controls, UI themes, internationalization, dynamic form parameter mapping to JavaBeans, robust client and server side validation.

Apache Struts 2.0:

Apache Struts is the most popular and free open-source framework for creating Java web applications. It follows the Model-View-Controller (MVC) architecture. The Struts framework is designed to help developers create web applications that utilize a MVC architecture.

Best Practices in Java

  • Understanding the core requirements
  • Analyzing the fundamental requirements
  • Define high level design using technologies/framework to be used in the development
  • Identify the core modules
  • Identify re-usable components

Optimizing the Development with Proven Techniques

  • Set the project build and deployment process
  • Automate the build and deployment process using tools like Apache Ant or Hudson

Set test-driven Approach

  • Write as many as unit test to perform code level testing using frameworks like Junit
  • Set the validation rules for each and every part of the application (screen-by-screen)
  • Automate the unit test scripts by integrating with the build scripts and generate test reports
  • Try to minimize mocking of objects while unit testing
  • Always hit the database to compare the exact result with the expected result

Improving Code Quality

  • Perform regular code review
  • Automate code review integrating code review tools with the build scripts
  • Review the design
  • Set coding guidelines
  • Set up exception and logging framework
  • Work in modular approach.
  • Re-use available components
  • Override all run-time exceptions or errors with user understandable message
  • Object definition to be as simple as possible. User POJO wherever applicable

Refactoring and design patterns

  • Make appropriate use of design patters
  • Make use of java interfaces to improve design

Tuning performance

  • Use tools like Apache Jmeter to test the performance of the application
  • Use profiling tools available
  • Check the request-response time
  • Conducting load and stress tests
  • Identifying performance bottlenecks
  • Tune JVM and other application parameters
  • Writing reliable, thread-safe code
  • Avoiding race condition and deadlocks

Tuning performance

  • Select the best Java collection object available
  • Prevent memory leaks

Authentication and authorization

  • Apply role-based security authentication and authorization. User available frameworks like ACEGI or Spring
  • Authenticate the type and hierarchy of users in the web application
Try us for a pilot

Not sure if your business is ready to outsource a Java based project or are you looking at vendors who can provide Java offshore development services? We can work with you on a small, low risk engagement for you to ascertain your short-term and long-term development strategy on Java platforms.

Just fill out a form with a call back number and our sales representative will get in touch with you.

Your message has been sent successfully!
Terms of use | Disclaimer
© Copyright 2000-2009 Silicus Technologies, Inc.