Разработка Windows для хардкорного парня Java - PullRequest
4 голосов
/ 19 марта 2009

Мне немного стыдно спрашивать об этом, потому что, вы знаете, я очень давно против MS. Мне посчастливилось зарабатывать на жизнь вне Visual Studio. Когда я стал старше, есть «некоторые» вещи, которые я хотел бы попробовать, и, честно говоря, этот сайт вопросов и ответов вдохновил меня, и я понимаю, что VS и Windows Development не так уж и плохи. Эй, в конце концов, C # был разработан после Java, и теперь Java копирует некоторые функции из дочернего языка. И Windows Vista - первая достойная версия, так как Windows вышла на свет.

В любом случае, любому +3000 пользователей в аудитории вы можете удалить все вышеперечисленное дерьмо и сохранить следующее:

Есть ли у вас ссылки, ресурсы, учебное пособие, предназначенное для изучения разработки под Windows, основанное на сильном Java-опыте?

Мне очень интересны манипуляции с Windows (то есть, собственно окно, фрейм, получение имени, получение главного приложения и т. Д., Изменение его размера программным путем и т. Д.) И API поиска Windows среди других второстепенных API. В конце концов, меня интересует их интеграция с моими приложениями Java через JNI или JNA.

Я прочитал много учебников и ссылок по MSDN, и на самом деле я понимаю API сам по себе. Я взял копию C # и C ++ Express и фактически запустил несколько базовых примеров.

Моя проблема в том, что я не понимаю общую картину всей архитектуры (потому что, ну, она большая ). У классов есть сотни методов, и мне не очень понятно, кто их вызывает. (У меня было такое же мнение, когда я впервые смотрел на Java Javadoc API.) Я не знаю некоторых базовых общих объектов, например HWCD (или что-то в этом роде), что это оказался тот самый обработчик окна, но каждый учебник, который я читаю, дает это как должное (как если бы WHCD или что бы то ни было, было очень описательным названием).

Я точно не знаю разницу между Win32, COM, COM +, DCOM, Windows SDK ADO и некоторыми другими технологиями. Я имею в виду, что знаю их в некоторой степени и по здравому смыслу, но, читая учебники или API, я запутался. Я попытался взять некоторые учебники для начинающих, но они предназначены для программистов с абсолютным нулевым уровнем, использующих Visual Basic (yiak!, THAT - это главная причина, по которой я в течение многих лет держался подальше от MS .)

Я понимаю .NET Framework, управляемый код, неуправляемый код, основы C #, CLR и связанные с ними вещи, потому что они настолько похожи на платформу Java, что они почти прозрачны.

Итак, после всего моего недовольства и честного мнения о развитии MS:

Каков наилучший способ изучения разработки Windows для не абсолютного новичка (в программировании), но совершенно нового для самих API Windows? Каким был бы хороший путь?

Ответы [ 4 ]

2 голосов
/ 19 марта 2009

Petzold - ваш новый лучший друг, а MSDN - ваш новый Javadocs. Убедитесь, что у вас есть хорошее понимание C, прежде чем погрузиться в него. У Forger есть отличное учебное пособие для начинающих , если вам интересно. Отличное место для общения во время обучения - #WinProg в efnet irc, множество гуру win32 готовы помочь.

1 голос
/ 19 марта 2009

Я настоятельно рекомендую получить себе копию " Win32 Programming ". В нем объясняется основная ДНК WINDOWS - и это справедливо, если вы программируете на старом Win32 C ++, новых Winforms C #, а также в будущем Windows Presentation Foundation.

В двух словах, программа для Windows состоит из WinMain. При первом запуске приложение регистрирует свой класс окна в системе, инициализирует и затем запускает цикл обработки сообщений, который продолжается до тех пор, пока не встретится WM_QUIT. Система (ОС) продолжает подавать сообщения, такие как нажатие клавиатуры или мыши и т. Д., На сообщение Q приложения. В Windows в любой момент времени есть только одно активное окно, поэтому ОС знает, кому отправить сообщение.

Хорошо, подобные вещи подробно описаны в вышеприведенной книге.

COM (COM +, DCOM) на самом деле не имеет отношения к Windows. Когда Word, Excel стал популярным, и требовалось иметь возможность доступа к Excel из Word (наоборот), они разработали технологию AcitveX, которая является своего рода корнем для COM и т. Д. Вы можете начать работу с «Essential COM» от Don Box. ,

Одно предупреждение: в мире Microsoft существует два способа программирования - идти по пути, по которому вы пишете, (пишите все самостоятельно) или использовать фреймворки (MFC, ATL-COM ....). Рекомендуется немного поработать над плитой котла, чтобы вы знали основы.

1 голос
/ 19 марта 2009

Я собираюсь предложить альтернативный путь (с меньшим сопротивлением). Вы уже смотрели на WPF? Это новый инструментарий с графическим интерфейсом, который позволяет вам создавать сексуальные интерфейсы (как в Vista).

Этого может быть достаточно, чтобы заинтересовать вас и одновременно перейти к более продвинутой разработке. Оттуда вы можете прыгнуть в джунгли Win API (если вы выберете).

Просто мысль, так как этот путь был бы более интересным для меня. Конечно, ваш пробег может отличаться.

0 голосов
/ 19 марта 2009

Сделав такое же преобразование год назад, я могу сказать, что есть много литературы специально для изучения c # из фона Java. Это был мой первый опыт, который я нашел действительно полезным для изучения важных различий / особенностей C #:

C # с точки зрения разработчика Java

И есть также книги, на которые стоит обратить внимание (google 'c # для программистов java'). Как сказал ДжонТ, библиотека MSDN является эквивалентом API JavaDocs, но я нашел ее действительно разочаровывающей. Лучший способ научиться - это взять копию Visual Studio Express и начать играть. Используйте intellisense для изучения классов и методов. Найдите небольшую программу, написанную вами на Java, и попробуйте воспроизвести ее на C #. Начните с простых задач, используйте Google для их решения. Вам будет трудно в течение первой недели, но поверьте мне, это придет к вам на удивление быстро!

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