2015-02-28 15 views
8

Tworząc jeden ASP.NET 5 aplikację z VS plik project.json zawiera następujący wpis:Co to są aspnet50 i aspnetcore50?

"frameworks": { 
    "aspnet50": { }, 
    "aspnetcore50": { } 
} 

Teraz, co to jest punkt Ramki i dlaczego są te wpisy „aspnet50” i „aspnetcore50”? Wiem, że teraz jest zarówno pełny .NET i Core CLR, ale jeszcze ta sekcja wydaje się sugerować, że istnieją dwa różne ASP.NET 5: jeden ASP.NET 5 i jeden ASP.NET Core 5. Jest tylko jeden framework ASP.NET 5, który może działać na pełnych prawach platformy .NET lub Core CLR? Jeśli tak, dlaczego potrzebujemy tych wpisów?

+0

Sam to powiedziałeś. "Jest tylko jeden framework ASP.NET 5, który może działać na pełnym .NET lub Core CLR". – brk

+0

Wszystkie nowe cele mają prefiks aspnet w tej chwili, a pełnym celem dla platformy .NET jest net45.W tej rozmowie na Twitterze (https://twitter.com/onovotny/status/524381569323384832) David Fowler odpowiedział na to samo pytanie. Jedną z różnic między net45 i aspnet50, o których wspomina, jest obecność [Assembly Neutral Interfaces] (http://davidfowl.com/assembly-neutral-interfaces/) w tym ostatnim. [Blog Ricka Strahla] (http://weblog.west-wind.com/posts/2014/Dec/02/Creating-multitarget-NuGet-Packages-with-vNext) również zawiera dobre informacje na temat multi-targetowania w nowym projekcie Struktura. – Adam

Odpowiedz

1

"Nowy" sposób robienia rzeczy w firmie Microsoft umożliwia hostowanie środowiska CLR poza systemem Windows. Mam o tym blogpost, jeśli jesteś zainteresowany.

Teraz, aby to zrobić, musieli nieco rozdzielić ramy, a tym samym narodził się CORE CLR. Z webpage:

.NET Core 5 jest mały zoptymalizowany czas pracy, który jest podstawą ASP.NET Rdzenia 5. Obecnie działa w systemie Windows, a zostanie przedłużony do wsparcia Linux i Mac. Jest to wysokowydajna i modułowa konstrukcja, która umożliwia pełne dostosowanie się do nowych wersji .NET Core bez wpływu na inne aplikacje. Te produkty są aktywnie rozwijane przez zespół .NET i we współpracy ze społecznością programistów open source. Wspólnie dążymy do ulepszenia i rozszerzenia platformy .NET o nowe funkcje i nowe scenariusze.

Aby to osiągnąć, niektóre funkcje zostały w oczywisty sposób usunięte. Asp.net musi skierować się do ograniczonego podzbioru, aby aplikacja działała na rdzennym szkielecie. Zasadniczo mówi to ramom, aby ograniczyć zestaw funkcji do twojej dyspozycji do tego, co jest obsługiwane w obu.

To moja zrozumienie, ale mogę się mylić :-)

1

z „ramy” wejście w project.json pozwala obsługiwać zarówno Rdzeń ASP.NET 5.0 i ASP.NET 5.0 w tym samym projekcie. Każda struktura może mieć różne zestawy zależności, ponieważ .NET Core ma ograniczoną zgodność wsteczną.

  • aspnet50 lub ASP.NET 5.0 użyje zainstalowanej na komputerze .NET Framework całej maszyny, która jest na ogół zgodne z istniejącym ekosystemie.

  • aspnetcore50 lub ASP.NET Rdzeń 5,0 użyje nowego app-miejscowy .NET Core platform. .NET Core to open source, platforma międzyplatformowa i modułowa struktura zawierająca podzbiór .NET Framework. Wadą targetowania .NET Core jest to, że pakiety referencyjne nie mogą mieć zależności z pełnym .NET Framework.

Jeśli właśnie planujesz kierować do jednego z nich (być może dlatego, że istnieje zależność do biblioteki, które wymagają pełnego .NET Framework, takich jak Entity Framework 6), można usunąć drugi.