Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

FrameControl - Framework for creating web applications

0.00/5 (No votes)
25 Jul 2003 1  
FrameControl is a framework that contains the code common for most of the web applications.

Introduction

FrameControl is a Visual Studio add-in including a library of components ready to drag and drop in your Visual Studio web project. With it, define your workflow, presentation layers, stored procedures using XML files and you get a structured application rapidly running. You can also define the browser behavior for each page: decide to keep or clear the history, decide to activate or deactivate the back button. What is also specific to FrameControl is that it maps data entered in the HTML fields to database store procedures parameters using a single XML file (no code required).

In a nutshell, you can :-

  • Use XML to define a  workflow linking elements of your web application, such as pages displayed, database stored procedures, .NET objects methods.
  • Use XML to define the layout architecture of pages in your system, each page becoming a template container for Web User Controls which are parsed and  connected to database store procedures parameters at run time.
  • Plug in new Web User Controls in your web without coding, save the data from these new controls in the session and the database.
  • Discover stored procedures parameters and their types, automatically calling them, and putting results in the user session.
  • Saving all data entered by users in Session without any code to add.

Background

Any web developer has experiences the trouble of having to do part of the job of the web designer for dynamic pages, and any web designer the trouble not to be able to modify any other file than static HTML. FrameControl try to make it simple to change the workflow between pages by changing an XML file, make it simple to create a dynamic page (with workflow logic and database interactions) without coding. A unique data access component makes it possible to define what is saved in the database by configuring an XML file.

Using the code

A complete 10 page documentation on how to configure FrameControl is included in the demo project, while a complete source code description generated by Visual Studio is included in the source files. The demo project includes a windows installer that will automatically update your Visual Studio environment. The source project includes a ZIP files that is the Visual Studio Install project. It will allow you to update the install program with your modified version of FrameControl.

The main data structure of FrameControl is the page XML description, described above. Any page in the system is defined as an XML tag and can alternatively trigger an object method. The object will be discovered at run time using the reflection library. The structure of the page is a HTML TABLE, with optional attributes such as align, valign, colspan; for its TR and TD elements.

<Page Name="firstPage" prefill="Y" action="myNameSpace.firstPageActions">
<Title> FrameControl page which events are linked to an ActionClass </Title>
<PlaceHolderArray>
<tr>
<td valign="top">
  <name>AddressRegistration_WebUserControlName</name>
</td>
<td>
  <name>BlankColumn_WebUserControlName</name>
</td>
<td>
  <name>BookCatalog_WebUserControlName</name>
</td>
</tr>
</Page>

Points of Interest

A systematic approach to creating a web application using the .NET framework made me work a lot with .NET packages, and understand some behavior that I wouldn't meet for a standard web development. Code automation is an interesting subject; many developments could be added to enhance FrameControl, each of those requiring to be careful about design problems, from the beginning.

History

FrameControl comes from the need to put as much as redundant code common to all web applications in a framework that would use as much as possible .NET web packages. A great deal of work has been done, however some more work need to be done. The Session Time Out problem should be studied. (In the Application object, FrameControl must be initialized again  when the user Session Time Out has occured). In the future, the article from Patrick Long on CodeProject, Exploring ASP.NET Session state and cache data, can be used to add debugging tools to the framework.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here