Подтвердить что ты не робот

Является ли win32 api устаревшим?

Разве win32 api все еще разрабатывается и стоит ли его изучать сегодня? Можете ли вы сделать все, что можете, с помощью .net-структуры, которую вы можете с помощью родной api?

4b9b3361

Ответ 1

Windows API все еще разрабатывается. Например, см. Windows 8.1 Новые API и функции для разработчиков и Индекс API Windows 8 и 8.1. Вышло из употребления? Скорее всего, не. Всегда найдутся люди, которые понимают, как Windows работает на более низком уровне. Кто-то должен написать драйверы устройств и низкоуровневые системные утилиты.

Знание редко бывает бесполезным. Изучение того, как работает Windows API, абсолютно необходимо, если вы пишете утилиты низкого уровня и очень удобно даже при написании собственных приложений на С++ или Delphi. Меньше, когда вы пишете приложения .NET, но большая часть библиотек времени выполнения .NET сильно зависит от Windows API. Поэтому понимание того, как это работает "под капотом", весьма полезно.

Кроме того, есть вещи, которые библиотеки .NET не раскрывают. Например, в программе С# я работал над необходимым доступом к Waiting Timer, который другой разработчик использовал в приложении на С++. Библиотеки .NET не предоставляют оболочку для этого конкретного объекта ядра, поэтому мне пришлось написать свой собственный, который включал в себя разработку Windows API.

В большинстве .NET-разработок вам, вероятно, не нужно ничего разбираться в Windows API. Но это точно не повредит. Я знаю, что мое понимание того, почему некоторые части .NET работают так, как они делают, улучшается благодаря моему пониманию программирования Windows API. Кроме того, столкнувшись с разработкой Windows API, я гораздо лучше понимаю огромную производительность, которую дает .NET.

Ответ 2

Еще один ответ на этот вопрос - с точки зрения профессионального управления программным обеспечением. В частности, стоимость Microsoft от переустановки Win32 api слишком велика. То есть, если бы они НЕ поддерживали его в Windows 9, например, каждый клиент, который в настоящее время запускает программу, требующую API, будет переоценивать необходимость использования каких-либо продуктов Microsoft.

Некоторые клиенты, т.е. более чем несколько, скажут, что продукты Microsoft слишком дороги и воспользуются возможностью: либо 1) остаться в Windows 8, а до конца и никогда не покупать другой продукт от Microsoft; или 2) преобразовать свои бизнес-системы в систему * nix или Apple.

Обратите внимание, что это не спекуляция с моей стороны. Именно это случилось с IBM в 1960 году, когда они заставили свою клиентскую базу перейти на 360-й ряд аппаратных средств. В то время, когда 360 полностью отличались от предыдущих мэйнфреймов IBM, заказчикам пришлось значительно переделать существующее программное обеспечение для запуска на новых машинах. Многие клиенты IBM предпочитают работать с Sperry-Rand и другими поставщиками оборудования, где стоимость новой машины и конверсия меньше, чем стоимость IBM 360 и конверсия.

IBM почти вышла из бизнеса из-за права бизнеса на свободу выбора! Они (IBM) выучили урок. По сей день все еще можно запускать программы, написанные в 1960 году на современном мэйнфрейме IBM.

Ответ 3

WIN API все еще разрабатывается.

В зависимости от того, что вы планируете делать, может быть, полезно, а может и нет.

И да, есть некоторые вещи, которые нельзя сделать с .Net, в этом случае вы используете PInvoke. Но INMH вам не нужно знать WINAPI для этого, просто знайте, где искать, когда это необходимо.

http://www.pinvoke.net/default.aspx