March 12 & 13, 2007 Practical Code Generation Peter Bell SystemsForge.

Slides:



Advertisements
Similar presentations
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
Advertisements

Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
July 2010 D2.1 Upgrading strategy Javier Soto Catalog Release 3. Communities.
Chapter 10 Database Applications Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.
Web Applications Development Using Coldbox Platform Eddie Johnston.
Ivan Towlson Mindscape.  What are DSLs and why should I care?  What are the Visual Studio DSL Tools?  Building a DSL  Vocabulary and grammar  Spiffing.
March 12 & 13, 2007 Mark Drew Reloaded.
Object Oriented System Development with VB .NET
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
ASP.NET Programming with C# and SQL Server First Edition
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Sample School Website Sydney Region ITSU School Support
Kentico CMS 5.0 Full-featured Flexible Web Content Management System for All Your Needs.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Web Content Management Systems. Lecture Contents Web Content Management Systems Non-technical users manage content Workflow management system Different.
Create with SharePoint 2010 Jen Dodd Sr. Solutions Consultant
1 Web Database Processing. Web Database Applications Static Report Publishing a report is prepared from a database application and exported to HTML DB.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Introduction to “Oslo” Jeremy Boyd Director – Mindscape MSDN Regional Director
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.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
March 12 & 13, 2007 Using the Iterating Business Object Peter Bell SystemsForge.
10-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
COLD FUSION Deepak Sethi. What is it…. Cold fusion is a complete web application server mainly used for developing e-business applications. It allows.
PUBLISHING ONLINE Chapter 2. Overview Blogs and wikis are two Web 2.0 tools that allow users to publish content online Blogs function as online journals.
PCWG Analysis Tool Peter Stuart September 15, 2015.
Nobody’s Unpredictable Ipsos Portals. © 2009 Ipsos Agenda 2 Knowledge Manager Archway Summary Portal Definition & Benefits.
Life cycle Application Generation Peter Bell Chief Technology Officer SystemsForge Peter Bell Chief Technology Officer SystemsForge.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
SYST Web Technologies SYST Web Technologies Databases & MySQL.
Practical Code Generation with CF Template Peter Bell SystemsForge Peter Bell SystemsForge CF United 2008.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Customization Using SharePoint Designer 2007 Overview Editing look and feel –Master pages.
A Little Language for Surveys: Constructing an Internal DSL in Ruby H. Conrad Cunningham Computer and Information Science University of Mississippi.
DDI & Model-View-Controller: An Architectural Perspective Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl,
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
MSF Design Example Conceptual Design Logical Design Physical Design.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
Sample School Website. What is wrong with the existing School Webspace Site? Can only host static pages – no dynamic content possible. Can not be edited.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Product Lines Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008 Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
 Product Variations and User Uploads  Product and Categories are not enough  Needs to extend product information  User can customize product information.
DSL * Tools in Visual Studio Stuart Kent Senior Program Manager Visual Studio Team System – DSL Tools
Requirements and Estimating Scotch on the Rocks ‘08 Peter Bell SystemsForge Peter Bell SystemsForge.
RAD OO Web Maniacs 2008 Peter Bell SystemsForge Peter Bell SystemsForge.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
#SummitNow Building a Quick Solution with Alfresco Workdesk 13. November 2013 Richard McKnight - Alfresco Christian Finzel - Alfresco.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Application generation Peter Bell SystemsForge Peter Bell SystemsForge Beyond Scaffolding.
SSIS Templates, Configurations & Variables
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
Populating a Data Warehouse
Populating a Data Warehouse
Populating a Data Warehouse
Populating a Data Warehouse
Populating a Data Warehouse
Execute your Processes
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

March 12 & 13, 2007 Practical Code Generation Peter Bell SystemsForge

March 12 & 13, 2007http://europe.cfunited.com/ Overview Who am I? Why Listen? Problems to solve Potential solutions Domain Specific Languages Software Product Lines Code Gen/Frameworks Next Steps

March 12 & 13, 2007http://europe.cfunited.com/ Who Am I? Programmer projects/yr. Researcher - Published academic papers DSM forum/ooPSLA Entrepreneur - Profitable/practical SystemsForge - 10,000 custom apps/yr. Writer - CFDJ, Fusion Authority Quarterly Presenter - cf.objective(), CF United, Frameworks, Code Generation 2007, ooPSLA, Domain Specific Modeling Forum, CFCamp...

March 12 & 13, 2007http://europe.cfunited.com/ Why Listen? Companies are reporting 5-10x faster development using Domain Specific Languages and Software Product Lines You’re already doing these things A few concepts will help you to do them better

March 12 & 13, 2007http://europe.cfunited.com/ Calibration Have you: Written OO code? Heard of DSLs? Written a DSL? Heard of SPLs Created a SPL?

March 12 & 13, 2007http://europe.cfunited.com/ Problems OO coding is slow Changes are painful Reuse is difficult

March 12 & 13, 2007http://europe.cfunited.com/ OO Coding is Slow ProductService.cfc ProductDAO.cfc Product.cfc tbl_Product ColdSpring/Lightwire config Admin controller/views Front end controller Catalog.cfc Front end views ProductList.cfm, ProductDetail.cfm Add Products to site...

March 12 & 13, 2007http://europe.cfunited.com/ Changes are Painful Add services from tbl_Service to product catalog Products -> multiple categories Change form error handling (error list to in-form display)

March 12 & 13, 2007http://europe.cfunited.com/ Re-use is Difficult Libraries/utility components/cut and paste/snippets - usually OK Problem with cfc reuse is usually cross cutting concerns: Logging Error handlers Notification services Other dependencies...

March 12 & 13, 2007http://europe.cfunited.com/ Solving Same Problems Solutions Content management Workflow Shopping carts Techniques Form processing DB access Paginated lists Reporting Imports/Exports

March 12 & 13, 2007http://europe.cfunited.com/ Potential Solutions Code quicker - DSL Maintain easier - DSL Re-use better - SPL

March 12 & 13, 2007http://europe.cfunited.com/ Domain Specific Language “An executable language targeted to a specific problem domain” Specific - can’t do everything Executable - not just conceptual Raising level of abstraction

March 12 & 13, 2007http://europe.cfunited.com/ Types of DSLs Horizontal (tech focused) SQL RegEx Import description language General workflow language Vertical (business focused) Insurance policy language Product configuration language Academic requirements language

March 12 & 13, 2007http://europe.cfunited.com/ Types of DSLs - Internal Custom tag API UserService.import("test.csv", ",", "FirstName,LastName, ", "tbl_User", "update"); Method Chaining User.IsValid.FirstName()

March 12 & 13, 2007http://europe.cfunited.com/ Types of DSL - External Comma delimited "test.csv", ",", "FirstName,LastName, ", "tbl_User", "update" XML Databased “Little Language” Import test.csv using commas update tbl_User with FirstName,LastName, Visual

March 12 & 13, 2007http://europe.cfunited.com/ DSL Key Concept Abstract Grammar vs. Concrete Syntax What you say vs. How you say it FirstName

March 12 & 13, 2007http://europe.cfunited.com/ Example DSL Product extends: BaseObject tableName: tbl_Product Identity: ProductID Properties: Title title required Price money optional default:0 Description WYSIWYG optional ClassMethods: AdminList: Title,Price OrderBy Title DefaultAdd: Title,Price,Description QuickAdd: Title,Price multiple:5 DefaultEdit: ID, Title,Price,Description Relationship has-many Category associated optional

March 12 & 13, 2007http://europe.cfunited.com/ Benefits of DSLs More concise (less to write/edit) Can add constraints MAY be end user editable

March 12 & 13, 2007http://europe.cfunited.com/ Software Product Lines Design a collection of applications Bounded and unbounded variability Bounded: feature model/configuration Unbounded: DSLs Extension points

March 12 & 13, 2007http://europe.cfunited.com/ Code Gen/Framework Both use DSLs Compiled/interpreted Late bound decision

March 12 & 13, 2007http://europe.cfunited.com/ Next Steps Multiple Applications? Plan variability Feature model Configuration options DSLs Generators/framework Single Application? Reusable services Raise abstraction levels DSLs: Custom tags, APIs, external config files, CMSs, visual editors (Eclipse EMF)

March 12 & 13, 2007http://europe.cfunited.com/ 22 Questions? Blog:   Yahoo:  freshstartsw freshstartsw AIM:  appgeneration appgeneration