450 likes | 467 Views
This project aims to develop a framework for C# developers to deploy reporting websites quickly, offering optimal customizability. The framework extends ASP.NET MVC, providing default layouts and views and standard reporting functionality. It targets development teams of varying skill levels to create and maintain enterprise-level websites efficiently. The project includes system overviews, data flow diagrams, component design, project evaluation, and future work.
E N D
MVC Reporting Website Framework Presentation 3 on November 8th, 2018 Thaddeus Tuck thaddeus@ksu.edu CIS 895 – MSE Project
Outline • Introduction • Motivation • Goal • Purpose • Terms • System Overview Diagram • Data Flow Diagrams • Component Design • Project Evaluation • Future Work • Framework Demonstration • Questions / Comments
Project Overview • Motivation • The motivation of the project is to develop a framework that can be used by any C# developer to quickly deploy a reporting website while providing optimal customizability for an enterprise level website. • Goals • To develop a framework that extends the base classes of ASP.NET MVC that contain standard functions and operations to prevent the reimplementation of standardized code. • Create overridable default layouts and views so that the framework can provide entry-level web developers with a fully functioning website while still allowing for extensibility as their skills progress as well as configurability without having to have extensive experience with JavaScript, jQuery, or CSS. • Provide standard functionality for table-based reporting of column selection, ordering, and filtering through a standardized model and pattern.
Project Overview (Cont.) • Purpose • To aid development teams consisting of developers of various skill levels create and maintain enterprise level websites. • Provide standardized extensible patterns to allow for rapid development of features. • Provide configurability and extensibility of web features.
Terms • MVC • Model View Controller • ASP.NET MVC • A pattern-based methodology and framework for web development using .NET from Microsoft as the server side component.
Model • The classes (objects) that contains the data to be used by the application.
View • The component of the architecture which ultimately contains the definition for the HTML to be rendered.
Controller • The component of the architecture that receives the request from the browser and provides an entry point to the server from the browser.
DataTable • A jQuery API that provides dynamic tables for websites.
Service • For the context of this project a service is an additional architecture layer designed to provide validation and communication between a controller and a repository.
Repository • The architecture layer that accesses and uses external services and database components.
Layout • The defining template for components of a rendered web page such as the header, footer, and body.
Extension • Methods that provide additional functionality to existing framework components.
Problems Encountered • Decision Making • One of the biggest issues I’ve encountered has been decision making even within the scope of the Vision Plan. I’ve implemented three versions of this framework so far, and learned many lessons along the way, but trying to decide how to best implement the framework for this project has been a series of many difficult choices; many that cost precious time. • Prioritization • The models and underlying structures have always been my highest priority as those are what are valuable to me both now and if I extend the project further. Prioritizing whether to focus on the deployment of the framework versus additional features was a difficult time-consuming process that ultimately was resolved through discussion with Dr. Andresen back in September. • Development Time • When Dr. Hsu asked during my first presentation whether I thought I would be able to complete the scope of the Vision Document I honestly did. However, I was basing my time estimates on the 40-hour work-weeks that I had used to develop similar frameworks in the past, not the limited week night and weekend hours I could steal from work, classwork, and my family. In addition, I decided to invest a large amount of time in unit testing and documentation; far more than I had in any previous iteration of developing reporting frameworks like this project.
Project Evaluation Testing Evaluation
Performance Stress Testing On Developer’s Machine
Performance Stress Testing On Azure Project Website
Project Evaluation Project Duration
Future Work Packaging Extending DataTable Functionality Service Provider Export Functionality
Lessons Learned Technical Inspectors Documentation Time Management
Prototype Demonstration • Project Website is a Demonstration of the Framework • Demos of framework features will be available on the project website: • http://thaddeustuckmastersproject.azurewebsites.net/
Final Steps • Final Examination Ballot • Make necessary changes to the MSE Portfolio • Deliver the Final Portfolio