asp.net-core-mvc учебник
Начало работы с asp.net-core-mvc
Поиск…
замечания
В этом разделе представлен обзор того, что такое asp.net-core-mvc, и почему разработчик может захотеть его использовать.
Следует также упомянуть любые крупные темы в asp.net-core-mvc и ссылки на связанные темы. Поскольку документация для asp.net-core-mvc является новой, вам может потребоваться создать начальные версии этих связанных тем.
Установка или настройка
Установка Visual Studio
Если у вас нет установленной Visual Studio, вы можете скачать бесплатную версию Visual Studio Community Edition здесь . Если вы уже установили его, вы можете перейти к следующему шагу.
Создание приложения ASP.NET Core MVC.
- Откройте Visual Studio.
- Выберите «Файл»> «Новый проект».
- Выберите «Веб» в соответствии с выбранным вами языком в разделе «Шаблоны» слева.
- Выберите предпочтительный тип проекта в диалоговом окне.
- Необязательно: выберите .NET Framework, на которую вы хотите настроить таргетинг
- Назовите свой проект и укажите, хотите ли вы создать решение для проекта.
- Нажмите «ОК», чтобы создать проект.
Вам будет предложено другое диалоговое окно для выбора шаблона, который вы хотите использовать для проекта:
Каждое из описаний самоочевидно. Для этого первого проекта выберите веб-приложение , которое будет содержать все конфигурации по умолчанию, аутентификацию и некоторый существующий контент.
Поскольку это приложение для внедрения и не требует никакой защиты или проверки подлинности, вы можете изменить параметр проверки подлинности на «Нет аутентификации» в правой части диалогового окна и нажмите «ОК», чтобы создать проект .
Затем вы должны увидеть новый проект в обозревателе решений:
Нажмите клавишу F5, чтобы запустить приложение и начать сеанс отладки, который запустит приложение в браузере по умолчанию:
Теперь вы можете видеть, что ваш проект запущен и запущен локально и готов в качестве отправной точки для создания вашего приложения.
PS: Используется Начало работы с темой asp.net-core из документации asp.net-core .
Добавить промежуточное ПО MVC
Если вы создали пустой проект или у вас еще нет mvc, настроенного в вашем приложении, вы можете добавить зависимость:
"Microsoft.AspNetCore.Mvc": "1.0.1"
В файл project.json
разделе "dependencies"
.
И зарегистрируйте промежуточное ПО MVC в вашем классе Startup:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Обратите внимание, что у нас есть как services.AddMvc()
и services.AddMvcCore()
. Если вы начинаете с asp.net core
, или хотите, чтобы он был таким, как вы, вы должны поддерживать его с помощью services.AddMvc()
. Но если вам нужен расширенный опыт, вы можете начать с минимального конвейера MVC и добавить функции, чтобы получить настраиваемую инфраструктуру с помощью services.AddMvcCore()
. См. Это обсуждение для получения дополнительной информации о AddMvcCore
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
Теперь вы можете сказать своему разработчику приложений использовать mvc:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
или с маршрутизацией по умолчанию:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Основы инъекции зависимостей
Практически любой контроллер нуждается в некоторых внешних зависимостях для работы. Ниже приведен способ настройки объекта зависимостей (или его фабрики) и передачи его контроллеру. Это поможет сохранить разделение проблем , сохранить код понятным и проверяемым.
Скажем, у нас есть интерфейс и его реализация, которая нуждается в некоторых значениях из config в своем конструкторе:
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
Он используется в некоторых классах контроллера:
public class SomeController : Controller
{
private reanonly ISomeDependency dependency;
public SomeController(ISomeDependency dependency)
{
...
this.dependency = dependency;
}
...
public async Task<IEnumerable<string>> Get(string key) =>
await dependency.GetItemsAsync(key);
}
Можно вставить эту зависимость в конструктор вызывающих services.AddTransient
контроллера Startup.ConfigureServices
внутри метода Startup.ConfigureServices
:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder().
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
...
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
...
services.AddTransient(serviceProvider =>
new MyDependency(Configuration["Data:ConnectionString"]));
}
...
}
Здесь Data:ConnectionString
- это путь к настройке в файле appsettings.json
:
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
Пожизненное управление
Для управления временем жизни инжектируемого объекта наряду с AddTransient
еще два варианта: AddSingleton
и AddScoped
. Последнее означает, что время жизни объекта ограничено HTTP-запросом.
Версии
Официальная дорожная карта @ Github
Версия | Объявления | Дата выхода |
---|---|---|
RC1 * | 1.0.0-rc1 | 2015-11-01 |
RC2 * | 1.0.0-RC2 | 2016-05-16 |
1.0.0 | 1.0.0 | 2016-06-27 |
1.0.1 | 1.0.1 | 2016-09-13 |
1.0.1 | 1.0.1 | 2016-09-13 |
1,1 | 1.1.0 | Q4 2016 / Q1 2017 |
1.2 | 1.2.0 | Q1 2017 / Q2 2017 |
* Ссылки на годовые кварталы (Q1, Q2, Q3, Q4) основаны на календарных