Application generation Peter Bell SystemsForge Peter Bell SystemsForge Beyond Scaffolding.

Slides:



Advertisements
Similar presentations
Tridion 5.3 Templates.
Advertisements

EPrints Web Configuratio n Management. SQL database Web server Scripts to configure repository activities Configuration files EPrints - the Administrator's.
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
SharePoint Forms All you ever wanted to know about forms but were afraid to ask.
Intro to Access 2007 Lindsey Brewer CSSCR September 18, 2009.
WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Business Development Suit Presented by Thomas Mathews.
ARIADNE V4 Filip Neven, Stefaan Ternier & Erik Duval Dept. Computerwetenschappen, Katholieke Universiteit Leuven, Belgium
Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
Apache Struts Technology
Edoclite and Managing Client Engagements What is Edoclite? How is it used at IU? Development Process?
Web Applications Development Using Coldbox Platform Eddie Johnston.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Input Validation For Free Text Fields ADD Project Members: Hagar Offer & Ran Mor Academic Advisor: Dr Gera Weiss Technical Advisors: Raffi Lipkin & Nadav.
Simple Web SQLite Manager/Form/Report
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Sage CRM v7.2 Developers Course An Introduction to the Developer Program.
UNIT-V The MVC architecture and Struts Framework.
Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07.
Doing Something Useful with Enterprise Library 3.0 Benjamin Day Level: Intermediate.
CSS/417 Introduction to Database Management Systems Workshop 5.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Oracle Application Express 3.0 Joel R. Kallman Software Development Manager.
XML Overview. Chapter 8 © 2011 Pearson Education 2 Extensible Markup Language (XML) A text-based markup language (like HTML) A text-based markup language.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
Enticy GROUP THE A Framework for Web and WinForms (Client-Server) Applications “Enterprise Software Architecture”
Todd Snyder Development Team Lead Infragistics Experience Design Group.
March 12 & 13, 2007 Practical Code Generation Peter Bell SystemsForge.
Life cycle Application Generation Peter Bell Chief Technology Officer SystemsForge Peter Bell Chief Technology Officer SystemsForge.
1 Another group of Patterns Architectural Patterns.
AUTOMATION OF WEB-FORM CREATION - KINNERA ANGADI – MS FINAL DEFENSE GUIDANCE BY – DR. DANIEL ANDRESEN.
JSTL, XML and XSLT An introduction to JSP Standard Tag Library and XML/XSLT transformation for Web layout.
Practical Code Generation with CF Template Peter Bell SystemsForge Peter Bell SystemsForge CF United 2008.
1 © 1999 Microsoft Corp.. Microsoft Repository Phil Bernstein Microsoft Corp.
INFO1408 Database Design Concepts Week 15: Introduction to Database Management Systems.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
1 Partial Domain Specific Models Jos WarmerOrdina Anneke KleppeUniversity of Twente OOPSLA Workshop on Domain Specific Modeling,
Model View Controller MVC Web Software Architecture.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Search Overview Search Features: WSS and Office Search Architecture Content Sources and.
Software Product Lines Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008 Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008.
How I spend my money Software architecture course Mohan, Maxim.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Declarative Languages and Model Based Development of Web Applications Besnik Selimi South East European University DAAD: 15 th Workshop “Software Engineering.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
RAD OO Web Maniacs 2008 Peter Bell SystemsForge Peter Bell SystemsForge.
Extending SharePoint through Web Parts and ASP.NET 최승현 대리 한국마이크로소프트.
Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools Jack Greenfield Architect Enterprise Tools Microsoft Corporation.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
SEMI-STRUCTURED DATA (XML) 1. SEMI-STRUCTURED DATA ER, Relational, ODL data models are all based on schema Structure of data is rigid and known is advance.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
1 Model Driven Health Tools Design and Implementation of CDA Templates Dave Carlson Contractor to CHIO
Sagecrm.com Sage CRM An Introduction to the Developer Program.
Submitted by: Moran Mishan. Instructed by: Osnat (Ossi) Mokryn, Dr.
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
XML 1. Chapter 8 © 2013 Pearson Education, Inc. Publishing as Prentice Hall SAMPLE XML SCHEMA (XSD) 2 Schema is a record definition, analogous to the.
The Re3gistry software and the INSPIRE Registry
Evaluating Compuware OptimalJ as an MDA tool
LitwareHR v2: an S+S reference application
SSIS Data Integration Data Warehouse Acceleration
SSIS Data Integration Data Warehouse Acceleration
EXTENDING COMPONENTS AND TABLE TRANSFORMATIONS WITH XSL
SSIS Data Integration Data Warehouse Acceleration
Software Architecture & Design
Presentation transcript:

Application generation Peter Bell SystemsForge Peter Bell SystemsForge Beyond Scaffolding

Overview Beyond Scaffolding A New Approach to Programming Key Concepts Anatomy of a Generator Software Product Lines Generating Web Applications

Let’s Start With Scaffolding Scaffolding is “free functionality” List, view, add, edit, delete Typically driven by DB schema Usually end up rewriting

Why Rewrite? Databases are dumb!... SSN is not just char(9) Form fields Advanced validation Display rules Business rules

A New Approach to Programming Language Oriented Programming “Building software around a set of Domain Specific Languages” - Martin Fowler Programmer as Language Designer

Language Oriented Programming OMG: Model Driven Architecture Microsoft: Software Factories Charles Simonyi: Intentional Programming JetBrains (IntelliJ): Meta Programming System MetaCase: MetaEdit EVERYONE is Doing It!!!

Language Oriented Programming Custom TagsUDFs CFCsAPIs YOU’re Already Doing It Property: Value FileXML Config File

API As Language Design... CODE... String = getDependentObjectList(ObjectName: String) Concept: getDependentObjectList Attribute: ObjectName

Language Oriented Programming Why do it?... Encapsulating Complexity (layered software) Key concepts...

Domain Specific Languages Limited form Specific domain Horizontal: - SQL - Reg-Ex - Objects - Notifications Vertical: - Newsletter - Shipping Rules - Insurance Quotes - Newspaper Workflows “Trade generality for expressiveness”

Three Types of Language Declaritive: What to do (requirements) Templating: Where to put (layout) Scripting: How to do (imperative)

Declaritive Name: Password: Required SELECT FullName FROM tbl_User Where UserID = 7

Templating #Title# $#Price#

Scripting For (Count = 1; Count lte listlen(ObjectDependencyList); Count=Count+1) { // Get current object name LoopObjectName = ListGetAt(ObjectDependencyList, Count); If (LoopObjectName NEQ "LightWire") { // Prepend it with ObjectName LoopObjectName=ListAppend(arguments.ObjectName,LoopObjectName,"|"); // Add it to the new object dependency list TempObjectDependencyList=ListAppend(TempObjectDependencyList,LoopObjectName) };

Three Types of Language Declaritive: Ideal for Reuse Templating: Simplify for designers Scripting: Use to implement

Abstract vs. Concrete grammar WHAT say vs. HOW say FirstName Boxes and Arrows

In-Language vs. External DSL In Language: CFC, UDF, Custom Tag Easy to create No validation Can use core language External: XML/custom file Store in database Harder to create Validation Can limit language

Types of Generation Passive Active Round trip Not much use Works great Not Required ->

Anatomy of a Generator Metadata Templates Iterator Orchestrator Extensions

Metadata Scripting XML Custom Syntax Databased

Templates Generating n-Getters: Template: > > Velocity - XSLT - CF Template Generate a File

Templates

Iterator One DAO per business object One template per screen In general: one file per instance of concept Possibly filter concepts Generate n-Files

Orchestrator Metadata (getObjectList) Template (ObjectDAO.cft) Iterator (Object: All) File name (#ObjectName#DAO.cfc) Generate m-Collections of n-Files

Extensions “Safe Code Snippets” Inheritance

Anatomy of a Generator Metadata Templates Iterator Orchestrator Extensions Generation NEQ Deployment

Software Product Lines Core Framework (scripts, DSLs, metadata) Feature Model Configurators

Generating Web Applications What is a website? Object Model+Interface Model

Object Model Objects: Attributes: Relationships Objects and Attributes: Optional: Datetime: Optional: Datetime: Required: Status: approved Page: extends Required: Title Article: extends Optional: HTML Relationships: Page: Article: optional: multiple Article: Page: required: single

Object Model (2) Custom Data Types AsDate StatusList WYIWYG

Interface Model Screens: Actions: Steps = = = 10,25,50,all ArticleAdminList Title

Conclusions Programming as Language Design Horizontal and vertical DSLs Top down and and bottom up Generate everything: scripts, database, documentation, config XML, build scripts, etc. Layer software product line for higher levels of reuse Look out for CFGen, CF Template