Leveraging ColdSpring To Make Better Applications

Slides:



Advertisements
Similar presentations
Introduction to NHibernate By Andrew Smith. The Basics Object Relation Mapper Maps POCOs to database tables Based on Java Hibernate. V stable Generates.
Advertisements

MIT Lincoln Laboratory A Service-Oriented Approach to Application Development Robert Darneille & Gary Schorer WPI MQP Presentations ICS Group 10 October.
NCSoft China PD Dept. training - Session 4 -- Lance Zhang
Spring, Hibernate and Web Services 13 th September 2014.
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
Web Applications Development Using Coldbox Platform Eddie Johnston.
Introduction to Spring Matt Wheeler. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack – Basic.
Spring.Net Steinar Dragsnes steinar.dragsnes at viz.no.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
The Spring Framework: A brief introduction to Inversion of Control James Brundege
Intro to Spring CJUG - January What is Spring? “The Spring framework provides central transaction control of various objects.” This means that any.
The Spring Framework A quick overview. The Spring Framework 1. Spring principles: IoC 2. Spring principles: AOP 3. A handful of services 4. A MVC framework.
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
Lecture 2 - Struts ENTERPRISE JAVA. 2 Contents  Servlet Deployment  Servlet Filters  Model View Controllers  Struts  Dependency Injection.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
Spring Overview, Application demo -Midhila Paineni 09/23/2011 Spring Overview, Application demo9/8/20151.
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Spring core v3.x Prepared by: Nhan Le. History v3.0 Spring Expression Language Java based bean metadata v3.1 Cache Abstraction Bean Definition Profile.
Introduction to Model-Glue Rachel Lehman Perpetual Intermediate Designer-Developer Introduction to Model-Glue.
Opus College - overview. OpusCollege - background First project: ICT Capacity Building Mozambican Higher Education Institutions Partners: RUG Groningen,
Introduction to Spring Matt Wheeler. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack – Basic.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Introduction to Spring Framework,
Introduction to Web Dimitar Nenchev Ivan Nakov
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
A Presentation By V AIBHAV S AHARAN Web-enHanced Information Management COMS E6125.
Alternative Architectures: Inversion of Control Mike Hadlow mikehadlow.blogspot.com.
Spring and DWR Frameworks for Rich Web Enterprise Application Thomas Wiradikusuma Presentation to the 20 th.
1 Spring Framework April, 2012 Lam Ho Lam To. © 2010 Cisco and/or its affiliates. All rights reserved. Cisco Confidential 2 1.Spring Overview 2.Framework.
Mach II at Macromedia Sean Corfield Director, Architecture An introduction to Mach II and its use on macromedia.com.
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
2006/2007 Licence Apache 2.0 Castle.Igloo. Castle Igloo Basics Pre-require Concept Scopes PageFlow Configuration Controller View Exemple Castle.Igloo.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
Singleton Academy, Pune. Course syllabus Singleton Academy Pune – Course Syllabus1.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
Introduction to Inversion Of Control (IOC). IOC Definition (based on Wikipedia)  Consider the way in which an object obtains references to its dependencies.
Creative Commons Attribution- NonCommercial-ShareAlike 2.5 License Sakai Programmer's Café Sakai Montreal CRIM Workshop Introduction to Spring Framework.
Leveraging ColdSpring to build a robust Flex applications Chris Scott, Cynergy Systems.
Thomas Burleson. Using MVC with Flex & Coldfusion Projects June 27, 2007 See how Coldfusion MVC is similar to Flex MVC…
CS520 Web Programming Spring – Inversion of Control Chengyu Sun California State University, Los Angeles.
Windows Communication Foundation and Web Services
J2EE Lecture 6: Spring – IoC and Dependency Injection
Operating System Structures
Structure of a web application
CS520 Web Programming Spring – Inversion of Control
Chengyu Sun California State University, Los Angeles
Enterprise Library Overview
Web Engineering.
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Introduction to J2EE Architecture
Windows Communication Foundation and Web Services
Inversion of Control and ColdFusion: Using ColdSpring
Ben Burbridge, Rebecca Jones, Hilary Newman Product Development
By Ru Shen Department of Computer Science UAlbany, 2008
Intro to Spring CJUG - January 2013.
Java Web Application Framework
Introduction to Enterprise JavaBean
Present by Andie Saizan, MCP
Chengyu Sun California State University, Los Angeles
ARCH-1: Application Architecture made Simple
ColdSpring Powered Fusebox In Action
Introduction to Spring Framework and Dependency Injection
Brian Kotek INDUS Corporation
Middleware, Services, etc.
Developing and testing enterprise Java applications
CS520 Web Programming Spring – Aspect Oriented Programming
Aspect Oriented Programming
Presentation transcript:

Leveraging ColdSpring To Make Better Applications Kurt Wiersma kwiersma@jidev.com

Goals Show how ColdSpring can be to build better enterprise grade applications. Introducing a quick start application: Appbooster Using the Mach II and ColdSpring frameworks allows you to build robust enterprise web applications quickly. Mach II - Model View Controller framework ColdSpring - a container or factory that provides dependency injection for assembling and managing service objects, and more… Enterprise environment - teams of developers building applications which need to have high availability and be easy to maintain over time as the business evolves. Using the Mach II and ColdSpring frameworks allows you to build robust enterprise web applications quickly. In this session you will learn how to use these two frameworks to build an application that can grow as your business evolves. By using these two frameworks together you can get your team of developers to produce applications that are structured in a way that makes it easy for new developers to come up to speed on the application.

Introduction ColdSpring - a container for your model objects ColdSpring holds your objects like a box of Legos ColdSpring is transparent Toy box with legos inside them (services) AppBooster - sample/starter application which illustrates best practices Dependency injection is just means giving an object its instance variables.

Typical App Architecture Domain/business objects for each entity Data Access objects (DAO) which read and save objects Gateway objects which return queries Service objects - your API Controllers which talk to the service layer It is about layers! Sean: People places and things - domain objects Services - concepts and processes

Life Before ColdSpring Used createObject() a lot in my code Had lots of user services objects floating around in memory Wrote remote services manually Unit testing was difficult

Life After ColdSpring No more hard coded createObject() calls Took advantage of Aspect Oriented Programming (AOP) for caching Automatically generated remote services for Flex 2 Easier testing More time with my wife

ColdSpring Part 1 ColdSpring's core focus is to make the configuration and dependencies of your CFCs easier to manage. ColdSpring consists of a container which can create and hold any object Dependency Injection aka inversion of control (IOC) The “Hollywood Principle” - don’t call me I will call you Auto-wiring of dependencies By default all objects are singletons and are cached in the application scope. ColdSpring is a inversion-of-control framework/container for CFCs (ColdFusion Components). Inversion of Control, or IoC, is synonymous with Dependency Injection, or DI. Dependency Injection is an easier term to understand because it’s a more accurate description of what ColdSpring does. ColdSpring borrows its XML syntax from the java-based Spring Framework, but ColdSpring is not necessarily a “port” of Spring. A dependency is when one piece of a program depends on another to get its job done. Dependency injection is just means giving an object its instance variables.

ColdSpring Part 2 The first Aspect-Oriented-Programming (AOP) framework for CFCs. Support for generating remotely accessible objects Plug-ins for Fusebox 4+, Mach-II, and ModelGlue Support for integrating with your factories through the factory-method attribute.

ColdSpring Configuration

Aspect Oriented Programming Allows you to intercept method calls and act before and/or after them Transparent to the method being called and to the code calling the method Useful for security, caching, logging, and generating remote services Pointcuts: Pointcuts are special components that you can configure to identify Joinpoints for you. Pointcuts are configured with the names of methods, which can contain the '*' wildcard character, and are the primary mechanism with which your Aspects are applied to methods in your model component. Advice: Advice objects are the primary implementation of your Aspects. Working with AOP is mainly a process of adding functionality to existing methods in a cfc. You can think of this as adding advice to those methods. Advisors: Advisors are special components that you configure to create pointcuts for you, and associate Advice objects with them. Advisors are used during the weaving process to build proxy objects, they are the mechanism for defining the how your Advice components should be applied to target objects. Target Object: The target object is the cfc that you would like to add functionality to. ColdSpring will create a new object based on this target object that you can use in place of it elsewhere in your model. Proxy Object: A proxy object is an object that ColdSpring creates to accept method calls intended for your target object, which will then look to see if there are any Advice objects to use before forwarding the method call to your target. The proxy object actually contains all the aspects and pointcuts it needs along with your target object. ColdSpring creates this object for you, which will have the same method signatures and type of your original object, making its use transparent to the rest of your model components. Weaving: Weaving is the process of generating a Proxy Object, providing it with any Aspects and Pointcuts you have configured for a target object. This is performed by a ProxyBeanFactory, which is configured in your ColdSpring xml configuration file.

Remote Facades ColdSpring’s remoteProxyFactory uses AOP to generate remote CFCs which can be called via web services or via Flex 2 Easy to setup Use a service layer!

Introducing AppBooster A sample Mach II and ColdSpring application developed with best practices. AppBooster gives your application a jump start Provides a simple model for users, addresses, and roles User authentication is implemented There is both a public and admin interface for managing users Show flow of request for a appbooster going through CS and M2.

AppBooster Model

Recommendations Do a proof of concept You don’t have to do it all at once Consider developing or using a code generator or framework to speed development Favor setter injection over constructor injection when setting up your services Join the ColdSpring mailing list Read through the ColdSpring documentation

Resources ColdSpring Chris Scott’s Blog Dave Ross’ Blog Kurt’s Blog http://coldspringframework.org Chris Scott’s Blog http://cdscott.blogspot.com/ Dave Ross’ Blog http://www.d-ross.org/ Kurt’s Blog http://jroller.com/page/kwiersma Aspect Oriented Programming http://en.wikipedia.org/wiki/Aspect-oriented_programming

Questions?? Fire away… Go Bears!