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.