Создание Web-приложений в C#

Как нам известно, при программировании в Web строят отдельно клиентские и серверные приложения. Задача серверного приложения — обработать данные сайта, переданные браузером. C# позволяет создавать серверные приложения. Полезным при чтении этого раздела будет знакомство с материалом практического занятия главы 2 "Использование JSP-страниц". Общий характер процесса разработки Web-приложения такой же, как и для обычного приложения Windows. Для создания Web- приложений необходимо установить и запустить Web-cepeep IIS (Internet Information Server), см. далее. Действия по созданию Web-приложений сводятся к следующим.

1.             Создать новый проект на базе шаблона ASP.NET Web Application и присвоить ему имя, например, MyWebApplicationl. При вводе имени приложения указать также в поле Location адрес: http://localhost/MyWebApplication 1. Создаваемые файлы будут помещены в папку MyWebApplicationl каталога wwwroot. По умолчанию IIS использует каталог c:\InetPub\wwwroot, однако этот каталог можно изменить, используя окно установки свойств IIS.

2.             Расположить на фор ней ме визуальные компоненты, например, Label (либо TextBox) и Button. Запрограммировать кнопку хотя бы так:

{ labell.Text = "Hello From Server! ";}

3.             Чтобы проверить работу формы, необходимо просто вызвать ее на выполнение командой Debug | Start либо использовать комбинацию клавиш <Ctrl>+<F5>. В результате компиляции проекта система создаст необходимые файлы Web- приложения в указанном каталоге MyWebAppicationl.

Надо полагать, что наш простейший пример не вызовет ошибок. Система построит для созданного Web-приложения два файла: WebForml.aspx, содержащий код HTML и ASP.NET, и файл WebForml.aspx.es, содержащий код C#. Файл с кодом HTML используется для возврата клиенту формы документа с результатом действия нашей кнопки. Файл с кодом C# выполняет программу для кнопки.

Содержимое файла WebForml.aspx будет иметь следующий вид (листинг 3.20).

Листинг 3.20. Файл WebForm1 .aspx

<c0 Page language="c#" Codebehind="WebFormsAppl.aspx.cs" AutoEventWireUp="false"

Inherits="MyWebApplication.WebForml" %>

<!DOCTYPE HTML PUBLIC "~//W3C//DTD HTML 4.0 Transitional//EN"

<HTML>

<HEAD>

<title> WebForml</title>

<meta content="Microsoft Visual Studio 7.0" name="Generation">

<meta content="C#" name="CODE_LANGUAGE">

<meta content="JavaScript" name="vs_defaultClientScript">

<meta content=http://schemas.microsoft.com/intellisense/ie5

name="vs_targetSchema">

</HEAD>

<body MS_POSITIONING="GridLayout">

<form id="Forml" method="post" runat="server">

<asp:TextBox id="TextBoxl" style="Z-INDEX: 101; LEFT: 24px; POSITION: absolute; TOP: 20px" runat="server"

Width="411px" Height="187px"

TextMode="MultiLine"> </asp:TextBox>

<asp:Button id="Buttonl" style="Z-INDEX: 102; LEFT: 40px; POSITION: absolute; TOP: 312px" runat="server" Width="104px" Height="27px"

Text=" PRESS" > </asp:Button>

</form>

</body>

</HTML>

Приведенный документ — это ASP.NET-страница (Active Server Pages — активные серверные страницы). (Вспомните уже рассмотренные нами JSP-страницы.) ASP-страница содержит вперемежку теги HTML и ASP-теги. ASP-тег

<%0 Page language="c#" Codebehind="WebForml.aspx.cs" AutoEventWireUp="false"

Inherits="MyWebApplication.WebForml" %>

указывает, что рабочим языком страницы является C#, а имя программного модуля, поддерживающего Web-форму, — WebForml.Oaspx.es. Указывается, что классом формы является

Inherits="MyWebApplication.WebForml".

Наконец, сообщается через AutoEventwireUp="faise", что процессор ASP.NET не будет автоматически вызывать методы обработки событий инициализации и загрузки ASP-страницы. Чтение остальных тегов не вызывает затруднений.

Теперь, чтобы обратиться из клиентской стороны (сайта) к данному серверному приложению, нужно в окне браузера ввести адрес:

http://localhost/MyWebApplicationl

Если обращение к ASP-странице должно производиться с другого компьютера, то вместо iocaihost следует указать сетевой адрес компьютера, содержащего ASP-страницу.

Нужно понимать, что для активизации созданных нами ASP- страниц на стороне сервера должно быть активным приложение Web-cepeepa. Если для Java использовали в качестве Web- сервера Tomcat, то для C# используем в качестве Web-cepeepa IIS. Этот Web-cepeep входит в состав Windows и его следует инсталлировать и запустить.

Для инсталляции IIS выберите Пуск | Настройка | Панель управления | Установка/удаление программ | Установка/удаление компонентов Windows. Затем отметьте окошко IIS и нажмите кнопку Next. Система пригласит вас вставить компакт-диск с версией Windows, что вам и надлежит сделать.

После инсталляции IIS этот сервер нужно запустить. Для этого снова выберите Пуск | Настройка | Панель управления | Сервисы.

Найдите в списке сервисов Internet Information Services и активизируйте контекстное меню щелчком правой кнопки мыши на имени IIS. Выберите пункт Start. Попытайтесь связаться с главной страницей IIS, открыв окно Internet Explorer и указав в качестве URL в поле адреса http://www.locaUiost. Если IIS успешно инсталлирован и запущен, то откроется домашняя страница этого Web-cepeepa. Имейте в виду, что Web-cepeep IIS требует размещать создаваемые ASP-страницы в каталоге C:\Inetpub\wwwroot. Запомните это. Следовательно, создаваемые визуальной средой C# страницы ASP следует размещать в этом каталоге.

Другая возможность создания Web-приложений состоит в использовании шаблонов Empty Web Project. Эта возможность является аналогом сервлетов языка Java. Создадим подобное простейшее приложение.

1.             Выберите шаблон Empty Web Project и присвойте ему имя webHandie. Включите в этот проект ссылку на библиотеку System.web, для чего следует щелкнуть правой кнопкой мыши в строке References, выбрать в контекстном меню пункт Add Reference, а затем выбрать из выпадающего списка опцию System.web.dll. щелкнув по ней дважды.

2.             Откройте контекстное меню проекта и выберите Add | Add New Item | Text FUe. Присвойте новому файлу имя webHan- dierc.ashx. Введите в него следующий код:

<%0 WebHandler Language="c#"

Codebehind="webHandlerC.ashx.cs" class ="webHandle.webHandlerC" %>

3.             Теперь нужно добавить в проект файл на языке C#, именованный как webHandierc. Для этого щелкните правой кнопкой мыши на проекте и выберите Add | Add New Item | Code File. Присвойте файлу имя webHandierc.ashx.es. Введите следующий код:

using System.Web; namespace webHandle {

public class webHandlerC : IHttpHandler {

public void ProcessRequest (HttpContext context)

{

HttpRequest request=context.Request;

HttpResponse resp=context.Response; resp.ContentType="text/plain"; resp.Write(" Hello from C#-script"); resp.End;

}

public bool IsReusable {

get

{return true;}

}

}

}

4.             Откройте панель свойств webHandlerC.ashx и установите свойство BuOd Action в значение Content. После этого выберите команду Set as Start Page в контекстном меню webHan^

dlerC.ashx.

5.             Добавьте в проект конфигурационный файл:

Add | Add New Item | Web Configuration FUe

6.             Запустите проект на выполнение: <Ctrl>+<F5>.

Построенный нами проект есть аналог сервлета языка Java. Обращение к созданному Web-приложению осуществляется через URL: http://localhost/webHandle.

В приведенном примере ключевую роль играют переменные

resp И request.

Переменная request позволяет получить данные из формы клиентского сайта. Наиболее просто это сделать, используя по аналогии приведенные далее команды:

int i = int.Parse(context.Request["tfage"]); // Получаем // значение элемента формы HTML-документа с именем tfage и // преобразуем его к целому числу s= context.Request["Uname"];

Здесь в квадратных скобках после Request указаны имена текстовых полей, размещенных на форме клиента и переданных браузером нашему Web-приложению. Команда int.Parse преобразует строку в целое число.

Переменная resp позволяет вернуть на сторону клиента HTML- документ. Пояснение дает следующий пример.

int il, i2; //индексы для массивов NameValueCollection params=Request.QueryString;

// Получаем коллекцию имен и значений параметров // В массив arr заносим имена параметров String[] arr = params.AllKeys; for (il = 0; il < arr.Length; il++)

{

// Выводим на сторону клиента имя параметра в цикле

Response.Write("Key: " + Server.HtmlEncode(arr[il]) + "<br>");

// Получаем значения параметра в массиве arr2 String[] arr2 = params.GetValues(arr[il]); for (i2 = 0; i2 < arr2.Length; i2++)

// Выводим значения параметра на сторону клиента

Response.Write("Value " + i2 + ": " +

Server.HtmlEncode(arr2[i2])

+ "<br>");

Эффективная обработка клиентских форм средствами языка ASP выходит за пределы нашего рассмотрения.

Источник: Герман О. B., Герман Ю. О., Программирование на Java и C# для студента. — СПб.: БХВ-Петербург, 2005. — 512 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100