Wouldn't it be fine to say: "I need these content, that data tables, blog, these forms on my web page without any HTML coding."
For all standard tasks:
- the browser should be able to render an appropriate web page
- described with a few information only
- the data and the content should be transfered to the browser in a structured and raw, but non HTML format. Data can be any product catalog, any blog messages, any database result.
This does the PoNG framework for you!
How it works
The Portal has always a header, some rows and a footer:
You can specify the hight of each row individually.
A row can contain a view or a set of columns ...
... and columns can contain views or rows, containing views or ... (you understand?). You can define the width of each column.
With this construct you should be able to do every possible arrangement of views.
Views use Plug-Ins
Views can use ready to use plug-ins with different functionality
There are also plug-ins for the header and footer, e.g. to display navigation bars, logos, link-lists or language switch buttons.
Configure the Views
All views load their own configuration to initialize the view. The configuration comes from a web server or application server (dynamic configuration).
Data and Content in Views
After the initialization the view can load, modify, save or create data on a RESTful server backend. I.e. the WIKI content plug-in can load pages from a MediaWiki server.
... and Action!
For a dynamic page, all views can do different interactions:
- Views can call functions on a HTTP server backend (via REST calls)
- Views can call update method of other views. These views typlically call the server backend to load data.
- Views can load a view into a row or a column, replacing the view there.
- Views can navigate to another page. Hopefully another portal page.
All the interactions are defined in the view configuration files. E.g. in a view using the form plug-in you can define a button to save the form data and triggering an update of a table view afterwards.
Of course -- the description of the page layout and the content data should be in a machine readable format and precise enough, that your browser is able to understand it. But these description of layout and data must still be human readable, self explaining and without HTML or JS coding necessary.
Why no HTML?
HTML can do a lot of good things and it will still be the best way to explain the browser how to do the rendering details. But is there a reason that humans write HTML? There are so many standard tasks on the web, which are always the same. I looked through a bunch of web sites and found always the same elements. Only the layout and graphical design looks different -- and of course the content.
An other good thing is, that you only have to provide the "raw information" and all the rendering is transfered to the frontend. In the past, there was a huge gap of computing power of servers and clients. The gap has been closed and there is no reason to have all the workload in the backends. We have no good reason to render all dynamic web pages in the backend.
Rendering HTML in the backend is also a bad idea, since the client types of are so different and you have to do all the client specific decisions at the wrong point.
PoNG is "Portal NG" (next generation):
- It is a prototype or study, how it may work!!
- Easy set up: Complete separation of layout, information, style
- Modular: see PoNG Modules
- Flexible backends: Static HTML, PHP, Java Web Container, JEE, ...
Things that are implemented already:
- Basic rendering of the layout
- Plug-in programming model for modules using hooks
- Some very useful ready to use modules
- Modal dialogs
- Authentication and authorization
- Personal customizing
- Zoom views to full width
- Tomcat Backend
- PHP Backend
- Dynamic Administration