asp.net-core-mvc Samouczek
Rozpoczęcie pracy z asp.net-core-mvc
Szukaj…
Uwagi
Ta sekcja zawiera przegląd tego, czym jest asp.net-core-mvc i dlaczego deweloper może chcieć z niego korzystać.
Powinien również wymieniać wszelkie duże tematy w obrębie asp.net-core-mvc i link do powiązanych tematów. Ponieważ dokumentacja dla asp.net-core-mvc jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Instalacja lub konfiguracja
Instalowanie programu Visual Studio
Jeśli nie masz zainstalowanego programu Visual Studio, możesz pobrać bezpłatną wersję Visual Studio Community Edition tutaj . Jeśli masz już zainstalowany, możesz przejść do następnego kroku.
Tworzenie aplikacji ASP.NET Core MVC.
- Otwórz Visual Studio.
- Wybierz Plik> Nowy projekt.
- Wybierz Sieć pod wybranym językiem w sekcji Szablony po lewej stronie.
- Wybierz preferowany typ projektu w oknie dialogowym.
- Opcjonalnie: wybierz .NET Framework, na który chcesz kierować reklamy
- Nazwij swój projekt i wskaż, czy chcesz utworzyć Rozwiązanie dla projektu.
- Kliknij OK, aby utworzyć projekt.
Zostanie wyświetlone inne okno dialogowe umożliwiające wybranie szablonu, którego chcesz użyć w projekcie:
Każdy z opisów jest zrozumiały. W przypadku tego pierwszego projektu wybierz opcję Aplikacja internetowa , która będzie zawierać wszystkie domyślne konfiguracje, uwierzytelnianie i niektóre istniejące treści.
Ponieważ jest to aplikacja wprowadzająca i nie wymaga żadnych zabezpieczeń ani uwierzytelniania, możesz zmienić opcję uwierzytelniania na Brak uwierzytelnienia po prawej stronie okna dialogowego i kliknąć OK, aby utworzyć projekt .
Powinieneś wtedy zobaczyć nowy projekt w Eksploratorze rozwiązań:
Naciśnij klawisz F5, aby uruchomić aplikację i rozpocząć sesję debugowania, która uruchomi aplikację w domyślnej przeglądarce:
Teraz możesz zobaczyć, że Twój projekt działa lokalnie i jest gotowy jako punkt wyjścia do zbudowania aplikacji.
PS: Używane Wprowadzenie do tematu asp.net-core z dokumentacji asp.net-core .
Dodaj oprogramowanie pośrednie MVC
Jeśli utworzyłeś pusty projekt lub nadal nie masz skonfigurowanego mvc w swojej aplikacji, możesz dodać zależność:
"Microsoft.AspNetCore.Mvc": "1.0.1"
Do pliku project.json
w "dependencies"
.
I zarejestruj oprogramowanie pośrednie MVC w swojej klasie Autostart:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMvc();
}
Zauważ, że mamy zarówno services.AddMvc()
i services.AddMvcCore()
. Jeśli zaczynasz od asp.net core
lub chcesz, żeby tak było, powinieneś korzystać z services.AddMvc()
. Ale jeśli potrzebujesz zaawansowanego doświadczenia, możesz zacząć od minimalnego potoku MVC i dodać funkcje, aby uzyskać niestandardową strukturę za pomocą services.AddMvcCore()
. Zobacz tę dyskusję, aby uzyskać więcej informacji o AddMvcCore
public void ConfigureServices(IServiceCollection services)
{
services
.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters(j => j.Formatting = Formatting.Indented);
}
Teraz możesz powiedzieć konstruktorowi aplikacji, aby używał mvc:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseMvc();
}
lub z domyślnym routingiem:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Podstawy wstrzykiwania zależności
Prawie każdy kontroler potrzebuje pewnych zewnętrznych zależności do działania. Oto sposób skonfigurowania obiektu zależności (lub jego fabryki) i przekazania go do kontrolera. Takie postępowanie pomoże utrzymać separację problemów , zachować przejrzystość kodu i możliwość testowania.
Powiedzmy, że mamy interfejs i jego implementację, która potrzebuje pewnych wartości z config w swoim konstruktorze:
public interface ISomeDependency
{
async Task<IEnumerable<string>> GetItemsAsync(string key);
}
public class SomeDependency : ISomeDependency
{
public SomeDependency(string connectionString)
{
...
}
...
}
Jest używany w niektórych klasach kontrolerów:
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);
}
Tę zależność można wstrzyknąć do konstruktora kontrolera wywołującego services.AddTransient
Startup.ConfigureServices
wewnątrz metody 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"]));
}
...
}
Tutaj Data:ConnectionString
to ścieżka do ustawienia w pliku appsettings.json
:
{
...
},
"Data": {
"ConnectionString": "some connection string"
}
}
Zarządzanie przez całe życie
Aby zarządzać czasem życia wstrzykiwanego obiektu, wraz z AddTransient
istnieją jeszcze dwie opcje: AddSingleton
i AddScoped
. Ostatni oznacza, że czas życia obiektu jest ograniczony do żądania HTTP.
Wersje
Oficjalna mapa drogowa @ Github
Wersja | Ogłoszenia | Data wydania |
---|---|---|
RC1 * | 1.0.0-rc1 | 01.11.2015 |
RC2 * | 1.0.0-rc2 | 2016-05-16 |
1.0.0 | 1.0.0 | 27.06.2016 |
1.0.1 | 1.0.1 | 13.09.2016 |
1.0.1 | 1.0.1 | 13.09.2016 |
1.1 | 1.1.0 | IV kwartał 2016 / I kwartał 2017 r |
1.2 | 1.2.0 | Q1 2017 / Q2 2017 |
* Odniesienia do kwartałów rocznych (I kwartał, II kwartał, III kwartał, IV kwartał) są oparte na kalendarzu