Когда мне нужен Windows SDK и для чего нужен .NET? - PullRequest
15 голосов
/ 22 сентября 2010

Я студент, и после прохождения некоторых вводных курсов по программированию на Java, C и только что закончив книгу по C ++, я хотел бы начать разработку приложений для Windows.

Я приложил все усилия, чтобыПролистайте Google и найдите ответы, которые мне нужны, но я, кажется, в растерянности.

Когда мне понадобится Windows SDK вместо обычного API?А что такое .NET и зачем мне это нужно?Что такого особенного в C #, и я должен использовать это по сравнению с C / C ++?

Ответы [ 2 ]

21 голосов
/ 22 сентября 2010

Когда мне понадобится Windows SDK вместо обычного API?

SDK включает в себя заголовки, библиотеки, инструменты и т. Д., Которые предоставляют вам доступ к API (и, в этом отношении, к .NET).Например, типичная программа на основе API будет начинаться с #include <windows.h> - но без SDK у вас нет копии Windows.h для включения.Кроме того, SDK включает в себя компиляторы (те же самые фактические компиляторы, которые включены в текущую версию Visual C ++), компоновщики, отладчики и т. Д., Необходимые для фактической сборки программ на основе API.

И чтотакое .NET и зачем мне это нужно?

.NET - это пара вещей: виртуальная машина, которая выполняет код, который Microsoft называет «промежуточным языком» (IL).Это также (большая) библиотека кода в IL для всего: от управления окнами и рисования до коммуникаций, управления системой и т. Д.

Это понадобится вам в первую очередь, если вы пишете код на языке .NETтакие как C #, VB.NET и т. д.

Что такого особенного в C #, и стоит ли использовать его в C / C ++?

C # - любимый вариант Microsoft,так сказать.Это язык, который они придумали сами, что они обычно продвигают над большинством альтернатив как * * основной язык для использования в .NET (и, хотя редко упоминаются напрямую, хотя бы косвенно, для любой новой разработки).Первоначально были обвинения в том, что C # - это не что иное, как плагиат Java, но на самом деле у него есть несколько функций, для которых у Java нет аналога (например, делегаты), и с тех пор он добавил больше (например, интегрированный с языком запрос).

Относительно того, использовать ли C # вместо C или C ++, это, вероятно, будет сильно зависеть от вида кода, который вы пишете.C # предоставляет вам доступ к библиотеке .NET, которая содержит действительно огромный объем предварительно написанного кода.Если то, что вам нужно сделать в ваших приложениях, почти полностью попадает в диапазон, поддерживаемый библиотекой .NET, то возможность использования этого кода может значительно облегчить вашу работу на .Некоторые функции C # также не имеют прямого аналога в C или C ++, поэтому, если ваш код может получить большую выгоду от этих функций, C # может значительно облегчить такую ​​работу.Наконец, Microsoft концентрирует большие усилия в своей инфраструктуре поддержки на C #, поэтому многие их инструменты (включая, но не ограничиваясь ими, Visual Studio) в основном написаны для поддержки C # и, как правило, делают меньше для поддержки других языков.

OTOH, если вы хотите сделать то, для чего .NET не предоставляет предварительно написанный код, ситуация может измениться довольно быстро.C # поддерживает механизм (называемый P / Invoke), позволяющий вам использовать такие вещи, как функции операционной системы, для которых .NET не предоставляет упаковщиков.К сожалению, P / Invoke, как правило, довольно болезненно использовать - если вам вообще придется его использовать, есть большая вероятность, что C ++ (или, может быть, даже C) будет более продуктивным.

Я долженТакже отметим, что, хотя кажется, что Microsoft выделила больше ресурсов для новой разработки C #, чем другие языки, они все еще явно занимаются новой разработкой C ++ и своей инфраструктуры приложений MFC.Нет сомнений в том, что с точки зрения огромного количества нового кода, они явно делают больше с .NET.Тем не менее, некоторые новых разработок в MFC оказываются в областях, в которых они не разработаны в .NET, поэтому у MFC есть несколько возможностей, для которых .NET не предоставляет аналога.

0 голосов
/ 22 сентября 2010

Windows SDK - это низкоуровневая инфраструктура для разработки приложений специально для Windows. Вы можете использовать его для своего развития. Тем не менее, API являются низкоуровневыми и немного сложными в использовании и обслуживании.

В качестве альтернативы, вы можете использовать .Net. .Net - это фреймворк, который включает поддержку времени выполнения для вашего приложения. В нем много пакетов, я уверен, что вы найдете что-то полезное в .Net. .Net требует времени выполнения для выполнения и не компилируется изначально для платформы. Тем не менее, это проще для разработки программного обеспечения, главным образом, потому что API более высокого уровня.

C # является рекомендуемым языком для программирования, специфичного для Windows, особенно для .Net. Не то чтобы это был единственный язык, вы также можете использовать C / C ++, но они не поддерживаются Microsoft активно. Например, если вы используете C #, создание приложения с графическим интерфейсом может быть сделано всего несколькими щелчками мыши. Используя C ++, вам нужно будет управлять вашими экземплярами Windows.

Как правило, вы будете использовать C / C ++ для программирования Windows, только если вы занимаетесь кроссплатформенным программированием или некоторыми низкоуровневыми вещами.

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