Mateusz Stanek

stos cegiel

Podstawy ASP.NET Core – część 1

Podstawy aplikacji ASP.NET Core – Main

Klasa Program.cs w aplikacji webowej w ASP.NET Core wygląda mniej więcej tak:

Konfiguracja aplikacji webowej
C#
1
2
3
4
5
6
7
8
9
10
11
public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
 
            host.Run();
        }

jak widzimy przy wykorzystaniu WebHostBuilder-a tworzymy aplikację, która to hostuje naszą aplikację web-ową. W .NET Core nie mam innego wyjścia.

Teraz po krótce przejdę przez poszczególne linie

  • linia 4 – wybiera Kestrel-a jako nasz serwer.
  • linia 5 – ustawia ścieżkę dla głównego folderu zawierającego kontent aplikacji jak na przykład pliki statyczne.
  • linia 6 – przeprowadza konfigurację oraz integrację z serwerem IIS.
  • linia 7 – wskazuje jaka klasa ma zostać załadowana jako Startup.
  • linia 8 – buduje naszego hosta, a linia 10 uruchamia go.

Kestrel  – server

Kestrel to niewielki lekki cross-platformowy server http. Choć można go wykorzystać do pracy bezpośrednio z dostępem z zewnątrz, nie jest to jednak zalecane. Ze względów bezpieczeństwa zalecanym rozwiązaniem jest wykorzystanie serwera http takiego jak IIS czy Apache, jako server reverse proxy. Kestrel jako produkt stosunkowo dość młody nie jest jeszcze w pełni zabezpieczony przed atakami. Więcej o Kestrel-u możemy przeczytać tutaj.

Jako alternatywę dla Kestrel-a możemy wykorzystać WebListener-a. Jednak wiąże się z tym ograniczenie wykorzystania tylko i wyłącznie Windowsa jako systemu, na którym aplikacja zostanie uruchomiona. WebListener w przeciwieństwie do Kestrel-a nie posiada integracji z IIS-em i musi być uruchamiany bezpośrednio. Jest on dobrą alternatywą, jeśli nie chcemy lub nie możemy zainstalować IIS-a na docelowym systemie bazowym. O WebListener-e możemy poczytać tutaj.

Integracja z IIS-em

Miało być multi-platformowo a tutaj o IIS-ie, czyli windowsowym serwerze http. To chyba nie tak miało być. I nie do końca tak jest, integracja z IIS-em tylko ułatwia pracę z tym serwerem. Bez tego byli byśmy w stanie zrobić to samo konfigurując IIS-a manualnie. Wykorzystanie integracji  powoduje załadowanie do IIS-a ASP.NET Core Modul (ANCM), który to odpowiedzialny jest za takie rzeczy jak uruchomienie aplikacji przy pierwszym zapytaniu. Umożliwia on również restart aplikacji po crash-u. ANCM podpina się pod pipeline IIS-owy i przekierowuje zapytanie do Kestrel-a, jest to jedyny serwer, który umożliwia taką integrację. Więcej o ASP.NET Core Module możemy przeczytać tutaj.

CDN

W 2 odsłonie przedstawię czym jest klasa startupowa oraz kilka nie wykorzystanych wcześniej metod związanych z WebHostBuilder-em.

No related posts.

11 marca 2017 DSP2017
No Comments

ASP.NET Core MVC

Podstawy ASP.NET Core - część 2

Dodaj komentarz Anuluj pisanie odpowiedzi

Zobacz

  • Mateusz Stanek o mnie
Mateusz Stanek

Zaprzyjaźnione blogi

SGDev.pl

Ostatnie wpisy

  • Rola Prelegent
  • Elektronika – powrót do starego hobby
  • Badger2040
  • 2023 Tydzień 11
  • 2023 Tydzień 10

Najnowsze komentarze

  • Lukas L - Podsumowanie roku 2022
  • Oktawian Kurzynski - Enumeracja – wartość domyślna
  • Mateusz Stanek - Typy generyczne
  • Ola - Enumeracja – wartość domyślna
  • Typy generyczne w języku C# nie są 'rozwiązywane' w czasie kompilacji - Typy generyczne

Archiwa

  • marzec 2025
  • marzec 2023
  • luty 2023
  • styczeń 2023
  • grudzień 2022
  • marzec 2018
  • luty 2018
  • kwiecień 2017
  • marzec 2017
  • luty 2017

Kategorie

  • Bez kategorii
  • DSP2017
  • Elektronika
  • MiroBurn Challange
  • Narzędzia
  • Podsumowanie
  • Produktywność
  • Programowanie
  • Projekt
  • Prywatne
  • Rok 2023
  • Tips

Ostatnie wpisy

  • Rola Prelegent
  • Elektronika – powrót do starego hobby
  • Badger2040
  • 2023 Tydzień 11
  • 2023 Tydzień 10
Dumnie wspierane przez WordPressa | Motyw: Neblue by NEThemes.
Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.Zgoda
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT