Четверг, 25.04.2024, 02:21
Приветствую Вас Гость | RSS

Лекции

Меню сайта
Форма входа
Категории раздела
ТАУ (Теория автоматического управления) [31]
лекции по ТАУ
Экология [151]
учебник
Бухгалтерский учет и налогообложение в строительстве [56]
Дементьев А.Ю. - Практическое пособие
Психология [104]
Пип
информатика [80]
с# Карли Ватсон
современные стулья [0]
новинки
Поиск

Главная » 2010 » Февраль » 11 » Управление опросами
00:58
Управление опросами
Управление опросами
Одно из преимуществ .NET перед предшествующими технологиями заключает-
ся в том, что возможность повторного использования создаваемого программного
обеспечения несколько упрощается. В этом разделе мы собираемся создать пакет
web-сайта для проведения опросов, с тем чтобы иметь возможность вставлять
этот сайт в любую страницу ASP.NET при помощи всего лишь пары строк кода.
На данном этапе необходимо выполнить довольно значительный объем работы,
для того чтобы интегрировать процедуру проведения опроса в какую-либо другую
web-страницу, поскольку для этого потребуется скопировать соответствующую ин-
формацию как из файла с расширением .aspx, так и из файла "с кодом поддерж-
ки", который имеет расширение .aspx.cs. Мы будем создавать управляющий
элемент таким образом, что в качестве дополнительной возможности он будет вы-
водить страницу с опросом, и если данный пользователь уже проголосовал ранее,
он сможет только ознакомиться с результа-
тами опроса — страница голосования выво-
диться не будет.
Для того чтобы создать пакет для прове-
дения голосования, нужно разработать не-
стандартный управляющий элемент, который
будет реализован в классе, наследуемом от
класса control, описанного в .NET Framework.
Для начала в Visual Studio.NET следует
щелкнуть правой кнопкой мыши на проекте
web-приложения (poiiw), выбрать меню Add,
а в нем пункт Add New Item. В появившемся
диалоговом окне нужно выбрать иконку
Web Custom Control и ввести в поле Name
Poiicontroi.cs, как это проиллюстрировано
на рисунке слева.
Хотя Visual Studio.NET генерирует несколько строк кода, для того чтобы нам
было с чего начинать (при этом реализуется свойство Text создаваемого управля-
ющего элемента), однако нам все это не понадобится, поэтому для начала работы
нужно привести класс к еще более простому виду:
using System;
using System,Web.UI;
using System.Web.Ul.WebControls;
using System.ComponentModel;
namespace PollW
III <summary>
/// Краткое описание класса PollControl.
/// </summary> ,
public class PollControl : WebGontrol
{ ' .• . ... •• •• •• • •••. . • • • . • ' • - • • - • ; • . . .. • . , . • . , '
protected override void Render(KtmlTextWriter output)
output.Write("This is my Poll Control");
: / Это управляющий элемент для проведения опросов /
»J
Л ck*s :ot --testae, an ASP-KET server <c*v/c*
Cancel
Практический пример 1 — юеЪ-сайт для проведения опросов 791
Заметьте, что все, что на самом деле необходимо выполнить,— это создать
класс, который наследуется от System.web.ui.webcontrois.webcontroi. Сделав
это, мы реализуем переопределение метода Render о , в котором генерируем
HTML, который мы планируем выводить. Существует также возможность напи-
сать такой управляющий элемент, который будет создавать себя сам посредством
объединения других управляющих элементов, но в настоящем примере мы будем
генерировать HTML.
IS
H
Web Service
Component
•MS
Web User
Control
Data fotm
Wizard
Class
Data Set
HTML Рг$е
zi
•: j defaults. a$px
Попытаемся вставить в страницу
простой нестандартный управляющий
элемент и посмотреть, что для этого
придется сделать. Во-первых, добавим
к нашему проекту новую страницу,
КОТОруЮ назовем default2.aspx И КО-
торую мы будем использовать в ка-
честве контейнера нестандартного
управляющего элемента. Это дости-
гается за счет использования пункта
Add Web Form из меню Project, как
показано на рисунке слева.
Мы приведем в порядок содержи-
мое default2.aspx, чтобы ничего не
усложнять и четко представлять себе,
что происходит:
<%@ Page language="c#" Codebehind= default2.aspx.es" %>
. •.-.; . < h e a d > . . * . . : •: ;
< / h e a d > •,•••• . • • . : . • . ; . • • . ' : ; •/•• .:• . : • • • • . , . : • • : ' ' - ' : :-. .' • ... . .
• •'• ' ; • / • : : < b o d y > '' : ' :- • ' •' •'' ; . ' . ' • ; - .•• . ••• • '' : ^ ••••;/ . . . .
: : . ; . . ' < / b o d y > . •' '' •' '''.•• • • ' . . • ' • • ' . • . , • • • • ; • • . . • • • • - • • • • • : . . •
</html>
Для того чтобы вставить управляющий элемент для проведения опросов в стра-
ницу, следует добавить всего две строки:
<%@ Page language^1 с#" Codebehind= default2.aspx.es1' ......%>
<%@ Register TagPref ix="Wrox" Namespace="PollWn Assembly:=tlPollW11 %>
<html>
<head>
</head>
<body>
<Wrox:PollControll runat="server"></Wrox:PollControl>
</body>
</html>
В первой из двух добавленных строк объявляется префикс тегов TagPrefix
с именем Wrox. Это означает, что если ASP.NET встречает на странице любой
серверный управляющий элемент, который начинается с <wrox:, то система начи-
нает осуществлять поиск в пространстве имен Poiiw в модуле Poiiw управляющего
элемента с таким же именем. В данном случае мы указали <wrox:Poiicontroi>,
поэтому ASP.NET будет осуществлять поиск в пространстве имен Poiiw класса
Poiicontroi. Вторая добавленная строка представляет собой серверный управляю-
щий элемент, и именно в ней мы фактически вставляем опрос в страницу. Обратите
792 Практический пример
Fife Edit View Favorites Tools Help
Г Personal Bat ^Search 3j Favorites
-jhttp.7/localhost/poHw/defdulK2.aspx
This is my Poll Control
zl
внимание на то, что мы включили
в нее атрибут runat. Если же теперь
ОТКрЫТЬ файл def a u l t2 . aspx В Своем
браузере, то можно увидеть текст,
выводящийся методом Poiicontroi
Render () (см. рис. слева).
Мы успешно вставили в стра-
ницу нестандартный управляющий
элемент; теперь добавим в метод
Render о , находящийся в файле
Poiicontroi.cs, код, который по-
зволит выводить опрос на экран.
Упомянутый код оказывается практически идентичным коду для "файла поддерж-
ки" default.aspx.cs. He забудьте, что в начале файла необходимо поместить опе-
ратор using Polling:
protected override void Render(ЯtmlTextWriter output)
s t r i n g H t m l = * w ; • •'••;•••• . ' r ... .••••' y : .'.-.• • • • . ' • • : • • '•
Poll aPoll = Poll.Current();
Html += aPoll,Question + *<br /xbr />"',
f or (int i=l'•; i<=aPoll. AnswerCount; i++}
I l o c e infc»
HtmlLink += *<a href=\//vote.aspx?id="+i + ll\
HtmlLink += "Scnbsp; * + aPol 1 Answers [i] + "<br />"}
}
output.Write(Html);
fife £dfc View Favorites
Toosшl шHшeplшш
:avorites
.aspx jj 4^Sc i Links
Если теперь построить проект заново и открыть файл defauit2. aspx, то можно
увидеть то же самое, что и в случае default.aspx за исключением того, что эту
версию гораздо проще использовать повторно. Все, что необходимо сделать для
того чтобы использовать ее на некото-
ром сайте, — это сначала убедиться
в доступности файла vote.aspx, затем
убедиться в доступности модулей, со-
держащих классы Poll И PollControl,
после чего просто добавить две строки
кода к странице ASP.NET. В резуль-
тате этих действий получилась некая
оболочка, объемлющая отдельные
функциональные возможности. Мы
назвали ее управляющим web-элемен-
том. Этот подход позволяет объеди-
нять различные функциональные воз-
можности и облегчает их повторное
использование. Результат можно ви-
деть на рисунке справа.
What development language do you primarily use?
Vote C#
VoteC-H- . ,
Vote Java
Vote JavaScript
Vote Visual Bask
fe] Done trarjet A
Практический пример 1 — weh-caum для проведения опросов 793
Трехзвенность и приложение Poll
Уровень
представления
Уровень
бизнес-логики
Уровень
данных
Консольное
приложение
Приложение
Windows Forms
Web-службы
Класс Poll
C:\Polls.xml
Приложение
WebForm
Итоги
Нами создано приложение, которое может функционировать и как консольное
приложение, и как web-служба, и как приложение Windows Forms, и как Интернет-
интерфейс ASP.NET. Для того чтобы наглядно представлять себе, как все эти
отдельные части соотносятся друг с
другом, слева приведена диаграмма,
на которой изображены основные
элементы приложения Poll и проил-
люстрировано, каким образом это
приложение вписывается в модель
трехзвенной архитектуры, состоящую
из уровня данных, уровня бизнес-
логики и уровня представления.
Заметьте, что несмотря на то,
что приложение Windows Forms
обычно взаимодействует с классом
Poll посредством web-службы, ему не придется этого делать, если оно будет запу-
щено на той же машине, что и класс Poll (другими словами, на web-сервере).
Данный практический пример позволил продемонстрировать, каким образом
можно применить теорию по С# и .NET, изучавшуюся нами на протяжении всей
настоящей книги, в ситуации из реальной жизни, где перед нами возникла задача
создать приложение, которое было бы доступно посредством различных пользова-
тельских интерфейсов. В этом практическом примере воссоздается ситуация из
реальной жизни в том смысле, что мы на первой итерации создаем первоначаль-
ную версию приложения, а затем добавляем в него новые функциональные воз-
можности. В мире коммерческих продуктов программное обеспечение не пишется —
оно модифицируется, и именно это мы и попытались здесь продемонстрировать.
В качестве краткого напоминания перечислим приемы и технологии, которые
были использованы в этом практическом примере:
• Бизнес-объекты (класс Poll)
• Генерирование исключительных ситуаций
Q Нестандартный управляющий элемент ASP.NET
• Серверные управляющие элементы ASP.NET
• Статически методы класса
• Наборы данных XML и ADO.NET
• Web-службы и web-методы
• System.Timer (таймер)
• НТТР-куки
• Класс HttpContext
794 Практический пример
• Уровень представления, поддерживающий множество интерфейсов
• Консольное приложение
• Приложение Windows Forms
• Трехзвенная архитектура
• Объектно-ориентированная разработка
• Тестирование программного обеспечения
Надеемся, что вы получили удовольствие от чтения этой главы, а информация,
которую вы из нее почерпнули, вдохновит вас на создание своего собственного
приложения на С#. .NET в сочетании с такими методами, как трехзвенная архи-
тектура и объектно-ориентированная разработка, оказывается чрезвычайно мощ-
ной платформой для разработки программных приложений, а С# — наиболее
эффективным из всех языков программирования, входящих в состав .NET.

Категория: информатика | Просмотров: 1598 | Добавил: basic | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
Календарь
«  Февраль 2010  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

krutoto.ucoz.ru
Бесплатный конструктор сайтов - uCoz