Agile Projects Using the Spring Framework – Training

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
Executive Briefing
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

Dummies

Course Description:

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.

Course Objectives:

  • 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.

Course Syllabus:

Section 1: The Problems That Spring Solves

  • Introduction
  • 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)

Audience:

  • 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.

Related Courses:
Enterprise Java (Trigraph) and Agile Project Management (Trigraph)

Prerequisites:
Some high level exposure to the Java, .Net or other Object Orientated language would be beneficial but
not necessary.

Advertisements

Denise Fay (Achieve Marketing) – the latest Irish Business Blogger

Denise Fay of Achieve Marketing is finally blogging over at achievemarketing.ie. The guide to Business Blogging in Ireland is a direct result of Denise’s Marketing Session at the Ballymascanlon Hotel, Dundalk, but even so , it’s taken 6 months of intimidation sorry encouragement since the Barcamp Belfast meetup to get Denise to this point (she insists on using her time to look after customers).

A couple of things that I’ve learnt if you want to get people in your business network blogging:

    1. Everybody wants the site traffic, but not everybody can / wants to make the effort. Not everybody is suited to writing stuff (but then again, they’re probably a natural at professional networking). Denise writes press releases already , so not only does she have interesting stories to tell, but she has those stories already written down.
    2. Blogging probably seems natural to you now, but you forget how much you’ve learned. Set aside some time to go through the basics with your victim. 1 hr should be enough if you’ve done the ground work (i.e. have wordpress already setup). Get a blogpost out within the first 10 minutes (to show how easy it is). Then work your way through the other tabs in wordpress. Concepts (like categories, linking , trackbacks, url structure) will naturally flow in the conversation.
    3. I was lucky that Denise had already setup Google Analytics for some of her clients. Even so the latest version of wordpress makes setting up analytics easy , and those charts are so damn addictive!
    4. I found that a combination of having the new blog (Achieve Marketing) and my one (People and Technology) open at the same , and flicking between the the old and new blogs worked well. Some stuff like themes, archived blogposts, spam prevention is easier to understand on a blog that’s been in use for a while.

To set the background, Denise is very knowledgable about her area (Marketing), has people to get the techie stuff done and definitely knows more about the web than she admits, but would in no way be classed as a ‘techie’!

Slides for Life and Death Workflow, using JBoss jBPM

The slides for ‘Life and Death Workflow using JBoss jBPM (Java Business Process Management) are here. PDF , about 800k for 41 slides. I’ve included full notes (even though I won’t get a chance to use them during the presentation), so that they should make sense when reading them online instead of seeing them live at the IJTC.

I’ve been promising people that I’m going to sell my car during the presentation. So here’s a picture of it. Isn’t she a beauty?

Picture of Toyota Corolla

All offers of workflow consultancy work to consultancy@firstpartners.net.

Note: If you’re linking to the slides, please link (here at this page) rather than the PDF (the location of which may change in the future).

Joel Spolsky is the reason I am a Java Techie. See him in Dublin IJTC Wednesday

Joel Spolsky is flying in to Dublin next Wednesday to give the keynote speech at the Irish Java Technologies Conference. Mark 7.45pm on Nov 7th in your Diaries folks – Jake has the offical announcement and ask him in person for the full story. In case you don’t know who he is, Joel was one of the early Microsoft employees, one of the first bloggers (since 2000) and is an expert on management and Java software development projects based in New York (possibly due to his stock of stories from Israeli Military Service).
Joel Spolsky Image

So how did Joel make me a Java Techie? You know Excel, that Spreadsheet thing you use everyday. Part of the reason it’s so flexible is because of Joel’s work back in the early days at Microsoft- he was program manager for the team at that created Excel Macros, which eventually morphed into Visual Basic for Applications (VBA). A long time ago when I was still a business person I got involved in automating manual tasks using these Microsoft Office tools. From there, every job got more and more techie until it reached the stage where I must blog about Java every day. It’s all Joel’s fault.

Tickets at the door cost €245.Booking here costs €189. Joining the DubJug (Dublin Java Users Group) for free before booking gets you a further discount.

Hibernate Event – JBoss Speaker – Westin Hotel Dublin – 15th October

Lead developer from JBoss, coming to Dublin to talk about Hibernate on 15th October. What else could you be doing that evening? Full details on Developers.ie.
Hibernate Logo

What is Hibernate? Java programs are like Lego blocks – very 3D with bumps on them to connect together. Database tables to store data are like flat sheets of paper. Hibernate is a bridge between these two very different worlds. In technical terms, it’s called Object-Relational-Mapping (ORM).

Why is it important? Hibernate is the defacto standard in the Java World, and has had huge influence on the most recent version of the EJB spec. There’s a .Net version and even competitors (such as Toplink from Oracle) are moving to the Hibernate way of doing things.

UCD – part time MSc in Advanced Software Engineering – open for applications

UCD are currently looking for applicants for the Msc in Advanced Software Engineering (a great title for a course!). I’m currently finishing up the dissertation on it , and would recommend the course, both on the basis of the content, and the format (6 weeks over 2 years + exams + dissertation). You’re still dealing with academia, but at least academia trying to look out at the real world.
More details , including how to apply , and in Mel’s mail below

Hello,

I’m sending this email to anyone currently or previously involved in the MSc
in Advanced Software Engineering in UCD
. We’re recruiting new students for the coming session. If you know anyone who might be interested, please
forward them the email below.

many thanks

Mel.

The School of Computer Science and Informatics in University College Dublin
invites applications for the MSc in Advanced Software Engineering.
Registration takes place in September 2007; the first module will be held in
December 2007.

This course is ideal for someone working in the software industry who wishes
to develop new skills and gain a postgraduate degree, but who cannot study
fulltime for whatever reason.

A student on this degree takes 6 week-long, intensive modules over a two
year period, followed by a writing a dissertation. Each module takes place
on the UCD campus, while the dissertation work is undertaken off-campus
under the supervision of a UCD academic.

For full details please see
http://www.csi.ucd.ie/Postgraduates/MScAdvancedSoftwareEngineering.html.
Contact the course director directly at mel.ocinneide [at] ucd.ie with any
queries you may have.

Dr. Mel Ó Cinnéide,
School of Computer Science and Informatics, University College Dublin,
Belfield, Dublin 4.
tel: +353 1 7162482 fax: +353 1 2697262
http://csiweb.ucd.ie/Staff/AcademicStaff/meloc

Wanted : Microsoft Visual Basic .Net trainer

It may not be worth USD 135,000 per year, but a colleague asked me to post this requirement of a Microsoft Visual Basic .Net trainer. Experience in Visual Basic and VB.net required, even better if you’ve delivered training before. Location is Ireland (sorry to be deliberately vauge).
Drop me a line at Paul@Firstpartners.net and I’ll pass on your details. Even better, post me a link to your blog.
We’d do it ourselves, but we’ve the problem of being ‘nicely busy’ and everybody that I’d recommend is likewise.

Introduction to Visual Basic and the .Net Framework

Microsoft’s .NET

The .NET Framework and the Common Language Runtime

Test-Driving a Visual Basic Application

Introduction to Object Technology and the UML

Overview of the Visual Studio 2005 IDE

Menu Bar and Toolbar

Navigating the Visual Studio IDE

Using Help

Using Visual Programming to Create a Simple Program

Displaying a Line of Text

Creating Your First Console Application in Visual Basic

Displaying a Single Line of Text with Multiple Statements

Adding Integers

Memory Concepts

Arithmetic

Decision Making: Equality and Relational Operators

Using a Message Dialog to Display a Message

*Introduction to Classes and Objects *

Introduction

Classes, Objects, Methods and Instance Variables

Declaring a Class with a Method and Instantiating an Object of a Class

Declaring a Method with a Parameter

Instance Variables and Properties

Value Types and Reference Types

Initializing Objects with Constructors

Validating Data with Set Accessors in Properties

Control Statements: Part

Introduction

Algorithms

Pseudocode

Control Structures

If … Then Selection Statement

If … Then … Else Selection Statement

While Repetition Statement

Do While … Loop Repetition Statement

Do Until … Loop Repetition Statement

Visual Basic Programming in a Windows Application

Essentials of Counter-Controlled Repetition

For … Next Repetition Statement

Examples Using the For … Next Statement

Do … Loop While Repetition Statement

Do … Loop Until Repetition Statement

Using the Exit Statement in Repetition Statements

Using the Continue Statement in Repetition Statements

Logical Operators

Methods: A Deeper Look

Introduction

Modules, Classes and Methods

Subroutines: Methods That Do Not Return a Value

Functions: Methods That Return a Value

Shared Methods and Class Math

Notes on Declaring and Using Methods

Method Call Stack and Activation Records

Implicit Argument Conversions

Option Strict and Data-Type Conversions

Value Types and Reference Types

Framework Class Library Namespaces

Passing Arguments: Pass-by-Value vs. Pass-by-Reference

Scope of Declarations

Recursion

Arrays

Introduction

Arrays

Declaring and Allocating Arrays

Examples Using Arrays

Passing an Array to a Method

For Each … Next Repetition Statement

GradeBook Case Study: Using an Array to Store Grades

Sorting an Array with Method Sort of Class Array

Searching Arrays

8. Searching an Array with Linear Search

8. Searching a Sorted Array with Method BinarySearch of Class Array

Rectangular Arrays

Variable-Length Parameter Lists

Jagged Arrays

Using the ReDim Statement to Dynamically change array size

Passing Arrays: ByVal vs. ByRef

*Classes and Objects: A Deeper Look *

Introduction

Time Class Case Study

Class Scope

Default and Parameterless Constructors

Overloaded Constructors

Partial Classes

Composition

Using the Me Reference to Access the Current Object

Garbage Collection

Shared Class Members

Const and ReadOnly Members

Exception Handling

Introduction

Exception Handling Overview

Code in a Try and Catch Blocks

Catching Exceptions

Uncaught Exceptions

Termination Model of Exception Handling

Flow of Control When Exceptions Occur

.NET Exception Hierarchy

ApplicationException and SystemException

Determining Which Exceptions a Method Throws

Finally Block

Exception Properties

User-Defined Exception Classes

Graphical User Interface Concepts: Part 1

Introduction

Windows Forms

Event Handling

Control Properties and Layout

Labels, TextBoxes and Buttons

GroupBoxes and Panels

CheckBoxes and RadioButton s

PictureBoxes

ToolTips

NumericUpDown Control

Mouse-Event Handling

Keyboard-Event Handling

Menus

MonthCalendar Control

DateTimePicker Control

LinkLabel Control

ListBox Control

CheckedListBox Control

ComboBox Control

TreeView Control

ListView Control

TabControl Control

Multiple Document Interface (MDI) Windows

Visual Inheritance

User-Defined Controls

Multithreading

Introduction

Thread States: Life Cycle of a Thread

Thread Priorities and Thread Scheduling

Creating and Executing Threads

Thread Synchronization and Class Monitor

Multithreading with GUIs

Files and Streams

Introduction

Data Hierarchy

Files and Streams

My.Computer.FileSystem Object

Creating a Sequential-Access File

Reading Data from a Sequential-Access File

Random-Access Files

Creating a Random-Access File

Writing Data Randomly to a Random-Access File

Reading Data Sequentially from a Random-Access File

Creating a Sequential-Access File

Reading Data from a Sequential-Access File