SoftFluent Pragmatic model-driven development with CodeFluent Entities Code Generation 2010 - June 16 th Lionel POLI lpo@softfluent.com Carl ANDERSON can@softfluent.com
Session objective Attending this session, you will understand how CodeFluent Entities software factory can be used to target various architectures from the same model: web, smart client, SharePoint, Office or Silverlight Second session tomorrow: more focused on code and specific implementation points for web projects
Content Challenges faced by developers Common approaches CodeFluent Entities solution How it works principles and demo Focus on targeting multiple architectures Customer references and pricing
Challenges faced by developers Business decisionmakers Unclear needs Changing needs Increasing expectations Less money Less time IT Technologies New technologies Scarce coding talent Heterogeneous teams More and more legacy code
Common approaches: focusing on one of the previous ambition components Solution: Offshore Drawbacks: Weak industrialization and maintenance Risk for time-to-market TIME Solution: RAD Tools Drawbacks: Constrained features Prohibitive cost of customization Dependency Solution: CASE Tools Drawbacks: Late on technology innovation Lack of flexibility Proprietary skills and languages COST SCOPE None of these solutions really addresses the structural challenge of technology innovation
SoftFluent approach: the tenets 1. Business entities have longer lifecycles than technology and should be defined in formats that will survive technology shifts and allow supporting them without reengineering the application 2. Business rules and process changes need to occur through short cycles that can fit into a lean continuous maintenance scheme 3. Efficient coupling of data, model, and presentation layers including customized code parts must be guaranteed by design 4. Coding patterns need to be standardized and their implementation automated to ensure maintenance can be performed by standardized skills
Improving on the CASE tool approach Historical drawbacks Solution Difficult to support latest technology platforms Business design is structurally separated from target architecture that easily evolve through specific producers Requires stable definition of business needs by users Modeling immediately produces executable components which support a design process friendly to business change Costly to customize beyond pre-designed elements Generated code is standard, humanreadable, consistently componentized and can be extended without any limits Strong dependency on proprietary programming language with specific skills Fully integrated into usual development tool, the code is standard as our solution just adds a thin abstraction modeling layer
CodeFluent Entities: Model-driven code generation CodeFluent Entities Application Life Cycle Phase 1 Design or Import Design new models Phase 2 Model analysis and inference In-memory generation of entity graph, including all modeling concepts (entities, properties, rules, etc.) Phase 3 Generation / Production Generation of technical layers using producers (SQL,.NET object model, web services, etc.) Phase 4 Development Development of customized code using partial classes of generated BOM. Phase 4 Execution Iteration Phase 1 Import existing models Direct use of generated graphic layers(sharepoint, ASP.NET, etc.) Automated phases
CodeFluent Entities CodeFluent Entities: Functional scope Persistence Transaction Cache SDK* business Graphical user interface BLOB streaming Security Validation rules + external rules CodeFluent Entities enables you to develop any type of application handling data, while accepting a large range of development patterns and generating code that respects best practices of.net development Services (SOA) Localization SDK: Software Development Kit. Through its unique approach to code generation, CodeFluent Entities enables you to immediately produce a ready-to-use SDK for the application you are working on
Code, Components, etc CodeFluent provides several producers for generating: Persistence (SQL Server, Oracle Database) Generate tables, stored procedure, views, constraints, full text search, paging, sorting Business Object Model (BOM) Web Service for Office Smart Client Object Model (SCOM) C# business layer with transaction handling, serialization, cache, BLOBs management (streaming), paging, sorting, collections, etc. Web service for an access through MS Access 2007 et MS Excel 2003/2007 with bidirectional synchronization Extension of the objet model based on WCF. Dramatically simplifies development of Smart Client (SOA)
Generated user interfaces architected in components WSS 3.0 (*) Smart Client WPF (**) ASP.NET Access 2007/2010 Excel 2003/2010 Beyond standard generation, it s easy to develop professional software applications on various Microsoft architectures: ASP.NET, WinForms, Silverlight (>=2.0) and WPF,... (*) Windows SharePoint Services 3.0 (**) Communication based on WCF using the generated SCOM (Smart Client Object Model)
Data Logical Layers Business Presentation A Modular target architecture Web ASP.NET Application (n-tier architecture) Web SharePoint Application (n-tier architecture) Smart Client (n-tier architecture) Heavy Client (client/server architecture) Client Tier Client Tier Client Tier Client Tier Web Navigator Web Navigator WinForms WPF Silver Light Mobile Devices Generated Proxy WCF Proxy Proxy (SCOM) WCF WCF For SilverLight For.NET Compact WPF WinForms Middle Tier ASP.NET Business Objects Middle Tier Middle Middle Tier Tier SharePoint WebParts Generated ASP.NET WCF Services Business Business Objects Business Objects Objects Data Access ADO.NET Data Access ADO.NET Data Access ADO.NET Data Access ADO.NET Data Tier SQL Server, Oracle, Etc. Data Tier Generated Data Tier SQL Server, SQL Server, Oracle, Oracle, Etc. Etc. Data Tier SQL Server, Oracle, Etc.
Software factory demonstration
Various customer references Medium and large companies Software publishers Service companies Startups and Investors Developers I have been using CodeFluent Entities for 18 months and this product totally changed my way of building.net applications. I can no longer live without it! Sébastien Mizon Senior Developer, former Microsoft architect
CodeFluent Entities versions and licensing model CodeFluent Entities is available under 3 main versions (*) Express Generation limited to 10 business entities per model. Price: Free Professional Generation limited to 30 business entities per model, access to all CodeFluent Entities features (except SharePoint producer) Mandatory license for new code developed on top of a CodeFluent Entities generated library 1 year Software Assurance included with free email support 499 excluding taxes per developer license Additional maintenance (year 2&3): between 25% to 33% (of 499 ) per year Enterprise Unlimited generation, access to all CodeFluent Entities features (except specific extra producers such as SharePoint) 1 year Software Assurance included with free email support 2490 excluding taxes per developer license (no runtime fee) Additional maintenance (year 2&3): between 25% to 33% (of 2490 ) per year SharePoint producer: add. of 1490 excluding taxes per developer license (*) We also have a Site license and Custom license including access to CodeFluent Entities source code.
Don t wait Register for FREE on http://www.codefluententities.com and get your express license TODAY! For any questions, feel free to contact us on info@softfluent.com Thank You!
Questions / Answers