590 likes | 688 Views
W EB L IGHTS JavaScript Framework. MVC PLUS Framework. Overview. 100% WEB AND HTML PURE JAVASCRIPT FRAMEWORK HTML 5 Ready. Old but perfect and safe.
E N D
WEBLIGHTSJavaScript Framework MVC PLUS Framework
Overview 100% WEB AND HTML PURE JAVASCRIPT FRAMEWORK HTML 5 Ready
Old but perfect and safe • The Weblight are libraries , made to give developers of dynamic web pages an easy and fast way of making their applications more powerful using datasets, master-detail relations, dataset-events, conditions and data-aware components. Implementing AJAX-technologies, it is able to connect to servers and download data from them.
Client side Architecture TreeObjects GridObjects EditObjects Navigation Objects Data Visualizers DataSource Distributors Data Providers Tree,Flat etc. DataSet Fields and validation Rows Connection SOAP WL JSON REST
Flat Data dataSet.add(); dataSet.setFieldValueByName(‘Name’,’Ali’); dataSet.setFieldValueByName(‘FamilyName’,’Rahmati’); dataSet.post(); JavaScript client side
Recursive Data dataSource.getDataSet().insertSubItem(0); dataSource.getDataSet().setFieldValueByName(‘Name’,’Ali’); dataSource.getDataSet().setFieldValueByName(‘FamilyName’,’Vakili’); dataSource.getDataSet().post(); JavaScript client side
Supported Commands • Default commands: • Select (fetch) • Update • Delete • Insert • Concurrency : • Lock • Version • Reload • LazyLoad (application server and client) • Load Single Record • Record/Field Data Availability (validation) • Custom Commands • Integrated Security (synchronized with server model) ISO 27001 Compliant
Supported Commands • Cursor (Multi Level Cursor Supported) • Lazy Load (both client / Application Server) • Search • Sort • Filter (Complex Expression supported) • Group By EXTENSIBLE EXPRESSION SUPPORT for rest of commands. Send Multiple rows in multiple levels instead of single row in each server transaction.
Available DB Scenarios • MultiMaster/MultiDetail • Filters • One to One • One to Many • Recursive • Self recursive • Many to many • Many to many
MultiMaster/MultiDetail Detail Level 1 Master 1 Master 2 Detail Level 2
Supported Types • String • Cardinal • Floating • Currency (ECB Support) • GUID • DateTime and Time • Binary • Streams (Application Server and RDBMS) • Images • XML • Custom (formula fields)
Available Validators • Type • Max and Min • Range • Scale • Format • Requirement • Row • Custom
Edit Objects Editors (can support input tags , textarea,select , file and all other known tags such as image , div) Views (support all tags) Lookups (tree,grid) AutoComplete HTML Editor
Validation Editor TreeLookup Password Editor Grid Lookup ComboBox +35 Others
Grid Objects • Template Grids • Column Based Grid • Template support for header / columns • In place Sort/Filter/Group by (planned in version 1.2)
Grids این یک تست است Editable Grids Template Grids Navigator
Tree Objects • Tree • Multi dataSource Tree • Tree Grids • Menues • Organization charts (vertical and horizontal)
Organization Charts Drag and Drop Menues Tree
Visualizers Are based on HTML 5 and VRML(for older browsers support) • Diagram Editor (for recursive many to many ) • Charts • Reports : Planned in version 2.0
3rd Party Supports HTML 5 SVG VRML FOR OLDER BROWSERS Charts Through Modified Version of RGRAPH to support DB Centric Concepts 100% DBAware Built in Diagram Editor for recursive N To N Relations
Diagram Visualizer • Use Smart Objects (Rest of UML shapes) with CSS and Image Support • SVG and VRML • Wysiwig Edit with a 100% DBAware Approach • Designed to visualize Many to many recursive scenarios 100% DBAware
Window Controls • Window Control • PageControl • Panels • Command buttons • Planned: support for alignment Support for blocking design Support for docking for all objects Widgets
Windows Dialogs a nd command buttons PageControls SplitBoxes
Sample Application Notifications
CallBack Function Support • Async Callback functions • Sync Callback functions • Connected Objects (Buttons, other tags) In Model In MetaModel In Controller
In Razor Pages @using (Html.WLGridFor("grdAccessoriesfinalreciept", Model.Accessoriesfinalreciept, new GridColumn[] { Html.WLGridCol(m=>m.Accessoriesfinalreciept.DocumentNo).Size("10%"), Html.WLGridCol(m=>m.Accessoriesfinalreciept.DocumentDateDB).Size("15%"), Html.WLGridCol("StorehouseTitle","").Size("15%"), Html.WLGridCol(m=>m.Accessoriesfinalreciept.DocumentDescription).Size("50%")}, new GridOptions() { PageSize = 5, WrappableHeader = true })) { }
In Razor Pages @Html.WLDateTimePickerFor(m => m.Accessoriesfinalreciept.DocumentDateDB) @using (Html.WLTreeLookupFor("lkpPmmstorehouse", m => m.StoreHouseNature.StorehouseCode, m => m.StoreHouseNature.Title, m => m.StoreHouseNature.ID, "StorehouseCode", "StorehouseTitle", m => m.Accessoriesfinalreciept.__TPmmstorehouse, HTMLAttributes: new { style = "width: 200px;height:25px;float:right;" }); • { • } @Html.WLTextEditFor(m => m.Accessoriesfinalreciept.DocumentNo) MORE THAN 108 Components
Easy to use , named Client side component through W elements: W.Person.add(); W.Person.delete(); W.Tree1.hide(); * JavaScript Code Support for JAVA SAND BOX MODEL (First time in javascript Frameworks)
Easy to do client side codes • BeforeInit • AfterInit • Component Events • Functions • Application (for main and top window) • W Element is similar to forms in Widnows Forms
MORE • Full Keyboard Support (through component model) • Callback Support • Async Callback functions • Sync Callback functions • Connected Objects (Buttons, other tags) In Model In MetaModel In Controller
Supports • Server Side • .NET • C# AND RAZOR ONLY • JAVA • JSF Only
Planned in next version • New Extensible translation model (support for cultures in both client and server) • Extensible themes and skins • Client side Queries • Formula Fields • Reports
MVC PLUS Framework
Built in support for Dynamic Strategy pattern • Using a behavioral architecture instead of creational ones Similar design to VCL Data components Support for stateless and state full operations
Multi Level Models • 2D model (Rows) • 3D (Recursive and Rows) • Multi Level Models • Combined class and view
Extensible Support for batch operations • Built in ORM (default) • Optimized for sending buffer batch actions (unlimited) for less and faster DB server transactions • Stored Procedures • Text Commands • Python and managed C# server side triggers
Expressions • (BirthDate>’27/1/2011 and BirthDate<‘27/2/2011) or BirthPlace==‘TEHRAN’ @EXPR Replace(Address,’Tehran’,’Greate Tehran’) where BirthPlace==‘TEHRAN’
Expressions are used in: • Filters • Policies and Strategies • Formula fields • All possible Commands
Profiles.Person.Update(new { name = "@EXP name+' test'" }, “BirthPlace==‘Tehran’ and Age>45"); • [FormulaField(“DifferenceYears(Now,BirthDate)”] • public int Age{get;set;} • [ReadOnly(“@WHERE owner!=CurrentUser”] • public bool Interested{get;set;} • Profiles.Person.Filter=“Editor==ME and ”;
Controls and security • MetaModels (equative to views) • Models • Rows • Columns Support for Policies FullAccess,Readonly,WriteOnly,Delete
Compatible with • LINQ • Expression Query Requests And integrated with WEBLIGHTS as default supported DAL.
ommands • Cursor (Multi Level Cursor Supported) • Lazy Load Search • Sort • Filter (Complex Expression supported) • Group By EXTENSIBLE EXPRESSION SUPPORT for rest of commands. Optimized for batch operations Always Sorted and filtered
Available DB Scenarios • MultiMaster/MultiDetail • Filters • One to One • One to Many • Recursive • Self recursive • Many to many • Many to many
MultiMaster/MultiDetail Detail Level 1 Master 1 Master 2 Detail Level 2
Supported Types • String • Cardinals • Floatings • Currency (ECB Support) • Units (Exchangeable Units) • GUID • DateTime and Time • Binary • Streams (Application Server and RDBMS) • Images • XML • Custom (formula fields)
Available Validators • Type • Max and Min • Range • Scale • Format • Requirement • Row • Custom
Try{ for (var t = 0; t < 5000; t++) { try{ p.Person.Insert(); p.Person.Assign(new { aname = "Ryan", aFamilyName = "Ali" }, "name=aname; familyname=afamilyname"); p.Person.Name = t.ToString() + " test "; p.Person.FamilyName = t.ToString() + " test "; finally{ .Person.Post(); } } p.Person.Flash(); }catch{ p.Person.Cancel(); }
TRY Insert or Update Or Delete Set Values ‘p.person.Name=“ALI”; FINALLY Post Flash CATCH Cancel
XML Support Additional to XDOM , Support for XML DB : In Models: Person[“Name/MiddleName”]; XPATH and XQUERY Extensible Support Device [“features/Supports”].Insert(); Device [“features/Supports/DeviceName”].Value=“Data”; Device.Post(); Filter/Policies and expressions are supported in rest of XML Support.