Title goes here
Download
Report
Transcript Title goes here
THE
Enticy
GROUP
A Framework for Web and
WinForms (Client-Server)
Applications
“Enterprise Software Architecture”
THE
Enticy
GROUP
Outline
Short introductions
Start with a demo (Web and WinForms)
Background and technical details
Code walkthrough
Building an application
Topics in depth
THE
Enticy
GROUP
Demo 1
Sample Application
THE
Enticy
GROUP
The goal is
Provide a framework of reusable
software components to simplify,
speedup, reduce the cost, and assist in
the creation of Web and WinForms
applications which access databases
and follow a business process
THE
Enticy
GROUP
Technical Summary
Framework processes client requests (Web
or Windows GUI), handles business logic,
accesses database, and generates output
(GUI, XML or XHTML) – full cycle
Encapsulates all database access as well as
display and form handling
A generic solution for writing applications, but
with a powerful extensibility model!
THE
Enticy
GROUP
Technical Details
Reusable layered .NET objects
– Our own design and architecture for a Web and
WinForms business applications.
– Not using bound controls or web form controls
– Object oriented
Data access encapsulation
– Back-end independent approach for common
database providers
– Automatic SQL generation for searches and
CRUD (all form handling)
– Abstracted, key-based, optimistic-locking.
THE
Enticy
GROUP
Technical Details
Metadata driven definition of forms, searches
and security
– Reusability
– Flexible solutions
– XML Based
Code generation vs. Runtime driven
– One body of code
– No orphan code
– No regens
THE
Enticy
GROUP
Technical Details
Stateless approach for both vertical and
horizontal scalability of Web Apps
– No object or object state maintained in memory
between requests – all gets persisted
– Objects created when needed
– Generic objects restore state quickly from
metadata, http request, and database
– Objects can reside in “MTS” i.e. “Serviced
Component” in .NET (“application server”)
THE
Enticy
GROUP
Technical Details
Multi-layer security and role-based logic
– Application logic security is used to
authenticate and authorize user access to
application and data
– login via Oracle, SqlServer, CustomDB,
LDAP, Windows, Passport, Certificate, etc.
– Framework metadata-driven role-based
security
– Native support for SSL
THE
Enticy
GROUP
Technical Details
Layered Application Architecture
– Core framework data components
– Core framework utility components
– Application extensibility components
– Platform or presentation specific layer
(Web, WinForms, Web Service, etc.)
Each encapsulate core framework
THE
Enticy
GROUP
Web/client to Server
WinForms
Browser
IIS
WAF Object
WAF Object
.NET
ASPX
pages
WAF Object
WAF Object
WAF Object
WAF Object
Database
THE
Enticy
GROUP
Demo 2
Behind the sample application..
(Database, metadata, security..)
THE
Enticy
GROUP
Framework Objects
Two general business application
activities:
1. Searching for and listing record sets as
well as selecting records to navigate or
‘open’ them (DBFind)
2. Opening a single record, showing a form,
to create new, update, or delete
(DBRecord).
THE
Enticy
GROUP
Framework Objects
DBFind
– Searching for data to:
View (decision support)
Select as option (work flow, navigation)
Select to modify (transactions)
– Invoking actions on found records
THE
Enticy
GROUP
Framework Objects
DBRecord
–
–
–
–
–
–
–
–
CRUD (Create, Read, Update, and Delete)
Validation of data entry
Applying business rules
Transactions
Single record or set handling
Linked records and foreign keys
Edit Form
Result Set Table display
THE
Enticy
GROUP
Framework Objects
Metastore
– Holds Metadata for runtime data driven approach
– XML DOM as a global singleton object
– Holds all table definitions
Fields for each table
Search definitions for each table
Edit form definitions for each table
– Security on most items
– System and Application Strings
– Multi language support on all items
THE
Enticy
GROUP
Framework Objects
Additional activities for most business
applications
– User Profile
– Session Control
– String dictionary
– Request Object
– URL builder
– Instrumentation (trace, audit, profile, etc.)
THE
Enticy
GROUP
Demo 3
Framework project walkthrough
THE
Enticy
GROUP
Runtime
Browser
IIS
.NET
ASPX
pages
Metastore
DBFind
DBRecord
Database
THE
Enticy
GROUP
XML to HTML
XML
Metastore
XML DOM
XML
Metadata
User
interface and
navigation
XPATH, DOM API
Tables
DBFind or
DBRecord
HTML
Fields
Forms
Basic
HTML
Searches
Java
Script
Searches
SQL
Forms
Database
THE
Enticy
GROUP
Framework Object Life Cycle
Create
The object
XML
SQL
Restore all
needed state
Process
Input
Perform
the work
Compose
output
Persist
state
SQL
Destroy
Object
THE
Enticy
GROUP
Code Example
Dim Record As WAFdbComponents.DBRecord
'Create a DBRecord object
Record = New WAFdbComponents.DBRecord()
'Build the object from metadata
If Record.Build("Company", "EditForm", MainMetaStore, Profile) Then
'Identify and read the record from the database
Record.PrimaryKeyValue = sPKey
If Record.ReadRecord Then
'Output HTML-form populated with the fetched data
Response.Write Record.EditFormHTML
End If
End If
THE
Enticy
GROUP
Demo 4
Code walkthrough (DBFind, DBRecord)
THE
Enticy
GROUP
Framework Extensions
Business Rules objects
Search Rules objects
Field validation objects
Authentication object
Property retriever
Function overrides
THE
Enticy
GROUP
Runtime
Browser
IIS
Metastore
DBRecord
ASPX
pages
IBusinessRules
Database
THE
Enticy
GROUP
Framework Object Life Cycle
Create
The object
XML
SQL
Process
Input
Restore all
needed state
Delegate to
Business Rules
Perform
the work
Delegate to
Business Rules
Persist
state
Compose
output
SQL
Destroy
Object
THE
Enticy
GROUP
Business Rules objects
Objects implementing the IBusinessRules
interface
Assigned to a DBRecord object (in metadata)
Runtime framework delegation
CanRead(..)
CanCreate(..)
CanEdit(..)
CanWrite(..)
CanDelete(..)
CanDisplay(..)
IsValid(..)
ReadComplete(..)
WriteComplete(..)
DeleteComplete(..)
WriteAllComplete(..)
THE
Enticy
GROUP
Search Rules objects
Objects implementing the ISearchRules
interface
Assigned to a DBFind object (in
metadata)
Runtime framework delegation
CanDisplaySearch(..)
CanExecute (..)
THE
Enticy
GROUP
Field validation objects
Objects implementing the
IFieldValidation interface
Assigned to a Field object
Runtime framework delegation
IsValid(..)
THE
Enticy
GROUP
Demo 5
Business rule code walkthrough
THE
Enticy
GROUP
Web Framework
ASP.NET layer
Pages derived from System.Web.UI.Page
Encapsulates dbComponents work
Handles HTTP requests
Orchestrates HTML response
THE
Enticy
GROUP
html
Browser
http request (state, action-verb)
ASP.NET
webComponents
System.Web.UI.Page
dbComponents
DBFind
WafControllerPage
WafFormPage
DBRecord
WafForm
Profile
(Application derived form)
Session
Metastore
Database
THE
Enticy
GROUP
Demo 6
Web framework walkthrough
Building an Application!
THE
Enticy
GROUP
WinForms (Client/Server)
WinForms.NET layer
MDI Application Class
Forms derived from –
System.Windows.Forms.Form
Encapsulation of dbComponents
UI driven (no UI generation)
THE
Enticy
GROUP
User
WinForms.NET
guiComponents
dbComponents
Main Application window
Metastore
DBFind
File Edit Tools
FormDbFind
Inherits
System.Windows.For
ms.Form
DBRecord
MyForm
Inherits
FormDbRecord
Inherits
System.Windows.
Forms.Form
Profile
Database
THE
Enticy
GROUP
Demo 7
WinForms framework walkthrough
THE
Enticy
GROUP
Topics in depth
UI generation - XML and HTML pages (using
customizable XSLTs if desired),
SQL generation
Back-end independent
Generic exception handling
Business rule extensibility
Profile
Session
...