Технология XFDL использует reflection в Microsoft .NET для чтения и записи
данных. Следующие два метода на C# getClassValue и setClassValue считывают
и записывают значения из класса и его поля, путь к которым находится в
переменных o и c.DataField, причём имя поля может быть сложным, например
address.City:
WebControl.cs
. в
новом окне .
исходный текст
Для упрощения взаимодействия с базой данных, а так же для возможного
портирования кода приложения на другие базы данных, во всех моих проектах
используется библиотека абстрагирования от конкретных интерфейсов базы данных.
В частности, .NET делает это возможным с помощью абстрактных классов
IDataReader, IConnection и.т.д., а так же универсальных объектов DataSet и
DataTable и.т.д. Следующие методы составляют основу адаптера базы данных.
Использование
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]
для соединения позволяет хранить строку соединения с базой данных в файле
web.config для web:
Adapter.cs
. в
новом окне .
исходный текст
Для многих web проектов связанных с вводом данных, особенно для бизнес
приложений, очень важны правильность и корректный формат введённых данных.
Поэтому мною была разработана JavaScript библиотека, позволяющая одной строкой
кода добавить проверку данных к полю ввода. Приведу несколько методов из этой
библиотеки:
jsverification.js .
в новом окне .
исходный текст
Microsoft Great Plains, являясь классическим клиент-серверным приложением
практически без middle tier, тем не менее предоставляет интерфейс для создания
middle tier, частично повторяющий функции GUI. Интерфейс eConnect основан на
XML, все данные передаются и принимаются в виде XML документов. Интеграция
приложения с Great Plains таким образом сводится к генерации или чтению этих
документов. Если же использовать
SELECT … FOR XML AUTO SQL синтаксис из MS SQL Server для чтения
данных, то вся задача сводится к xslt трансформации данных. Ниже я привожу
типичный XML документ и трансформацию для него, в результате которых мы
получаем документ о продаже (invoice) посылаемый в Great Plains:
XML документ:
invoice.xml
. в
новом окне
xslt трансформация:
invoice-to-gp.xslt
.
в новом окне .
исходный текст
Результат:
invoice-gp.xml
.
в новом окне
XSL-FO является языком представления документа в формате XML. Поэтому шаблон
документа для печати наиболее удобно описывать на языке xslt, в соответствии со
схемой данных конкретного приложения. Для выше приведённого документа для
вывода документа на печать мною написан следующий шаблон
XML документ:
invoice.xml
. в
новом окне
xslt трансформация:
invoicestyle.xslt
.
в новом окне .
исходный текст
этот файл подключается из
invoice-solid.xslt
.
в новом окне .
исходный текст
или
invoice-tramsparent.xslt .
в новом окне .
исходный текст
для формы без разметки
Результат (после работы генератора PDF):
invoice.pdf
. в
новом окне .
открыть PDF файл
Меню в приложениях обычно описывается в файлах ресурсов или в страницах в случае
веб приложений, однако для универсализации иерархическое представление данных в
XML файлах подходит наиболее хорошо. Ниже приведён полный пример данных и
генератора меню:
XML файл описания меню
Menu1.xml
. в
новом окне
xslt файл преобразования меню
menu.xslt
. в
новом окне .
исходный текст
В результате, в сочетании с
menu.js .
в новом окне .
исходный текст и
menu.css .
в новом окне .
исходный текст получаем DHTML страницу, показывающую выпадающее HTML
меню следущющим образом:
menuResult.html
. в
новом окне
Многие бизнес системы и сайты для бизнеса включают систему управления файлами
(новостями, нормативными документами и.т.п). Следующий код написанный на
VBScript является страницей для управления такой файловой системой:
form.asp
. в новом
окне .
исходный текст
Для бизнес систем, которые наша компания предоставляет по подписке, была
разработана гибкая система вычисления баланса клиента, которая позволяет
возможность продавать как ежемесячные (подписка) так и единовременные сервисы,
а так же гибко создавать новые подписки и сервисы, а так же следить за
истечением срока. Здесь я привожу пример использования Visio Enterprise
Architect для генерации шаблона C# кода с использованием UML.
billing system.vsd .
в новом окне .
Visio файл
Одним из созданных продуктов является система продаж автомобильных деталей. Этот
процесс начинается с составления предварительного заказа. Ниже приведена
диаграмма, составленная при взаимодействии с заказчиком, показывающая процесс
создания предварительного заказа.
quote process.vsd .
в новом окне .
Visio файл
Другим бизнес процессом этом продукте является пересылка товаров из одного
магазина (склада) в другой. Этот процесс так же был описан в деталях для
окончательного согласования с клиентом.
quote process.vsd .
в новом окне .
Visio файл
Общий термин CRM обозначает систему общения с клиентами и потенциальными
клиентами компании, позволяющую группе людей следить за всеми контактами с
клиентом. Система обслуживает телефонные звонки, электронную почту, другие типы
контактов, а так же с лёгкостью позволяет принимать решения о необходимых
действиях с данным клиентом, осуществлять поиск наиболее вероятных
потенциальных клиентов, и связываться с ними, всё в пределах одного продукта. В
частности, в процессе жизненного цикла одного из наших продуктов, мною была
разработана такая система слежения. Ниже приведёны примеры страниц управляющих
этой системой и страницы статистики.
createjob.asp
. в
новом окне .
исходный текст
filterjob.asp
. в
новом окне .
исходный текст
Поскольку в модуле XSL-FO используется библиотека Apache FOP, для реализации
сервера был использован язык Java, с библиотеками для работы с DOM и XPath.
Ниже приведён реальный пример класса отвечающего за центральную часть программы
– анализ XSL-FO документов, управление преобразованием документов в PDF или
PostScript документы и модификация синтаксиса PostScript
Monitor.java
. в
новом окне .
исходный текст