Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

 eventDetails1.DataSource = eventTable; eventDetails2.DataSource = eventTable;

 if (!this.IsPostBack) {

System.DateTime trialDate = System.DateTime.Now;

calendar.SelectedDate = getFreeDate(trialDate);

this.DataBind;

 } else {

eventDetails1.DataBind;

eventDetails2.DataBind;

 }

}

Большая часть кода остается без изменений, необходимо только использовать

Application["ds"]
вместо получения
DataSet
.

Необходимо также изменить

submitButton_Click
для использования метода
AddData
службы Web. В этом случае также большая часть кода остается без изменений:

protected void submitButton_Click(object sender, System.EventArgs e) {

 foreach (System.Web.UI.WebControls.WebControl validator in this.Validators) {

validator.Enabled = true;

 }

 this.Validate;

 if (this.IsValid) {

String attendees = "";

foreach (ListItem attendee in attendeeList.Items) {

if (attendee.Selected) {

attendees += attendee.Text + " (" + attendee.Value + "), ";

}

}

attendees += " and " + nameBox.Text;

String dateString = calendar.SelectedDate.Date.Date.ToShortDateString;

Service1 dataService = new Service1;

int queryResult =

dataService.AddEvent(eventBox.Text, roomList.SelectedItem.Value,

attendees, dateString);

if (queryResult == 1) {

resultLabel.Text = "Event Added";

ds = dataService.GetData;

Application.Lock;

Application["ds"] = da;

eventTable = ds.Tables["Events"];

calendar.SelectedDate = getFreeDate(calendar.SelectedDate.AddDays(1));

eventDetails1.DataSource = eventTable;

eventDetails1.DataBind;

eventDetails2.DataSource = eventTable;

eventDetails2.DataBind;

} else {

resultLabel.Text = "Event not added due to DB access problem.";

}

 } else {

validationSummary.Enabled = true;

 }

}

Фактически, мы существенно упростили систему. Это часто бывает при правильном проектировании служб Web — можно забыть о большей части работы приложения и вместо этого сосредоточиться на работе пользователя.

К этому коду почти не требуется комментариев. Продолжающееся использование

queryResult
является дополнительной премией, а блокирование приложения существенно, как уже было отмечено.

Приложение Web

PCSWebApp4
выглядит и функционирует точно также, как
PCSWebApp3
, но выполняется существенно лучше. Можно также очень легко использовать эту же службу Web для других приложений, просто выводя на странице мероприятия, например, или редактируя мероприятия, имена почетных гостей и помещения, если добавить несколько других методов. Все это не разрушит
PCSWebApp4
, так как мы будем просто игнорировать все вновь созданные методы.

Заключение

В этой главе мы увидели, как создавать и использовать службы Web с помощью C# и платформы разработки VS.NET. Сделать это достаточно просто, но какая это невероятно полезная возможность. Уже сейчас мы видим множество объявлений о новых службах Web и можно ожидать, что скоро они будут повсюду.

Также было отмечено, что службы Web могут быть доступны с любой платформы. Это связано с простотой протокола SOAP, который не ограничивается платформой .NET.

Пример, разработанный в этой главе, иллюстрирует, как можно легко создавать распределенные приложения .NET. Здесь предполагается, что для тестирования используется один сервер, но почему бы службу Web полностью не отделить от клиента. Она может даже находиться на отдельном от базы данных сервере, если требуется дополнительная связь данных.

Использование кэширования данных является другой важной техникой, которую необходимо освоить для использования в крупномасштабных приложениях, когда имеются тысячи одновременно присоединяющихся пользователей. Конечно, в такой ситуации использование Microsoft Access в качестве источника данных может оказаться не лучшей идеей.

  • Читать дальше
  • 1
  • ...
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: