XFDL technology uses reflection that is provided by Microsoft .NET to read and
write data. The following two C# methods getClassValue and setClassValue read
and write values from a class and its property/field, the path to which is
stored in o and c.DataField variables. The name of the field can
be complex, for example address.City:
WebControl.cs
. new
window .
source file
To simplify the database communication and to make porting the application to a
different database easy, most of my projects use database library. It provides
abstraction from actual database API. Specifically .NET allows this by
providing abstract classes like IDataReader, IConnection etc., and also
universal objects like DataSet, DataTable etc. The following methods provide
the foundation for database adapter. Usage of
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]
allows me to store database connection string in a web.config file for a web
application:
Adapter.cs
. new
window .
source file
For many web projects that deal with data entry, especially business
applications, proper format of data entry is very important. This is why I
developed JavaScript data validation library. It allows developers to add
validation of input field by writing one line of code. Here are some sample
methods from that library:
jsverification.js .
new window .
source file
Microsoft Great Plains, being a classic client-server application, doesn’t have
almost any middle tier. However, it provides an API to write such a middle
tier, which partly implements what is available via GUI. That eConnect
interface is based on XML, where all data exchange is done with XML documents.
Integration of an application with Great Plains is done via reading and writing
such documents. By using
SELECT … FOR XML AUTO SQL SQL syntax in MS SQL Server to read data,
all you have to do is write XSTL transformation. Below I provide an example of
typical sales document (invoice) that I send to Great Plains:
XML document:
invoice.xml
. new
window
XSLT Transformation:
invoice-to-gp.xslt
.
new window .
source file
The result:
invoice-gp.xml
.
new window
XSL-FO is a document layout language based on XML. This is why the most
convenient way to describe a document is to use XSLT that is based on
application data schema. To print a document I used above, I wrote the
following template
XML document:
invoice.xml
. new
window
XSLT transformation:
invoicestyle.xslt
.
new window .
source file
that file is linked from
invoice-solid.xslt
.
new window .
source file
or
invoice-tramsparent.xslt .
new window .
source file
for a pre-printed form
Result (after XSL-FO generator ran):
invoice.pdf
. new
window .
îòêðûòü PDF ôàéë
A user menu in applications is generally stored in resource files or on html
page in case of web applications. However, the standard hierarchical
representation of data in XML files makes it perfect storage. Below I give an
example of menu data and menu generator:
XML file containing menu description
Menu1.xml
. new
window
XSLT menu transformation file
menu.XSLT
. new
window .
source file
The result, combined with
menu.js .
new window .
source file and
menu.css .
new window .
source file is a DHTML page, which shows the following dynamic HTML
menu:
menuResult.html
. new
window
Many busyness systems and business web sites include file management system
(news, reference documents etc). The following code written in VBScript is a
file management form of that system:
form.asp
. new
window .
source file
For business systems that we provide via ASP model (subscription) I developed a
billing system. It allows us to sell monthly (subscription) and one-time
services, and to flexibly create new subscription services and products. It
also does payment aging. Here I provide an example of Visio Enterprise
Architect usage to create C# code skeleton using UML:
billing system.vsd .
new window .
Visio ôàéë
One of the products we developed is car parts sales system. That process starts
with a quote. Here I provide a client interaction diagram which shows the
process of the quote:
quote process.vsd .
new window .
Visio ôàéë
Another business process in that product is transfer of products from one store
or warehouse to another. That process was drawn to finalize the business logic
design with the client:
quote process.vsd .
new window .
Visio ôàéë
Generic term CRM describes a system that allows sales force to communicate with
clients or potential clients. It also allows a group of people to maintain
history of contact with a client. The system maintains history of phone calls,
e-mail and other types of contacts. It provides easy way to make decisions
about particular client, search for hottest prospects and contact them, all
within one product. For example, during the lifecycle of one of our products I
developed similar management system. The following are pages that manage that
system and statistics page:
createjob.asp
. new
window .
source file
filterjob.asp
. new
window .
source file
The XSL-FO module of our product uses Apache FOP library. Because of that I had
do use Java language, with DOM and XPath libraries. This is real example of a
class that is center part of the server – XSL-FO document analyses, PDF and
PostScript transformation management and resulting PostScript modification:
Monitor.java
. new
window .
source file