Пошаговое руководство. Создание нового веб-узла, использующего формирование шаблонов

Visual Studio 2010

Обновлен: Ноябрь 2007

В этом руководстве демонстрируется создание простого веб-приложения, использующего платформу динамических данных ASP.NET. С помощью платформы динамических данных можно создать управляемый данными веб-узел при минимальном количестве дополнительного кода или без такового. Важной возможностью платформы динамических данных является механизм формирования шаблонов. Если механизм формирования шаблонов включен на веб-узле на платформе динамических данных, ASP.NET анализирует модель данных и динамическим образом создает веб-страницы для каждой таблицы. На этих автоматически сформированных веб-страницах реализованы возможности отображения, вставки, удаления и редактирования для каждой таблицы.

В данном пошаговом руководстве будет построено приложение, отображающее страницы данных из учебной базы данных AdventureWorks.

Просмотрите видеоролик, демонстрирующий эту возможность.

Для выполнения этого пошагового руководства потребуется следующее.

  • Microsoft Visual Studio 2008 с пакетом обновления 1 или Visual Web Developer 2008, экспресс-выпуск с пакетом обновления 1.

  • Учебная база данных AdventureWorks или AdventureWorksLT. Сведения о загрузке и установке учебной базы данных SQL Server см. в разделе Microsoft SQL Server Product Samples: Database на узле CodePlex. Важно установить правильную версию базы данных, соответствующую используемой версии SQL Server (Microsoft SQL Server 2005 или Microsoft SQL Server 2008). 

Веб-узлы на платформе динамических данных можно создавать в Visual Studio с использованием шаблона веб-узла.

Создание веб-узла на платформе динамических данных

  1. Запустите Visual Studio или Visual Web Developer.

  2. В меню Файл выберите пункт Создать веб-узел. Если этот пункт отсутствует, выберите команду Создать, после чего выберите Веб-узел.

    Откроется диалоговое окно Создать веб-узел.

  3. В разделе Установленные шаблоны Visual Studio выберите Веб-узел Dynamic Data (чтобы использовать модель LINQ-to-SQL) или Веб-узел сущностей Dynamic Data (чтобы использовать ADO.NET Entity Framework).

  4. В поле Расположение выберите пункт Файловая система, а во второе поле введите имя папки, в которой будут храниться страницы веб-узла.

    Например, введите имя папки C:\WebSites\DynamicData.

  5. В списке Язык выберите предпочтительный язык программирования.

  6. Нажмите кнопку ОК.

  7. Visual Studio создаст папку и структуру для веб-узла.

Следующим шагом является добавление базы данных в проект. Для этого нужно создать классы, представляющие сущности баз данных с помощью средства, реализованного в Visual Studio, и затем зарегистрировать контекст данных для использования платформой динамических данных. Существуют следующие варианты создания модели базы данных на основе выбранного шаблона.

  • Если веб-узел был создан с помощью шаблона Веб-узел Dynamic Data, необходимо создать модель базы данных с использованием LINQ-to-SQL.

  • Если веб-узел был создан с помощью шаблона Веб-узел сущностей Dynamic Data, необходимо создать модель базы данных с использованием платформы Entity Framework.

Дополнительные сведения о выборе модели данных см. в разделе Руководство по платформе динамических данных ASP.NET.

Добавление файла базы данных к проекту

  1. Если на веб-узле еще нет папки App_Data, тогда в Обозревателе решений щелкните правой кнопкой мыши проект, выберите пункт Добавить папку "ASP.NET", после чего щелкните App_Data.

  2. В Обозревателе решений щелкните правой кнопкой мыши папку App_Data и выберите команду Добавить существующий элемент.

    Откроется диалоговое окно Добавление существующего элемента.

  3. Введите расположение, в которое был установлен файл базы данных AdventureWorks (AdventureWorks_Data.mdf).

    Расположением по умолчанию для MDF-файла является C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf.

    Cc488469.alert_note(ru-ru,VS.100).gifПримечание.

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

Следующим шагом является создание модели данных. В зависимости от того, требуется ли использовать LINQ-to-SQL или ADO.NET Entity Framework для создания модели данных, применяются несколько различающиеся процедуры.

Создание модели данных с использованием LINQ-to-SQL

  1. Если веб-узел еще не содержит папку App_Code, то в Обозревателе решений щелкните правой кнопкой мыши проект, выберите команду Добавить папку ASP.NET и затем выберите App_Code.

  2. Щелкните правой кнопкой мыши папку App_Code и выберите команду Добавить новый элемент.

  3. В разделе Установленные шаблоны Visual Studio выберите Классы LINQ-SQL.

  4. В поле Имя введите имя модели базы данных.

    Например, можно ввести имя AdventureWorks.dbml.

  5. Нажмите кнопку Добавить.

    Откроется реляционный конструктор объектов.

  6. В реляционном конструкторе объектов щелкните ссылку Обозреватель серверов (в Visual Web Developer — Обозреватель баз данных).

  7. В Обозревателе серверов (Обозревателе баз данных) в разделе Подключения данных разверните узел файла базы данных, после чего разверните узел Таблицы.

  8. Перетащите все таблицы в реляционный конструктор объектов.

    Каждый таблица представлена как сущность с именем, соответствующим таблице базы данных.

  9. Сохраните файл AdventureWorks.dbml.

  10. В Обозревателе решений откройте файл AdventureWorks.designer.cs или AdventureWorks.designer.vb, находящийся в узле файла .dbml.

    Обратите внимание, что файл .dbml содержит класс AdventureWorksDataContext, представляющий базу данных. Кроме того, он содержит классы сущностей, в частности классы Product и Employee, представляющие таблицы базы данных. Конструктор без параметров для класса AdventureWorksDataContext считывает строку подключения из файла Web.config.

  11. Откройте файл Web.config.

    Обратите внимание, что элемент connectionStrings содержит строку подключения к базе данных AdventureWorks.

  12. Закройте файл класса и файл Web.config.

Создание модели данных для платформы Entity Framework

  1. Если веб-узел еще не содержит папку App_Code, то в Обозревателе решений щелкните правой кнопкой мыши проект, выберите команду Добавить папку ASP.NET и затем выберите App_Code.

  2. Щелкните правой кнопкой мыши папку App_Code и выберите команду Добавить новый элемент.

  3. В группе Установленные шаблоны Visual Studio выберите ADO.NET Entity Data Model.

  4. В поле Имя введите имя модели базы данных.

    Например, можно ввести имя AdventureWorks.edmx.

  5. Нажмите кнопку Добавить.

    Откроется окно мастера модели EDM.

  6. Щелкните Создать из базы данных.

    Это указывает, что нужно создать модель из базы данных.

  7. В поле Какое подключение ваше приложение должно использовать для работы с базой данных? выберите из списка файл AdventureWorks_Data.mdf.

  8. Убедитесь, что установлен флажок Сохранить настройки подключения сущности в Web.config как. Можно оставить имя строки подключения, используемое по умолчанию.

  9. Нажмите кнопку Далее.

    Мастер отображает страницу, где можно указать, какие объекты базы данных нужно включить в модель.

  10. Выберите узел Таблицы, чтобы выбрать все таблицы из базы данных. Можно оставить заданное по умолчанию пространство имен модели.

  11. Нажмите кнопку Готово.

    Откроется конструктор модели EDM ADO.NET. Закройте конструктор.

  12. В Обозревателе решений откройте файл AdventureWorks.designer.cs или AdventureWorks.designer.vb, находящийся в узле файла .edmx.

    Обратите внимание, что файл .edmx содержит класс AdventureWorksDataContext, представляющий базу данных. Кроме того, он содержит классы сущностей, в частности классы Product и Employee, представляющие таблицы базы данных.

  13. Откройте файл Web.config.

    Обратите внимание, что элемент connectionStrings содержит строку подключения к базе данных AdventureWorks.

  14. Закройте файл класса и файл Web.config.

Следующим шагом является регистрация модели данных для использования платформой динамических данных.

Регистрация контекста данных

  1. Откройте файл Global.asax.

  2. Если используется модель LINQ-to-SQL, следует добавить в метод RegisterRoutes следующую строку.

    model.RegisterContext(GetType(AdventureWorksDataContext), _
        New ContextConfiguration() With {.ScaffoldAllTables = True})
    

    model.RegisterContext(typeof(AdventureWorksDataContext), 
        new ContextConfiguration() { ScaffoldAllTables = true });
    

    Будет зарегистрирован контекст данных LINQ-to-SQL для использования платформой динамических данных и включено автоматическое формирование шаблонов модели данных.

    Cc488469.alert_caution(ru-ru,VS.100).gifВнимание!

    Включение формирования шаблонов может представлять угрозу безопасности, так как при этом открывается доступ ко всем таблицам в модели данных для операций отображения и редактирования. Дополнительные сведения см. в разделе Общие сведения о формировании шаблонов и шаблонах страниц платформы динамических данных ASP.NET.

  3. Если используется платформа Entity Framework, следует добавить в метод RegisterRoutes следующую строку.

    model.RegisterContext(GetType(AdventureWorksLT_DataModel.AdventureWorksLT_DataEntities), _
        New ContextConfiguration() With {.ScaffoldAllTables = True})
    

    model.RegisterContext(typeof(AdventureWorksLT_DataModel.AdventureWorksLT_DataEntities), 
        new ContextConfiguration() { ScaffoldAllTables = true });
    

    Будет зарегистрирован контекст данных Entity Framework для использования платформой динамических данных и включено автоматическое формирование шаблонов модели данных.

    Cc488469.alert_caution(ru-ru,VS.100).gifВнимание!

    Включение формирования шаблонов может представлять угрозу безопасности, так как при этом открывается доступ ко всем таблицам в модели данных для операций отображения и редактирования. Дополнительные сведения см. в разделе Общие сведения о формировании шаблонов и шаблонах страниц платформы динамических данных ASP.NET.

  4. Сохраните изменения и закройте файл Global.asax.

Теперь можно проверить работу только что созданного веб-узла на платформе динамических данных.

Тестирование веб-узла

  1. В Обозревателе решений щелкните правой кнопкой мыши страницу Default.aspx, после чего выберите команду Просмотр в обозревателе.

    На странице отображается список таблиц, добавленных в модель данных.

  2. Выберите одну из таблиц. Например, выберите таблицу Products.

    Появится страница, содержащая данные из выбранной таблицы. Обратите внимание, что для таблиц, содержащих поля внешних ключей, приводится ссылка на страницу сведений о связанной таблице. Если таблица является родительской таблицей в связи "один ко многим", приводится ссылка на страницу списка дочерней таблицы.

  3. Нажмите кнопку Удалить для удаления записи из таблицы.

  4. Для перемещения по записям нажимайте номера страниц.

  5. Нажмите кнопку Правка для изменения записи в таблице.

  6. Измените значения и затем нажмите кнопку Обновить или нажмите кнопку Отмена для отмены операции изменения.

  7. В нижней части страницы нажмите кнопку Вставить новый элемент, чтобы создать новую запись.

    Появится страница, содержащая поля ввода данных.

  8. Введите информацию для новой записи, после чего нажмите кнопку Вставить (или нажмите кнопку Отмена, чтобы отменить операцию вставки).

  9. После окончания закройте обозреватель.

В данном пошаговом руководстве рассматривается создание простого веб-узла на платформе динамических данных без составления дополнительного кода. С этого этапа можно начать изучение возможностей платформы динамических данных и расширить функциональность платформы динамических данных по умолчанию.

Показ: