Virtual Web Platform (VWP)
From VNetWiki
Web Development > Virtual Web Platform (VWP)
The Virtual Web Platform is a web based framework for building advanced web database applications. The framework was originally designed and programmed by Ralph Ritoch in an effort to produce a standard web framework api with few limitations.
News
The Virtual Web Platform has been released. The latest version is v1.0.2 which is a Beta Developer Release.
Tutorials
Features.
The virtual web platform provides the following features.
- Extensibility
Themes and Applications may be developed to run on the platform. They can be installed and removed easily using the administration panel.
- Application-Driven
Many features of the platform are simply standardized interfaces which are meant to be implemented by add-on applications. Every application may also include libraries which may be used by other applications. This eliminates many of the limitations which exist in current frameworks.
- MWL Framework similar to MVC
The model-widget-layout (MWL - pronounced EM-WALL) framework is a derivative of the MVC (model-view-controller) framework. The difference is that the view and the controller have been merged into a single entity known as a widget. The function of the model is the same, and the layout produces the final output. The benefit of this framework is that development time is often reduced compared to the MVC framework. If a new action button is made in a MVC framework, the action must be provided in both controller and the view. Since most changes to the Controller will require changes in the View this framework reduces development time by providing a centralized point to provide both controller and view functionality. The layouts provide abstraction between the processing and the final output. Separate layouts can be made for each supported output format (HTML,XML, SOAP,etc.) which abstracts the functionality layer from the communication layer.
As of v1.0.1 the platform provides a layer of listeners for the widget to abstract the HTTP request processing from the Widget. This layer makes it possible to separate pre-processing of different request types which require special pre-processing such as XForms and SOAP. This layer is optional.
- Object Oriented Design
The system and entire framework are object oriented, providing vectors to more easily traverse the objects which are available in the system. The v() function is provided as the core of the framwork to make object traversal more intuative. As an example if a form field named text is sent to a widget the widget may access the data using the following PHP syntax: v()->shell()->getVar('text','','post'); This example uses the core object to reach the shell object, and the shell object to access the form data. Databases, filesystems, and other important core features are all reachable using this design.
- Virtualized Operating System
The system provides many features to mimic an operating system. This includes file access functionality, shell application(s) complete with shell environment variables, dynamic loading of libraries, etc.
- Event Driven
The platform provides two interfaces to allow event driven features. The two types are events and notices. When events are triggered they cause event handler objects to be loaded and the appropriate object methods are called to process the requested event. Notices on the other hand are more light-weight and do not load themselves, instead notice listeners must be registered via API calls. A typical event driven application may use events to load notice listeners which effectively make the notice listeners self-loading which reduces the demand to use the bulky event listener system.
- Bleeding edge technologies
The platform sits at the bleeding edge of new technologies. This platform simplifies the use of technologies such as AJAX, SOAP, XML and even makes it possible to produce dynamic XSLT stylesheets making it possible to build complex XML applications which can be accessed directly with Firefox and Internet Explorer. These same applications can also be accessed with custom applications designed on Silverlight, Flash, Java and even accessed by applications which run directly on computers and mobile devices.
Next: XRDOM (XML Rest Dom API)