9

Próbuję rozwijać moje projekty, aby być platformą. W ten sposób utworzyłem kilka bibliotek klas: enter image description hereNET Standard vs Net Core App: podczas tworzenia .NET Core Project (przy użyciu konsoli lub biblioteki klas)

Ale, gdy korzystałem z Entity Framework do budowy bazy danych, potrzebne pakiety nugetów nie zostały zainstalowane, z wyjątkiem sytuacji, gdy były używane w aplikacji Console.

Oto różnica, aplikacja konsoli odwołuje Core .NET: enter image description here

i odniesienia Biblioteka klas .NET standard:

enter image description here

Więc dlaczego są one zarówno pod .NET Rdzenia ale odwołuje się do różnych bibliotek? Czy oba są platformami Cross Platform lub tylko konsolą, która korzysta z .NET Core? A w takim przypadku należy unikać używania bibliotek klas?

+0

Znalazłem to: - Net bibliotek standard jest kolejna wersja PCL: s i są one zarówno wieloplatformowym. - NET Core to alternatywna platforma dla platformy .NET Framework (która jest dostępna tylko dla systemu Windows w wersji ). Ale wciąż to nie wystarczy jako odpowiedź na to pytanie. – Coding

Odpowiedz

5

„Więc dlaczego są one zarówno pod .NET Rdzenia ale przedstawieniu różnych bibliotek?”
Zalecaną wersją NET do tworzenia bibliotek jest teraz Net Standard Library. Dlatego domyślnie podczas tworzenia biblioteki klas jest standardowa wersja sieciowa zamiast Net Core. Możesz to zmienić ręcznie, ale nie jest to zalecane. Zobacz także ten wpis na blogu na temat Introducing .NET Standard Library.

Czy obaj Platforma Cross lub tylko konsola który używa .NET Rdzeń?
Tak, oba są platformami krzyżowymi.

I powinno się unikać bibliotek klas w tym przypadku?
Nie, należy używać bibliotek klas, ilekroć jest to możliwe. To nie była pierwotna intencja Microsoftu na początku, ale później zmienili zdanie, więc nie wszystkie pakiety są jeszcze kompatybilne ze standardem .net, dlatego nie można używać standardowej wersji sieci do projektu rusztowania, ponieważ "Microsoft. EntityFrameworkCore.Tools "w tej chwili jest kompatybilny tylko z rdzeniem Netto, ale prawdopodobnie będzie kompatybilny z DotNet Standard wkrótce

Jak już powiedziałem, jeśli naprawdę chcesz zachować opcję rusztowania, możesz użyć projektu biblioteki klas i zmień ręcznie w project.json na wersję .net, a kiedy już jest kompatybilna, możesz przełączyć się z powrotem do standardu .net. Twoje inne projekty, takie jak warstwa usług lub danych w zależności od tego, jak chcesz zachować separację, mogą być bibliotekami klas o standardzie dotnet i będą w stanie działać poprawnie.

A może masz aplikację konsoli (rdzeń .net) appart z oryginalnego rozwiązania i skopiować i wkleić do swojej biblioteki prawdziwy klasy przy użyciu standardu .NET. (To jest to, co obecnie robi w projekcie)

+0

Dzięki, że będzie to prawdziwy ból głowy ... – Coding

Powiązane problemy