UPDATE: Has been released at http://workspaces.gotdotnet.com/ezweb
My current pet project is called EZWeb. I don’t know if that name is already trademarked, but that’s what I call it. The purpose of EZWeb was originally to serve as a product that would allow Joe User to have a website that was easy to maintain through a web interface. It would have a WYSIWYG editor for page content, file uploading, and it would allow Joe Owner to add other users with granular permissions of what part of the website they had control over. The user can add as many pages and sub-pages as the hosting space allows. I have reconsidered developing for the purpose of being a product (I don’t think I want to mess with that type of scenario), and I’m now developing it as a complete framework for web applications. It’s developed with ASP.NET, so it can be extended with any .Net language. Here’s a screenshot of an admin screen that allows configuration of every page:
As you can see, the editor has control over the page title, the template for the pages and its children(templates can be easily changed and can be different within the site. If a template is not specified, the page uses its parent’s template), the color scheme for the page (defined by the template for allowed colors), and the plugin the page implements. The default plugin in a content editor that supports file uploading. Alternately, a page can implement another plugin that is available for the site. For proof of concept, I make a “clock” plugin, and when implemented on the page, no page content is displayed if it exists, and my clock plugin (which is just a user control) displays the current time. I have plans to make a photo album plugin, a blog plugin, etc. Other packages can be incorporated as a plugin. For instance, I was going to use nGallery for the photo album plugin. Next on the admin screen is controling what child pages exist. When you add a new one, the program creates the new page on the disk with its own config file. Also you can add as many regular hyperlinks off the page to different areas of the site or wherever. It can even be a script hyperlink. Then, below that, is the editor area. This controls what users are allowed to modify this page. There are granular permissions, and the permissions inherit and override similar to NTFS.
My goal for this is to serve as the main framework for an application. The user object can be modified to the needs of the app, and EZWeb will abstract away the navigation. For instance, some people have Intranets that have different web apps scattered all over the page, but everything else is just regular HTML. Well, this automates the website part of it so that you don’t have to manually edit HTML anymore. ASP.NET fit directly inside EZWeb seamlessly, and you can keep the benefits of EZWeb navigation while hiding the template if you internal web app has its own look and feel – or you can make the look and feel an EZWeb template (very easy to do) and configure it that way.
When I get back to the states, I plan on setting up a site for my extended family. It will serve as a kind of family tree website with each family having a part of the site. The parents, in turn, can create areas beneath that for each child if they so choose. Each person will have a login, and editing permissions can be configured so they have control over their page and its sub-pages, but they will not have change access to other parts of the site. With a photo album plug-in, anyone will be able to choose the phoe album plugin, click save, and then they can immediately start uploading pictures. Free beta testing!!
I’m thinking about releasing the source as a gotdotnet workspace, but I haven’t decided yet. I’m curious to know if there are any .Net projects out there that may overlap with the goals of this one.