* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Title goes here
Extensible Storage Engine wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Relational model wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Clusterpoint wikipedia , lookup
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 ...