Fons Sonnemans Reflection IT BV All rights reserved
Fons Sonnemans © Reflection IT BV. All rights reserved. Reflection IT Buffy. NET
What is Buffy. NET? • Buffy. NET is a Framework (API) for developing OLTP applications § § § • O/R Mapper, not a Code Generator 100% Object Oriented (C#) 3 layers, 2 tiers Windows Forms, 3 tiers ASP. NET Meta. Data driven & RDBMS independent Keep it Simple (as possible) History: § § SDE I & II Zeus I & II Eva 2 k Baby. Zeus. NET Overview Buffy. NET (Smalltalk) (Visual Basic 6. 0) (Microsoft. NET) 2
Fons Sonnemans • Freelance Software Development Consultant § § Object Orientation Programming Languages • § Databases • § • MS SQL Server, Sybase, Oracle, Gupta SQLBase Role • § Smalltalk, Visual Basic, ASP (VB Script & Java. Script), VB. NET, C# Trainer, Coach, Advisor, Architect, Designer, Developer GUI Design & Software Development Process More info: www. reflectionit. nl Overview Buffy. NET 3
Object Oriented Business Objects Generalize Buffy. NET Project X Overview Buffy. NET 4
UI Layer Win. Forms Business Logic Layer Data Access Layer • Forms • Win Controls • Utils • Business Objects • Business Services • CRUD (RDBMS Independent) UI Layer Web. Forms ADO • Pages • Web Controls • Utils System Types Overview Buffy. NET • • SQL Server Oracle Access etc • Fundamentals, Helpers & Utils • Meta. Objects 5
UIL Win. Forms Project. X. Exe (Win. Forms) • Forms • Controls Buffy. NET Win Library • • • Forms Win Controls Components Interfaces Reporting Utils System Types Overview Buffy. NET BLL Project. X. DLL DAL • Business Objects • Business Services Buffy. NET Library • • • Base classes Interfaces Exceptions Collections Field. Values Validators • Optional. Types • Meta. Objects • CRUD’s ADO Buffy. NET Data Lib • Statements • Connections Buffy. NET System Lib • • SQL Server Oracle Access etc 6
Project X – Windows Client Main. Form Overview Buffy. NET 7
Project X – Windows Client Simple Edit Browse Edit (Modal) Overview Buffy. NET (Modeless) 8
Projext X - Windows Client Master. Detail Edit Trace. Listner Lookup FK Overview Buffy. NET 9
Projext X - Windows Client Assign N: M Overview Buffy. NET Checked. List N: M (Drag&Drop support) 10
UIL Windows Forms Client • Functions § § • External Controls § • Dialogs: Main (Outlook), Simple Edit, Browse Edit, Master. Detail Edit, Lookup Foreign. Key, Assign N: M, Checked. List N: M Functions: New, Edit, Delete, Custom… Grid: Print, Preview, Sort, Group , Add Fields Save/Restore User. Settings (Isolated. Store) Janus Windows Controls Suite v 2 Meta. Data is used to runtime generate GUI § Grid, Functions (Menu options), Security, Edit Dialogs Localized: NL, EN • Status: stable • Overview Buffy. NET 11
UIL Web. Forms Project. X ASP. NET • Pages (aspx) • Controls Buffy. NET Web Library • Code behind base classes • Web Controls • Interfaces • Utils System Types Overview Buffy. NET BLL Project. X. DLL DAL • Business Objects • Business Services Buffy. NET Library • • • Base classes Interfaces Exceptions Collections Field. Values Validators • Optional. Types • Meta. Objects • CRUD’s ADO Buffy. NET Data Lib • Statements • Connections Buffy. NET System Lib • • SQL Server Oracle Access etc 12
UIL Web Forms Client (ASP. NET) Overview Buffy. NET 13
UIL Web Forms Client (ASP. NET) Overview Buffy. NET 14
UIL ASP. NET Client (2005 only) ASP. NET 2. 0 • Object. Data. Source bound to BOManager + BO • § § Select: Filtering, Sorting, Paging (Sql 2005 Cte Qry) Update Insert Delete Connection Pooling • Localized: NL, EN • Status: in development • Overview Buffy. NET 15
Business Logic Layer • Business Objects are generated using Code. Smith § § § Abstract baseclass is used for generated code: constructors + property get/set for all fields Buffy. NET 2005 (C# 2. 0) uses partial class for generated code Use Generic. BO if no specialization code is required BOManager for Plural functions • Business Objects are Transaction aware! • § State is Rollback-ed (Mode + Original. Value of all fields) Uses Meta. Data for Validation • Supports Calculated & Joined Fields • Localized: NL, EN • Overview Buffy. NET 16
Buffy 2003 Class Diagram Overview Buffy. NET 17
Buffy. NET 2005 Class Diagram Overview Buffy. NET 18
Code. Smith Code Generation Overview Buffy. NET 19
BOBase Samples Medewerker m = new Medewerker(); m. Id = "m 1"; m. Voornaam = "Fons"; m. Achternaam = "Sonnemans"; m. Geboortedatum = new Date. Time(1969, 3, 1); m. Rijbewijs = true; m. Salaris = 2500; m. Save(); Medewerker m = new Medewerker("m 1"); m. Rijbewijs = true; m. Salaris = null; m. Save(); Medewerker m = new Medewerker("m 1"); m. Delete(); Overview Buffy. NET 20
BOManager Samples Condition. Base c = new Condition. Between( "Salaris", new Constant(1000), new Constant(2000)); c. And(new Condition. Is. Null("Rijbewijs")); BOCollection<Medewerker> medewerkers = Managers. Medewerker. Manager. Find. Where(c); using (IDb. Transaction tran = crud. Begin. Transaction()) { foreach (Medewerker m in medewerkers) { m. Raise. Salary(); } tran. Commit(); } // Auto-rollback when not committed Medewerker m = Managers. Medewerker. Manager. Find. Id("m 1"); m. Delete(); Overview Buffy. NET 21
Data Access Layer • Uses ADO. NET § • RDBMS Independent § § • SQLServer, Oracle, Access, My. Sql, . . . Providers SQL. NET, Ole. Db. NET, Oracle. NET, Odbc. NET, . . . CRUD (Create, Read, Update, Delete records) § § § • • Connection Pooling (Optional) Abstract Base. Class Default CRUD’s (SQL, Oracle, Access, My. Sql, . . . ) Uses Meta. Data to generate Dynamic SQL or Stored Procedures Calls Custom DAL Exceptions SQL Objects (Optional) § § § Select, Insert, Update, Delete, Stored Procedure with RDBMS specific specializations (derived classes) ITransaction, Root. Transaction, Sub. Transaction Clauses, Conditions, Identifiers, Constants, Keywords, etc Overview Buffy. NET 22
SQL Objects - Statements Overview Buffy. NET 23
SQL Objects - Clauses Select. Statement. Base s = new Sql. Select. Statement(); s. Select. Add. Astrix(); s. From. Add("sales", "s"); s. From. Add(new Join("stores", "s. stor_id", "stores. stor_id", Join. Types. Left)); s. Where. And(new Condition. Like("title", new Constant("%book%"))); s. Order. By. Add("ord_date", true); s. Order. By. Add("qty"); Overview Buffy. NET 24
Meta. Data • Meta. Data is used for § User Inferface Layer • • • § Grid Edit Dialogs Functions Business Logic Layer • • Required Fields Validations § § Data Access Layer • • • Validator. Base: Between. Validator, Range. Validator, Regex. Validator, … Dynamic SQL Statements Stored Procedure Calls May be stored in any format § Code (as in Project. X sample), Xml, Database, … Overview Buffy. NET 25
Meta. Data Overview Buffy. NET 26
Library • Immutable Optional. Types (2003 only) § INullable. Value interface • § § § • Has. Value, Value properties Optional. String class Structs: , Optional. Int, Optional. Decimal, Optional. Date. Time, Optional. Bool, Optional. Guid Converters Utils § Forms. Util • Add. Splitter(), Show. Exception(), Show. Message(), etc Overview Buffy. NET 27
// TODO: • Documentation § XML Documtentation with samples and remarks • • NUnit § • Multi-field primary/foreign-key support? ? ? Windows Clients § • Extra Unit testing Kernel § • Tools: Sandcastle, Sandcastle Help File Builder, Help Integration Wizard Fine tuning Web (ASP. NET) Clients § Meta. Driven Editing Overview Buffy. NET 28
Buffy. NET 2005 C# 2. 0 • Generics § § § • BOManager<T, C> & IBOManager BOCollection<T> & IBOCollection Uses Event. Handler<T> Optional. Types are replaced by Nullable types § Nullable<T> Partial Types for generated code (Get/Set) • Anonymous Methods • Internal/Protected Set • Static classes • Overview Buffy. NET 29
Buffy. NET 2005 Framework 2. 0 § § § Custom Debuggers New Controls (no use of 3 rd party controls) Data. Grid. View, Tool. Strip, Menu. Strip, Table. Layout. Panel Typed Resource files ASP. NET 2. 0 & AJAX Extensions 1. 0 Overview Buffy. NET 30
Buffy. NET 2008 WPF Client • SQL Server 2008 Support • § • Spatial Datatypes C# 3. 0 § Patial Methods • • • On. Created On. . . Changing(value) On. . . Changed(value) New Project Templates • T 4 Text Template instead of Code. Smith • VS 2008 Unit. Tests instead of NUnit • Overview Buffy. NET 31
WPF Client • Data. Binding § § Observable. Collection support INotify. Property. Changed interface Overview Buffy. NET 32
Example - Schuuring Overview Buffy. NET 33
Example – Objectmap. nl Overview Buffy. NET 34
Questions mailto: fons. sonnemans@reflectionit. nl http: //www. reflectionit. nl Overview Buffy. NET 35
- Slides: 35