ГЛАВА 11
Web-формы: приложения на основе ASP.NET для работы с базами данных
До сих пор демонстрировались различные способы работы с базой данных на разных этапах создания приложения и способы использования результатов выполнения приложения (на основе объектов DataSet, DataAdapter и Connection). В этой главе эти способы комбинируются для просмотра информации из базы данных в Web-среде с помощью Web-броузера. В контексте платформы.NET Framework Web-страница, которая применяется для извлечения или вставки данных, называется Web-формой (WebForm). Прежде, при создании приложения с помощью технологии ASP, единственным способом извлечения данных из реляционной базы данных было применение объектов ADODB.Connection и ADODB.Recordset. С появлением платформы .NET модель ADO.NET позволяет использовать не только новые классы и параметры, но и встроенную поддержку для работы с XML-данными так, как если бы они были элементами базы данных. Описание новых способов работы на основе технологии ASP .NET начинается с базовых сведений, а затем приводятся более сложные понятия.
Обзор технологии ASP.NET
После изобретения возможностей использования серверного кода для создания Web-страниц разработчики пытались найти способы его упрощения для конечных пользователей и разработчиков. Рассмотрим следующую бизнес-ситуацию: пользователи могут осуществлять доступ к Web-узлу, получать базовую контактную информацию и звонить по телефону для оформления заказа. (Не так давно именно такими ограниченными возможностями обладали все Web-узлы электронной коммерции.) Проблема заключается в том, что пользователи при этом хотели бы видеть выставленные на продажу товары, причем таких пользователей может быть очень много.
Для организации такого взаимодействия с Web-узлом начали появляться разные языки и технологии создания сценариев. Одной из таких технологий является технология активных серверных страниц (Active Server Pages — ASP). Она предоставляет средства вставки в Web-страницу кода, который выполняется во время обработки Web-сервером поступившего запроса. В контексте разработки приложений эта новинка была революционной: по крайней мере теперь разработчики могли использовать сценарий на языке VBScript, который выполняется на сервере. Этот тип взаимодействия постепенно начал превосходить другие подходы на основе языков JavaScript и ActiveX. Кроме того, язык VBScript был расширен таким образом, чтобы вызывать компилированные COM-объекты на Web-сервере и включать их функции в Web-страницу. На этом этапе появился Microsoft Transaction Server, который теперь называется набором компонентных служб Component Services.
Итак, что же произойдет при смешении серверного кода, клиентских сценариев, а также кода, откомпилированного для обеспечения безопасности и масштабируемости. Именно эти компоненты и образуют основу технологии ASP.NET. Полученный в результате такой комбинации ASPX-файл позволяет использовать мощный серверный код, основанный на полноценном языке программирования, которым привыкли пользоваться разработчики. Теперь поддержка языков программирования С#, Visual Basic, C++, FoxPro, Perl, COBOL и Fortran осуществляется благодаря общеязыковой исполняющей среде (Common Language Runtime — CLR), и эти языки могут использоваться в специальных Web-страницах для более полного удовлетворения требований пользователей.
Кроме того, все ASPX-файлы компилируются и кэшируются, т.е. после использования ASPX-страницы она компилируется во временный DLL-файл, который фактически выполняет всю работу при поступлении следующих запросов. В результате повышается производительность и уменьшается время задержки ответа на запрос.
HTML-элементы управления и серверные элементы управления
Еще одной новинкой технологии ASP.NET является использование серверных элементов управления. Серверный элемент управления кодируется в Web-странице, а все его события и свойства обрабатываются Web-сервером. Серверные элементы управления аналогичны HTML-элементам управления, но обладают существенными преимуществами.
Любому разработчику, которому приходилось создавать Web-страницу с формой ввода данных, уже известны HTML-элементы управления. Для программирования формы ввода данных используется элемент FORM вместе с несколькими элементами INPUT, например для создания текстового поля, списка или флажка, как показано ниже.
Элемент INPUT также доступен в технологии ASP.NET, но для работы с его содержимым требуется создать клиентский или серверный сценарий. В рассматриваемой бизнес-ситуации поставлена задача обеспечить полную совместимость созданного приложения со всеми типами Web-броузеров. При использовании клиентского сценария всегда существует вероятность, что какой-то Web-броузер не поддерживает данный сценарий либо выполнение сценариев отключено по соображениям безопасности. Для исключения этих проблем и предназначены серверные элементы управления.
Еще один интересный аспект использования серверных элементов управления связан с технологией ActiveX. Эта технология основана на использовании «толстого» клиента. («Толстый» клиент — это компьютер с богатыми функциональными возможностями и ресурсами, которые часто избыточны с точки зрения сетевых вычислений. — Прим.ред.) По причинам, полное описание которых выходит за рамки данной книги, использование вставленных в Web-страницу элементов управления ActiveX, которыми можно управлять через Internet, было крайне неудачной идеей. В отличие от элемента управления ActiveX, серверный элемент управления не содержит никакого кода, который выполняется на клиентской стороне. Клиент получает только HTML-код, а все операции взаимодействия с пользователям выполняются Web-сервером после получения соответствующего запроса от пользователя («posting back»). Далее на примере объекта DataGrid показан способ применения серверного элемента управления, который принимает набор данных, обрабатывает его и создает HTML-таблицу, которую можно отобразить в любом Web-броузере. Следует признать, что она несколько отличается от стандартной HTML-таблицы с данными.
Серверные элементы управления можно создавать с помощью интегрированной среды разработки Visual Studio .NET.
Завершая сравнение HTML-элементов управления и серверных элементов управления, рассмотрим приведенный ниже фрагмент кода ASP.NET, предназначенного для представления серверного элемента управления, а именно текстового поля txtName.
Этот серверный элемент управления выполняет точно ту же задачу, которую выполняет HTML-элемент управления из приведенного фрагмента кода. Единственным отличием является то, что это текстовое поле обрабатывается Web-сервером.
Дополнительные преимущества технологии ASP.NET
Описанию технологии ASP.NET посвящено множество книг, здесь же описываются два компонента ASP.NET.
Первый компонент связан со свойством IsPostBack. При создании ASPX-файла (или, иначе говоря, Web-формы) ему по умолчанию передаются данные. Свойство IsPostBack используется для того, чтобы избежать появления сообщений об ошибках при отсутствии таких данных на Web-странице, которую пользователь еще даже не успел увидеть. Свойство IsPostBack имеет значение true, если данная Web-страница запрашивается пользователем, либо значение false, если данная Web-страница загружается самостоятельно впервые. Ниже приводится фрагмент кода с примером использования этого метода.
Конечно, ASPX-файл или HTML-файл можно использовать для передачи данных другому ASPX-файлу. Это позволяет создать файл с нужной функциональностью, например переадресовать пользователя после проверки и исправления данных к другой Web-странице с помощью метода Response.Redirect.
Еще одно важное достоинство ASP.NET связано с процессом доставки готового приложения. Для этого достаточно скопировать все файлы с одного компьютера на другой. Конечно, на новом компьютере под управлением Web-сервера Internet Information Server (IIS) нужно также создать новый виртуальный каталог с помощью консоли управления IIS ММС. Для этого выберите команду Start→Settings→Control Panel Administrative Tools→Internet Services Manager (Пуск→Параметры→Панель управления→Административные инструменты→Менеджер Internet-служб), в появившемся окне Internet Information Services (Информационные Internet-службы) выберите узел Default Web Site (Web-узел по умолчанию) и щелкните правой кнопкой мыши на нужном каталоге. Выберите в контекстном меню команду Properties. Появится одноименное диалоговое окно; выберите в нем вкладку Virtual Directory (Виртуальный каталог) или Home Directory (Домашний каталог), в зависимости от используемой операционной системы. Если выбранный каталог не сконфигурирован, то в группе элементов управления Application Settings (Параметры приложения) будет присутствовать кнопка Create (Создать). (В противном случае этой кнопки не будет и тогда следует щелкнуть на кнопке Cancel.) После щелчка на кнопке Create и конфигурирования каталога щелкните на кнопке OK для закрытия диалогового окна. Теперь выбранный виртуальный каталог сконфигурирован как приложение.
Совсем необязательно инсталлировать интегрированную среду выполнения Visual Studio .NET на любом Web-сервере, на который нужно скопировать Web-приложение. Для работоспособности такого Web-приложения нужно только установить платформу .NET Framework, которую можно бесплатно скопировать с Web-узла компании Microsoft по адресу: http://www.microsoft.com.
Доступ к базе данных с помощью ASP.NET
Ядром любого приложения баз данных является база данных. Для использования базы данных необходимо иметь надежный и безопасный способ подключения. На платформе .NET этот способ реализуется с помощью пространства имен System.Data и одной строки подключения.
Учтите, что доступ к данным связан с рядом трудностей. Одна из них заключается в том, что пользователь может не иметь прав доступа к базе данных, включая выполнение запроса на выборку данных. Еще одна часто возникающая проблема связана с сохранением имен и паролей пользователей в простом текстовом файле, который обычно не отображается Web-сервером для внешних пользователей. Например, при просмотре кода ASP-страницы очень редко можно встретить следующие строки:
Set Conn = Server.CreateObject(«ADODB.Connection»)
В примерах данной главы используется параметр TRUSTED_CONNECTION = YES, который означает применение надежного подключения, т.е. пользователь должен быть идентифицирован операционной системой Windows, а аутентифицирующая информация о нем должна храниться в SQL Server. В большинстве практических приложений в SQL Server не принято создавать отдельные учетные записи ASP.NET, если только не требуется ограничить возможности пользователя лишь операциями выборки данных.
Учетная запись ASP.NET используется по умолчанию при анонимных Web-запросах к Web-серверу с инсталлированной средой выполнения платформы .NET.
Включение учетной записи ASP.NET в состав учетных записей SQL Server
Для создания надежного подключения (на основе параметра TRUST необходимо иметь учетную запись операционной системы Windows, которую следует включить в состав учетных записей SQL Server. Кроме того, SQL Server должен быть сконфигурирован так, чтобы разрешалось использовать аутентификацию операционной системы Windows. Хотя большая часть этого процесса уже описана в предыдущей главе, он рассматривается здесь более подробно для демонстрации прямой связи между управлением учетной записью ASP.NET в SQL Server и использованием надежного подключения на основе параметра TRUSTED_CONNECTION. В данном примере рассматривается редкий случай создания отдельной учетной записи ASP.NET в SQL Server для ограничения возможностей пользователя только операциями выборки данных.
1. Откройте программу SQL Server Enterprise Manager, выбрав команду Start→Microsoft SQL Server→Enterprise Manager. Раскройте узел используемой базы данных и узел Security (Безопасность), как показано на рис. 11.1.
Рис. 11.1. Выбор узла Security в программе SQL Server Enterprise Manager
2. Щелкните правой кнопкой мыши на элементе Logins (Учетные записи) и выберите в контекстном меню команду New Login (Создать учетную запись). На экране появится диалоговое окно SQL Server Login Properties – New Login (Свойства учетных записей SQL Server – Создать учетную запись), как показано на рис. 11.2.
РИС. 11.2. Диалоговое окно SQL Server Login Properties – New Login
3. Во вкладке General (Общие свойства) в текстовом поле Name (Имя) укажите учетное имя пользователя, выбрав его с помощью щелчка на кнопке с многоточием либо введя в формате имя_компьютера/имя_пользователя или имя_домена/имя_пользователя. На рис. 11.3 показан пример выбора учетного имени пользователя после щелчка на кнопке с многоточием.
РИС. 11.3. Выбор учетного имени пользователя
4. Прокрутите список всех учетных записей для поиска учетной записи ASPNET и щелкните дважды на ней. Затем щелкните на кнопке OK для закрытия данного диалогового окна.
5. В нижней части вкладки General выберите в списке Database используемую базу данных Novelty (рис. 11.4).
РИС. 11.4. Выбор используемой базы данных Novelty в списке Database вкладки General
6. Далее выберите вкладку Database Access (Доступ к базе данных). Установите флажок только возле базы данных Novelty. Затем в списке Database Roles for ‘Novelty’ (Роли базы данных ‘Novelty’) установите флажок роли public (рис. 11.5).
РИС. 11.5. Выбор базы данных и роли пользователя
7. Выберите роль public и щелкните на кнопке Properties, чтобы открыть диалоговое окно, показанное на рис. 11.6.
РИС. 11.6. Свойства роли public
8. Щелкните на кнопке Permissions (Разрешения), чтобы открыть диалоговое окно, предназначенное для низкоуровневого указания разрешений пользователя (рис. 11.7).
РИС. 11.7. Диалоговое окно для низкоуровневого указания разрешений пользователя
9. Убедитесь в том, что выбран переключатель List all objects (Перечислить все объекты), и прокрутите список до конца, чтобы увидеть все таблицы из базы данных Novelty. Установите флажки всех таблиц в столбце SELECT (рис. 11.8). Флажок означает разрешение на выборку данных из данной таблицы, а крестик — запрет на выборку данных.
РИС. 11.8. Диалоговое окно для установления разрешений на основные операции с таблицами
10. На этом этапе установите также флажок в столбце INSERT для таблицы tblOrder, как показано на рис. 11.9. Это позволит покупателям создавать заказы.
РИС. 11.9. Установка разрешения на операции вставки в таблицу tblOrder
После выполнения этих действий для закрытия этого и двух других диалоговых окон щелкните на кнопке OK в каждом из них. После этого в списке учетных записей Logins в окне программы SQL Server Enterprise Manager появится пользователь ASPNEТ (рис. 11.10).
Рис. 11.10. Список учетных записей Logins в окне программы SQL Server Enterprise Manager
(Учтите, что в данном случае на рис. 11.10 показана учетная запись ASPNET, созданная на компьютере PRICEKW2KLT2 автора книги. — Прим. ред.)
Итак, учетная запись ASPNET включена в список учетных записей SQL Server. В следующем разделе показано, как ее использовать для подключения к базе данных без указания в строке подключения какой-либо информации об имени и пароле учетной записи.
Применение параметра TRUSTED_CONNECTION
Продемонстрируем теперь применение параметра TRUSTED_CONNECTION для подключения к базе данных и выполнения простого запроса с помощью технологии ASP.NET. Запустите интегрированную среду разработки приложений Visual Studio .NET и создайте новый проект ASP.NET Web Application. Для этого в диалоговом окне New Project (Новый проект) выберите тип проекта Visual Basic Project в области Project Types (Типы проектов) и шаблон ASP.NET Web Application (Приложение на основе ASP.NET Web-форм) в области Templates (Шаблоны).
Переименуйте автоматически созданный файл WebForm1.aspx и укажите для него новое имя default.aspx, щелкнув на имени правой кнопкой мыши и выбрав команду Rename (Переименовать) в контекстном меню, а затем отредактировав выделенное имя. Эта Web-форма будет используемой по умолчанию Web-страницей данного каталога. (Впоследствии в эту Web-форму будут постепенно вноситься другие изменения.)
Для начала рассмотрим код в листинге 11.1 с очень простым примером подключения к базе данных с помощью учетной записи ASPNET, выборки данных с помощью запроса на основе команды SELECT и отображения результатов запроса на Web-странице.
Технология активных серверных страниц ASP
ASP (англ. Active Server Pages — «активные серверные страницы») — технология, предложенная компанией Microsoft для создания Web-приложений в 1996 году вместо провалившегося проекта Dynamic HTML, в котором была сделана попытка «динамизировать» web-страницы за счет модернизации HTML, внедрением в него «динамических тэгов», то есть тэгов, имеющих алгоритмические свойства наподобие объектов в ООП. Но появление JavaScript от корпорации Netscape сделало это бессмысленным.
Технология ASP также, как и Dynamic HTML, основана на внедрении в обыкновенные веб-страницы специальных элементов управления, допускающих программное управление, но с куда большим риском для безопасности клиента.
По своей сути, ASP — это технология динамического создания страниц на стороне сервера, приблизившая проектирование и реализацию Web-приложений к той модели, по которой проектируются и реализуются обычные приложения.
Для реализации приложений ASP используются языки сценариев (VBScript или JScript). Также допускается применение COM-компонентов.
Технология ASP разработана для операционных систем из семейства Windows NT/Server и функционирует под управлением веб-сервера Microsoft IIS.
Технология ASP получила своё развитие в виде ASP.NET — технологии создания веб-приложений, основанной уже на платформе Microsoft .NET.
Синтаксис
Страница на ASP — это обычная страница HTML, со вставками, обозначенными ограничителями :
То что находится внутри ограничителей — это текст программы, интерпретируемый при запросе страницы. VBScript является языком по умолчанию, хотя возможно использование и JScript[источник не указан 1108 дней] (или любого другого языка, если установлен соответствующий интерпретатор):
Версии
ASP в своём развитии прошёл через несколько версий:
- ASP 1.0 (распространяется с IIS 3.0) в декабре 1996 года.
- ASP 2.0 (распространяется с IIS 4.0) в сентябре 1997 года.
- ASP 3.0 (распространяется с IIS 5.0) в ноябре 2000 года.
Apache::ASP
Apache::ASP (англ.) предоставляет функциональность ASP на основе веб-сервера Apache, со скриптами на основе Perl.
ASP в Sambar Server
На сервере Sambar Server используется функциональность ASP, которая использует язык CScript в качестве основного языка программных вставок.
Обзор технологии Active Server Pages (ASP)
Сергей Верязов, Microsoft Special Interest Group «Neva»
Active Server Pages это среда программирования, которая обеспечивает возможность комбинирования HTML, скриптов и компонент для создания динамических Web-приложений. Возможность встраивания в Web-страницы скриптов (кода, написанного на языке программирования, например, VBScript или JScript) позволяет логичным образом объединить оформление с данными, полученными из различных источников, например, из БД.
Идеология создания современных Web-приложений заключается в инкапсуляции бизнес-логики в отдельные компоненты, написанные по технологии COM. Технология ASP в данном случае является связующим звеном между этими компонентами и интерфейсом Web-приложения.
Принципы функционирования
Использование Active Server Pages как бы не требует специфичных браузеров, но требует включения небезопасного ActiveX. Все ASP-скрипты запускаются и выполняются на Web-сервере, причем брaузер получает только результирующие HTML-файлы. Microsoft Internet Information Server, начиная с версии 3.0, поддерживает Active Server Pages.
Рассмотрим последовательность функционирования ASP. Клиент запрашивает ASP-страницу на Web-сервере. Сервер принимает запрос и начинает его обрабатывать. По расширению файла (.asp) определяет, что данный файл содержит ASP-скрипт, и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется обычная HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.
Внешне ASP функционирует также, как CGI. Аналогичным образом передаются параметры (формат-строки запроса) и осуществляется вывод результатов. Однако производительность ASP оказывается гораздо выше, т. к. при каждом запросе не происходит отдельной загрузки ASP-интерпретатора. Использование компонент ActiveX также значительно повышает производительность Web-сервера.
Описание синтаксиса
ASP-код, который нужно выполнить на сервере, размещается внутри специальных тегов . Так как данный код обрабатывается на сервере, он не доступен пользователю. Сам код может быть написан с использованием Visual Basic Scripting Edition (VBScript) или JScript (JavaScript). Технология ASP позволяет использовать и другие языки программирования. По сути, нужно говорить не о синтаксисе ASP, а о том языке, который используется для написания ASP-кода. Синтаксис VBScript намного проще других языков, поэтому новичку будет легко в нем разобраться.
Объекты и компоненты
VBScript не является полнофункциональным языком программирования и использования встроенных в него средств явно недостаточно. Поэтому в ASP-страницах используются специальные объекты и компоненты ActiveX.
Существует набор встроенных объектов, которые инициализируются и предоставляются ASP-скрипту автоматически при начале обработки. Эти объекты обеспечивают доступ к основным жизненно важным функциям:
- Объект Application позволяет создавать переменные, доступные всем пользователям Web-приложения.
- Объект Session позволяет сохранять данные, связанные с отдельным пользователем.
- Объект Request предоставляет параметры CGI-запроса, отправленные методом POST 99или GET.
- Объект Response предоставляет методы для добавления информации, а также для формирования заголовков страницы ответа Web-сервера.
- Объект Server содержит множество различных методов, одним из которых является метод CreateObject, позволяющий создавать экземпляры компонент ActiveX.
В отличие от встроенных ASP-объектов, ASP-компоненты явно необходимо создавать в коде скрипта. Существует огромное количество ActiveX-компонент, которые можно использовать в ASP-страницах, причем большинство из них распространяются бесплатно. Более того, разработчик может сам создавать ActiveX-компоненты в любой среде программирования, поддерживающей COM-технологию, например, Visual C++ или Visual Basic.
Следует уделить особое внимание объектам ADO (ActiveX Data Objects), которые представляют собой мощные интегрированные средства для создания приложений для работы с БД. Компоненты ADO обеспечивают быстрый и удобный интерфейс к БД на самом высоком уровне, при этом сохраняется переносимость разрабатываемых приложений для работы с другими БД. Использование компонент ADO значительно упрощает работу программиста, ему остается лишь правильно составить SQL-запросы к БД и позаботиться о выводе результатов.
В рамках функционирования Web-приложения существует возможность создания обработчиков основных событий, таких как запуск и остановка Web-приложения, а также открытие и закрытие пользовательской сессии. Эти события описываются в специальном ASP-файле global.asa. Обработчики данных событий можно использовать для инициализации объектов или установки значений глобальных переменных.
Средства разработки
Создавать ASP-страницы можно в любом текстовом редакторе, но это далеко не всегда удобно. Помимо написания кода на VBScript, необходимо осуществлять его отладку, что возможно только на функционирующем Web-сервере (IIS) и при наличии специальных средств.
Microsoft Visual InterDev 6.0 (входящий в состав Microsoft Visual Studio) является одним из лучших средств, которое позволяет не только быстро и эффективно создавать ASP-код, но и осуществлять расширенную отладку кода. Основные особенности этого продукта:
- Просмотр списка используемых объектов, и возможность быстрого написания кода.
- Подсветка синтаксиса кода (VBScript и JScript).
- Автоматическое формирование содержимого global.asa.
- При запуске в режиме отладки InterDev автоматически настраивает Web-сервер (IIS) в нужный режим, а по окончании отладки восстанавливает настройки.
- Возможность установки точек прерывания (breakpoints).
- Просмотр значений переменных (watches) и списка вызванных процедур (call stack).
Существуют также и другие специализированные редакторы, позволяющие разрабатывать ASP-приложения, например, Home Site 4.5, Macromedia UltraDev 4.0 или ASP Express. Однако эти средства не полностью охватывают возможности Visual InterDev.
Новые возможности в IIS 5.0
Последняя версия Web-сервера Internet Information Server (IIS) 5.0 значительно усовершенствована, благодаря чему повышена надежность и производительность ASP-приложений. Встроенные объекты ASP в Windows 2000 обладают новыми методами, которые расширяют возможности разработчика.
Появились новые средства обработки ошибок. С помощью нового объекта AppError теперь можно получать сведения об ошибках, происходящих как на стадии выполнения, так и на стадии разбора страницы.
В новой версии ядра управления сценариями Script Engine из состава Windows 2000 появились новые мощные средства поддержки языков VBScript и JScript. В сценариях на VBScript теперь можно пользоваться средствами проверки и разбора сложных выражений, а также создавать классы.
Средства доступа к данным также претерпели значительные изменения теперь в составе ОС поставляется ядро MDAC 2.5, которое, в частности, обеспечивает интеграцию со средствами XML.
Поддержка других языков программирования
Наравне с Visual Basic Scripting Edition (VBScript), IIS поддерживает обработку JScript (JavaScript). Вы можете использовать все те же объекты, при этом меняется только синтаксис связующих конструкций.
Преимущество технологии ASP в том, что она позволяет использовать и другие языки программирования. Для их поддержки необходимо установить соответствующие модули Script Engine. Например, поддержку языка Perl (а точнее ActivePerl) можно осуществить с помощью модуля от компании ActiveState (http://www.activestate.com/). Также существуют модули для поддержки REXX и Python.
Существуют продукты сторонних компаний, поддерживающие технологию ASP на других платформах. Например, Chili!Soft ASP, компании Chili!Soft, Inc., (http://www.chilisoft.com/) обеспечивает поддержку ASP на множестве Web-серверов, таких как: Apache, Lotus, Netscape, OReilly, которые могут функционировать под управлением различных ОС.
Достоинства и недостатки
Язык VBScript, обычно используемый в ASP, имеет менее удобный синтаксис, чем другие языки, например язык PHP. Однако основной недостаток VBScript — неприемлемо снижающаяся безопасность клиента, а в связке с ActiveX — практически нулевая. Не является компенсацией этого и то, что производительность интерпретатора VBScript значительно выше, чем PHP.
JScript от Microsoft лишен этого недостатка, но имеет другой, более серьёзный — неприятную обработку типов данных OLE Automation, что приводит к скрытым, трудным в обнаружении ошибкам.
ASP может использовать очень довольно набор классов для работы с SQL базами данных — ADO, который примерно аналогичен Perl DBI и лучше, чем вызовы mysql_xxx в PHP. Однако технология ADO тоже устарела.
ASP поддерживает объекты Session и Application, с которыми в PHP/Apache традиционно есть огромные сложности, связанные с архитектурой процессов Apache 1.x (а она восходит к нелюбви к потокам в мире UNIX и использованию fork() вместо них везде, где возможно).
Однако, так как объект Session ныне считается совершенно не удовлетворяющим требованиям безопасности, и зачастую вместо него все его содержимое помещают в один огромный cookie, и передают туда-обратно между клиентом и сервером. Такое легко реализуемо в PHP, этим пользуются, например, phpBB и его коммерческий дериватив vBulletin.
Замена ASP
В настоящее время в связи с провалом проекта ASP, Microsoft проталкивает на рынок технологию ASP.NET, которая также не удовлетворяет требованиям безопасности клиентского компьютера.
НОВОСТИ ФОРУМА Рыцари теории эфира |
01.10.2020 — 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education -> [center][Youtube]69vJGqDENq4[/Youtube][/center] [center]14:36[/center] Osievskii Global News 29 сент. Отправлено 05:20, 01.10.2020 г.’ target=_top>Просвещение от Вячеслава Осиевского — Карим_Хайдаров. 30.09.2020 — 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education -> [center][Ok]376309070[/Ok][/center] [center]11:03[/center] Отправлено 12:51, 30.09.2020 г.’ target=_top>Просвещение от Дэйвида Дюка — Карим_Хайдаров. 30.09.2020 — 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education -> [center][Youtube]VVQv1EzDTtY[/Youtube][/center] [center]10:43[/center] |
интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/
[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога — это что, военный объект?
— Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.
[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]
Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html
Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html
[center][b]Сон разума народа России [/center]
[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]
Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html
Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html
[center][b]Сон разума народа России [/center]
Как сэкономить время и деньги при построении интерактивного
контента веб-сайта?
Сравнение технологии ASP с решениями Business Objects/Crystal Decisions
Введение
Всем компаниям требуется доступ к данным и их распределение как внутри, так и за пределами своей организации – среди сотрудников, поставщиков, существующих и потенциальных клиентов. С появлением Интернета возник новый способ распространения информации, и тут разработчики столкнулись с новыми задачами – как быстро передавать конечным пользователям информацию в удобном для них формате.
В этой статье показано, как веб-разработчики с помощью решений Business Objects/Crystal Decisions (далее — Crystal Decisions) могут передавать реляционные данные в Интернет более чем в 100 раз быстрее, чем при публикации информации с помощью отчётов, написанных на ASP. Построенные на стандартах XML, ADO, ActiveX, Visual Basic (VB) и Java Script, решения Crystal Decisions не только обеспечивают безопасность и масштабируемость, но и множество самых разнообразных функций, с помощью которых разработчики и профессионалы в информационных технологиях могут быстро передавать в Интернет информацию презентационного качества, и при этом не писать код.
Резюме
Многие разработчики знают о том, что Crystal Reports – это мировой стандарт представления реляционных данных в настольных компьютерах. Эти решения применимы не только на настольных компьютерах, но и в Интернете. Начиная с 7-ой версии, Crystal Reports имеет единый интерфейс конструирования для быстрого создания отчётов для Windows и Интернета. Созданные отчёты можно доставлять и контролировать с помощью Crystal Enterprise – надёжной платформы для работы с отчётами, анализа и передачи информации через Интернет. Продукт Crystal Decisions даёт разработчику среду, интерфейсы и инструменты, которые избавляют от необходимости писать для отчётов множество строк кода ASP. Не утруждая себя написанием кода, разработчики значительно быстрее могут компоновать профессиональные отчёты с помощью объектно-ориентированных интерфейсов конструктора.
В следующем примере приведён довольно простой отчёт о клиентах, который содержит следующее:
- 5 столбцов (два из них содержат гиперссылки, зависящие от контента)
- 1 поле для формулы
- заголовки столбцов
- данные о клиентах, отсортированные в алфавитном порядке по названиям компаний
- дополнительное форматирование с презентационным качеством
Отчёт (см. ниже) был создан за 1,5 минуты с помощью Crystal Reports. Затем всего за минуту он был опубликован в Интернете с помощью Crystal Enterprise как динамический отчёт, включающий расписание и возможности защиты. Те же действия, выполненные с использованием кода ASP, заняли у опытного разработчика 495 минут! Даже если не учитывать затраты времени на публикацию отчёта, разница получается впечатляющая – опытному программисту на ASP потребовалось потратить только на конструирование отчёта 210 минут.
Отчёт о клиентах, созданный с помощью Crystal Reports:
Отчёт о клиентах, созданный с помощью ASP:
Сравнение затрат времени при использовании ASP и Crystal
Ниже в таблице приведены затраты времени на каждый шаг процесса создания вышеупомянутого отчёта и его опубликование в Интернете с использованием кода ASP в одном случае и технологии Crystal Decisions – в другом.
Время на написание кода ASP | Время при использовании Crystal | Технология Crystal | |
Создание отчёта о клиентах— Подключение к базе данных- Выбор и размещение поля- Сортировка/группирование- Вставка адреса электронной почты- Ссылка на веб-сайт- Форматирование отчёта | 210 минут(3,5 часа) | 1,5 минуты | Crystal Reports(указать и щёлкнуть мышью в конструкторе) |
Загрузка страниц по запросу | 45 минут | 0 минут | Crystal Enterprise(автоматически) |
Добавление защиты | 240 минут(4 часа) | 1 минута | Crystal Enterprise (указать и щёлкнуть на консоли Crystal Management Console) |
Добавление функций расписания | Не включено | 0 минут | |
Обновление отчётов после обновления базы данных | Не включено | 0 минут | Crystal Enterprise |
Итого времени | 495 минут | 2,5 минуты |
В приведённой таблице не учтено время, затрачиваемое на сопровождение и обновление приложения.
Опубликование реляционных данных на веб-сайте должно быть лёгким
Опубликование реляционных данных на веб-сайте должно выполняться быстро, с минимумом кода и большим количеством разнообразных функций для конечного пользователя. Должны выполняться следующие условия:
- насыщенная информация с презентационным качеством и минимум кода;
- полная интеграция контента в веб-сайт с помощью гибкой настройки;
- полная интерактивность, позволяющую пользователю получать точную и нужную информацию путём просмотра и изменения существующих отчётов, планирования новых отчётов, использования параметризированных отчётов, экспорта в различные форматы.
Выбор правильного инструмента для максимального увеличения прибыли на инвестицию в веб-сайт
Для опубликования реляционных данных в Интернете существует большое разнообразие инструментов. Наиболее популярны отчёты с кодом ASP (такие инструменты как Macromedia Dreamweaver и Microsoft FrontPage.
Почему ASP?
Инструменты на основе кода ASP популярны по следующим причинам.
- Привычность. VB Script похож на Microsoft Visual Basic (VB) , поэтому разработчики знакомы с этим широко известным стандартом. Многие разработчики считают, что этим языком легче пользоваться, чем JSP, JavaBeans, PHP и так далее.
- Стандартность. Технология ASP содержит гибкие серверные компоненты, уже встроенные в продукты Microsoft, на которых установлен сервер IIS (Internet Information Server), с целью создания ASP-приложений.
- ASP-разработчиков проще найти. Разработчиков, знающих ASP, довольно много, поэтому сложностей с их поиском нет.
- Хорошая интеграция в другие продукты Microsoft. ASP, Internet Explorer, IIS и SQL-сервер хорошо взаимодействуют друг с другом.
- Возможность многократного использования. Разработчики могут сэкономить время, копируя и вставляя строки кода, ранее написанные для других веб-страниц, а также создавая универсальные компоненты, которые годятся для многих веб-страниц.
Почему Crystal?
Технология Crystal имеет все преимущества технологии ASP, но значительно быстрее и дешевле.
- Качество презентации, интерактивные отчёты. Интуитивно понятный интерфейс конструктора позволяет создать практически любой отчёт. Его можно превратить в интерактивные документы с развёрткой (переход по иерархии вниз), графиками, картами, оповещениями, параметрами, гиперссылками, возможностью вносить изменения и многими другими возможностями.
- Использование уже знакомых стандартов. Используя общеизвестные стандарты для веб-сайтов, в том числе DHTML, VB Script, JavaScript, COM и XML, технология Crystal даёт компаниям полный контроль над всеми аспектами создания контента, интеграции и функциональности системы. VB Script был использован при разработке Crystal Server Pages (CSP) – веб-страниц, которые может видеть конечный пользователь.
- Все возможности настройки. Мощные возможности настройки и полная поддержка стандартных языков создания сценариев (JavaScript и VBScript) позволяют разработчикам быстро строить нужные веб-приложения.
- Мощная система управления контентом. Для управления информационной инфраструктурой достаточно нескольких щелчков мыши.
- Практически отсутствует необходимость в написании кода. Предусмотрены почти все функции.
Максимизация отдачи от инвестиций в веб-сайты с помощью Crystal
В этом разделе мы покажем, что публикация данных в Интернете – это всего лишь небольшое звено процесса эффективной доставки информации конечным пользователям. Чтобы окупить средства, вложенные в публикацию отчётов на веб-сайте, следует рассмотреть вопросы, не связанные с созданием отчётов и их публикацией. Рассмотрим следующий сценарий.
Вас попросили передать для бухгалтерии на сайт интрасети данные о ключевых клиентах. Эти данные собраны с помощью приложения, которое вы написали несколько недель назад для обработки заказов на поставки. Всё, что вам нужно сделать теперь – написать несколько отчётов на языке ASP, чтобы клиент мог пользоваться данными в удобном для него виде. Всего вы написали пять отчётов, включая тот, который должен автоматически обновляться в конце каждого дня.
Этот отчёт, который должен обновляться по ночам, является списком клиентов, отсортированным по названиям компаний. Он содержит сведения о представителях компаний и гиперссылки на их адреса электронной почты и веб-сайты. Через неделю вы завершаете написание отчётов, затем передаёте их на сайт интрасети так, что доступ к ним имеет только бухгалтерия, и приступаете следующему проекту.
Через неделю отдел маркетинга и отдел сбыта прослышали об этих отчётах и захотели такие же, но с небольшими изменениями. Отдел сбыта попросил, чтобы в отчёте о клиентах были номера телефонов. Отдел маркетинга попросил включить в отчёт ежемесячные ведомости доходов клиентов, сгруппированные по регионам, а не по названиям компаний. Бухгалтерский отдел также сообщил, что один из 5 отчётов выполняется слишком долго, поэтому его лучше выполнять раз в неделю, а не ежедневно. Кроме того, из бухгалтерии сообщили, что из-за того, что сотрудники информационного отдела вчера что-то делали с серверами, отчёты были недоступны 5 часов, и бухгалтеры не имели доступа к данным. Поэтому они не смогли во время выполнить пару важных задач для своих аудиторов. В результате вам приходится отложить свой текущий проект по крайней мере на неделю, чтобы выполнить просьбы отделов. Кроме того, вам приходится доказывать директору, что необходимо купить более мощное оборудование, чтобы удовлетворить дополнительные потребности пользователей.
Подводная часть айсберга тоже важна
Создание отчётов – не статичный проект. Приведенный выше пример показывает, что различные отделы предприятия по-разному смотрят на одни и те же данные.
За последние годы мы видели, как заказчики создают ASP-отчёты для публикации реляционных данных. Первые шаги довольно просты, но дальше сложность непомерно разрастается из-за появления в системе новых пользователей, интеграции новой технологии, обновления, настройки и добавления отчётов в связи с растущими требованиями пользователей. Все эти вопросы ведения и управления изменениями разработчики и ИТ-специалисты должны предусмотреть, публикуя данные на сайте.
Ниже приведены два отчёта, отображающие данные, описанные в вышеупомянутом сценарии; один из этих отчётов сделан и опубликован по технологии Crystal, а другой – по технологии ASP. Первый отчёт создан с помощью Crystal Reports (издание Developer или Professional), а опубликован с помощью среды Crystal Enterprise. Эти два отчёта похожи, но…
Рис. 1. Отчёт о клиентах, созданный с помощью Crystal Reports
Рис. 2. Отчёт о клиентах, созданный с помощью ASP
То, что мы видим в отчёте, является лишь вершиной айсберга. Рассмотрим следующие вопросы проекта по созданию отчётов при использовании технологий ASP и Crystal. Та часть айсберга, которая скрыта под водой, может очень существенно повлиять на окупаемость ваших инвестиций.
- Презентационное качеств
- Содержимое отчёта и удобство подачи информации
- Параметры диапазона опций поставки контента
- Быстродействие системы
- Масштабируемость системы и постоянная доступность данных
- Надёжность инфраструктуры защиты данны
- Поддержка и рост системы по мере роста организации
Подключиться к базе данных нетрудно. Пользователю нужен динамический контент, представленный либо в статическом, либо в параметризованном виде. Отчёт нужно создать так, чтобы нужные данные извлекались быстро и просто.
Далее сравниваются решения указанных вопросов с помощью Crystal и ASP, а также поясняется важность этих вопросов для успеха проекта по созданию и опубликованию отчётов.
1. Вопросы вывода отчёта
Представление отчёта
Отчёт со сводными, сильно уплотнёнными данными может существенно помочь пользователю лучше понять бизнес-процесс. Форматирование презентационного качества с использованием различных шрифтов, линий, рисунков и макетов с произвольной разметкой может помочь пользователю лучше и профессиональнее работать с информацией. В Crystal такая гибкость достигается всего лишь нажатием кнопки мастера. При написании кода ASP даже с помощью таких конструкторов как Dreamweaver и FrontPage, для добавления упомянутых функций требуются часы.
С помощью Crystal Reports можно легко представить информацию в той форме, к которой привыкли пользователи, какой бы она ни была – матричный отчет, счёт-фактура, заказ и так далее. Объектно-ориентированный конструктор поддерживает создание практически любых отчётов, любые стили и форматы. А при использовании ASP вы ограничены только выводом на основе таблиц. Произвольная компоновка в Crystal даёт возможность быстро извлекать нужную конечному пользователю информацию, и форматировать ее с целью выделения наиболее важных данных.
Удобство пользования отчётами и возможности доставки контента
Возможность объединять данные в группы, уплотнять, сортировать и фильтровать их, критически важна для опубликования данных в виде, удобном для конечных пользователей. Для увеличения ценности отчёта для конечных пользователей требуется также возможность добавлять бизнес-логику, например, вычисления, выделение исключений и параметров; требуются средства навигации: поиск, групповые деревья и переход на нижние уровни иерархии; кроме того, необходимы средства визуализации для создания графиков и карт.
При использовании ASP все эти функции отчёта приходится писать вручную. Во многих отношениях «комплексный отчёт» с упомянутыми функциями становится настоящим приложением. А при использовании Crystal Reports не нужно заботиться о написании кода для встраивания нужных функций – код создаётся автоматически всего несколькими щелчками мыши. Правда, один раз написанный код ASP можно многократно использовать для других отчётов, но если придётся вести более 10 отчётов, то усилий потребуется слишком много. Даже простое планирование выполнения отчёта потребует создание отдельного приложения.
Новаторская технология Crystal для создания, персонализации и настройки отчётов через сеть встроена в продукт и доступна через любой веб-браузер. Она предоставляет следующие возможности.
- Параметризованные отчёты для усложнённой сортировки, фильтрации и сведения данных, создания карт и графиков.
- Система планирования выполнения отчётов в заданные промежутки времени или регулярно с заданным периодом.
- Встроенные средства навигации, в том числе оглавление, гиперссылки, детализация по иерархии, поиск.
- Экспорт в файлы форматов Acrobat (PDF), Microsoft Excel, Word (RTF) и собственный формат Crystal Reports.
Разделение создания отчёта от создания приложения
Тесная интеграция между отчётами ASP и приложениями также потребляет много ресурсов для контроля качества. Во многих случаев код, использованный в приложении ASP, используется и в отчёте. Любое изменение кода отчёта или приложения, даже одной строки, требует нового тестирования приложения перед тем, как предоставить его пользователям. А поскольку отчёты обычно не являются статичными проектами, потому что потребности конечных пользователей изменяются, то проблема ведения изменений приобретает ещё большее значение.
Crystal разделяет отчёты и приложения, поэтому изменение отчёта никак не влияет на приложение, и наоборот – изменение приложения не влияет на отчёт. Права на внесение изменение, планирование, добавление новых отчётов, переформатирование… Crystal выполняет эти функции универсально, поэтому разработчикам и ИТ-специалистам не приходится беспокоиться о том, что они могут повредить код при изменении отчётов и приложений. Новый репозитарий Crystal Decisions использует единое место для обмена, обновления и управления объектами всех отчётов. Например, десять отчётов могут иметь общий текстовый объект, хранящийся в репозитарии. Если необходимо внести изменение, разработчик может изменить объект в репозитарии, после чего изменение автоматически распространяется на все отчёты, содержащие указанный объект.
Ещё одно преимущество отделения разработки отчётов от разработки приложений – разработчик имеет возможность передать конструирование контента другому лицу.
2. Вопросы развёртывания и управления
После опубликования данных для отчётов могут возникнуть другие проблемы. Кто обладает правом на эту информацию? Что пользователи могут с ней делать? Будет ли обновляться отчет при обновлении базы данных? Легко ли добавлять новых пользователей и изменять их права? Долговременный успех проекта по созданию и опубликованию отчётов зависит не только от полезности отчётов и удобством их использования конечными пользователями, но и от вашей способности сопровождать отчёты с использованием существующей у вас ИТ-инфраструктуры.
Далее сравниваются особенности развёртывания и сопровождения отчётов с помощью Crystal и ASP, а также поясняется важность этих вопросов для успеха всего проекта по созданию и опубликованию отчётов.
Быстродействие
Веб-приложение должно быстро реагировать на действия конечных пользователей. Обычно при поиске чем меньше требуемых данных найдено в базе данных, тем меньше времени требуется на обработку результатов запроса, и тем быстрее приложение выдаёт информацию конечным пользователям.
Технология ASP не предусматривает кэширование данных на сервере. Она использует для кэширования локальный браузер пользователя, поэтому, если вы не купите и не установите дополнительное программное обеспечение или прокси-сервер, ASP-отчёты всегда будут обращаться к базе данных, в результате чего время реакции увеличивается, особенно в случае больших отчётов.
Crystal содержит серверный компонент, специально выделенный для кэширования отчётов. Этот серверный компонент может быть помещён на отдельный компьютер или несколько компьютеров, чтобы ускорить доставку часто выполняемых отчётов.
Crystal также содержит технологию обработки отчётов с загрузкой страниц отчёта по запросу. При этом каждый отчёт разбивается на страницы, и браузеру отправляются только запрошенные страницы, а не весь отчёт. Технология загрузки страниц по запросу также поддерживает общие задания: отчёты кэшируются, благодаря чему отдельные страницы отчётов могут отправляться различным пользователям без обращения к базе данных. Эта новаторская технология распределяет обработку отчётов, минимизируя количество обращений к базе данных, благодаря чему:
- ускоряется реакция системы на действия конечных пользователей, что повышает уровень удовлетворенности пользователей от работы с системой,
- снижается количество запросов к базе данных, снижается объем обмена данными, нагрузка на компьютеры, не требуются затраты на более быстродействующую базу данных.
Планирование выполнения отчётов в те промежутки времени, когда нагрузка на систему снижается, и совместное использование отчётов также очень важны для повышения эффективности.
Масштабируемость и доступность
Если вы опубликуете в Интернете ценную информацию, к ней будет обращаться всё больше и больше людей. При этом возникнут две проблемы: возможность одновременного доступа к информации возрастающему количеству пользователей и постоянная доступность этой информации.
Разработчики, которые пишут отчёты на языке ASP, могут быть ограничены в масштабируемости, поскольку они всегда вынуждены использовать IIS. Чтобы получать информацию могло одновременно большое количество пользователей, разработчики могут повысить производительность своих ASP-приложений либо с помощью программного обеспечения, либо оборудования, но оба варианта имеют недостатки. Для распределения нагрузки по массиву (ферме) веб-серверов путем установки дополнительного оборудования требуются дорогостоящие ИТ-специалисты с сертификатами компании Cisco, а эти специалисты малочисленны и обычно постоянно заняты. Если же идти по пути установки дополнительного программного обеспечения, например, сервера MTS (Microsoft Transaction Server), который содержится в IIS, то при этом обычно необходима дополнительная работа по преобразованию всех сценариев в библиотеки DLL, которые должны стать компонентами MTS.
В основе Crystal лежит архитектура распределённых компонентов. Это означает, что отдельные компоненты системы могут быть «развязаны» (обработка плановых отчётов, управление системой, кэширование, обработка отчётов в реальном времени, доставки веб-данных) и распределены по множеству компьютеров. Благодаря этому увеличивается количество пользователей, которые могут иметь одновременный доступ к веб-сайту, повышается эффективность использования оборудования, быстрый рост возможностей системы, причём переписывать отчёты не требуется.
Crystal также распределяет нагрузку между всеми функциями управления системой и обработки отчётов. Кроме того, Crystal поддерживает кластеризацию и переключение ресурсов при сбое на уровне управления системой. Это значит, что к кластеру можно добавить несколько компьютеров, чтобы уменьшить время отклика и более эффективно распределять нагрузку, вызванную обращениями пользователей. Если какой-либо компьютер из кластера выйдет из строя, остальные компьютеры кластера автоматически возьмут на себя его функции, и нормальная работа кластера продолжится.
Безопасность
Когда речь идёт об отчётах, главные вопросы безопасности – кто имеет право просматривать отчёты и выполняемые ими операции. Может ли каждый пользователь планировать отчёты, просматривать их по запросу, вводить параметры отчётов, просматривать экземпляры отчёта за прошлые периоды и так далее? Все эти вопросы должны быть учтены в коде ASP каждого отчёта. И даже с учётом того, что некоторые компоненты кода ASP отчётов можно использовать многократно, контроль качества требует слишком много затрат времени.
Интерфейс Crystal позволяет вести функции защиты просто и удобно – всего лишь несколькими щелчками мыши. Все отчёты (объекты отчётов) хранятся в центральном репозитарии, благодаря чему управление функциями защиты отдельных объектов и папок ведётся просто нажатиями кнопки мыши. Кроме гибкости модели отдельных пользователей и групп пользователей, Crystal Enterprise поддерживает интеграцию с системами безопасности других производителей, в том числе LDAP и NT. Благодаря этому можно использовать существующую у вас инфраструктуру безопасности, чтобы ускорить развёртывание и администрирование.
Долгосрочная поддержка
Изменяющиеся потребности в отчётах. Как уже было показано в примере, в котором разработчик создал пять отчётов для бухгалтерии, требования к отчётам постоянно изменяются в различных отделах предприятия. Возможность вести и планировать обновления в системе отчётов критически важны при планировании ресурсов. Когда разработчик вносит изменения в код ASP, ему необходимо проанализировать, как эти изменения повлияют на остальные приложения, и протестировать код, чтобы убедиться в том, что отчёт или приложения по-прежнему работают без ошибок. Как правило, при внесении изменений требуются значительные трудозатраты на вопросы «подводной части айсберга», такие как масштабируемость, безопасность, которые при использовании Crystal решаются автоматически.
Использование результатов предыдущей работы. Более четырнадцати миллионов проданных лицензий, 300 OEM-партнёров показывают, что технология Crystal стала мировым стандартом в работе с отчётами. Crystal Reports применяется на многих передовых предприятиях, и наверняка вы сможете найти на своём предприятии хоть одного специалиста, знакомого с этими продуктами. Поэтому у вас есть возможность воспользоваться услугами своих специалистов, а не отправлять кого-нибудь на курсы по изучению ASP.
Техническая поддержка. Все продукты Crystal обладают возможностью доступа к различным уровням технической поддержки от самообслуживания до элитных персональных услуг, которые осуществляются круглосуточно (24 часа в сутки, 7 дней в неделю). Какой уровень поддержки может обеспечить ваш ASP-разработчик?
Глобальное сообщество партнёров. Благодаря учебным курсам с выдачей сертификатов, консультациям, услугам по написанию отчётов, всемирному каналу для партнёров и книгам сторонних издательств вы всегда можете найти нужные инструменты и ресурсы, которые позволят вам и вашим конечным пользователям извлечь максимум из ваших инвестиций в систему отчётов.
Поддержка будущих технологий. Crystal Decisions интегрирует в свои продукты новейшие веб-технологии, благодаря которым веб-контент предоставляет пользователям, разработчикам и администраторам максимальную эффективность и окупаемость инвестиций. Например, поскольку язык XML по-прежнему играет важную роль в опубликовании информации в сети, Crystal Decisions продолжат интегрировать в свои продукты последние достижения в области XML. При этом Crystal Decisions остаётся на передовых позициях во всех областях, от новых драйверов до Report Web Services – нового слова в технологии XML.
Краткий обзор вопросов, касающихся «подводной части айсберга», приведён в приложении № 3
Увеличение производительности веб-разработок в 180 раз с помощью Crystal
Сравним два отчёта, приведенных на рис. 1 и 2. Оба они представляют одну и ту же информацию, но один из них требует на создание и публикацию в сети существенно меньше времени.
- Рис. 1. На создание и опубликование этого отчёта с помощью продуктов Crystal требуется 2,5 минуты. Обзор действий по созданию и публикации этого отчёта с помощью Crystal содержится в приложении 1.
- Рис. 2. На создание этого отчёта с помощью кода ASP требуется 450 минут (7,5 часов), причём здесь не учтено время на опубликование и планирование отчёта. Обзор действий по созданию и публикации этого отчёта с помощью ASP содержится в приложении 2.
Расчёт окупаемости
- 450 минут (ASP) – 2,5 минут (Crystal)
- На 99% быстрее при использовании Crystal!
- 450/2,5 = в 180 раз быстрее при использовании Crystal!
Выводы
- Продукт Crystal Reports позволяет существенно быстрее публиковать данные на веб-сайте с качеством презентации с использованием легко управляемой веб-инфраструктуры под названием Crystal Enterprise.
- С помощью технологии Crystal можно упростить весь процесс создания и опубликования отчётов. Разработчики могут сосредоточиться на разработке своих приложений, предоставив написание отчётов другим специалистам, а продукты Crystal обеспечат согласованность всех тех вопросов, которые раньше замедляли работу.
- Кроме того, с помощью Crystal разработчики имеют доступ к полной модели COM (модель компонентных объектов), благодаря чему имеют возможность интегрировать свои отчёты в приложения нужным им способом.
Как найти дополнительную информацию
Дополнительная информация о Crystal Reports, Crystal Enterprise и семействе продуктов Crystal Decisions находится на следующих сайтах.
Приложение 1: Создание списка представителей клиентов с помощью Crystal Reports
Резюме
Данный пример был использован для определения времени, требуемого на создание отчёта с помощью Crystal Reports, опубликование его с помощью Crystal Enterprise и включение модели безопасности. Всего потребовалось 2,5 минуты. Этот пример был построен с помощью Crystal Reports Developer Edition и Crystal Enterprise Professional Edition. Вместо Developer Edition можно использовать Crystal Reports Advanced Edition.
Создание отчёта
Затраченное время: 1,5 минуты
Подключение к базе данных для получения доступа к данным
- Укажите на учебную базу данных Xtreme, выберите таблицу Customers (Клиенты).
- Заполните следующие поля: название компании-клиента, имя представителя, его фамилия, адрес электронной почты, веб-сайт.
- Вставьте имя и фамилию в текстовые поля, чтобы имя клиента было представлено как один объект.
- Сформатируйте текст так, чтобы он отображался шрифтом Arial Narrow размера 9.
Сортировка клиентов в алфавитном порядке с буквой в качестве заголовка группы клиентов
- В меню Insert (Вставка) выберите пункт Field Object (Объект поле). Появится диалоговое окно Field Explorer (Обозреватель полей).
- Выберите Formula Fields (Поля с формулами), затем New (Создать).
- В диалоговом окне Formula Name (Имя формулы) введите имя, которое хотите присвоить формуле, например, «Первая буква». Нажмите кнопку OK. Появится редактор формул (Formula Editor).
- В верхнем правом углу в раскрывающемся списке выберите пункт Crystal Syntax (Синтаксис Crystal). В поле Formula (Формула) ведите следующую формулу: <Клиент.Имя клиента>[1]. Нажмите кнопки Save (Сохранить) и Close (Закрыть). Имя указанной формулы появится в папке Field Objects.
- В меню Insert (Вставка) выберите пункт Group (Группировка). Появится диалоговое окно Insert Group (Вставка группировки). Выберите в раскрывающемся списке созданное поле с формулой в качестве поля, по которому будут группироваться данные. Во втором раскрывающемся списке выберите порядок сортировки. Нажмите кнопку OK.
- Теперь данные отчёта будут группироваться по первой букве названия компании.
Ввод адреса электронной почты, соответствующего имени клиента
- Щелкните правой кнопкой мыши по полю с именем клиента, выберите команду форматирования текста, затем перейдите на вкладку гиперссылки.
- В разделе типа гиперссылки выберите адрес электронной почты.
- Установите флажок «This Field contains an email address» (Это поле содержит адрес электронной почты).
- Перейдите на вкладку общих параметров, вызовите редактор формул. Введите <Клиент.Адрес электронной почты>.
- Перейдите на вкладку шрифта, выберите синий цвет ссылки и её подчёркивание.
Ввод ссылки на веб-сайт клиента
- Щелкните правой кнопкой мыши на поле веб-сайта клиента, выберите форматирование поля.
- Перейдите на вкладку гиперссылки, выберите текущее значение поля.
- Перейдите на вкладку Common (Общие), вызовите редактор формул, введите <Клиент.Веб-сайт>.
- Перейдите на вкладку шрифта, выберите синий цвет ссылки и её подчёркивание.
Форматирование с презентационным качеством
- Добавьте в заголовке страницы эмблему компании.
- Добавьте название (Список представителей клиентов), выберите жирный шрифт с размером 16.
- В разделе updated (обновление) добавьте поле обновления данных. Затем включите в текстовое окно поле Data date (Дата данных). Установите шрифт размера 8, курсив.
- В нижней части страницы (в её нижнем колонтитуле) добавьте синее поле.
Примечание: навигация генерируется автоматически – групповые деревья (оглавление, указатель), средство поиска и так далее.
Опубликование в сети
Выберите команду File (Файл), Save As (Сохранить как), затем выберите папку Crystal Enterprise.
Войдите в систему и выберите папку, в которой нужно сохранить отчёт.
Браузеры
Шесть просмотрщиков отчётов Crystal автоматически определяют тип браузера и представляют отчёты презентационного качества пользователям браузеров Internet Explorer и Netscape.
Экспорт
Crystal Reports позволяет пользователям автоматически экспортировать данные в файлы более 30 форматов, включая PDF, RTF, Excel и Word.
Печать
Возможна печать из любого браузера.
Планирование и безопасность
Затраченное время: 1 минута
Расписание
Администратор с помощью консоли Management Console продукта Crystal Enterprise может запланировать выполнение отчёта по ночам, чтобы днём пользователи могли просматривать в отчёте самые свежие данные. Кроме того, возможностью планировать автоматическое выполнение отчётов можно наделить конечных пользователей – они будут делать это через свои браузеры.
Безопасность
Защиту можно настроить так, чтобы просматривать отчёт могла только определенная группа. Такой группе можно предоставить все права, в том числе право планировать выполнение отчёта.
Масштабируемость
- По умолчанию разрешено одновременное выполнение не более 20 экземпляров данного отчёта в папке. Администратор может в любой момент войти в консоль управления и изменить этот параметр.
- Загрузка страниц отчёта по запросу генерируется автоматически.
Приложение 2: Обзор действий по созданию отчётов с помощью ASP и Crystal
Данный пример был придуман для определения времени, требуемого на создание отчёта с теми же функциями, которыми обладает отчёт, созданный с помощью Crystal Reports, и на опубликование созданного отчёта в сети с заданной моделью безопасности.
Резюме
Опытный программист на ASP с помощью текстового редактора за полный рабочий день (7,5 часов) написал отчёт, подобный тому, который был создан и опубликован с помощью Crystal Reports и Crystal Enterprise за 2,5 минуты.
Создание отчёта с помощью ASP
Затраченное время: 3 часа
Страница, разработанная для данного примера, содержит 143 строки кода ASP; она устанавливает связь с базой данных и отправляет в неё запросы с помощью ADO.
Подключение к базе данных для доступа к данным
- Укажите на базу данных Xtreme.
- Запустите запрос и вернитесь к нужным записям.
- В базу данных с помощью ADO был отправлен запрос, в результате которого нужные данные были переданы из базы данных в таблицу. Заметим, что при работе с таблицами иногда встречаются проблемы с форматированием данных.
- Данные были отформатированы с помощью функции FormatDateTime языка vbScript.
Сортировка клиентов в алфавитном порядке с буквой в качестве заголовка группы клиентов
- Удалите первую букву и сохраните ее во временной переменной.
- Сравните первую букву значения поля с упомянутой временной переменной. Если они совпадают, отобразите значение. Если не совпадают, то будет отображена первая буква и первая запись.
Ввод адреса электронной почты, соответствующего имени клиента
- Проверьте поля, предназначены ли они для адресов электронной почты. Поле для адреса электронной почты должно быть сцеплено с тегом «mailto:».
- Поле для адреса веб-сайта должно быть сцеплено с тегом «href».
Форматирование с презентационным качеством
- Разработчик может пользоваться Microsoft FrontPage, Macromedia Dreamweaver или другим инструментом графического дизайна. В данном примере был использован обычный текстовый редактор.
- В данном примере размеры таблиц устанавливались динамически, чтобы упростить перенос кода между различными наборами записей. Из-за этого размеры могли зависеть от размеров полей. Поэтому вид у такого отчёта был не слишком привлекательным.
Добавление защиты
Затраченное время: 4 часа
Действия по добавлению защиты
- Чтобы установить нужный уровень защита веб-сайта, использовалась модель безопасности Base64.
- С целью генерирования паролей, приложение VB преобразовывало знаки ASCII имени и пароля пользователя в двоичные разряды. Затем всё объединялось в одну длинную строку, и данные разбивались на 6-разрядные куски. Каждый из 6 разрядов преобразовывался в эквивалентный знак Base64.
Добавление масштабируемости
Затраченное время: 45 минут
- В данном примере загрузка страниц по запросу действует только последовательно. Считается количество отправляемых на страницу полей, и когда оно достигает 70, счётчик обнуляется для подсчёта полей другой страницы.
- Набор записей должен храниться в переменной сеанса, из-за этого нагрузка на веб-сервер значительно возрастает. Если набор записей содержит 10 000 записей, и доступ получат 100 пользователей, то система очень быстро исчерпает ресурсы сервера.
Дополнительные параметры
Затраченное время: для данного примера не выполнено
Браузеры
Данный пример построен для выполнения с использованием Internet Explorer версии 5.0 или более поздней. Отчёт выглядит хорошо при использовании Internet Explorer версии 5.0 или более поздней. При использовании браузера Netscape таблицы выглядят несколько иначе. Это можно исправить путём изменения кода, что может увеличить время на разработку приложения.
Экспорт
Средства пакета Office не могли быть использованы для экспорта в файл формата Excel или Doc с дальнейшим экспортов в PDF. В данном примере эти функции не использовались из-за возможных осложнений с лицензированием.
Печать
Поскольку информация выводилась только в формате HTML, отчёт нужно было печатать с помощью кнопки «Печать» браузера, а при этом распечатывается сразу вся страница.
Приложение 3: Обзор подводной части айсберга
Преимущество | ASP | Crystal | |
Бизнес-логика | Создание важных сводных данных, которых может не быть в базе данных. | Требуется написание кода. | Несколько щелчков мыши в режиме конструктора. |
Навигация по отчёту | Быстрый переход к нужным сведениям. | Может быть быстро интегрирована с помощью Dreamweaver, FrontPage и других подобных продуктов. | Оглавление/групповые деревья и функции поиска генерируются/доступны автоматически. |
Обновление данных в отчёте | Любой пользователь имеет доступ к свежей информации. | Достигается выполнением другого запроса к базе данных. | Включается автоматически на основе прав доступа. |
Форматирование | Построение отчёта с требуемым форматированием с целью создания удобочитаемых документов. | Для создания требуемых отчётов требуется написание кода. Для создания отчёта с большим объёмом форматирования нужно много времени. | Специалисты создают практически любые отчёты с любой разметкой. |
Параметры | Опытные пользователи могут интерактивно создавать нужный им контент с помощью параметров отчёта. | Требуется написание кода. Минут 20 — 30 работы, затем код можно использовать в других отчётах. | Несколько щелчков мыши в режиме конструктора. |
Планирование | Обработка больших отчётов в периоды наименьшей нагрузки на сервер с целью своевременного обновления данных отчёта. | Для планирования нужно создать отдельное приложение. | Достаточно всего несколько щелчков мыши на консоли управления, которые также дают пользователю право на планирование. |
Экспорт | Отправка динамического контента в файл другого формата. | Требуется написание кода. | Экспорт в файлы более 30 форматов, включая PDF, DOC, XLS, RTF, XML. |
Безопасность | Возможность указывать, кто имеет право на просмотр информации, а также разрешать или запрещать действия с информацией. | Написание кода вручную для каждой группы, каждого члена группы, каждой роли. | Включено в Crystal Enterprise. Проверка подлинности с помощью LDAP/NT, поддержка единого входа. |
Распределение нагрузки | Максимальная эффективность обработки отчётов. | Требуется программное обеспечение других производителей. | Включено в Crystal Enterprise Professional. |
Кэширование/страницы по запросу | Уменьшение времени отклика, уменьшение количества обращений к базе данных. | Для кэширования используется локальный кэш. Для уменьшения количества обращений к базе данных требуется прокси-сервер. | Доступно автоматически. |
Кластеризация, переключение ресурсов при сбое | Информация отчёта всегда доступна. | Требуется продукт других производителей. | Включено в Crystal Enterprise Professional. |
Поддержка нескольких процессоров | Повышается скорость обработки отчётов. | В случае использования ASP требуется IIS, выполняется только на одном сервере. | Включено в Crystal Enterprise Professional. |
Управление изменениями | Изменения вносятся в отчёты и инфраструктуру легко. | После любого изменения кода или приложения необходимо выполнить тестирование заново. | Приложения отделены от отчётов, изменения легко интегрируются. |
Техническая поддержка | Долгосрочная поддержка при росте потребностей в работе с информацией. | Легко ли найти незанятого ASP-разработчика? | Есть пакеты с обновлениями. |
Интеграция будущих технологий | Конкурентное преимущество | После любого изменения кода или приложения необходимо выполнить тестирование заново. | Переход к новой версии программного обеспечения. Выполняемый компанией Crystal процесс контроля качества помогает легко перейти на новую версию. |
Приложение 4: Сравнение затрат времени при использовании Crystal и ASP
Время на написание кода ASP | Время при использовании Crystal | Технология Crystal | |
Создание отчёта о клиентах- Подключение к базе данных- Выбор и размещение поля- Сортировка/группирование- Вставка адреса электронной почты- Ссылка на веб-сайт- Форматирование отчёта | 210 минут(3,5 часа) | 1,5 минуты | Crystal Reports (указать и щёлкнуть мышью в конструкторе) |
Загрузка страниц по запросу | 45 минут | 0 минут | Crystal Enterprise (автоматически) |
Добавление защиты | 240 минут(4 часа) | 1 минута | Crystal Enterprise (указать и щёлкнуть на консоли Crystal Management Console) |
Добавление функций расписания | Не включено | 0 минут | Crystal Enterprise |
За дополнительной информацией обращайтесь в компанию Interface Ltd.
Asp быстродействие доступа к данным
Обновлен: Ноябрь 2007
Производительность (быстродействие) может быть ключевым фактором успеха веб-узла или проекта. В этом разделе рассматриваются способы повышения производительности узла, а также приводятся ссылки на документацию с практическими рекомендациями по данному вопросу.
Ниже приведены ссылки на ресурсы на веб-узле корпорации Майкрософт, содержащие общие рекомендации по повышению производительности веб-узлов ASP.NET Web.
В этом разделе рассматриваются приемы, которые можно использовать для максимизации производительности веб-приложений ASP.NET. Рекомендации делятся на следующие разделы:
Обработка серверных и страничных элементов управления
Следующие рекомендации касаются эффективных методов работы с элементами управления и страницами ASP.NET.
Избегайте ненужного обмена данными с сервером В некоторых ситуациях для выполнения тех или иных задач в коде обозревателя можно использовать возможности ASP.NET AJAX и частичную отрисовку страниц, обходясь без полной обратной передачи. Например, с помощью ASP.NET AJAX можно проверять вводимые пользователем данные в обозревателе, прежде чем отправлять их на сервер. Дополнительные сведения см. в разделах Общие сведения о ASP.NET AJAX и Общие сведения о частичной отрисовке страниц .
В большинстве случаев при отсутствии необходимости передачи информации на сервер для проверки или записи в хранилище данных улучшить производительность страницы (а следовательно, и ощущения пользователей от работы с ней) можно путем устранения циклов передачи данных между сервером и приложением.
При разработке пользовательских серверных элементов управления следует рассмотреть возможность реализации некоторой их функциональности с помощью клиентского кода. Это может значительно снизить количество обращений к веб-серверу. Дополнительные сведения см. в разделах Разработка пользовательских серверных элементов управления ASP.NET и Создание пользовательского клиента сценария с помощью библиотеки Microsoft AJAX .
Используйте свойство IsPostBack объекта Page во избежание лишней обработки Следует избегать выполнения кода при каждой обратной передаче в случаях, когда выполнять его на самом деле необходимо только при первом запросе страницы. Проверка свойства IsPostBack позволяет выполнять код в зависимости от того, была ли страница создана в ответ на событие серверного элемента управления.
Не отключайте буферизацию без необходимости Отключение буферизации веб-страниц ASP.NET значительно снижает производительность. Дополнительные сведения см. в описании свойства Buffer .
Используйте метод Transfer объекта Server или межстраничную запись данных для перенаправления между страницами ASP.NET в пределах одного приложения . Дополнительные сведения см. в разделе Перенаправление пользователей на другую страницу .
Управление состоянием
Следующие рекомендации касаются способов эффективного управления состоянием.
Сохраняйте состояние просмотра серверного элемента управления только в случае необходимости Состояние просмотра позволяет серверным элементам управления заполнять значения свойств в ходе цикла передачи без написания дополнительного кода. Эта функция, однако, влияет на производительность и размер страницы, так как состояние просмотра серверных элементов управления передается серверу и возвращается с него в скрытом поле формы. Если серверный элемент управления привязывается к данным на каждом круговом пути, пользы от сохраненного состояния просмотра не будет, поскольку значения элемента управления заменяются новыми значениями во время выполнения привязки к данным. В этом случае отключение состояния просмотра позволяет сэкономить время обработки и сократить размер страницы.
По умолчанию состояние просмотра включено для всех серверных элементов управления. Чтобы отключить его для определенного элемента управления, установите для свойства EnableViewState элемента управления значение false , как показано в следующем примере.
Отключить состояние просмотра также можно для страницы, используя для этого директиву @ Page, как показано в следующем примере.
Это рекомендуется делать в случаях, если страница не передает данные на сервер.
Примечание. | |||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание. | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание о безопасности. | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Примечание. | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Рисунок 1. Архитектура ODBC. |
Можно также добавить драйвер базы данных, чтобы приложение могло работать с базой данных по выбору пользователя. Как показано на Рисунке 1, менеджер драйверов является промежуточным звеном между приложением и базами данных. Интерфейс ODBC содержит набор функций, который управляет каждым инструментом базы данных. Если приложению нужно сменить используемую базу, разработчик просто заменяет один драйвер другим, и приложение может работать как обычно, без необходимости модификации кода программы.
DAO и RDO
Рисунок 2. Использование DAO для доступа к базе данных. |
ODBC использует низкоуровневый интерфейс, поэтому программисты на С и С++ реально задействуют все преимущества технологии ODBC. Программисты на Visual Basic (VB) не имеют простого доступа к интерфейсу ODBC. До появления VB 6.0 разработчики применяли высокоуровневый доступ к данным. На Рисунке 2 показано, как программисты VB используют технологию Data Access Object (DAO) для доступа к данным.
Рисунок 3. Использование RDO для доступа к базе данных. |
DAO базируется на технологии баз данных Microsoft Jet — процессоре баз данных, предназначенном для Microsoft Access. JET был первым объектно-ориентированным интерфейсом для связи с Access. Приложения, использующие Access, могут задействовать DAO для прямого доступа к данным. Поскольку DAO создавалась сразу же вслед за Access, применение этой технологии — самый быстрый и наиболее эффективный способ доступа к базам данных Access. DAO может работать и с отличными от Access базами данных, такими, как SQL Server и Oracle. DAO использует ODBC, но, поскольку метод DAO спроектирован специально для взаимодействия с JET, JET транслирует запросы между DAO и ODBC. Этот дополнительный шаг трансляции и является причиной замедления работы с базами данных, отличными от Access.
Рисунок 4. Архитектура ODBCDirect. |
Чтобы преодолеть это ограничение, разработчики Microsoft создали RDO. На Рисунке 3 показано, что RDO обращается к ODBС API напрямую, минуя JET. Затем было введено ODBCDirect, расширение DAO, которое отодвигает RDO на задний план. На Рисунке 4 показано, как DAO-приложение, используя ODBCDirect, обращается к базе данных, минуя проблемы, которые вызывает JET.
OLE DB
Спустя несколько лет ODBC становится стандартом для клиент-серверного доступа к базам данных. ODBC обеспечивает стандартный интерфейс, который требует функций SQL и оптимизирован под методы SQL. Однако что произойдет, если нужно будет обратиться к нереляционной базе данных, в которой не используются принципы SQL (например, Microsoft Exchange Server, хранилище которого не содержит данные реляционно).
Рассмотрим OLE DB. Технология OLE DB построена на ODBC и расширяет ее до компонентной архитектуры, которая обеспечивает высокоуровневый интерфейс доступа к данным. Эта архитектура предоставляет постоянный доступ к SQL-данным, не SQL-данным и неструктурированным источникам данных по локальным сетям и Internet. В действительности для доступа к SQL-данным OLE DB использует ODBC, потому что это самая подходящая архитектура для работы с SQL. На Рисунке 5 показано, что OLE DB состоит из трех компонентов: потребителя данных (например, приложения); поставщика (провайдера) данных, который содержит и предоставляет данные; служебного компонента, который обрабатывает и транспортирует данные (в частности, процессоры запросов, процессоры курсоров). OLE DB — это единый API, который обрабатывает как совместимые с SQL источники данных, так и несовместимые, такие, как почта и каталоги.
Рисунок 5. Компоненты OLE DB. |
OLE DB обеспечивает связывание для программистов на С и C++, а также программистов, использующих языки с С-подобными вызовами функций. Такие языки, как VB и VBScript, не поддерживают тип данных «указатель» (адресных переменных). Следовательно, они не могут использовать связывание в стиле С и прямое обращение к OLE DB.
Вероятно, для большей путаницы разработчики Microsoft ввели еще одну объектную модель доступа к данным: ADO. ADO работает с объектами DAO и RDO, а также поддерживает более простые модели, чем DAO и RDO (хотя с избыточной функциональностью, так что можно выполнить операцию несколькими способами). Объектная иерархия в ADO более однородная, чем в DAO. ADO содержит несколько встроенных объектов, которые упрощают доступ к данным из информационных хранилищ.
На Рисунке 6 показано несколько способов, с помощью которых приложение связывается с базой данных. Например, VB-программист может использовать ADO для соединения приложения с провайдером OLE DB. Если база данных не поддерживает OLE DB, приложение может задействовать ODBC. Программист на Visual C++ может применять ADO или соединяться напрямую через OLE DB.
Рисунок 6. Различие маршрутов приложений в ADO. |
Пример в ADO
Рассмотрим простой пример работы ADO. В Листинге 1 показано, как можно использовать типичный объект — набор строк (Recordset) — центральный объект в ADO. Объект Recordset представляет собой набор записей (таблицу) и поддерживает типы курсоров adOpenForwardOnly, adOpenKeyset, adOpenDynamic и adOpenStatic. Курсор может быть как на стороне сервера (по умолчанию), так и на стороне клиента.
Для доступа к записи ADO требуется просканировать набор строк последовательно. Для доступа к нескольким таблицам необходимо выполнить запрос на объединение JOIN, чтобы получить результат в виде набора строк. Хотя объект Recordset поддерживает доступ к данным без соединения с ними, ADO изначально был спроектирован для данных, с которыми установлено соединение. Такой метод доступа заставляет хранить важные ресурсы на стороне сервера. Вдобавок для передачи набора строк следует использовать метод упорядочивания, названный COM marshalling. COM marshalling — это процесс преобразования типов данных, который, естественно, занимает полезные ресурсы системы.
Начиная с ADO 2.1, Microsoft добавляет поддержку XML в объектную модель ADO, что позволяет хранить набор строк Recordset как XML-документ. Однако только при появлении ADO 2.5 ряд ограничений XML, который сохранялся в версии ADO 2.1 (например, жесткая иерархия объектов Recordset), был устранен. Хотя ADO может преобразовать документ XML в набор Recordset, он в состоянии читать только документы в собственной схеме, известной как Advanced Data TableGram (ADTG).
В поисках механизма доступа к несвязанным данным Microsoft расширяет ADO и вводит службу Remote Data Services (RDS). RDS создана после ADO и разрешает передачу объекта Recordset клиенту (например, в Web-браузер) при отсутствии активного соединения. Однако RDS, как и ADO, использует упорядочивание COM marshaling для передачи набора строк от сервера клиенту.
Эра .NET
Когда Microsoft начала разрабатывать .NET Framework, она имела хорошую возможность пересмотреть модель доступа к данным. Решив не продолжать разработку технологии ADO, специалисты Microsoft приступили к созданию новой структуры доступа к данным, при этом сохранив акроним. Microsoft разрабатывает ADO.NET на базе уже зарекомендовавшей себя объектной технологии ADO. Но ADO.NET ориентируется на три важные возможности, которые не поддерживаются ADO: поддержка модели доступа к несвязанным данным, что является ключевым элементом для работы в Web; поддержка тесной интеграции с XML; интеграция с .NET Framework (например, совместимость с базовой библиотекой классов типичной системы).
Архитектура ADO.NET. На Рисунке 7 представлена архитектура ADO.NET. Объект Recordset, который выполняет так много функций в ADO, здесь отсутствует. Вместо него в ADO.NET предусмотрено несколько особых объектов, выполняющих специфические задачи. В Таблице 1 описаны три из них: DataAdapter, DataReader и DataSet.
Рисунок 7. Архитектура ADO.NET. |
Поставщики данных .NET. Очень важный компонент ADO.NET, провайдер данных .NET, реализует интерфейсы ADO.NET. В частности, он реализует объект DataReader так, что его могут использовать и приложение, и объект DataSet.
Поставщик данных .NET состоит из четырех основных компонентов: Connection — для связи с источником данных; Command выполняет команды над источником данных; DataReader читает данные из источника данных в однонаправленном режиме «только чтение», и DataAdapter, который читает данные из источника данных и использует их для заполнения объекта DataSet.
Visual Studio .NET содержит два поставщика данных .NET. Поставщик данных SQL Server .NET обеспечивает связь с SQL Server 7.0 и более поздними версиями. Этот метод доступа наиболее эффективен для SQL Server 7.0 и выше, потому что поставщик данных SQL Server .NET связывается напрямую с SQL Server через протокол Tabular Data Stream (TDS). Поставщик данных OLE DB .NET необходим для соединения с отличными от SQL Server базами данных, такими, как Oracle или IBM DB2. Этот поставщик данных использует OLE DB для соответствующих баз данных.
Во время написания статьи разработчики Microsoft реализовали третий тип поставщика данных .NET — ODBC .NET Data Provider — Release Candidate Beta. Его можно получить на сайте Microsoft http://www.microsoft.com/data/ download_odbcnetrc.htm.
Рисунок 8. Различие маршрутов в ADO.NET. |
На Рисунке 8 показаны различные пути, по которым приложение может связываться с базой данных через ADO.NET. При выборе пути сначала определяется, какой поставщик данных .NET будет использоваться. Если это SQL Server 7.0 или более поздняя версия, то подключается поставщик данных SQL Server.NET. Если база данных SQL Server 6.5 или отличная от SQL Server (например, Oracle), понадобится поставщик данных OLE DB .NET. Заметим, что можно задействовать поставщик данных OLE DB .NET для баз данных SQL 7.0 и выше, но тогда потеряется выигрыш в производительности, который дает прямое подключение к SQL Server через протокол TDS. Однако в этом неспецифическом способе есть свой плюс — мобильность, т. е. можно менять базы данных без модификации кода.
Далее необходимо определить, какую задачу требуется выполнить. Если надо просто прочитать и отобразить данные из источника данных, объекта Data Reader вполне достаточно. Но если предстоит манипулировать данными (например, редактировать или удалять), нужно использовать объект Data Set. Хотя задействовать этот объект следует только в случае необходимости, потому что он работает медленнее, чем Data Reader (Data Set использует Data Reader для заполнения таблиц).
Пример на ADO.NET
Рассмотрим, как ADO.NET действует в Web-службе. В Листинге 2 показана Web-служба, которая возвращает объект Data Set. Код в Листинге 2 похож на код в Листинге 1. Web-служба в Листинге 2 отыскивает таблицу Authors в базе Pubs и представляет ее как Web-службу. Web-служба использует поставщик данных SQL Server .NET, как показано в следующей строке:
Сначала Web-служба устанавливает связь с базой данных SQL Server 2000:
Dim conn AS New SqlConnection(«server=localhost;
u >
Затем Web-служба, используя объект Command, выполняет запрос к базе данных:
Dim comm AS New SqlCommand(sql, conn)
Далее Web-служба с помощью объекта DataAdapter заполняет DataSet:
Заметим, что соединение закрывается, как только Dataset заполнен, в отличие от соединений в ADO, которые должны быть открыты, пока существует соединение через RecordSet. Результирующий DataSet возвращается как Web-служба. На Экране 1 показан участок DataSet, который получается после вызова новой Web-службы. DataSet с его схемой представлен в формате XML. Клиентское приложение может выбрать привязку к этому DataSet, используя компонент DataGrid. В Листинге 3 показан код, выполняющий данную привязку. На Экране 2 изображен результирующий DataSet, привязанный к элементу управления DataGrid в Web-приложении на ASP.NET, которое представит этот DataSet в более удобном виде. ASP.NET поддерживает много элементов управления, которые привязываются к DataSet автоматически.
Использование ADO в приложениях .NET
Хотя в ADO.NET реализовано много новых возможностей, можно продолжать применять ADO. При разработке нового приложения на .NET следует отдать предпочтение ADO.NET. Но если процесс разработки продолжается, можно оставить ADO в старых проектах и использовать ADO.NET в новых. .NET Framework позволяет задействовать ADO в .NET приложениях через COM, который поддерживает обратную совместимость без необходимости модифицировать ADO. Нужно импортировать библиотеки типа ADO как сборку (см. Экран 3). Затем можно использовать ADO, как показано в коде в Листинге 4.
В заключение хочу добавить, что технологии доступа к базам данных постоянно развиваются. Пока осваивается одна технология, уже появляется другая. Только одно остается неизменным: базы данных играют все более важную роль при разработке приложений. Знание новейших технологий и эволюционных изменений, которые они вызывают, поможет найти оптимальную технологию для текущей задачи и сделать обоснованный выбор в случае необходимых изменений.
НР представляет первую 64-разрядную рабочую станцию ХР
HP объявила о полномасштабной готовности первых рабочих станций на базе процессора Itanium 2, работающих под управлением Windows XP 64-Bit Edition Version 2003. Предлагаются две конструктивные реализации концепции, а именно: HP Workstation zx2000 и Workstation zx6000 с поддержкой одного и двух процессоров и оперативной памятью 8 Гбайт и 24 Гбайт, соответственно. Как отмечают представители Microsoft, XP 64-Bit Edition Version 2003 является высокопроизводительной платформой, способной поддерживать мощные Windows-приложения нового поколения на рабочих станциях на базе Itanium 2. Платформа предназначена для обслуживания наиболее сложных технических, научных и связанных с обработкой цифровой информации приложений. Стартовая ценовая планка для рабочих станций HP установлена на уровне 3300 долларов.
Таблица 1. Некоторые особые объекты ADO.NET.
Объект | Описание |
DataAdapter | Объект, соединяющий базу данных с объектом DataSet. Основное преимущество DataAdapter состоит в том, что он может работать с любыми источниками данных. Источник данных может быть как базой данных, так и XML-документом. |
DataReader | Объект обеспечивает эффективный поиск данных на стороне сервера. DataReader соединяется в однопроходном режиме «только чтение». Этот объект полезен для Web-приложений, которые используют DataReader для отображения данных на Web-страницах. |
DataSet | Объект поддерживает копии записей из базы данных без соединения. Он сохраняет записи из таблицы (или множества таблиц) в памяти, не поддерживая постоянного соединения с сервером. В памяти DataSet представляет собой двоичный объект. Когда его перемещают или преобразуют, он представляется как DiffGram — формат XML. Поскольку XML — это текстовый формат, записи могут передаваться по Web — в обход ограничений брандмауэров. DataSet также содержит различные объекты, такие, как ограничения, зависимости и представления, которые позволяют работать с таблицами на клиентской стороне, а не только с RecordSet, как в ADO. |
Поделитесь материалом с коллегами и друзьями
Использование ADO.NET для уровня доступа к данным в ASP.NET Ядра
Я пытаюсь катить высокую производительность DAL для моего ASP.NET Core API. Я хочу использовать ADO.NET и у меня возникла трудность проектирование архитектуры программного обеспечения. Я ищу помощь обсуждать хороший подход.
Что я имею
Мой кодовый будет состоять из трех проектов
- MyApp.API
- MyApp.Repositories (данные уровня доступа)
- MyApp.Services (бизнес-логика)
Я буду реализовывать IUnitOfWork в MyApp.Repositories и создать бетон SqlUnitOfWork в MyApp.API . Startup.cs зарегистрирует IUnitOfWork в SqlUnitOfWork . Позже, когда я получаю больше источников данных (Монго и т.д.), я могу включался UnitOfWorkFactory .
Вопросы
Должен ли я зарегистрировать каждый репозиторий Startup.cs или просто добавить их в качестве свойств IUnitOfWork ? Мышление здесь я хотел бы использовать Dependency Injection в своих контроллерах, Услуги и репозиториев, но только надо вводить IUnitOfWork .
Как передать мою строку соединения в SqlUnitOfWork ? Я знаю , что строка соединения должна оставаться в пределах MyApp.API .
Другой ответ не имеет никакого значения, потому что это предполагает я использую EF, который я хочу, чтобы избежать.
Я реализовал щеголеватый с репозитария рисунком. Я не использовал единицу работы, потому что я пришел к выводу, чтобы бы привести к выполнению теряет я не хочу иметь.
Я считаю , что вы работаете с записью ASPNET-ядра , таким образом , с помощью Entity Framework , как ваш ORM будет работать в этой ситуации.
Я согласен с вами о регистрации ваших репозиториев как часть IUnitOfWork затем добавить его в качестве услуги для вашего DI контейнера , который вы затем впрыснуть в контроллерах.
Чтобы ответить на ваш второй вопрос, давайте предположим , что ваша SqlUnitOfWork реализация имеет конструктор , который принимает DbContext экземпляр.
В ASP.NET ядро, DbContext добавляется в DI контейнера и , таким образом , любой другой сервис , который требует или имеет зависимость от DbContext в его конструктор, он будет автоматически решен контейнером DI.
Во- первых помните , чтобы строка подключения определена в appsettings.json качестве так.
Тогда теперь позволяет использовать эту строку подключения , чтобы добавить DbContext объект нашего DI контейнера и немного Futher чтения на Настройка DbContext в EF Ядра
После этого, регистрация и другие услуги нашего DI контейнер, который нужен наш контекст будет очень легко, так как контейнер будет решить эту зависимость для нас.
Надеюсь, что это отвечает на ваши вопросы. Если нет, дайте мне знать.
Как сэкономить время и деньги при построении интерактивного
контента веб-сайта?
Сравнение технологии ASP с решениями Business Objects/Crystal Decisions
Введение
Всем компаниям требуется доступ к данным и их распределение как внутри, так и за пределами своей организации – среди сотрудников, поставщиков, существующих и потенциальных клиентов. С появлением Интернета возник новый способ распространения информации, и тут разработчики столкнулись с новыми задачами – как быстро передавать конечным пользователям информацию в удобном для них формате.
В этой статье показано, как веб-разработчики с помощью решений Business Objects/Crystal Decisions (далее — Crystal Decisions) могут передавать реляционные данные в Интернет более чем в 100 раз быстрее, чем при публикации информации с помощью отчётов, написанных на ASP. Построенные на стандартах XML, ADO, ActiveX, Visual Basic (VB) и Java Script, решения Crystal Decisions не только обеспечивают безопасность и масштабируемость, но и множество самых разнообразных функций, с помощью которых разработчики и профессионалы в информационных технологиях могут быстро передавать в Интернет информацию презентационного качества, и при этом не писать код.
Резюме
Многие разработчики знают о том, что Crystal Reports – это мировой стандарт представления реляционных данных в настольных компьютерах. Эти решения применимы не только на настольных компьютерах, но и в Интернете. Начиная с 7-ой версии, Crystal Reports имеет единый интерфейс конструирования для быстрого создания отчётов для Windows и Интернета. Созданные отчёты можно доставлять и контролировать с помощью Crystal Enterprise – надёжной платформы для работы с отчётами, анализа и передачи информации через Интернет. Продукт Crystal Decisions даёт разработчику среду, интерфейсы и инструменты, которые избавляют от необходимости писать для отчётов множество строк кода ASP. Не утруждая себя написанием кода, разработчики значительно быстрее могут компоновать профессиональные отчёты с помощью объектно-ориентированных интерфейсов конструктора.
В следующем примере приведён довольно простой отчёт о клиентах, который содержит следующее:
- 5 столбцов (два из них содержат гиперссылки, зависящие от контента)
- 1 поле для формулы
- заголовки столбцов
- данные о клиентах, отсортированные в алфавитном порядке по названиям компаний
- дополнительное форматирование с презентационным качеством
Отчёт (см. ниже) был создан за 1,5 минуты с помощью Crystal Reports. Затем всего за минуту он был опубликован в Интернете с помощью Crystal Enterprise как динамический отчёт, включающий расписание и возможности защиты. Те же действия, выполненные с использованием кода ASP, заняли у опытного разработчика 495 минут! Даже если не учитывать затраты времени на публикацию отчёта, разница получается впечатляющая – опытному программисту на ASP потребовалось потратить только на конструирование отчёта 210 минут.
Отчёт о клиентах, созданный с помощью Crystal Reports:
Отчёт о клиентах, созданный с помощью ASP:
Сравнение затрат времени при использовании ASP и Crystal
Ниже в таблице приведены затраты времени на каждый шаг процесса создания вышеупомянутого отчёта и его опубликование в Интернете с использованием кода ASP в одном случае и технологии Crystal Decisions – в другом.
Время на написание кода ASP | Время при использовании Crystal | Технология Crystal | |
Создание отчёта о клиентах— Подключение к базе данных- Выбор и размещение поля- Сортировка/группирование- Вставка адреса электронной почты- Ссылка на веб-сайт- Форматирование отчёта | 210 минут(3,5 часа) | 1,5 минуты | Crystal Reports(указать и щёлкнуть мышью в конструкторе) |
Загрузка страниц по запросу | 45 минут | 0 минут | Crystal Enterprise(автоматически) |
Добавление защиты | 240 минут(4 часа) | 1 минута | Crystal Enterprise (указать и щёлкнуть на консоли Crystal Management Console) |
Добавление функций расписания | Не включено | 0 минут | |
Обновление отчётов после обновления базы данных | Не включено | 0 минут | Crystal Enterprise |
Итого времени | 495 минут | 2,5 минуты |
В приведённой таблице не учтено время, затрачиваемое на сопровождение и обновление приложения.
Опубликование реляционных данных на веб-сайте должно быть лёгким
Опубликование реляционных данных на веб-сайте должно выполняться быстро, с минимумом кода и большим количеством разнообразных функций для конечного пользователя. Должны выполняться следующие условия:
- насыщенная информация с презентационным качеством и минимум кода;
- полная интеграция контента в веб-сайт с помощью гибкой настройки;
- полная интерактивность, позволяющую пользователю получать точную и нужную информацию путём просмотра и изменения существующих отчётов, планирования новых отчётов, использования параметризированных отчётов, экспорта в различные форматы.
Выбор правильного инструмента для максимального увеличения прибыли на инвестицию в веб-сайт
Для опубликования реляционных данных в Интернете существует большое разнообразие инструментов. Наиболее популярны отчёты с кодом ASP (такие инструменты как Macromedia Dreamweaver и Microsoft FrontPage.
Почему ASP?
Инструменты на основе кода ASP популярны по следующим причинам.
- Привычность. VB Script похож на Microsoft Visual Basic (VB) , поэтому разработчики знакомы с этим широко известным стандартом. Многие разработчики считают, что этим языком легче пользоваться, чем JSP, JavaBeans, PHP и так далее.
- Стандартность. Технология ASP содержит гибкие серверные компоненты, уже встроенные в продукты Microsoft, на которых установлен сервер IIS (Internet Information Server), с целью создания ASP-приложений.
- ASP-разработчиков проще найти. Разработчиков, знающих ASP, довольно много, поэтому сложностей с их поиском нет.
- Хорошая интеграция в другие продукты Microsoft. ASP, Internet Explorer, IIS и SQL-сервер хорошо взаимодействуют друг с другом.
- Возможность многократного использования. Разработчики могут сэкономить время, копируя и вставляя строки кода, ранее написанные для других веб-страниц, а также создавая универсальные компоненты, которые годятся для многих веб-страниц.
Почему Crystal?
Технология Crystal имеет все преимущества технологии ASP, но значительно быстрее и дешевле.
- Качество презентации, интерактивные отчёты. Интуитивно понятный интерфейс конструктора позволяет создать практически любой отчёт. Его можно превратить в интерактивные документы с развёрткой (переход по иерархии вниз), графиками, картами, оповещениями, параметрами, гиперссылками, возможностью вносить изменения и многими другими возможностями.
- Использование уже знакомых стандартов. Используя общеизвестные стандарты для веб-сайтов, в том числе DHTML, VB Script, JavaScript, COM и XML, технология Crystal даёт компаниям полный контроль над всеми аспектами создания контента, интеграции и функциональности системы. VB Script был использован при разработке Crystal Server Pages (CSP) – веб-страниц, которые может видеть конечный пользователь.
- Все возможности настройки. Мощные возможности настройки и полная поддержка стандартных языков создания сценариев (JavaScript и VBScript) позволяют разработчикам быстро строить нужные веб-приложения.
- Мощная система управления контентом. Для управления информационной инфраструктурой достаточно нескольких щелчков мыши.
- Практически отсутствует необходимость в написании кода. Предусмотрены почти все функции.
Максимизация отдачи от инвестиций в веб-сайты с помощью Crystal
В этом разделе мы покажем, что публикация данных в Интернете – это всего лишь небольшое звено процесса эффективной доставки информации конечным пользователям. Чтобы окупить средства, вложенные в публикацию отчётов на веб-сайте, следует рассмотреть вопросы, не связанные с созданием отчётов и их публикацией. Рассмотрим следующий сценарий.
Вас попросили передать для бухгалтерии на сайт интрасети данные о ключевых клиентах. Эти данные собраны с помощью приложения, которое вы написали несколько недель назад для обработки заказов на поставки. Всё, что вам нужно сделать теперь – написать несколько отчётов на языке ASP, чтобы клиент мог пользоваться данными в удобном для него виде. Всего вы написали пять отчётов, включая тот, который должен автоматически обновляться в конце каждого дня.
Этот отчёт, который должен обновляться по ночам, является списком клиентов, отсортированным по названиям компаний. Он содержит сведения о представителях компаний и гиперссылки на их адреса электронной почты и веб-сайты. Через неделю вы завершаете написание отчётов, затем передаёте их на сайт интрасети так, что доступ к ним имеет только бухгалтерия, и приступаете следующему проекту.
Через неделю отдел маркетинга и отдел сбыта прослышали об этих отчётах и захотели такие же, но с небольшими изменениями. Отдел сбыта попросил, чтобы в отчёте о клиентах были номера телефонов. Отдел маркетинга попросил включить в отчёт ежемесячные ведомости доходов клиентов, сгруппированные по регионам, а не по названиям компаний. Бухгалтерский отдел также сообщил, что один из 5 отчётов выполняется слишком долго, поэтому его лучше выполнять раз в неделю, а не ежедневно. Кроме того, из бухгалтерии сообщили, что из-за того, что сотрудники информационного отдела вчера что-то делали с серверами, отчёты были недоступны 5 часов, и бухгалтеры не имели доступа к данным. Поэтому они не смогли во время выполнить пару важных задач для своих аудиторов. В результате вам приходится отложить свой текущий проект по крайней мере на неделю, чтобы выполнить просьбы отделов. Кроме того, вам приходится доказывать директору, что необходимо купить более мощное оборудование, чтобы удовлетворить дополнительные потребности пользователей.
Подводная часть айсберга тоже важна
Создание отчётов – не статичный проект. Приведенный выше пример показывает, что различные отделы предприятия по-разному смотрят на одни и те же данные.
За последние годы мы видели, как заказчики создают ASP-отчёты для публикации реляционных данных. Первые шаги довольно просты, но дальше сложность непомерно разрастается из-за появления в системе новых пользователей, интеграции новой технологии, обновления, настройки и добавления отчётов в связи с растущими требованиями пользователей. Все эти вопросы ведения и управления изменениями разработчики и ИТ-специалисты должны предусмотреть, публикуя данные на сайте.
Ниже приведены два отчёта, отображающие данные, описанные в вышеупомянутом сценарии; один из этих отчётов сделан и опубликован по технологии Crystal, а другой – по технологии ASP. Первый отчёт создан с помощью Crystal Reports (издание Developer или Professional), а опубликован с помощью среды Crystal Enterprise. Эти два отчёта похожи, но…
Рис. 1. Отчёт о клиентах, созданный с помощью Crystal Reports
Рис. 2. Отчёт о клиентах, созданный с помощью ASP
То, что мы видим в отчёте, является лишь вершиной айсберга. Рассмотрим следующие вопросы проекта по созданию отчётов при использовании технологий ASP и Crystal. Та часть айсберга, которая скрыта под водой, может очень существенно повлиять на окупаемость ваших инвестиций.
- Презентационное качеств
- Содержимое отчёта и удобство подачи информации
- Параметры диапазона опций поставки контента
- Быстродействие системы
- Масштабируемость системы и постоянная доступность данных
- Надёжность инфраструктуры защиты данны
- Поддержка и рост системы по мере роста организации
Подключиться к базе данных нетрудно. Пользователю нужен динамический контент, представленный либо в статическом, либо в параметризованном виде. Отчёт нужно создать так, чтобы нужные данные извлекались быстро и просто.
Далее сравниваются решения указанных вопросов с помощью Crystal и ASP, а также поясняется важность этих вопросов для успеха проекта по созданию и опубликованию отчётов.
1. Вопросы вывода отчёта
Представление отчёта
Отчёт со сводными, сильно уплотнёнными данными может существенно помочь пользователю лучше понять бизнес-процесс. Форматирование презентационного качества с использованием различных шрифтов, линий, рисунков и макетов с произвольной разметкой может помочь пользователю лучше и профессиональнее работать с информацией. В Crystal такая гибкость достигается всего лишь нажатием кнопки мастера. При написании кода ASP даже с помощью таких конструкторов как Dreamweaver и FrontPage, для добавления упомянутых функций требуются часы.
С помощью Crystal Reports можно легко представить информацию в той форме, к которой привыкли пользователи, какой бы она ни была – матричный отчет, счёт-фактура, заказ и так далее. Объектно-ориентированный конструктор поддерживает создание практически любых отчётов, любые стили и форматы. А при использовании ASP вы ограничены только выводом на основе таблиц. Произвольная компоновка в Crystal даёт возможность быстро извлекать нужную конечному пользователю информацию, и форматировать ее с целью выделения наиболее важных данных.
Удобство пользования отчётами и возможности доставки контента
Возможность объединять данные в группы, уплотнять, сортировать и фильтровать их, критически важна для опубликования данных в виде, удобном для конечных пользователей. Для увеличения ценности отчёта для конечных пользователей требуется также возможность добавлять бизнес-логику, например, вычисления, выделение исключений и параметров; требуются средства навигации: поиск, групповые деревья и переход на нижние уровни иерархии; кроме того, необходимы средства визуализации для создания графиков и карт.
При использовании ASP все эти функции отчёта приходится писать вручную. Во многих отношениях «комплексный отчёт» с упомянутыми функциями становится настоящим приложением. А при использовании Crystal Reports не нужно заботиться о написании кода для встраивания нужных функций – код создаётся автоматически всего несколькими щелчками мыши. Правда, один раз написанный код ASP можно многократно использовать для других отчётов, но если придётся вести более 10 отчётов, то усилий потребуется слишком много. Даже простое планирование выполнения отчёта потребует создание отдельного приложения.
Новаторская технология Crystal для создания, персонализации и настройки отчётов через сеть встроена в продукт и доступна через любой веб-браузер. Она предоставляет следующие возможности.
- Параметризованные отчёты для усложнённой сортировки, фильтрации и сведения данных, создания карт и графиков.
- Система планирования выполнения отчётов в заданные промежутки времени или регулярно с заданным периодом.
- Встроенные средства навигации, в том числе оглавление, гиперссылки, детализация по иерархии, поиск.
- Экспорт в файлы форматов Acrobat (PDF), Microsoft Excel, Word (RTF) и собственный формат Crystal Reports.
Разделение создания отчёта от создания приложения
Тесная интеграция между отчётами ASP и приложениями также потребляет много ресурсов для контроля качества. Во многих случаев код, использованный в приложении ASP, используется и в отчёте. Любое изменение кода отчёта или приложения, даже одной строки, требует нового тестирования приложения перед тем, как предоставить его пользователям. А поскольку отчёты обычно не являются статичными проектами, потому что потребности конечных пользователей изменяются, то проблема ведения изменений приобретает ещё большее значение.
Crystal разделяет отчёты и приложения, поэтому изменение отчёта никак не влияет на приложение, и наоборот – изменение приложения не влияет на отчёт. Права на внесение изменение, планирование, добавление новых отчётов, переформатирование… Crystal выполняет эти функции универсально, поэтому разработчикам и ИТ-специалистам не приходится беспокоиться о том, что они могут повредить код при изменении отчётов и приложений. Новый репозитарий Crystal Decisions использует единое место для обмена, обновления и управления объектами всех отчётов. Например, десять отчётов могут иметь общий текстовый объект, хранящийся в репозитарии. Если необходимо внести изменение, разработчик может изменить объект в репозитарии, после чего изменение автоматически распространяется на все отчёты, содержащие указанный объект.
Ещё одно преимущество отделения разработки отчётов от разработки приложений – разработчик имеет возможность передать конструирование контента другому лицу.
2. Вопросы развёртывания и управления
После опубликования данных для отчётов могут возникнуть другие проблемы. Кто обладает правом на эту информацию? Что пользователи могут с ней делать? Будет ли обновляться отчет при обновлении базы данных? Легко ли добавлять новых пользователей и изменять их права? Долговременный успех проекта по созданию и опубликованию отчётов зависит не только от полезности отчётов и удобством их использования конечными пользователями, но и от вашей способности сопровождать отчёты с использованием существующей у вас ИТ-инфраструктуры.
Далее сравниваются особенности развёртывания и сопровождения отчётов с помощью Crystal и ASP, а также поясняется важность этих вопросов для успеха всего проекта по созданию и опубликованию отчётов.
Быстродействие
Веб-приложение должно быстро реагировать на действия конечных пользователей. Обычно при поиске чем меньше требуемых данных найдено в базе данных, тем меньше времени требуется на обработку результатов запроса, и тем быстрее приложение выдаёт информацию конечным пользователям.
Технология ASP не предусматривает кэширование данных на сервере. Она использует для кэширования локальный браузер пользователя, поэтому, если вы не купите и не установите дополнительное программное обеспечение или прокси-сервер, ASP-отчёты всегда будут обращаться к базе данных, в результате чего время реакции увеличивается, особенно в случае больших отчётов.
Crystal содержит серверный компонент, специально выделенный для кэширования отчётов. Этот серверный компонент может быть помещён на отдельный компьютер или несколько компьютеров, чтобы ускорить доставку часто выполняемых отчётов.
Crystal также содержит технологию обработки отчётов с загрузкой страниц отчёта по запросу. При этом каждый отчёт разбивается на страницы, и браузеру отправляются только запрошенные страницы, а не весь отчёт. Технология загрузки страниц по запросу также поддерживает общие задания: отчёты кэшируются, благодаря чему отдельные страницы отчётов могут отправляться различным пользователям без обращения к базе данных. Эта новаторская технология распределяет обработку отчётов, минимизируя количество обращений к базе данных, благодаря чему:
- ускоряется реакция системы на действия конечных пользователей, что повышает уровень удовлетворенности пользователей от работы с системой,
- снижается количество запросов к базе данных, снижается объем обмена данными, нагрузка на компьютеры, не требуются затраты на более быстродействующую базу данных.
Планирование выполнения отчётов в те промежутки времени, когда нагрузка на систему снижается, и совместное использование отчётов также очень важны для повышения эффективности.
Масштабируемость и доступность
Если вы опубликуете в Интернете ценную информацию, к ней будет обращаться всё больше и больше людей. При этом возникнут две проблемы: возможность одновременного доступа к информации возрастающему количеству пользователей и постоянная доступность этой информации.
Разработчики, которые пишут отчёты на языке ASP, могут быть ограничены в масштабируемости, поскольку они всегда вынуждены использовать IIS. Чтобы получать информацию могло одновременно большое количество пользователей, разработчики могут повысить производительность своих ASP-приложений либо с помощью программного обеспечения, либо оборудования, но оба варианта имеют недостатки. Для распределения нагрузки по массиву (ферме) веб-серверов путем установки дополнительного оборудования требуются дорогостоящие ИТ-специалисты с сертификатами компании Cisco, а эти специалисты малочисленны и обычно постоянно заняты. Если же идти по пути установки дополнительного программного обеспечения, например, сервера MTS (Microsoft Transaction Server), который содержится в IIS, то при этом обычно необходима дополнительная работа по преобразованию всех сценариев в библиотеки DLL, которые должны стать компонентами MTS.
В основе Crystal лежит архитектура распределённых компонентов. Это означает, что отдельные компоненты системы могут быть «развязаны» (обработка плановых отчётов, управление системой, кэширование, обработка отчётов в реальном времени, доставки веб-данных) и распределены по множеству компьютеров. Благодаря этому увеличивается количество пользователей, которые могут иметь одновременный доступ к веб-сайту, повышается эффективность использования оборудования, быстрый рост возможностей системы, причём переписывать отчёты не требуется.
Crystal также распределяет нагрузку между всеми функциями управления системой и обработки отчётов. Кроме того, Crystal поддерживает кластеризацию и переключение ресурсов при сбое на уровне управления системой. Это значит, что к кластеру можно добавить несколько компьютеров, чтобы уменьшить время отклика и более эффективно распределять нагрузку, вызванную обращениями пользователей. Если какой-либо компьютер из кластера выйдет из строя, остальные компьютеры кластера автоматически возьмут на себя его функции, и нормальная работа кластера продолжится.
Безопасность
Когда речь идёт об отчётах, главные вопросы безопасности – кто имеет право просматривать отчёты и выполняемые ими операции. Может ли каждый пользователь планировать отчёты, просматривать их по запросу, вводить параметры отчётов, просматривать экземпляры отчёта за прошлые периоды и так далее? Все эти вопросы должны быть учтены в коде ASP каждого отчёта. И даже с учётом того, что некоторые компоненты кода ASP отчётов можно использовать многократно, контроль качества требует слишком много затрат времени.
Интерфейс Crystal позволяет вести функции защиты просто и удобно – всего лишь несколькими щелчками мыши. Все отчёты (объекты отчётов) хранятся в центральном репозитарии, благодаря чему управление функциями защиты отдельных объектов и папок ведётся просто нажатиями кнопки мыши. Кроме гибкости модели отдельных пользователей и групп пользователей, Crystal Enterprise поддерживает интеграцию с системами безопасности других производителей, в том числе LDAP и NT. Благодаря этому можно использовать существующую у вас инфраструктуру безопасности, чтобы ускорить развёртывание и администрирование.
Долгосрочная поддержка
Изменяющиеся потребности в отчётах. Как уже было показано в примере, в котором разработчик создал пять отчётов для бухгалтерии, требования к отчётам постоянно изменяются в различных отделах предприятия. Возможность вести и планировать обновления в системе отчётов критически важны при планировании ресурсов. Когда разработчик вносит изменения в код ASP, ему необходимо проанализировать, как эти изменения повлияют на остальные приложения, и протестировать код, чтобы убедиться в том, что отчёт или приложения по-прежнему работают без ошибок. Как правило, при внесении изменений требуются значительные трудозатраты на вопросы «подводной части айсберга», такие как масштабируемость, безопасность, которые при использовании Crystal решаются автоматически.
Использование результатов предыдущей работы. Более четырнадцати миллионов проданных лицензий, 300 OEM-партнёров показывают, что технология Crystal стала мировым стандартом в работе с отчётами. Crystal Reports применяется на многих передовых предприятиях, и наверняка вы сможете найти на своём предприятии хоть одного специалиста, знакомого с этими продуктами. Поэтому у вас есть возможность воспользоваться услугами своих специалистов, а не отправлять кого-нибудь на курсы по изучению ASP.
Техническая поддержка. Все продукты Crystal обладают возможностью доступа к различным уровням технической поддержки от самообслуживания до элитных персональных услуг, которые осуществляются круглосуточно (24 часа в сутки, 7 дней в неделю). Какой уровень поддержки может обеспечить ваш ASP-разработчик?
Глобальное сообщество партнёров. Благодаря учебным курсам с выдачей сертификатов, консультациям, услугам по написанию отчётов, всемирному каналу для партнёров и книгам сторонних издательств вы всегда можете найти нужные инструменты и ресурсы, которые позволят вам и вашим конечным пользователям извлечь максимум из ваших инвестиций в систему отчётов.
Поддержка будущих технологий. Crystal Decisions интегрирует в свои продукты новейшие веб-технологии, благодаря которым веб-контент предоставляет пользователям, разработчикам и администраторам максимальную эффективность и окупаемость инвестиций. Например, поскольку язык XML по-прежнему играет важную роль в опубликовании информации в сети, Crystal Decisions продолжат интегрировать в свои продукты последние достижения в области XML. При этом Crystal Decisions остаётся на передовых позициях во всех областях, от новых драйверов до Report Web Services – нового слова в технологии XML.
Краткий обзор вопросов, касающихся «подводной части айсберга», приведён в приложении № 3
Увеличение производительности веб-разработок в 180 раз с помощью Crystal
Сравним два отчёта, приведенных на рис. 1 и 2. Оба они представляют одну и ту же информацию, но один из них требует на создание и публикацию в сети существенно меньше времени.
- Рис. 1. На создание и опубликование этого отчёта с помощью продуктов Crystal требуется 2,5 минуты. Обзор действий по созданию и публикации этого отчёта с помощью Crystal содержится в приложении 1.
- Рис. 2. На создание этого отчёта с помощью кода ASP требуется 450 минут (7,5 часов), причём здесь не учтено время на опубликование и планирование отчёта. Обзор действий по созданию и публикации этого отчёта с помощью ASP содержится в приложении 2.
Расчёт окупаемости
- 450 минут (ASP) – 2,5 минут (Crystal)
- На 99% быстрее при использовании Crystal!
- 450/2,5 = в 180 раз быстрее при использовании Crystal!
Выводы
- Продукт Crystal Reports позволяет существенно быстрее публиковать данные на веб-сайте с качеством презентации с использованием легко управляемой веб-инфраструктуры под названием Crystal Enterprise.
- С помощью технологии Crystal можно упростить весь процесс создания и опубликования отчётов. Разработчики могут сосредоточиться на разработке своих приложений, предоставив написание отчётов другим специалистам, а продукты Crystal обеспечат согласованность всех тех вопросов, которые раньше замедляли работу.
- Кроме того, с помощью Crystal разработчики имеют доступ к полной модели COM (модель компонентных объектов), благодаря чему имеют возможность интегрировать свои отчёты в приложения нужным им способом.
Как найти дополнительную информацию
Дополнительная информация о Crystal Reports, Crystal Enterprise и семействе продуктов Crystal Decisions находится на следующих сайтах.