Microsoft предоставляет две разные среды выполнения .NET: .NET Framework и .NET Core. Оба реализуют .NET Standard, и код между ними достаточно кросс-совместим, но .NET Framework работает только в Windows. Мы обсудим различия между двумя средами выполнения.
Краткий ответ: кроссплатформенная совместимость
Быстрый ответ: .NET Core работает в Linux и macOS, а .NET Framework работает только в Windows. Вы бы использовали .NET Core, когда вам нужна кросс-платформенная совместимость, и вы бы использовали .NET Framework, когда вам нужны специальные службы Windows и пакеты NuGet, которые не были перенесены в .NET Core.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
.NET Core является преемником .NET Framework, так что это определенно то, что вы хотите выбрать в будущем. Он оставляет после себя некоторые функции только для Windows, но многие из них все еще могут поддерживаться Пакет обеспечения совместимости с Windows расширение.
WHAT IS .Net Framework and what does it do in Windows May 14th 2020
В целом Core и Framework почти одинаковы, но на практике у них есть небольшие различия. И .NET Core, и .NET Framework используют один и тот же API, называемый .NET Standard, но Core имеет открытый исходный код, а Framework — это реализация Microsoft только для Windows.
В общем, Core немного легче, чем Framework, так как он разработан и часто используется с Docker в серверных модулях на основе микросервисов. Помимо возможности использовать Linux в первую очередь (что необходимо для Docker), получившийся образ будет немного меньше с .NET Core.
Помимо этого, большая часть различий заключается в различиях пакетов NuGet. Например, Entity Framework Core немного отличается от Entity Framework 6, который работает на .NET Framework. ASP.NET Core сильно отличается от ASP.NET 4, поскольку они многое переработали для .NET Core.
Когда использовать .NET Core
Вы должны использовать .NET Core поверх .NET Framework в следующих случаях:
- Вы необходимость кроссплатформенная совместимость. Сюда входит использование архитектур Docker и микросервисов.
- Вы начинаете новый проект, и вам просто нужно выбрать один. (.NET Core новее.)
- Вы не используете специальные инструменты, библиотеки или пакеты NuGet для Windows, которые зависят от .NET Framework.
- Вы хотите максимально возможную производительность. Microsoft рекомендует .NET Core с ASP.NET вместо .NET Framework.
- Вы хотите запускать несколько версий .NET Core одновременно друг с другом. Framework не поддерживает это.
- Вы хотите получить доступ к интерфейсу командной строки в Linux или запустить сервер сборки CI / CD в Linux.
Когда использовать .NET Framework
Вы должны использовать .NET Framework поверх .NET Core в следующих случаях:
- Вы ориентируетесь только на развертывание Windows.
- Вы интенсивно используете пакеты и библиотеки Windows, такие как Windows Forms, WPF, ASP.NET Web Forms / Pages и Windows Workflow Foundation.
- Используемые вами технологии не добавляются Пакет обеспечения совместимости Windows для .NET Core.
- Вы уже используете его, и миграция потребует слишком много усилий.
Как перейти на .NET Core
Обычно это будет «как переключиться с Framework на Core», потому что любой существующий работающий проект на .NET Core, скорее всего, не нуждается в переключении обратно на старую .NET Framework.
Microsoft .NET Framework -Explained
Если вы используете что-то специфичное для Windows, вы не сможете. Вы застряли на .NET Framework до тех пор, пока используемые вами компоненты не получат версии Core, а некоторые вещи не будут происходить, как с ASP.NET WebForms.
Самым простым решением было бы создать новое Решение и проект на основе .NET Core и перенести туда свой код. Если у вас есть простое приложение, это, вероятно, самое простое решение.
В противном случае вы можете использовать dotnet try-convert , или следовать Руководство Microsoft по портированию.
Для больших сложных проектов вы можете использовать Анализатор переносимости .NET. Это инструмент от Microsoft, который просканирует ваш проект, расскажет, насколько сложным может быть преобразование, и покажет, какими должны быть ваши следующие шаги.
Он также может создать ориентированный график ваших зависимостей, который поможет вам увидеть, что еще требует анализа. Некоторые проекты будет сложнее перенести, чем другие, и если вы используете что-то, недоступное в Core, возможно, вы вообще не сможете перенести без обходного пути.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Источник: cpab.ru
Что такое .NET, и для чего он нужен?
Уже продолжительное время со многих форумах, видосов, на тему программирования, я часто слышу про .net framework как его использовать на разных языках (чаще всего на C#), но что это зачем он нужен, и где он нужен я так и не понял.
А и да стоит ли учить это дело учить, или это уже гиблое дело?
Отслеживать
Wart Vader
задан 22 авг 2019 в 7:32
Wart Vader Wart Vader
115 1 1 золотой знак 2 2 серебряных знака 16 16 бронзовых знаков
На все Ваши вопросы гугл имеет ответ. Насчет учит или не учить, это дело каждого. Работы по нему найдется, впрочем как и для большинство языков
22 авг 2019 в 7:42
Программная среда выпущенная в 2002 году в Windows для исполнения код. Грубо говоря, эта штука отвечает за запуск и выполнение программы в Windows. Учить или нет — зависит от ваших целей. Сейчас C# занимает топ-5 согласно индексу TIOBE.
22 авг 2019 в 7:49
Вот ссылка, объясняющая, что такое .NET и из каких частей он состоит
22 авг 2019 в 8:07
.NET это набор стандартизированых библиотек а так же виртуальная машина, для более удобного написания программных продуктов на разных языках (си# фортран# визуал-бейсик) как для Windows так и кросплатформенных. .NET библиотека требуется для работы продуктов написаных для неё.
22 авг 2019 в 8:12
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Про .NET написано немало книг, так что в формате ответа на вопрос описать его тяжело. Тем не менее, максимально простыми словами:
Что такое .NET?
.NET это большая многокомпонентная система (у которой, кстати, существует ещё и множество воплощений). Она включает в себя набор спецификаций (для внутреннего языка, IL, например), среду исполнения для этого языка (она называется CLR — Common Language Runtime, общеязыковая среда исполнения), базовую библиотеку (Base Class Library) — минимально необходимый набор объектов, многие объекты пространства имён System описаны в BCL, набор компиляторов различных языков (C#, VB.NET, F#, C++, JavaScript. Их действительно много, кто-то даже пытался написать компилятор для Java).
Зачем нужен .NET?
Немаловажное свойство нета в том, что программу или библиотеку, написанную на любом языке с поддержкой CLR можно использовать потом в любом другом языке с поддержкой CLR. (Например часто встречается C#+F# в одном проекте).
Слово Framework в названии обозначает, что .NET абстрагирует программиста от компьютерного железа. Программист под .NET взаимодействует с .NET, а вся работа по оптимизациям, управлению памятью, вообще совместимостью лежит на фреймворке.
Кстати, запуск программы на разных компьютерах и даже в разных операционных системах — тоже одна из задач, которую .NET решает.
Как используют .NET?
.NET широко используется в вебе на бэкенде (Asp.NET), набирает популяроность на фронте (Blazor), популярен в игровой индустрии, по крайней мере в сфере инди (Unity), его применяют в машинном обучении (ML.NET) и Data Science вообще. Абсолютное большинство приложений на Windows (как и значительная часть самой Windows (высокоуровневые её компоненты) написаны на .NET) для приложений: (Windows Forms, WPF, UWP, медленно набирает популярность кросплатформенная библиотека Avalonia), на .NET разрабатывают мобильные приложения (и Android и iOS) (Xamarin), и используют во встраиваемых системах.
Короче, на нём можно делать почти всё, если захотеть.
Важная деталь заключается в зоопарке реализаций и обобщающих технологий: .NET Framework, .NET Core, .NET Standard, Mono, а такие ребята как AOT компилятор в Xamarin для iOS и il2cpp в Unity. И многие перечисленные сверху пункты как раз отличаются используемым рантаймом. На эту тему есть плохая статья на хабре с неплохими комментариями.
Короче, тема сложная, но это отступление нужно чтобы ответить на вопрос…
Стоит ли учить .NET?
Это сильно зависит от того, что вы хотите. Единственное, что я могу сказать точно — .NET Framework уже устарел и ему на замену пришёл .NET Core (актуальная версия — Core 3.0). Учить .NET Framework бесполезно, только если вы не хотите найти работу в какой-нибудь трухлявой корпорации, которая неповоротлива настолько что не может много лет переехать на .NET Core. Короче, если вы не любитель поддерживать Legacy.
А так — перспективные направления перечислены выше, и изучать что-то в этой области имеет смысл, если у вас есть интерес.
Фух, коммент какой-то дикий получился. Я мог допустить много ошибок (сам я узкий специалист, но работаю на .NET), так что если кто-то заметит косяки — не стесняйтесь поправлять.
Источник: ru.stackoverflow.com
Microsoft .NET Framework NGEN — что это за служба? (mscorsvw.exe)
Приветствую друзья! Сегодня у нас на разбор попала служба Microsoft .NET Framework NGEN. Моя задача — максимально узнать зачем она, насколько важна, может ее вообще можно безопасно отключить? Будем разбираться!
Разбираемся
Microsoft .NET Framework NGEN — служба, работающая под процессом mscorsvw.exe. Теоретически может ускорять работу программ, для которых необходима среда .NET Framework.
Информации в интернете мало. То что относится к .NET Framework — это и так понятно. Однако упоминание в названии NGEN — скорее всего не просто так..
Вообще NGEN расшифровывается вроде как Native Image Generator, вот инфа с вики:
Если вы точно уверены, что Windows у вас исправна, то можно разрешить службе выполнить свою работу, для этого используйте команду:
%WinDir%Microsoft.NETFrameworkv4.0.30319ngen.exe update /force /queue
Если винда 64-бит добавьте в пути 64 к слову Framework. Пусть сделает то что ей нужно — грузить ПК может пару часов, если не остановится — делайте перезагрузку. Если остановится, и после этого снова иногда будет вызывать нагрузку — пробуйте исправить командой ниже либо отключайте ее вообще. Команду нашел на форуме — надеюсь работает.
У некоторых пользователей данная служба вызывала долгую загрузку винды, также тормоза были и после запуска. Тормоза могут быть связаны с сетью, происходит какой-то конфликт между службой и сетевыми процессами.. на форуме OSzone авторитетный юзер предложил выполнить команду в командой строке:
Тут также, если винда 64-битная — добавьте 64 к слову Framework.
При проблемах со службой, а также вообще с Фраемворком — можно воспользоваться офф инструментом Microsoft .NET Framework Repair Tool. Правда исправит ли ошибки — гарантии нет, но все таки его предлагает сама компания Майкрософт, поэтому можно и попробовать… вот офф ссылка, внешний вид программы:
У одного чела не запускался фаервол. И в этом была виновата служба NGEN. Как видим — реально может создавать разные проблемы((
Еще вроде как имеет свои задания в планировщике по этому адресу:
Библиотека планировщика заданий > Microsoft > Windows > .NET Framework
Тип запуска
На офф форуме Майкрософт говорится — лучше чтобы служба имела тип запуска вручную:
Быстро открыть список служб можно так: зажимаете Win + R, пишите команду services.msc и нажимаете ОК.
Хотя один юзер написал — служба однократно грузит ПК, проводит там какую-то работу, и после этого уже тормозов не будет. Но.. увы.. кажется у многих это происходит далеко не однократно((
Можно ли отключать?
В принципе, как я понимаю — служба не основная. Она вроде как нужна именно для ускорения работы некоторых программ. Во-вторых отключение — действие, которое можно всегда исправить.
Поэтому не вижу причин чтобы не попробовать отключить. Внимание! На всякий случай перед отключением можно создать точку восстановления:
- Зажимаете Win + R, пишите команду sysdm.cpl, далее нажимаете ОК.
- Появится окошко, активируйте вкладку Защита системы.
- Выбираете системный диск. Нажимаете Создать. Если кнопка создать неактивна — нажимаете настроить и включаете защиту системы. Нажали создать > пишите название, советую назвать например До отключения NGEN.
- После создания точки уже можно службу отключать, а также при необходимости провести еще некоторые эксперименты, в случае проблем — при помощи точки вернетесь в прошлое))
Теоретически если процесс mscorsvw.exe грузит ПК — то отключение службы тоже может помочь..
Нашел полезную инфу:
Вывод
- Мы точно не смогли выяснить зачем нужна служба. Но предположительно — для ускорения работы программ, для которых нужна среда .NET Framework.
- Вероятно всего — можно отключить. При проблемах — включите обратно. Точка восстановления перед отключением не помешает.
Надеюсь информация помогла. Удачи и добра!
Источник: 990x.top