SoftFluent
Pragmatic model-driven development with CodeFluent Entities
Code Generation 2010 - June 16
thLionel POLI – [email protected]
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
•
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 decision-makers IT •Unclear needs •Changing needs •Increasing expectations •Less money •Less time Business decision-makers •New technologies •Scarce coding talent •Heterogeneous teams•More and more legacy code
Common approaches: focusing on one of the
previous ambition components
TIME
COST
SCOPE
Solution: RAD Tools
Drawbacks: •Constrained features •Prohibitive cost of customization •Dependency Solution: Offshore Drawbacks:
•Weak industrialization and maintenance
•Risk for time-to-market
Solution: CASE Tools
Drawbacks:
•Late on technology innovation •Lack of flexibility
•Proprietary skills and languages
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
Costly to customize beyond pre-designed elements
Generated code is standard, human-readable, consistently componentized and
can be extended without any limits Strong dependency on
proprietary programming language with specific skills
Difficult to support latest technology platforms
Business design is structurally separated from target architecture that easily evolve
through specific producers
Historical drawbacks
Solution
Fully integrated into usual development tool, the code is standard as our solution just adds a thin abstraction modeling layer Requires stable definition of
business needs by users
Modeling immediately produces executable components which support a design process friendly to business change
CodeFluent Entities:
Model-driven code generation
CodeFluent Entities Application Life Cycle
Design new models Import existing models Phase 1 Design or Import 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 usingpartial classes of generated BOM. Phase 4’ Execution Direct use of generated graphic layers(SharePoint, ASP.NET,etc.) Iteration Phase 1 Automated phases
CodeFluent Entities:
Functional scope
Code
Fluen
t
En
tit
ies
Persistence Transaction CacheGraphical user interface
Services (SOA) BLOB streaming
Validation rules + external rules
SDK*business
Security
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
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
)
C# business layer with transaction handling, serialization, cache, BLOBs management (streaming), paging, sorting, collections, etc.
Web Service for
Office
Web service for an access through MS Access 2007 et MS Excel 2003/2007 with bidirectional synchronizationSmart Client Object
Model (
SCOM
)
Extension of the objet model based on WCF. Dramatically simplifies development of Smart Client (SOA)
Access 2007/2010
WSS 3.0
(*)Excel 2003/2010
(*) Windows SharePoint Services 3.0 (**) Communication based on WCF using the generated SCOM (Smart Client Object Model)
Smart Client WPF
(**)Beyond standard generation,
it’s easy to develop
professional software
applications on various
Microsoft architectures:
ASP.NET, WinForms,
Silverlight (>=2.0) and WPF, ...
Generated
user interfaces
architected in
components
A
Modular
target architecture
Logi ca l La ye rs P re se nt at ion Bu si ne ss D at aWeb ASP.NET Application (n-tier architecture) Client Tier Web Navigator Data Access ADO.NET Business Objects ASP.NET Middle Tier SQL Server, Oracle, Etc. Data Tier Smart Client (n-tier architecture) SQL Server, Oracle, Etc. Data Tier
Data Access ADO.NET Business Objects
WCF Services
Middle Tier Client Tier
WinForms WPF SilverLight DevicesMobile
Proxy WCF (SCOM) Proxy WCF For SilverLight Proxy WCF For .NET Compact
Web SharePoint Application (n-tier architecture) Web Navigator Data Access ADO.NET Business Objects ASP.NET Middle Tier SharePoint WebParts SQL Server, Oracle, Etc. Data Tier Client Tier Heavy Client (client/server architecture) SQL Server, Oracle, Etc. Data Tier Middle Tier
Data Access ADO.NET Business Objects Client Tier WPF WinForms
Generated
Generated
Generated
Various customer references
Medium and large companies Software publishers Startups and Investors Service companies 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 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