Создание первого приложения на ASP.NET MVC 4

Создание проекта

Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core

Последнее обновление: 31.10.2015

Сейчас мы создадим первое примитивное приложение на mvc 4, которое призвано дать некоторое начальное понимание работы mvc. В качестве шаблона проекта мы выберем шаблон Empty и создадим мини-приложение с нуля.

Что будет делать наше приложение? Приложение будет представлять примитивную эмуляцию книжного магазина, в котором мы сможем просматривать список книг и оформлять покупку.

Итак, откроем Visual Studio или Visual Web Developer, в меню выберем File -> New Project.. и среди шаблонов проектов выберем шаблон ASP.NET MVC 4 Web Application и как-нибудь назовем новый проект, например, BookStore. Затем в окне создания нового проекта ASP.NET MVC 4 Web Application выберем шаблон Empty:

После этого будет создан по сути пустой проект, в котором еще ничего нет. Нам предстоит наполнить его.

Во-первых, нам предстоит работать с данными, которые должны быть представлены некими моделями. Для нашей задачи мы можем выделить две области данных: информация о книге и информация, связанная с оформлением покупки. Соответственно, мы создадим две модели. Итак, в нашем приложении уже определена папка Models. В ней будут находиться наши модели. Нажмем на эту папку правой кнопкой мыши и в появившемся меню выберем Add->Class.... Назовем новый класс или модель Book и добавим в него код, описывающий модель книги:

namespace BookStore.Models
{
    public class Book
    {
        // ID книги
        public int Id { get; set; }
        // название книги
        public string Name { get; set; }
        // автор книги
        public string Author { get; set; }
        // цена
        public int Price { get; set; }
    }
}

Теперь таким же образом создадим класс для оформления покупки - класс Purchase:

using System;
namespace BookStore.Models
{
    public class Purchase
    {
        // ID покупки
        public int PurchaseId { get; set; }
        // имя и фамилия покупателя
        public string Person { get; set; }
        // адрес покупателя
        public string Address { get; set; }
        // ID книги
        public int BookId { get; set; }
        // дата покупки
        public DateTime Date { get; set; }
    }
}

Условности при создании моделей

В данном случае надо сказать, что в данном случае действуют некоторые условности. Поскольку база данных и соответствующая ей модель должна иметь первичный ключ (Primary Key), то мы его должны естественно определить. У нас есть два пути определения ключа. В данном случае мы использовали определение ключа по названию свойства. Для этого модель должна содержать свойство с именем Имя_моделиId или просто Id. Так, у нас в модели Purchase определено свойство PurchaseId, то есть данное свойство является первичным ключом. Второй способ состоял в определении ключа с помощью атрибута Key, установленным над нужным свойством. Более подробно об этом мы поговорим в главе, где будем обсуждать модели.

Создание контекста данных и EntityFramework

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

Поскольку мы создали проект по шаблону Empty, который практически не содержит никаких файлов, то нам надо будет добавить в проект файлы EntityFramework для взаимодействия с БД. Если бы мы создавали проект по другому шаблону, например, Basic или Internet Application, то библиотека EntityFramework уже была бы добавлена по умолчанию.

Итак, добавим в проект поддержку EntityFramework и для этого нажмем правой кнопкой мыши в структуре проекта на узел References (который содержит подключенные в проект библиотеки) и в появившемся меню выберем Manage NuGet Packages...

В окне управления пакетами NuGet в правом верхнем углу введите в поле поиска Entity и нажмите Enter. После этого все найденные пакеты, которые имеют отношение к запросу, будут отображены в среднем столбце, как показано на рисунке:

Затем устанавливаем пакет, и после того, как закончится установка, мы можем использовать все преимущества EntityFramework для управлением данными.

После установки создадим контекст данных. Он нужен для облегчения доступа к БД на основе некоторой модели. Добавим в папку Models новый класс BookContext со следующим содержанием:

using System;
using System.Collections.Generic;
using System.Web;
using System.Data.Entity;
 
namespace BookStore.Models
{
    public class BookContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
        public DbSet<Purchase> Purchases { get; set; }
    }
}

Чтобы создать контекст, нам надо унаследовать новый класс от класса DbContext. Свойства типа public DbSet<Book> Books { get; set; } помогают получать набор данных определенного типа (в данном случае типа Book).

В итоге EntityFramework сам возьмет на себя заботу по созданию базы данных. То есть в данном случае мы будем использовать так называемый подход Code First - у нас есть модели, и по ним фреймворк будет создавать таблицы в базе данных.

Наконец, укажем строку подключения. Откроем файл web.config, найдем секцию configSections и после нее вставим секцию connectionStrings:

<connectionStrings>
    <add name="BookContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename='|DataDirectory|\Bookstore.mdf';Integrated Security=True"
 providerName="System.Data.SqlClient" />
</connectionStrings>

Тем самым мы определяем путь к базе данных, которая потом будет создаваться. Выражение |DataDirectory| представляет заместитель, который указывает, что база данных будет создаваться в проекте в папке App_Data. Позднее мы подробнее разберем настройки подключения к БД.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850