Niedawno w oficjalnym blogu .NET Framework ogłoszono, że .NET Core przejdzie na oprogramowanie open source .
Jak na ironię autor wspomina, że czym jest .NET Core zostanie wyjaśniony w następnym poście. Więcej szczegółów podano w innym poście z ogłoszeniami .
Z dostarczonego schematu:
i sam tekst artykułów, zakładam, że .NET Core (oprócz oczywistych rzeczy takich jak open source) jest modułową re-implementacją pełnego .NET. Komponenty frameworka, tj. Ładowane są teraz pakiety NuGet. A teraz ASP.NET 5 jest jednym z modułów, który jest już zaimplementowany. Czy moje rozumienie .NET Core jest prawidłowe? Może coś mi umknęło?
Znalazłem ostatni artykuł, który uznałem za krótki i bardzo dobry. Obejmuje .NET Standard, .NET Core i .NET Framework i ich relacje. Gorąco polecam.
Odpowiedzi:
Z blogu .NET Zapowiedź .NET 2015 Preview: Nowa era dla .NET :
I:
W skrócie: po pierwsze, powstał Microsoft .NET Framework , który składa się z środowiska wykonawczego wykonującego kod aplikacji i biblioteki oraz prawie w pełni udokumentowanej biblioteki klas standardowych .
Środowisko wykonawcze to środowisko uruchomieniowe języka wspólnego , które implementuje infrastrukturę języka wspólnego , współpracuje z kompilatorem JIT w celu uruchomienia kodu bajtowego CIL (wcześniej MSIL) .
Specyfikacja i implementacja platformy .NET firmy Microsoft były, biorąc pod uwagę jej historię i przeznaczenie, bardzo skoncentrowane na Windows i IIS i „tłuste”. Istnieją odmiany z mniejszą liczbą bibliotek, przestrzeni nazw i typów , ale niewiele z nich było przydatnych do tworzenia stron internetowych lub komputerów stacjonarnych lub trudno jest je przenieść z prawnego punktu widzenia .
Aby więc dostarczyć wersję .NET firmy innej niż Microsoft, która mogłaby działać na komputerach innych niż Windows, należało opracować alternatywę. W tym celu należy przenieść nie tylko środowisko uruchomieniowe, ale także całą bibliotekę klas frameworka. Ponadto, aby być w pełni niezależnym od Microsoft, wymagany będzie kompilator dla najczęściej używanych języków.
Mono jest jedną z niewielu, jeśli nie jedyną alternatywną implementacją środowiska uruchomieniowego, które działa w różnych systemach operacyjnych oprócz Windows, prawie wszystkie przestrzenie nazw z biblioteki klas Framework od .NET 4.5 oraz kompilatora VB i C # .
Wprowadź .NET Core: implementacja środowiska wykonawczego typu open source i minimalna biblioteka klas podstawowych. Cała dodatkowa funkcjonalność jest dostarczana za pośrednictwem pakietów NuGet, wdrażając określone środowisko wykonawcze, biblioteki frameworku i pakiety innych firm za pomocą samej aplikacji.
ASP.NET Core to nowa wersja MVC i WebAPI, dołączona wraz z cienką abstrakcją serwera HTTP, która działa w środowisku uruchomieniowym .NET Core - ale także w .NET Framework.
źródło
Jest to podzestaw systemu .NET Framework, rozpoczęty od edycji Compact Framework. Rozwinął się w Silverlight, Windows Store i Windows Phone. Skoncentrowano się na utrzymaniu niewielkiego wdrożenia, odpowiedniego do szybkiego pobierania i urządzeń z ograniczonymi możliwościami przechowywania. Łatwiej jest go wychowywać na platformach innych niż Windows, a to z pewnością był powód, dla którego został wybrany jako wersja open source. „Trudne” i „drogie” części CLR i biblioteki klas podstawowych są pomijane.
W przeciwnym razie zawsze jest łatwo rozpoznać, kiedy celujesz w taką wersję frameworka, ponieważ brakuje wielu gadżetów. Będziesz używać odrębnego zestawu zestawów referencyjnych, które ujawniają tylko to, co jest obsługiwane przez środowisko wykonawcze. Jest przechowywany na twoim komputerze w
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore
katalogu.Aktualizacja: po wydaniu .NET Core 2.0 widziałem kilka reprezentatywnych liczb, które dają przyzwoity wgląd. Przez ostatnie dwa lata ciężko pracowali nad back-portingiem frameworkowych interfejsów API do .NET Core. .NET Core 1.0 pierwotnie obsługiwał 13 000 interfejsów API. .NET Core 2.0 dodał 20 000 interfejsów API, co w sumie daje 32 000 i pozwala na przeniesienie około 70% istniejących pakietów NuGet. Istnieje zestaw interfejsów API, które są zbyt mocno związane z systemem Windows, aby można je było łatwo przenieść na system Linux i MacOS. Objęty niedawno wydanym pakietem zgodności systemu Windows, dodaje kolejne 20 000 interfejsów API.
źródło
.NET Core
wersję 5.0, która jest wyższa niż najnowsze pełne środowisko. Zakładam, że mają na myśli, że to coś innego.Znalazłem ostatni artykuł, który uznałem za krótki i bardzo dobry. Obejmuje .NET Standard, .NET Core i .NET Framework oraz ich relacje. Gorąco polecam. Niestety nie mam czasu na dostosowanie się i umieszczenie go tutaj.
Oryginalna treść odpowiedzi poniżej:
Tak więc, w oparciu o najnowszy oficjalny wpis na ten temat, oto kilka kluczowych punktów, jakie widzę:
Tak więc .NET Native i ASP.NET 5 to tylko „testowe” tematy dla nowej konfiguracji frameworka, częściowo dlatego, że są zupełnie inne:
Widzicie, potrzebują nawet osobnego niskiego poziomu, ale znaczna część BCL jest nadal powszechna:
Tzn. Magenta prostokąty na górze zostaną masowo dodane wraz z nowymi modelami aplikacji, ale podstawa pozostanie wspólna.
Wdrożenie NuGet:
Związek z obecnymi ramami:
Podsumowanie:
Zasadniczo można to uznać za platformę .NET 4.6 ze zmienionym modelem dystrybucji, który jednocześnie przechodzi w proces open source.
źródło
Obecna dokumentacja zawiera dobre wyjaśnienie, czym jest .NET Core, obszary do wykorzystania i tak dalej. Następujące cechy najlepiej definiują .NET Core:
A oto, co obejmuje .NET Core:
źródło
.NET Core to nowa wieloplatformowa implementacja standardów .NET (ECMA 335) podobna do Mono, ale wykonana przez samego Microsoft.
Zobacz docs.microsoft.com
źródło
Microsoft uznał przyszły paradygmat open source sieci i zdecydował się otworzyć platformę .NET na inne systemy operacyjne. .NET Core to .NET Framework dla komputerów Mac i Linux. Jest to „lekki” .NET Framework, więc brakuje niektórych funkcji / bibliotek.
W systemie Windows nadal działałbym .NET Framework i Visual Studio 2015. .NET Core jest bardziej przyjazny ze światem open source, takim jak Node.js , npm, Yeoman , Docker itp.
Możesz tworzyć pełnoprawne strony internetowe i API RESTful na Macu lub Linuksie za pomocą Visual Studio Code + .NET Core, co wcześniej nie było możliwe. Więc jeśli kochasz Maca lub Ubuntu i jesteś programistą .NET, śmiało i skonfiguruj.
W przypadku Mono vs. .NET Core, Mono został opracowany jako .NET Framework dla systemu Linux, który jest teraz nabywany przez Microsoft (firma o nazwie Xamarin ) i wykorzystywany w programowaniu mobilnym. W końcu Microsoft może scalić / zmigrować Mono do .NET Core. Nie martwiłbym się teraz o Mono.
źródło
Próbowałem dziś utworzyć nowy projekt w Visual Studio 2017 (ostatnio uaktualniony z Visual Studio 2015) i zauważyłem nowy zestaw opcji dla typu projektu. Albo są nowe, albo minęło trochę czasu, odkąd zacząłem nowy projekt !! :)
Natrafiłem na ten link do dokumentacji i uznałem go za bardzo przydatny, dlatego dzielę się. Szczegóły dotyczące pocisków podano również w artykule. Właśnie zamieszczam tutaj pociski:
Ten link zawiera słownik terminów .NET.
źródło
Ze strony Microsoft :
Technologie te różnią się od natywnego .NET tym, że działają przy użyciu środowiska uruchomieniowego CoreCLR (używanego w Universal Windows Platform ).
Jak wspomniałeś w swoim pytaniu, .NET Core jest nie tylko open source, ale także przenośny [działa na MacOS, Windows i Linux]
Elementy wewnętrzne .NET Core są również zoptymalizowane pod kątem nieużywania różnych modułów z biblioteki podstawowej, chyba że jest to wymagane przez aplikację.
źródło
Microsoft właśnie ogłosił .NET Core v 3.0, który jest znacznie ulepszoną wersją .NET Core.
Aby uzyskać więcej informacji, odwiedź ten świetny artykuł: Różnica między .NET Framework a .NET Core od kwietnia 2019 r.
źródło
.NET Core to darmowa i zarządzana platforma oprogramowania komputerowego typu open source dla systemów operacyjnych Windows, Linux i macOS. Jest to open source, wieloplatformowy następca .NET Framework.
Aplikacje .NET Core są obsługiwane w systemach Windows, Linux i macOS. W skrócie .NET Core jest podobny do .NET Framework, ale jest wieloplatformowy, tzn. Pozwala aplikacjom .NET działać w systemach Windows, Linux i MacOS. Aplikacje .NET Framework mogą działać tylko w systemie Windows. Podstawową różnicą między .NET Framework a .NET core jest to, że .NET Core jest wieloplatformowy, a .NET Framework działa tylko w systemie Windows.
Ponadto .NET Core ma wbudowane wstrzykiwanie zależności przez Microsoft i do wstrzykiwania zależności nie trzeba używać oprogramowania / bibliotek DLL innych firm.
źródło
.NET Core to otwarta. Wieloplatformowa wersja .NET. Produkty Microsoft, oprócz ich wielkich możliwości, zawsze były drogie dla zwykłych użytkowników, zwłaszcza użytkowników końcowych produktów stworzonych przez technologie .NET.
Większość klientów niskiego poziomu woli używać Linuksa jako swojego systemu operacyjnego, a wcześniej .NET Core nie chcieliby korzystać z technologii Microsoft, pomimo ich wielkich możliwości. Ale po produkcji .NET Core problem ten został całkowicie rozwiązany i możemy zadowolić naszych klientów bez względu na ich system operacyjny itp.
źródło
.NET Core jest otwartą i wieloplatformową wersją .NET Framework.
źródło