ZPM.Net™ is an open source web business application framework with server and client side framework optimized for
web business applications utilizing ASP.NET MVC, Entity Framework and jQuery. It is intended as a starting point for
developing feature rich business applications, but components can be broken out and modified to work with existing applications.
The DataView class provides complete CRUD functionality (create, read, update and delete) with an intuitive user interface in an all in one page format.
No pop-up dialogs. New views are easily setup using the step by step ZPM.DataView video tutorial.
The ReportBuilder class also provides an intuitive user interface in an all in one page format.
New reports are easily setup using the step by step ZPM.ReportBuilder video tutorial.
It supports user created reports that can be private or shared, with output to the screen, Excel or PDF.
Users can choose columns, sorting order and advanced filtering criteria.
Project Requirements
Visual Studio 2017 Community Edition
ASP.Net C# MVC 5.2.3
.Net Framework 4.6.2 (earlier versions are probably fine)
jQuery 3.3.1
jQuery-ui 1.12.1
Entity Framework 6
SQL Server Express LocalDb (easy to change to SQL Server)
ZPM.Net Demo and Tutorial Videos
The tutorials assume experience with C#, jQuery and Entity Framework.
The database is set up as a separate project (Zpm.NetDb) within the solution.
Altering the database is beyond the scope of the tutorials,
however changes should not be an issue for anyone experienced with Entity Framework.
Open Quick Demo - A quick overview of an implementation of Zpm.DataView and Zpm.ReportBuilder.
The user interface design for this demo is targeted towards the business user who spends many hours a day in the application.
Such users demand that the interface be as efficient as possible, willing to sacrifice white space and accept terse prompts
in exchange for less navigation to additional pages than the UI design for a typical web user.
ZPM.Net framework is not tied to a specific UI style, with the exception of the DataView list. Customizing ZPM.Net to any UI design should not be a difficult task.
ZPM.Net components:
Zpm.DataView - An easy to use interface incorporating all CRUD operations on a single page (Create/read/update/delete).
Users pick table record from a scrolling list of records for a table.
For large tables, greater than 5 or 10 thousand records, some type of filtering must be employed.
Zpm.ReportBuilder - It is intended to be used by the average user to create, save and share ad hoc reports from preprogrammed views.
Users can choose report columns from a defined list, pick the order of the columns, set sorting order, apply filters to the data, and save the reports for reuse.
Reports can be output to the screen, Excel or PDF. While the project is for ASP.NET MVC, it’s pretty easy to modify it to work with Web Forms
(I have already done that), and shouldn’t be difficult to adapt to other non-ASP environments as most of the complex stuff is in jquery/javascript.
Zpm.FixedHeading - Fixed table headings should be a standard feature of HTML tables, but is is not.
This module turns a normal html table with <:th> headings into a table where the heading is fixed and data rows scroll.
Zpm.TableSort - Sort html table rows by clicking on a heading cell. Supports date, numeric and the ability to sort on multiple columns.
ZPM.Net Customization
Dependency Injection - ZPM.Net utilizes dependency injection to allow easy customization of framework methods.
Javascript Prototypes - ZPM.Net javascript classes utilize prototypes, allowing extensions to classes and methods.
Planned Future Enhancements:
Manage AspNetUsers - Page to maintain AspNetUsers using Zpm.DataView.
Zpm.DataView Security - Page and field level security to hide, view and change fields based on user roles.
Zpm.DataView Change Log - Track changes at the fields level, showing a history of who made the change, date and time of the change.