Microsoft тепер має .NET Core, .NET Framework та Xamarin (Mono) у своїй родині .NET.
Здається, тут багато перекриттів. Яка різниця між цими типами .NET? Коли я повинен вибрати .NET Core у своєму проекті, а не .NET Framework чи Xamarin?
Microsoft тепер має .NET Core, .NET Framework та Xamarin (Mono) у своїй родині .NET.
Здається, тут багато перекриттів. Яка різниця між цими типами .NET? Коли я повинен вибрати .NET Core у своєму проекті, а не .NET Framework чи Xamarin?
Відповіді:
Ви повинні використовувати .NET Core замість .NET Framework або Xamarin у наступних 6 типових сценаріях відповідно до документації, що тут .
1. Необхідність крос-платформ
Зрозуміло, що якщо ваша мета - мати додаток (веб / сервіс), який повинен мати змогу запускатись на різних платформах (Windows, Linux та MacOS), найкращим вибором в екосистемі .NET є використання .NET Core в якості режиму виконання (CoreCLR ), а бібліотеки є крос-платформними. Інший вибір - використовувати проект Mono.
Обидва варіанти є відкритим кодом, але .NET Core безпосередньо та офіційно підтримується корпорацією Майкрософт і матиме значні інвестиції вперед.
При використанні .NET Core на різних платформах найкращий досвід розробки існує в Windows з Visual Studio IDE, який підтримує багато функцій продуктивності, включаючи управління проектами, налагодження, контроль джерела, рефакторинг, багате редагування, включаючи Intellisense, тестування та багато іншого. Але також підтримується багата розробка за допомогою коду Visual Studio на Mac, Linux та Windows, включаючи інтелігенцію та налагодження. Навіть сторонні редактори, такі як Sublime, Emacs, VI та більше, добре працюють і можуть отримати редактор інтеліссенс за допомогою проекту Omnisharp з відкритим кодом.
2. Мікросервіси
Коли ви будуєте систему, орієнтовану на мікросервіси, що складається з декількох незалежних, динамічно масштабованих, державних або бездержавних мікросервісів, велика перевага, яке ви маєте тут, - ви можете використовувати різні технології / рамки / мови на рівні мікросервісу. Це дозволяє використовувати найкращий підхід та технологію для мікросфер у вашій системі, тому якщо ви хочете створити дуже ефективні та масштабовані мікросервіси, вам слід використовувати .NET Core. Зрештою, якщо вам потрібно використовувати будь-яку бібліотеку .NET Framework, яка не сумісна з .NET Core, проблем немає, ви можете побудувати цю мікросервіс із .NET Framework, і в майбутньому ви зможете замінити її на .NET Основні.
Інфраструктурна платформа, яку ви могли б використовувати, є безліч. В ідеалі для великих і складних мікросервісних систем слід використовувати тканину Azure Service Fabric. Але для мікропослуг без громадянства ви також можете використовувати інші продукти, такі як Служба додатків Azure або Функції Azure.
Зауважте, що станом на червень 2016 року не кожна технологія в Azure підтримує .NET Core, але підтримка .NET Core в Azure різко зросте тепер, коли випущено .NET Core RTM.
3. Найкращі та масштабовані системи
Коли вашій системі потрібна найкраща ефективність та масштабованість, щоб ви отримали найкращу чуйність незалежно від того, скільки користувачів у вас є, тоді саме .NET Core та ASP.NET Core справді світять. Чим більше ви можете зробити з однаковою кількістю інфраструктури / обладнання, тим багатшим буде досвід для ваших кінцевих користувачів - за менших витрат.
Дні поліпшення законодавства Мура для окремих процесорів більше не застосовуються; все ж вам потрібно зробити більше, поки ваша система зростає і потребує більш високої масштабованості та продуктивності для більш вимогливих користувачів щоденного життя, які зростають в експоненціальній кількості. Вам потрібно зробити більш ефективним, оптимізувати всюди та краще масштабувати в кластерах машин, VM та ядер процесора, врешті-решт. Це не лише питання задоволення користувача; це також може змінити велику вартість / TCO. Ось чому важливо прагнути до продуктивності та масштабованості.
Як уже згадувалося, якщо ви зможете виділити невеликі шматки вашої системи як мікропослуги або будь-який інший підхід, який буде зв'язаний нещільно, це буде краще, оскільки ви зможете не просто розвивати кожен маленький шматок / мікросервіс, а мати кращу довгострокову перспективу спритність та обслуговування, але ви також зможете використовувати будь-яку іншу технологію на рівні мікросервісу, якщо те, що вам потрібно зробити, не сумісне з .NET Core. Зрештою, ви зможете переробити його та перенести його до .NET Core, коли це можливо.
4. Розробка стилю командного рядка для Mac, Linux або Windows.
Цей підхід необов’язковий при використанні .NET Core. Ви, звичайно, також можете використовувати повний ID ID Visual Studio. Але якщо ви розробник, який хоче розвиватися за допомогою легких редакторів та інтенсивного використання командного рядка, .NET Core розроблений для CLI. Він надає прості інструменти командного рядка, доступні на всіх підтримуваних платформах, дозволяючи розробникам створювати та тестувати додатки з мінімальною установкою на розробниках, лабораторіях або виробничих машинах. Редактори, як Visual Studio Code, використовують ті самі інструменти командного рядка для досвіду розробки. І IDE, як Visual Studio, використовують ті самі інструменти CLI, але ховають їх за багатим досвідом IDE. Тепер розробники можуть вибрати рівень, на який вони хочуть взаємодіяти з ланцюжком інструментів від CLI до редактора до IDE.
5. Потрібні поряд із версіями .NET на рівні програми.
Якщо ви хочете мати змогу встановлювати додатки із залежністю від різних версій фреймворків у .NET, вам потрібно використовувати .NET Core, який забезпечує 100% супровід, як пояснено раніше у цьому документі.
6. Програми для Windows 10 UWP .NET.
Крім того, ви також можете прочитати:
Ось як це пояснює Microsoft:
.NET Framework - це "повний" або "традиційний" аромат .NET, який розповсюджується в Windows. Використовуйте це, коли ви створюєте настільний додаток Windows або UWP або працюєте зі старими ASP.NET 4.6+.
.NET Core - це крос-платформний .NET, який працює на Windows, Mac та Linux. Використовуйте це, коли ви хочете створити консольні або веб-програми, які можуть працювати на будь-якій платформі, включаючи всередині контейнерів Docker. Це не включає програми UWP / настільні на даний момент.
Xamarin використовується для створення мобільних додатків, які можуть працювати на пристроях iOS, Android або Windows Phone.
Xamarin зазвичай працює над Mono , що є версією .NET, яка була побудована для підтримки крос-платформ до того, як Microsoft вирішила офіційно перейти на крос-платформу разом з .NET Core. Як і Xamarin, платформа Unity також працює на вершині Mono.
Загальна точка плутанини - це те, де ASP.NET Core вписується. ASP.NET Core може працювати над .NET Framework (Windows) або .NET Core (кросплатформенною), як детально описано у цій відповіді: Різниця між ASP. NET Core (.NET Core) та ASP.NET Core (.NET Framework)
Ви можете посилатися в цьому рядку - Різниця між ASP.NET Core (.NET Core) та ASP.NET Core (.NET Framework)
Ксамарін - це зовсім не дискусія. Коли ви хочете створити мобільні програми (iOS, Android та Windows Mobile) за допомогою C #, Xamarin - ваш єдиний вибір.
.NET Framework підтримує Windows та веб-додатки. Сьогодні ви можете використовувати Windows Forms, WPF та UWP для створення програм Windows у .NET Framework. ASP.NET MVC використовується для створення веб-додатків у .NET Framework.
.NET Core - це нова платформа з відкритим кодом та крос-платформи для створення додатків для всієї операційної системи, включаючи Windows, Mac та Linux. .NET Core підтримує лише UWP та ASP.NET Core. UWP використовується для побудови цілей Windows 10 для Windows та мобільних додатків. ASP.NET Core використовується для створення веб-додатків на базі браузера.
Ви хочете отримати докладнішу інформацію, перейдіть за цим посиланням
https://blogs.msdn.microsoft.com/dotnet/2016/07/15/net-core-roadmap/
https://docs.microsoft.com/en-us/dotnet/articles / стандарт / вибір сервера-core-Framework
.Net Основна бібліотека класів побудована за стандартом .Net . .NET Standard можна створити лише проект бібліотеки класів, який не може бути виконаний окремо і на нього має посилатися інший виконуваний проект .NET Core або .NET Framework . Якщо ви хочете реалізувати бібліотеку, яка переноситься на .Net Framework , .Net Core та Xamarin , виберіть .Net Standard Library
(Ви можете зробити виконавчий проект (наприклад, додаток Console або ASP.NET) за допомогою .NET Framework
Це нова платформа з відкритим кодом та крос-платформи для створення програм для всіх операційних систем, включаючи Windows, Mac та Linux.
Підтримка впровадження .NET Standard [синій] та мінімально життєздатна платформа для повної підтримки .NET Standard (останнє: [ https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation- підтримка] )
.NET 5 буде уніфікованою версією всіх варіантів .NET, які надійдуть у листопаді 2020 року, тому більше не потрібно вибирати між варіантами.
.NET Core - це поточна версія .NET, яку ви повинні використовувати зараз (більше функцій, виправлені помилки тощо)
Xamarin - це платформа, яка пропонує рішення для мобільних проблем із платформою, кодованими в C #, так що вам не потрібно використовувати Swift окремо для IOS і те саме стосується Android.
Xamarin використовується для телефонних додатків (як IOS / Android). .NET Core використовується для розробки веб-додатків, які можуть працювати як на Apache, так і на IIS.
Така різниця у двох реченнях.
оновлено травень 2019 року
ви повинні використовувати .Net Core 3.0 і пізніші оновлення до наступної версії. Net 5, все, що вам потрібно, - це лише одна об'єднана платформа .Net5
Уперед буде лише один .NET, і ви зможете використовувати його для націлювання на> Windows, Linux, macOS, iOS, Android, tvOS, watchOS та WebAssembly та багато іншого. https://devblogs.microsoft.com/dotnet/introducing-net-5/