Artem Saveliev
РезюмеРабота О себеДневник
English
Компьютеры бесполезны. Они могут только давать ответы.
Пабло Пикассо

XFDL reflection

Технология XFDL использует reflection в Microsoft .NET для чтения и записи данных. Следующие два метода на C# getClassValue и setClassValue считывают и записывают значения из класса и его поля, путь к которым находится в переменных o и c.DataField, причём имя поля может быть сложным, например address.City:

WebControl.cs . в новом окне . исходный текст

Database Adapter

Для упрощения взаимодействия с базой данных, а так же для возможного портирования кода приложения на другие базы данных, во всех моих проектах используется библиотека абстрагирования от конкретных интерфейсов базы данных. В частности, .NET делает это возможным с помощью абстрактных классов IDataReader, IConnection и.т.д., а так же универсальных объектов DataSet и DataTable и.т.д. Следующие методы составляют основу адаптера базы данных. Использование
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]
для соединения позволяет хранить строку соединения с базой данных в файле web.config для web:

Adapter.cs . в новом окне . исходный текст

JavaScript data validation

Для многих web проектов связанных с вводом данных, особенно для бизнес приложений, очень важны правильность и корректный формат введённых данных. Поэтому мною была разработана JavaScript библиотека, позволяющая одной строкой кода добавить проверку данных к полю ввода. Приведу несколько методов из этой библиотеки:

jsverification.js . в новом окне . исходный текст

Great Plains eConnect sender example

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 XSL translation example

XSL-FO является языком представления документа в формате XML. Поэтому шаблон документа для печати наиболее удобно описывать на языке xslt, в соответствии со схемой данных конкретного приложения. Для выше приведённого документа для вывода документа на печать мною написан следующий шаблон

XML документ:
invoice.xml . в новом окне

xslt трансформация:
invoicestyle.xslt . в новом окне . исходный текст
этот файл подключается из
invoice-solid.xslt . в новом окне . исходный текст
или
invoice-tramsparent.xslt . в новом окне . исходный текст
для формы без разметки

Результат (после работы генератора PDF):

invoice.pdf . в новом окне . открыть PDF файл

DHTML+XSL+XML menu example

Меню в приложениях обычно описывается в файлах ресурсов или в страницах в случае веб приложений, однако для универсализации иерархическое представление данных в XML файлах подходит наиболее хорошо. Ниже приведён полный пример данных и генератора меню:

XML файл описания меню
Menu1.xml . в новом окне

xslt файл преобразования меню
menu.xslt . в новом окне . исходный текст

В результате, в сочетании с menu.js . в новом окне . исходный текст и menu.css . в новом окне . исходный текст получаем DHTML страницу, показывающую выпадающее HTML меню следущющим образом:


menuResult.html . в новом окне

ENI File catalog (CMS)

Многие бизнес системы и сайты для бизнеса включают систему управления файлами (новостями, нормативными документами и.т.п). Следующий код написанный на VBScript является страницей для управления такой файловой системой:
form.asp . в новом окне . исходный текст

Visio billing design

Для бизнес систем, которые наша компания предоставляет по подписке, была разработана гибкая система вычисления баланса клиента, которая позволяет возможность продавать как ежемесячные (подписка) так и единовременные сервисы, а так же гибко создавать новые подписки и сервисы, а так же следить за истечением срока. Здесь я привожу пример использования Visio Enterprise Architect для генерации шаблона C# кода с использованием UML.

billing system.vsd . в новом окне . Visio файл

Quote process

Одним из созданных продуктов является система продаж автомобильных деталей. Этот процесс начинается с составления предварительного заказа. Ниже приведена диаграмма, составленная при взаимодействии с заказчиком, показывающая процесс создания предварительного заказа.

quote process.vsd . в новом окне . Visio файл

Transfer process

Другим бизнес процессом этом продукте является пересылка товаров из одного магазина (склада) в другой. Этот процесс так же был описан в деталях для окончательного согласования с клиентом.

quote process.vsd . в новом окне . Visio файл

CRM

Общий термин CRM обозначает систему общения с клиентами и потенциальными клиентами компании, позволяющую группе людей следить за всеми контактами с клиентом. Система обслуживает телефонные звонки, электронную почту, другие типы контактов, а так же с лёгкостью позволяет принимать решения о необходимых действиях с данным клиентом, осуществлять поиск наиболее вероятных потенциальных клиентов, и связываться с ними, всё в пределах одного продукта. В частности, в процессе жизненного цикла одного из наших продуктов, мною была разработана такая система слежения. Ниже приведёны примеры страниц управляющих этой системой и страницы статистики.

createjob.asp . в новом окне . исходный текст

filterjob.asp . в новом окне . исходный текст

XSL-FO Java server

Поскольку в модуле XSL-FO используется библиотека Apache FOP, для реализации сервера был использован язык Java, с библиотеками для работы с DOM и XPath. Ниже приведён реальный пример класса отвечающего за центральную часть программы – анализ XSL-FO документов, управление преобразованием документов в PDF или PostScript документы и модификация синтаксиса PostScript

Monitor.java . в новом окне . исходный текст