Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

Почему в .NET реализованы не все WinApi функции?

Во всех книжках пропагандируют управляемый код и говорят, что в неуправляемый код практически не придется окунаться.
Однако, некоторых WinApi аналогов нету в .NET=> приходится лезть в неуправляемый код, оборачивать библиотеку и изобретать велосипед.
Вроде, у майков есть и все исходники и ничего им мешать не должно, что бы перенести весь WinApi .NET, но по какой-то причине часть мощных функций так и остались в WinApi...


Ответ

То, что в каких-то книгах пропагандируется чисто managed код - это просто маркетинговый ход.
Дело в том, разработчики .NET не ставили себе цель полностью заменить WinAPI.
Основная идея .NET - предоставить новую, более простую и удобную платформу для разработки, оставив при этом совместимость с существующими платформами - прежде всего, WinAPI и COM.
В определенных случаях это может быть достаточно близко к реальности - например в web-разработке вы скорее всего P/Invoke не увидите. Но при разработке под десктоп (особенно под WinForms) или под не-веб сервер вы будете регулярно натыкаться на на P/Invoke.
Более того, со временем вы поймете, насколько тонок уровень абстракции, предоставляемый .NET, и насколько мало управляемый код отличается от неуправляемого.

Комментариев нет:

Отправить комментарий