Построение Web-приложений средствами Visual Studio .NET

Автор: Виктор Ашик, "Компьютер-Информ"

Образование — это то, что остается, когда мы уже забыли все, чему нас учили.
Джордж Галифакс

B этом мире нет ничего постоянного, все куда-то движется и во что-то превращается, как сказал один из героев «Алисы в Стране Чудес». Но если некоторые изменения в природе занимают тысячелетия, то прогресс информационных технологий летит совершенно неудержимо.

Всего каких-то десять-пятнадцать лет назад самыми передовыми среди персональных компьютеров были клоны IBM PC/XT, а шедевром программного обеспечения для них — убогая среда DOS. За эти годы сменились пять поколений операционных систем Microsoft (DOS — Windows 3 — Windows 95 — Windows NT — Windows 2000), корпоративные сети ушли от специализированных внутренних протоколов к универсальному TCP/IP, а люди перестали относиться к компьютеру как к чему-то сверхъестественному. Языков программирования развелось превеликое множество, что в перемножении на количество систем, в которых могут выполняться приложения, написанные на этих языках, дает такое количество комбинаций, что протестировать их все становится весьма затруднительно, а то и вовсе нереально.

В сложившихся обстоятельствах появление .NET Framework, новой среды выполнения от фирмы Microsoft, позволяющей абстрагироваться от типа операционной системы, на которой работает приложение, является спасательным кругом в море систем. Но, как показал опыт Java, без визуального средства быстрой разработки Web-приложений даже очень хорошую среду выполнения ждет удел инструмента для написания бизнес-логики, потому как установка дополнительной среды выполнения на всех клиентах — задача далеко не всегда выполнимая. Помимо этого, скорость модернизации вычислительной техники на предприятиях зачастую отстает от роста требований приложений к ресурсам этой самой техники. Таким образом, использование рабочих мест в роли тонких клиентов, где системой отображения информации является браузер (Internet Explorer, Netscape Navigator, Opera, Mozilla и т. п.) становится более чем актуальной задачей. Visual Studio .NET позволяет решить эту задачу самым изящным способом.

Для того чтобы продемонстрировать методы построения Web-приложений при помощи Visual Studio .NET, создадим с нуля решение для учета прочтенных авторизованных курсов Microsoft. Для хранения информации будем использовать реляционную базу данных (Microsoft SQL Server), в которой будем создавать таблицы:

Cources(CourseID, Title, nDays) — каталог курсов,
Customers(CustID, Name) — список клиентов,
Trainers(TrainerID, Name) — список преподавателей,
Classes(ClassID, CourceID, StartDate, EndDate, TrainerID) — проведенные занятия,
Students(ClassID, CustID) — факт посещения курса клиентом, задает отношение «многие-ко-многим» между таблицами Classes и Customers.

Для создания таблиц вовсе не обязательно вспоминать конструкции DDL (Data Definition Language) языка SQL, достаточно воспользоваться средствами Visual Studio .NET. Запускаем Visual Studio .NET и создаем новый проект: File->New->Project. Выбираем тип проекта Visual C# Project, шаблон ASP.NET Web Application. В поле Location задаем название приложения и сервер, на котором оно будет выполняться. Если на машине с Visual Studio .NET установлен IIS, то предложенный по умолчанию вариант http://localhost/WebApplication1 подойдет, изменим только имя приложения WebApplication1 на Education.

Для создания базы данных необходимо подключиться к серверу SQL: View->Server Explorer. В появившемся окне Server Explorer щелкните правой кнопкой мыши на ветви Data Connections и из контекстного меню выберите Create New SQL Server Database. В открывшемся диалоговом окне Create Database введите название сервера, например, localhost, если SQL Server установлен на этой же машине, и название базы данных, в нашем случае: Education.

Теперь можно создавать таблицы, например, щелчком правой кнопки мыши на ветви Tables в окне Server Explorer вызвать контекстное меню и выбрать пункт New Table. В появившемся окне конструктора таблиц указываем названия полей и подходящие типы данных для таблицы Cources:

CourceID
int(4), Set Primary
Key (правой кнопкой мыши),

Title nDays
varchar(100),
tinyint(1), Default Value — 5.

Сохраняем таблицу: File->Save Table1, в диалоговом окне Choose Name указываем название таблицы: Cources. Аналогичным образом создаем оставшиеся таблицы, используя для ключевых полей тип int(4) с автоприращением (Identity — yes).

Затем объясним SQL Server про наличие связей между таблицами: запускаем конструктор таблицы для таблицы Cources через контекстное меню — Design Table. Из контекстного же меню конструктора таблицы выбираем Relationships.



Рисунок 1. Описание связей между таблицами

Создаем новую связь нажатием кнопки New, в качестве Primary Key Table выбираем Cources, Foreign Key Table оставляем Classes. В списках полей выбираем одноименные поля CourceID. Аналогично создаем связь с таблицей Trainers по полю TrainerID. Точно так же задаем связи между таблицей Students и таблицами Customers и Classes. Чтобы не повторять все эти операции при создании базы данных на «боевом», не учебном, сервере, можно сгенерировать сценарий создания базы данных на языке SQL DDL через меню Database->Generate Create Script.

Вносим в таблицы тестовые данные для отладки и приступаем к созданию Web-формы.

На созданную вместе с проектом форму WebForm1 нужно перетащить объекты для подключения к базе данных. Выбираем из меню View пункт Toolbox, из набора компонентов Data в появившемся окне Toolbox перетаскиваем объект sqlDataAdapter и бросаем на форму. В появившемся мастере Data Adapter Configuration Wizard переходим на следующий экран по кнопке Next, оставляем существующее подключение к базе, Next, строим запрос при помощи Query Builder, состоящий из таблиц Classes и Trainers:

SELECT Classes.ClassID, Classes.CourceID, Classes.StartDate, Classes.EndDate,Trainers.Name
FROM Classes INNER JOIN
Trainers ON Classes.TrainerID = Trainers.TrainerID

Затем завершаем мастер (Next, Finish). В результате на форме созданы два объекта: sqlDataAdapter1 и sqlConnection1. Для полного набора не хватает правил преобразования данных, заданных с помощью XML. Через контекстное меню для объекта sqlDataAdapter1 запускаем генератор этих правил командой Generate Dataset, в одноименном диалоговом окне оставляем значения по умолчанию (создать новый DataSet1) и нажимаем OK.

Отобразим на форме результат запроса. Для этого поместим в окне Toolbox объект DataGrid, перетащив его из набора компонентов WebForms. Для данного объекта из контекстного меню запускаем Property Builder. В качестве источника данных DataSource выбираем DataSet11, DataKeyField — ClassID. В разделе Columns снимаем флажок Generate columns automatically at run time и добавляем с помощью кнопки со стрелкой все поля, кроме ClassID, в правый список. Закрываем диалоговое окно кнопкой OK.



Рисунок 2. Построитель свойств объекта класса DataGrid

Проверим получившуюся форму, для чего компилируем проект: Build->Build Solution и запускаем форму: Debug -> Start Without Debugging. Не работает! Не хватает нескольких строк кода, дописанных руками. В Visual Studio .NET двойным щелчком на форме открываем исходный текст и в обработчике Page_Load дописываем:

if (! IsPostBack)
{
sqlDataAdapter1.Fill(dataSet11);
DataGrid1.DataBind();
}
Теперь все должно быть в порядке, проверяем сборкой и запуском без отладки, на странице отображаются данные.

Вывод: Visual Studio .NET — удобный визуальный инструмент для построения Web-приложений, который позволяет существенно упростить и ускорить создание Intranet.



Опубликовал admin
24 Окт, Воскресенье 2004г.



Программирование для чайников.