Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

ASP.NET Core: Eine Einführung
ASP.NET Core: Eine Einführung
ASP.NET Core: Eine Einführung
Ebook142 pages51 minutes

ASP.NET Core: Eine Einführung

Rating: 0 out of 5 stars

()

Read preview

About this ebook

Microsoft hat mit der Ankündigung von ASP.NET Core (ehemals ASP.NET vNext oder ASP.NET 5) einen Paradigmenwechsel für das Unternehmen eingeschlagen. ASP.NET Core ist ein plattformunabhängiges, quelloffenes und architektonisch durchdachtes Framework, das auf Linux- und Mac-Systemen entwickelt und auch publiziert werden kann. Komplementär zum Core Framework stellt Microsoft seine auf allen Betriebssystemen lauffähige Entwicklungsumgebung Visual Studio Code vor. Ab sofort sind.NET-Entwickler nicht mehr an Microsoft-Systeme gebunden und müssen auch nicht mehr nach alternativen Technologien Ausschau halten, wenn das Zielsystem nicht Microsoft ist. Umso wichtiger ist die frühestmögliche Konfrontation mit ASP.NET Core, um im Markt bestmöglich aufgestellt zu sein. Dieses Buch fokussiert sich auf die essentiellen Fragmente von ASP.NET Core und ermöglicht einen einfachen Um- und Einstieg in das neue Core Framework. Verbunden mit jeder Menge Codebeispielen werden alle relevanten Grundlagen für das Implementieren von Enterprise-Lösungen aufgegriffen.
LanguageDeutsch
Release dateFeb 20, 2017
ISBN9783868027730
ASP.NET Core: Eine Einführung

Related to ASP.NET Core

Related ebooks

Programming For You

View More

Related articles

Reviews for ASP.NET Core

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    ASP.NET Core - Oğuzhan Açıkgöz

    geschützt.

    1 Einleitung

    Mit ASP.NET Core hat Microsoft einen Weg eingeschlagen, der bis vor einigen Jahren undenkbar gewesen wäre. Es ist der Meilenstein schlechthin, denn das Core Framework ist quelloffen und lädt die Community ein, Teil des Projekts zu sein. Wenn man bedenkt, dass bisher Frameworks von Microsoft möglichst abgeschottet und geschlossen waren, ist diese Neuerung eine wegweisende Änderung für die zukünftigen Pläne des Unternehmens. Microsoft will nicht mehr der Unbekannte hinter verschlossenen Türen sein, sondern eine Nähe zu Entwicklern aufbauen, insbesondere zu jenen, die bisher Alternativen wie PHP oder Java präferiert haben. Natürlich ist es naiv zu glauben, dass nur durch ein quelloffenes Framework ein solches Vorhaben realisiert werden kann: Deshalb verbirgt sich hinter ASP.NET Core mehr als nur eine Strategieänderung.

    Eine der großen Neuigkeiten ist die Auflösung der Verbindlichkeit zu Internet Information Services als Host für Webanwendungen und implizit zu Windows Server. Auch architektonisch hat sich das vollständig modular aufgebaute Core Framework von dem bisher verwendeten, monolithisch implementierten .NET Framework differenziert. Die neue Architektur fusioniert alle Bestandteile von ASP.NET wie Web API und MVC in einem Framework, sodass eine einfache Initialisierung im Code darüber entscheidet, welche Art von Software implementiert wird.

    2 Einführung in ASP.NET Core

    2.1 Das Core-Gerüst

    ASP.NET Core hat sich im Vergleich zu ASP.NET MVC oder Web API konzeptionell signifikant geändert. Diese Veränderung wirkt sich auch auf den Entwickler aus und verpflichtet, das Re-Design zu verstehen, um weiterhin zukunftssicher aufgestellt zu sein.

    Unter Anbetracht der Prämisse von ASP.NET Core, plattformunabhängig zu sein und diverse, bisher unabhängige Technologien in einem Framework zu vereinen, waren Aktualisierungen seitens der Softwarearchitektur unumgänglich. Dabei ist die größte Errungenschaft unumstritten der modulare Aufbau.

    Das Core Framework muss man sich als eine Konsolenanwendung mit einem statischen Einstiegspunkt vorstellen – der Main-Methode –, in der programmatisch Konfigurationen vorgenommen werden können. Beispielsweise lässt sich wie folgt der Kestrel- und IIS-Support aktivieren:

    public static void Main(string[] args)

    {

      var host = new WebHostBuilder()

        .UseKestrel()

        .UseIISIntegration()

        .UseStartup()

        .Build();

      host.Run();

    }

    Dieser Codeschnipsel verdeutlicht, was bisher vielmals mit dem Begriff „modular" gemeint war. Durch Initialisierung einer Klasse und Aufruf von Eigenschaften integriert das Core Framework den IIS/Kestrel-Support.

    Für ein besseres Verständnis wird im Folgenden der Fokus auf die einzelnen Komponenten gelegt. Einige sind vollkommen neu im Vergleich zu älteren ASP.NET-Versionen, andere hingegen lediglich an die neue Architektur angepasst.

    2.1.1 Der Startpunkt: die „Startup"-Klasse

    Die Startup-Klasse ist der Einstiegspunkt von Webanwendungen. Jede ASP.NET-Core-Anwendung, die davon absieht als Webapplikation zu fungieren, muss deshalb eine Startup-Klasse implementieren. Innerhalb der Startup-Klasse wird die Anwendung konfiguriert. Beim Anlegen eines neuen ASP.NET-Core-Projekts in Visual Studio wird, nach folgendem Beispiel, initial eine Startup-Klasse angelegt.

    Abb. 2.1: Ein neues Projekt anlegen

    Abb. 2.2: Das Web-Application-Template auswählen

    Aus unserer Auswahl resultiert folgende Projektstruktur:

    Abb. 2.3: Die aus der Auswahl folgende Projektstruktur

    Der Startpunkt von Core ist Program.cs, in der sich die oben aufgeführte statische Main-Methode befindet. Erst durch das Initialisieren von WebHostBuilder() wird aus dem Core-Projekt eine Webanwendung und nach der Initialisierung startet die Startup-Klasse.

    Im nächsten Schritt liegt der Fokus auf den einzelnen Methoden, die sich innerhalb der Startup-Klasse befinden.

    Hier wird bewusst auf die detaillierte Verwendung von Methoden und Konfigurationsmöglichkeiten verzichtet, weil die kommenden Kapitel sich darauf konzentrieren werden.

    public Startup(IHostingEnvironment env)

    {

      var builder = new ConfigurationBuilder()

        .SetBasePath(env.ContentRootPath)

        .AddJsonFile(appsettings.json, optional: true, reloadOnChange: true)

    .AddJsonFile($appsettings.{env.EnvironmentName}.json, optional: true)

        .AddEnvironmentVariables();

      Configuration = builder.Build();

    }

    Im Konstruktor befindet sich ein Parameter vom Typ IHostingEnvironment, der uns die Konfiguration von Umgebungsvariablen und Konfigurationsdateien ermöglicht.

    Im Vergleich zu älteren ASP.NET-MVC-Versionen ist ASP.NET Core nicht auf die Web.config-Datei beschränkt. Es lassen sich beliebig viele Konfigurationsdateien erstellen und durch den Konstruktor im Startup initialisieren.

    In der Startup-Klasse muss die Methode Configure implementiert sein, in der die HTTP-Request-Pipeline konfiguriert wird.

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

    {

      loggerFactory.AddConsole(Configuration.GetSection(Logging));

      loggerFactory.AddDebug();

      if (env.IsDevelopment())

      {

        app.UseDeveloperExceptionPage();

        app.UseBrowserLink();

      }

      else

      {

        app.UseExceptionHandler(/Home/Error);

      }

      app.UseStaticFiles();

      app.UseMvc(routes =>

      {

        routes.MapRoute(

          name: default,

          template: {controller=Home}/{action=Index}/{id?});

      });

    }

    Durch den IApplicationBuilder lassen sich so genannte Middlewares definieren, die die einzelnen Komponenten der Pipeline abbilden. Alternativ lassen sich auch in dieser Methode die Einstellungen der Konfigurationsdateien übernehmen und das Logging verwalten.

    Optional kann eine ConfigureService-Methode verwendet werden, die den integrierten Dependency-Injection-Container (auch Inversion-of-Control-Container genannt) abbildet. Falls diese Methode existiert, wird sie definitiv vor der ConfigureService-Methode aufgerufen, weil potenziell Verbindlichkeiten zwischen Middlewares aufgelöst werden müssen.

    public void ConfigureServices(IServiceCollection services)

    {

      // Add framework services.

      services.AddDbContext(options =>

        options.UseSqlServer(Configuration.GetConnectionString(DefaultConnection)));

      services.AddIdentity()

        .AddEntityFrameworkStores()

        .AddDefaultTokenProviders();

     

    Enjoying the preview?
    Page 1 of 1