Добавлен: 28.03.2023
Просмотров: 326
Скачиваний: 5
ВВЕДЕНИЕ
World Wide Web – глобальная сеть – в настоящий период охватывает несметное число страниц, на которых расположена разнообразный материал. Люди приобретают доступ к данной сведениям через применение технологии Интернет. Для навигации в WWW применяются особые программы – интернет-браузеры, которые значительно упрощают путешествие по безграничным просторам WWW. Весь материал в интернет-браузере отражается в виде интернет-страниц, которые считаются главным компонентом байтов WWW.
Можно отметить следующие систематизации интернет-документов: по способности конфигурации нахождения и текстуры – неподвижные (сложное и неудобное обновление) и динамические (наиболее простое и стремительное обновление); по присутствию обратной взаимосвязи – инертные (пользователь иметь в своем распоряжении возможность только смотреть данные) и функциональные (пользователь иметь в распоряжении возможность перекидываться информацией с сервером, принимать участие в диалоговом разговоре). В данной работе интерес для нас предполагают функциональные динамические интернет-документы.
Цель курсовой работы – изучить порядок работы ASP.Net web-приложения. В рамках курсовой работы предполагается разработка программного комплекса для ведения базы данных товаров и предприятий.
Объект работы – ASP.Net.
Предмет работы – порядок работы ASP.Net web-приложения.
Цель, объект и предмет определяют следующие задачи:
- обзор и изучение литературы по исследуемой проблеме;
- ознакомление с технологией ASP;
- выделение критериев сравнения технологий;
- применение разработанной методики при решении конкретных прикладных задач.
Теоретические основы ASP.Net
До появления технологии ASP.NET процесс разработки Web-приложений довольно сильно отличался от разработки настольных приложений. Последние поддержаны множеством API-функций, классов и инструментов студии. Web-программирование требует преодоления множества особых барьеров, например:
- протокол HTTP не позволяет сохранять состояние страницы, то есть, как правило, на событие (клик по ссылке или нажатие на кнопку) браузер реагирует отправкой запроса серверу. Когда с сервера приходит ответ, всё содержимое страницы полностью заменяется и замедляет работу;
- необходимо знание языков гипертекста;
- умение писать скрипт на одном или нескольких языках;
- знание деталей процесса обмена информацией между клиентом и сервером;
- учет особенностей платформы клиента и типа его браузера. [8]
Инновационная технология ASP.NET призвана покончить с таким положением вещей. С помощью этой технологии современные браузеры, поддерживающие стандарты W3C DOM, позволяют вывести web-приложение на новый уровень. Теперь эти приложения стали распределенными, т.е. часть логики находится на стороне клиента, а часть – на стороне сервера. Таким образом, после отправки запроса и получения ответа страница не заменятся полностью, а обновляется только ее часть, с теми данными, в которых клиент заинтересован в конкретный момент. [7]
Microsoft.NET Framework – это платформа для создания, развертывания и запуска web-сервисов и приложений, состоящая из трех основных частей – общеязыковой среды выполнения (common language runtime), иерархического множества унифицированных библиотек классов и компонентной версии Active Server Pages (ASP). Основная идея ASP заключается в создании Web-страниц с внедренными в них фрагментами кода на скриптовых языках.
Новейшей версией технологии ASP является ASP.NET, ключевая в архитектуре Microsoft .NET Framework. Основное отличие этой технологии от ASP с точки зрения архитектуры приложений заключается в том, что код, присутствующий на web-странице, не интерпретируется, а компилируется и кэшируется, что, естественно, способствует повышению производительности приложений. В основу ASP.NET положена работа в среде CLR, что позволяет создавать Web-приложения на любом языке, поддерживаемом платформой .NET, например, таких как Visual Basic, JavaScript или С#. Это немаловажное преимущество, так как теперь возможности одного языка могут использоваться в другом языке без необходимости написания дополнительного кода. Таким образом, достигается высокая степень повторного использования кода. [3]
Независимо от языка программирования, использованного при создании приложения ASP, его код компилируется в код на промежуточном языке IL. Во время компиляции проверяется синтаксическая корректность исходного текста. Скомпилированный в промежуточный язык код выполняется быстрее, и он будет таким же независимо от языка, который мы используем. Компиляция происходит на сервере в момент первого обращения пользователя к странице. Если программист изменил текст страницы, программа перекомпилируется автоматически. [5]
Технология ASP.NET работает на сервере, для построения динамических приложений на клиенте используется JavaScript.
ASP.NET является объектно-ориентированной моделью разработки Web-приложений. Сами ASP.NET-страницы являются объектами классов. Можно создавать программный код с возможностью его повторного использования классами. Эти классы можно использовать для создания экземпляров объектов. [3]
Объектная модель — это иерархия объектов, предоставляющих разработчикам определенные возможности. В ASP.NET используется новая структура Web-страниц, которая отличается от структуры ASP-страниц и обеспечивает поддержку объектной модели для сохранения содержимого ASP.NET-страницы. Добавлен новый класс элементов управления — серверные элементы управления. Можно добавлять собственные комментарии и связывать эти данные с серверными элементами управления. Для оформления Web-страниц имеются наборы директив, которые предназначены для установки параметров. Например, параметры TraceContext и isEnabled позволяют, соответственно, включить и отключить механизм отслеживания Web-запросов.
Механизм ASP можно рассматривать как виртуальное устройство для генерации HTML-страниц. Оно работает на стороне сервера и создает клиентский HTML-код, опираясь на заданную вами (в файле типа .asp) смесь HTML-кода и скриптовых вставок. [1]
Главной заслугой технологии ASP была простота реализации динамически изменяющегося содержимого. Еще более ранние технологии разработки: CGI (Common Gateway Interface) и ISAPI (Internet Server Application Pro-gramming Interface) делали это путем больших затрат.
Код скриптовых вставок ASP написан на языке Microsoft Visual Basic Scripting Edition (VBScript), но в принципе он может быть написан и на Microsoft JScript. ASP тесно связана с технологией ActiveX Data Objects (ADO), которая еще недавно считалась прогрессивной для работы с источниками данных. [14]
Текст ASP-документа — это причудливая смесь кода, расположенного в блоках <% %>, и тегов HTML. Если в коде ASP-файла отсутствуют скриптовые вставки (блоки вида <% %>), то ядро ASP просто посылает клиенту HTML-текст, существующий в файле. Если они есть, то интерпретатор ASP создает и добавляет в указанные места HTML-документа HTML-текст, суть которого определяется логикой скрипта. В свое время такое решение было прогрессивным, но теперь оно выглядит неуклюжим. Вот пример самой простой скриптовой вставки на языке VBScript:
<html> <h3>Now is <%=Now%></h3> </html>[15]
Документ ASP обрабатывается на сервере в режиме интерпретатора линейно (сверху вниз). Код скриптовых вставок выполняется (интерпретируется) во время обработки документа на сервере и забывается после генерации выходного HTML-документа. В приведенном примере вставка будет заменена на строку текста и клиент увидит в окне браузера нечто вроде:
Now is 01.02.2008 9:27:46
Вставки содержат код, исполняемый на стороне сервера. Он реализует некоторую логику, заложенную разработчиком сайта. Например, код скрипта может обратиться к базе данных и вставить результат запроса в текст выходного HTML-документа, отправляемого клиенту.
Набор встроенных элементов управления ASP.NET достаточно обширен и разнообразен, чтобы с его помощью можно было реализовать любую необходимую функциональность Web-приложения. В их основе лежит компонентная модель ASP.NET, существенно упрощающая применение общих принципов объектно-ориентированного программирования. [13]
Функции существующих элементов управления можно расширять. Можно также создавать новые элементы управления путем объединения нескольких существующих элементов — такие составные элементы управления называются пользовательскими (user). Кроме того, в ASP.NET определен небольшой набор базовых классов, на основе которых можно создавать совершенно новые, так называемые специализированные (custom) элементы управления. [1]
Для отображения нестандартных элементов, входящих в состав web-страниц, браузеры используют специальные встроенные приложения. При этом для браузера Netscape эти приложения реализуются в виде динамических библиотек (.DLL), а в программе Internet Explorer, Mozila и Opera — в виде элементов управления ActiveX.
Нестандартные элементы управления расширяют инструментарий Web-разработчика. Они инкапсулируют ключевые элементы интерфейса и программной логики, благодаря чему их можно многократно использовать не только в одном приложении, но и в других проектах.
Рассмотрим 3 типа нестандартных элементов управления:
- пользовательские элементы управления (user controls) — создаются с помощью графического интерфейса дизайнера Visual Studio .NET путем комбинирования существующих серверных и HTML-элементов управления; представляют собой функциональные блоки, инкапсулирующие некоторые возможности пользовательского интерфейса.
- Пользовательский элемент управления хранится в файле, копию которого необходимо включать в каждый проект, использующий этот элемент управления;
- составные элементы управления (composite или custom controls) — создаются из существующих серверных и HTML-элементов управления. Похожи на пользовательские, но в отличие от них создаются программно, поэтому могут быть скомпилированы в сборки (dll-файлы). Последние допустимо применять одновременно в нескольких приложениях и добавлять на панель Toolbox в Visual Studio .NET;
- генерируемые элементы управления (rendered controls) — генерируются кодом в виде HTML-тэгов «с нуля», а не компонуются из существующих элементов управления. Подобно составным элементам управления, генерируемые элементы управления компилируются и их можно добавлять на панель Toolbox. Однако, создавая генерируемые элементы управления, приходится самостоятельно писать код для решения задач, которые в составных элементах управления автоматизированы.
Таблица 1
Синтаксис включения файлов с атрибутом SRC
|
Тип пути |
Синтаксис |
Пример |
|
Относительный |
SRC="путь\имя_файла" |
SRC="Utilities\Test.asp" |
|
Виртуальный |
SRC="/путь/имя_файла" |
SRC="/MyScripts/Digital.asp" |
|
Виртуальный |
SRC="\путь\имя_файла" |
SRC="\RegApps\Process.asp" |
Пример.
<!DOCTYPE HTML>
<html xmlns="http://schemas.microsoft.com/intellisense/html5">
<head><title>Покупка футболки</title>
<link href="../StyleSheet.css" rel="Stylesheet" type="text/css" />
<script type="text/jscript">
moveTo(0, 0);
// resizeTo(1000, 750);
var
count = 0, // Счетчик покупок
size =0 ,
//======== Перечень предлагаемых товаров
names = ["SpanchBob",
"Cheburashka",
"Dino",
"Smail",
"Tarakan",
"Blue",
"Matrica"
],
images = ["1.gif",
"2.png",
"3.png",
"4.png",
"5.png",
"6.jpg",
"7.jpg"
],
tsh = null,
products = {},
cr = null,
boughtItems = 0,
tshirts = [
{ name: "Black t-shirt", url: "black-tshirt.jpg" },
{ name: "White t-shirt", url: "white-tshirt.jpg" }
];
function product( name, price, url, xPos, yPos)
{
this.name = name
this.price = price
this.url = url
this.x = xPos
this.y = yPos
this.img = null
this.dragged = null
this.inrect = null
this.xOld = 0
this.yOld = 0
this.Draw = function ()
{
document.body.insertAdjacentHTML("beforeEnd",
"<img width=100 height=100 onmousedown=products[this.alt].SelectItem() onmousemove=products[this.alt].Move() onmouseup=products[this.alt].Stop() style='position:absolute; left:"
+ this.x + "px; top:" + this.y + "px;' src=../Images/Misc/" + this.url + " id=c" + ++count + " alt='" + this.name + "' />");
this.img = document.body.lastChild;
}
this.SelectItem = function()
{
this.xOld = event.x;
this.yOld = event.y;
this.dragged = event.srcElement; //объект, вызвавший событие
}
this.Move = function ()
{
var
x = event.x,
y = event.y;
if (this.dragged != null)
{
this.dragged.style.posLeft += x - this.xOld;
this.dragged.style.posTop += y - this.yOld;
};
this.xOld = x; this.yOld = y;
event.returnValue = false;
}
this.Stop = function ()
{
this.dragged = null;
if (this.xOld > 50 && this.xOld < 350 && this.yOld > 80 && this.yOld < 380)
{
this.inrect = true;
}
else { this.inrect = null; }
}
}
function tshirt(name, url)
{
this.name = name;
this.url = url;
this.img = null;
this.x = 50;
this.y = 80;
this.Draw = function ()
{
document.body.insertAdjacentHTML("beforeEnd",
"<img width=300 height=300 onmousedown=tsh.ChangeTshirt() style='position:absolute; left:"
+ this.x + "px; top:" + this.y + "px;' src=../Images/Misc/" + this.url + " id=c" + ++count + " alt='" + this.name + "' />");
this.img = document.body.lastChild;
}
this.ChangeTshirt = function ()
{
if (tsh.name == "White t-shirt")
{
tsh.name = tshirts[0].name;
tsh.img.src = "../Images/Misc/" + tshirts[0].url;
}
else
{
tsh.name = tshirts[1].name;
tsh.img.src = "../Images/Misc/" + tshirts[1].url;
}
}
}
function crate()
{
this.name = 'Basket';
this.url = 'Basket.gif';
this.img = null;
this.x = 900;
this.y = 150;
this.Draw = function ()
{
document.body.insertAdjacentHTML("beforeEnd",
"<img width=150 height=150 style='position:absolute; left:"