Какая связь между WinAPI и .NET? - PullRequest
1 голос
/ 03 апреля 2012

Я разработчик на C # и пытаюсь понять, какова роль WinAPI в разработке Windows. Я считаю, что это единственное изложение самого ядра, и что до .NET это была также сама «разработка Windows» (не считая технологий сторонних разработчиков), но я не уверен ни в одном из этих утверждений. , Кроме того, я не уверен, каково отношение WinAPI и .NET Framework. Итак, я получил несколько вопросов:

  • Вся ли среда исполнения .NET построена поверх WinAPI? Если да, то действительно ли WinAPI является интерфейсом самого низкого уровня для разработки под Windows?
  • Какова роль каждого в разработке Windows (в любой области, например, в Интернете, бизнесе, программных продуктах и ​​т. Д.) В настоящее время?
  • Есть ли сейчас больше разработчиков WinAPI (C / C ++), чем разработчиков .NET?
  • Куда входит WinRT?

Ответы [ 2 ]

5 голосов
/ 03 апреля 2012

Windows API (более или менее) является основой, которая лежит в основе .NET, да.

Нет, это не самый низкий уровень разработки для Windows. Изначально Windows NT была своего рода микроядром, а Win32 представляла собой лишь одну из нескольких возможных подсистем, работающих на нем. Эти подсистемы используют Windows NT «родной API» для связи с микроядром. Можно также написать другой код для непосредственного использования нативного API.

Следующий шаг «ниже», который, вероятно, будет кодом драйвера устройства, но он достаточно отличается, чтобы открыть вопрос, действительно ли он имеет значение. Обычно вы вообще не используете его для написания приложений, но (очевидно, достаточно) драйверов устройств.

WinRT - это в основном новый API, который (более или менее) расположен рядом с существующим Windows API и предоставляет сервисы через интерфейс COM.

Я не буду пытаться охватить роли и / или количество разработчиков. Определение ролей в значительной степени субъективно, и я сомневаюсь, что кто-то действительно знает точное число разработчиков, выполняющих определенные виды работ.

2 голосов
/ 03 апреля 2012

WinAPI - это слой поверх нативного API Windows, который не задокументирован.Раньше было два других уровня API, Posix и OS / 2, но они вышли из употребления..NET Framework также является API-слоем.В Windows он действительно использует слой winapi для основных служб ОС.Но это не исключение, например, Mono может работать поверх Linux и OSX.

Для разработки Windows в собственном пользовательском режиме WinAPI действительно является базовым уровнем API, который вы бы использовали.Конечно, есть еще много программистов, которые используют его.Но большинство программистов используют .NET, Java или язык веб-хостинга, такой как Javascript или PHP.

WinRT является заменой для WinAPI.Это основанный на COM, а не на основе C интерфейс WinAPI.Мало что из этого видно в инструментах разработки, их соответствующие среды выполнения имеют «проекцию» WinRT, поэтому вам не нужно писать COM-код напрямую.И поэтому вы все еще можете написать код C #.Просто с разными базовыми классами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...