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
 ...