Белорусская цифровая библиотека





Сегодня в номере
  • Колонка редактора
    Новости
  • altWebDeveloper #5
  • Наши диски
  • Новые данные о популярности браузеров
  • HotLog изучает свою аудиторию
  • Microsoft представляет новое решение для локализации приложений
  • Конкурс для разработчиков - Финальная статистика конкурса
  • Червь Plexus использует наработки автора Mydoom
  • Sun все же переведет Java на принципы open-source
  • Информация о новой версии Longhorn
  • Вышла бета-версия Windows Media Player 10
  • Знакомиться в интернете становится модным
  • Новости .NET
  • "Десерт": Microsoft получила патент на изобретение двойного щелчка мышью
    Microsoft .NET
  • Углубление в C#
  • XML за 20 минут!
  • Программное создание шаблонов серверных элементов управления
  • Язык описания веб-сервисов (WSDL)
  • Internet Information Server (IIS) в вопросах и ответах
  • Построение Web-приложений средствами Visual Studio .NET
  • Создание GUID в ASP-приложении при помощи VB-компонента
  • Upload файлов с уникальными именами в ASP.NET
  • Уведомление о фатальной ошибке в приложении ASP.NET
    Web-promoting
  • Длинные доменные имена - не панацея, но используйте это!
  • Анализ спроса и повышение видимости в поисковых машинах
  • Как правильно проиндексировать сайт построенный на фреймах
  • Подготовка сайта для индексирования в поисковых системах
  • Технология поиска Google
    Дизайн
  • Этапы разработки сайта
  • 10 обманок наивного дизайнера
  • Как сделать баннер
    Design +
  • Как правильно выбрать дизайн-студию?
  • Составление цены на сайт - prise design
  • Анкета для заказчика
    Новые статьи
  • The Code Project
  • DotNetJunkies
  • Microsoft
    .NET on-line
  • Англоязычные сайты
  • Русскоязычные сайты
    Для души
  • От издателя
  • Виктор Пелевин
    Святочный киберпанк или "рождественская ночь-117.DIR"

  • Татьяна Матвеева
    DEEP DAWN

    Наши контакты
  • Реклама
  • Наши рассылки
  • Авторам, партнерам, редакторам
  • Сайт журнала Web
  • Студия web-дизайна Web
    Рассылка журнала

    Рассылки@Mail.ru
    Новости altWebDeveloper


    © 2004 CAS "altDesign"
    Все права защищены

  • ..: Microsoft.NET: Построение 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.




    При перепечатке любого материала с журнала или с сайта, видимая ссылка на источник http://altwebdeveloper.nm.ru и все имена, ссылки авторов обязательны.

    © 2004 CAS "altDesign"
    © Валерий В. Макеев (deepInfinity)


    CAS "altDesign" - создание сайтов от простых домашних страничек до крупных сетевых порталов.



    @ library.by