Симон Робинсон - C# для профессионалов. Том II

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "C# для профессионалов. Том II"
Описание и краткое содержание "C# для профессионалов. Том II" читать бесплатно онлайн.
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
Клиент приложения предварительного заказа помещения для проведения мероприятия
Используемый клиент является разработкой приложения Web PCSWebApp3 из предыдущей главы. Назовем это приложение PCSWebApp4 и воспользуемся кодом из PCSWebApp3в качестве начальной точки.
Сделаем два существенных изменения в проекте. Первое: удалим все непосредственные обращения к базе данных из этого приложения и воспользуемся вместо этого службой Web. Второе: введем хранилище уровня приложения из DataSet, возвращаемого из службы Web, которое обновляется только в случае необходимости, это значит, что на базу данных падает меньшая нагрузка.
Прежде всего в нашем новом приложении Web необходимо добавить ссылку Web на службу PCSWebSrv2/Service1.asmx. Это можно сделать точно таким же образом, как мы видели ранее в этой главе, определяя местонахождение файла .vsdisco и вызывая его eventDataService.
После этого добавляем код в Global.asax, по большей части, таким же образом, как это было сделано для службы Web. Этот код, однако, будет существенно проще. Сначала мы ссылаемся на службу Web и пространство имен System.Data:
namespace PCSWebApp4 {
...
using System.Data;
using eventDataService;
Затем заполняем множество данных (dataset) и помещаем его в хранилище данных уровня приложения с именем ds:
protected void Application_Start(Object sender, EventArgs e) {
Service1 dataService = new Service1();
DataSet ds = dataService.GetData();
Application["ds"] = ds;
}
Теперь DataSet доступно для всех экземпляров PCSWebApp4, т.е. несколько пользователей могут читать данные без какого-либо обращения к службе Web, то есть к базе данных.
Теперь, когда имеется это DataSet, необходимо изменить WebForm1.aspx.cs для его использования. Прежде всего можно удалить объявления oleDbConnection1, daAttendees, daRooms и daEvents, так как не будет осуществляться никакого обращения к базе данных. Затем необходимо изменить Page_Load() следующим образом:
private void Page_Load(object sender, System.EventArgs e) {
validationSummary.Enabled = false;
foreach (System.Web.UI.WebControls.WebControl validator in this.Validators) {
validator.Enabled = false;
}
ds = (DataSet)Application["ds"];
attendeeList.DataSource = ds.Tables["Attendees"];
roomList.DataSource = ds.Tables["Rooms"];
eventTable = ds.Tables["Events"];
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 в качестве источника данных может оказаться не лучшей идеей.
Наконец, стоит помнить, что потребителями службы Web не обязательно должны быть приложения Web. Нет причин, по которым нельзя использовать службы Web из приложений платформы Windows, что может оказаться привлекательным для корпоративных сетей интранет.
Глава 18
Специальные элементы управления
При разработке приложений Web случаются ситуации, когда доступные мощные инструменты разработки не вполне соответствуют требованиям для определенного проекта. Возможно, что заданный элемент управления работает не вполне так, как это требуется, или раздел кода, предназначенный для повторного использования на нескольких страницах, слишком сложен в руках нескольких разработчиков. В таких ситуациях существуют серьезные доводы в пользу специальных элементов управления. Специальные элементы управления могут, в самом простейшем виде объединить несколько существующих элементов управления вместе, возможно, с дополнительными свойствами, определяющими компоновку, или могут полностью отличаться от любых существующих элементов управления. Использование специального элемента управления настолько же просто, как и использование любого другого элемента управления в ASP.NET, что, конечно, облегчает кодирование web-сайтов.
В прошлом было сложно реализовывать такие специально созданные элементы управления, особенно в крупномасштабных системах, где требовались сложные процедуры регистрации для их использования. Даже в простых системах требования кодирования для создания специального элемента управления могли существенно усложнить процесс. Языки сценариев старых языков разработки Web также страдали от отсутствия возможности предоставить полноценный доступ к искусно созданной объектной модели, что приводило к низкой производительности в целом.
Платформа .NET предоставляет идеальное окружение для создания специальных элементов управления. Динамическое обнаружение сборок, что свойственно системе .NET делает установку на новом сервере Web посредством копирования структуры каталогов, содержащей код, вместе со всеми используемыми DLL. Кроме того, специальное внимание было уделено упрощению создания своих собственных элементов управления с помощью простых технологий программирования.
В этой главе мы рассмотрим два различных вида элементов управления:
□ Элементы управления пользователя — преобразование существующих страниц ASP.NET в элементы управления
□ Специальные элементы управления — объединение функций нескольких элементов управления, расширение существующих элементов управления и создание новых элементов управления с самого начала
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "C# для профессионалов. Том II"
Книги похожие на "C# для профессионалов. Том II" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Симон Робинсон - C# для профессионалов. Том II"
Отзывы читателей о книге "C# для профессионалов. Том II", комментарии и мнения людей о произведении.