Czym różni się od siebie: Asp.net MVC , Asp.net Core, Asp.net Core MVC , Asp.net Web API

0

Cześć, jestem początkujący w asp.net i przychodzę z pewnym zapytaniem i byłbym bardzo wdzięczny gdyby ktoś mógłby to jakoś objaśnić :)

Czym różni się od siebie:
Asp.net MVC , Asp.net Core, Asp.net Core MVC , Asp.net Web API

Który z nich jest najbardziej przyszłościowy?
Który jest najprzyjemniejszy/łatwy w nauce ?

Czy może niektóre wspomniane wyżej nazwy to jest to samo ? Z góry dzięki :)

0

Cześć. Nie są te same. Rozwijany jest ASP.NET Core. MVC to tylko wzorzec. Ale na starter to bez różnicy którego zaczniesz się uczyć.

5

Jak zwykle zamieszanie polega na tym, że w Microsofcie nie umieją nazywać produktów. Ale po kolei:

ASP.NET było na początku. Potem się rozdzieliło na ASP.NET MVC i ASP.NET WebForms, de facto dwa frameworki w jednym brandingu. Numerowane niezależnie od siebie, więc ostatnią wersją ASP.NET ogólnie było 4.5, ale ASP.NET MVC było 5.0. Potem zaczęli pracować nad nową wersją - i z uwagi na pewne rzeczy nazwali (i przerobili) od nowa. Od zera. Powstało ASP.NET Core 1.0 (obecnie 3.1, wkrótce 5.0).

I ramach ASP.NET Core mamy kilka podejść do tworzenia aplikacji:

  • ASP.NET Core MVC to framework oparty o wzorzec projektowy MVC, daleki potomek oryginalnego ASP.NET MVC. Nie wiem czy jest najpopularniejszym podejściem do tworzenia aplikacji, ale zdecydowanie przoduje i za każdym razem jak zobaczysz słowa "kontroler" oraz "widok" to to będzie to;
  • ASP.NET Core WebAPI to bliźniak MVC, ale nie zawiera widoków - działa prawie identycznie, ale zamiast zwracać HTML-e (czy cokolwiek innego) to działa jako API - zwraca serializowane obiekty, z których mogą potem korzystać frameworki front-endowe, np. React, Angular czy Vue; czyli zamiast budować aplikacje internetowe służy do budowania zdalnych API;
  • Razor Pages to podejście w którym nie ma jawnie kontrolerów i widoków, zamiast tego są strony (według mnie to jest nieco bliższe oryginalnemu WebForms niż MVC);
  • Blazor to podejście w którym buduje się interaktywne aplikacje internetowe w czystym C#, bez JavaScriptu w ogóle.

Ale! Obecnie wszystkie te podejścia są wzajemnie wymienne i można je mieszać w jednej aplikacji bez problemów.

Jeżeli chcesz zacząć naukę, ja bym polecał od ogarnięcia ASP.NET Core MVC, jest najbardziej popularne (a WebAPI działa prawie identycznie). Aczkolwiek dokumentacja Microsoftu rekomenduje zaczynanie nowych aplikacji z UI po stronie serwera w Razor Pages, z czym się osobiście niezbyt zgadzam.

Popatrz na recommended learning path: https://docs.microsoft.com/en-us/aspnet/core/introduction-to-aspnet-core?view=aspnetcore-3.1#recommended-learning-path

1

Dzięki, świetne wytłumaczenie :) plus oglądałem jeszcze jeden filmik na temat całego ASP.NET więc chyba wiem co, gdzie i jak :) Mam jeszcze jedno pytanko, czy warto uczyć się zwykłego MVC? Patrzyłem na to co nieco i wydaje się taki poukładany w tym co się tam wszystko dzieje, natomiast w Core widzę że to chyba trochę bardziej skomplikowanie działa i bardziej "intuicyjnie" ale to może tylko pierwsze wrażenie. Czy jak nauczę się najpierw samego MVC to później będzie mi łatwo wejść w Core? Widziałem też że sporo ofert pracy jest w zwykłym MVC ale domyślam się że to pewnie praca przy już istniejących sporych projektach bo jeśli chodzi o jakieś staże(na który liczę że może po nauce uda mi się załapać :) ) to z tego co patrzyłem to tylko Core chociaż dużo ofert nie znalazłem. Ale chyba będę musiał od razu o Core pomyśleć. Dzięki jeszcze raz. I byłbym wdzięczny za polecenie jakiegoś dobrego kursu z ASP.NET Core, bardziej kurs video preferuję PL/EN :)

0

Dobrze, a ja pociągnę temat OP dalej.

Najbardziej polecacie MVC Core. Poleca ktoś tutoriale do niego? : ) (niekoniecznie darmowe :P)

W przypadku gdybym chciał jednak z czegoś prostszego (rozumiem, że WebAPI?). To polecacie jakieś tutki? : ) ale takie dla początkującego który z WebDevem nie miał nigdy wspólnego i można powiedzieć, że o internecie wie tyle, że jak wpisze nazwę www w przeglądarkę to otworzy mu się strona xD

EDIT: Tak wiem, trochę infantylny komentarz, ale pytam serio. Bo jest tego dość dużo (i frameworków i źródeł wiedzy) i po prostu nie wiem od czego zacząć.

0

@gornada: pluralsight i jego ściezki nauki. Aczkolwiek jak nie masz doświadczenia to zacznij od składni c# :)

0

ale takie dla początkującego który z WebDevem nie miał nigdy wspólnego i można powiedzieć, że o internecie wie tyle, że jak wpisze nazwę www w przeglądarkę to otworzy mu się strona xD

Ogarnij HTML, CSS i podstawy JavaScriptu. Bez tego ciężko będzie pójść dalej, serio.

0
Ktos napisał(a):

ale takie dla początkującego który z WebDevem nie miał nigdy wspólnego i można powiedzieć, że o internecie wie tyle, że jak wpisze nazwę www w przeglądarkę to otworzy mu się strona xD

Ogarnij HTML, CSS i podstawy JavaScriptu. Bez tego ciężko będzie pójść dalej, serio.

A jeśli chodzi o C# to oprócz:
-podstaw LINQ
-podstaw EF
-OPP, lambda, typów generycznych
-async/await

coś jeszcze warto znać przed nauką .net core ? :)
np. taki TCP, serializacja, strumienie in/out, testy? :)

2

coś jeszcze warto znać przed nauką .net core ? :)
np. taki TCP, serializacja, strumienie in/out, testy? :)

Warto spojrzeć szerzej: SQL (w/ execution plan, jakieś podstawy dokumentowych baz danych/no sql), testy jednostkowe (w/ mocks), IoC (i cały SOLID/KISS/DRY), oprócz podstaw js przydałoby się co najmniej liznąć jQuery i Angular lub React, poczytać o TypeScript + wiedzieć, że istnieje node.js. RegExp? JSON, REST/SOAP, XML (xphath). Do CSS przydałaby się znajomość LESS/SASS.
Do tego git/gitflow, znajomość procesów Agile (Scrum, Kanban itp), nuget, npm, liźnięcie CI/CD. Wzorce projektowe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1