Программирование Windows GUI - C + SDK или C # + Windows Forms - PullRequest
4 голосов
/ 19 мая 2009

Я программист на C с большим опытом работы с серверным кодом (AIX, HPUX, немного Linux). Мне нужно написать программу с графическим интерфейсом для Windows (2000, XP, Vista, 7), которая требует CAD-подобных функций рисования и множества форм ввода данных (это специализированное инженерное приложение). Я написал несколько кодов Win32 много лет назад, используя Gupta SQLwindows (сейчас Centura Builder). Начальство постановило, что это «должен быть» скомпилированный код. Я считаю, что C + SDK мог бы справиться с этой задачей, но с большими усилиями, и что C # + Windows Forms был бы более способным, но меня немного беспокоит требование платформы .Net.

Что бы вы посоветовали, исходя из вашего опыта?

Если .Net, то какая версия? 2.0, 3.0, 3.5 ??

Ответы [ 7 ]

5 голосов
/ 19 мая 2009

Я не знаком с Centura Builder, поэтому не уверен, на каком уровне абстракции вы работали в Windows. Если вы выбираете маршрут с собственным кодом, используя C / C ++ и Win32, обязательно купите копию Programming Windows от Charles Petzold. Прочтение первых нескольких глав этой книги поможет вам решить, хотите ли вы идти по пути собственного кода.

Если вы выбираете .NET Framework и C # и вам не нужны функции, относящиеся к версии 3.5 (например, LINQ для доступа к базе данных), я рекомендую выбрать версию 3.0. Это встроенный компонент в Windows Vista, поэтому вам не нужно упаковывать среду выполнения вместе с установщиком программы, если только вам не требуется поддержка Windows XP (что вы, вероятно, делаете, так что не берите в голову :). С версией 3.0 вы получаете Windows Presentation Foundation (для использования вместо или вместе с Windows Forms), который дает вам много графических возможностей без особых усилий. Я не обладаю достаточными знаниями в области САПР, поэтому я не знаю, предоставит ли WPF функции рисования, которые вам нужны, но он может предоставить отличную платформу, на которой вы можете написать свои собственные процедуры рисования.

РЕДАКТИРОВАТЬ: я пропустил ваши требования к версии Windows при первом чтении, особенно требования к Windows 2000. Я полагаю, вам придется использовать .NET Framework версии 2.0 и Windows Forms. Однако я должен спросить: не будет ли экономически выгодно повысить производительность ваших инженеров, переведя их восьмилетние машины на что-то более новое и более быстрое и, следовательно, избавиться от требований поддержки Windows 2000?

3 голосов
/ 19 мая 2009

Если вы идете по маршруту .NET, вам придется использовать .NET 2.0, потому что .NET 3.0 и выше поддерживается только для Windows XP и выше (Vista, 7, 2003, 2008).

Лично я бы не стал нарушать требования .NET Framework. Это однократная установка на каждую машину, которая может быть упорядочена через обновления Windows, если это необходимо.

1 голос
/ 19 мая 2009

Если вам нужно использовать собственный код, тогда я настоятельно рекомендую RAD Studio от Codegear / Embarcadero, это студийный продукт, который поставляется с Delphi (объектно-ориентированный язык, развившийся из Turbo Pascal) и C ++ Builder, если вы уже знакомы с C / C ++, тогда вам будет просто поднять очень . Библиотека визуальных компонентов, общая для обоих языков, расширяемая, мощная и RAD.

Если вы можете использовать управляемый код, то C # с Winforms прост в использовании, WPF может быть лучшим выбором для пользовательского интерфейса в долгосрочной перспективе, но у него более крутая кривая обучения.

1 голос
/ 19 мая 2009

Если вы не хотите .NET, Qt + C ++ определенно подходит; это конечно бьет C и Win32. .NET по-прежнему позволяет намного быстрее разрабатывать, чем даже Qt. Qt имеет преимущество в том, что он быстр и прост в развертывании (нет необходимости в .NET) и значительно упрощает переносимость (если вы хотите портировать на Linux или Mac).

0 голосов
/ 19 мая 2009

Вы можете сделать все с C или C ++ / Win32 API
(Образцы Win32 для CAD-подобного чертежа находятся в MSDN ..)

0 голосов
/ 19 мая 2009

Если это должен быть скомпилированный код, чем я бы порекомендовал WTL MFC, но было бы намного быстрее (с точки зрения стоимости разработки) использовать C # + WinForms или WPF.

0 голосов
/ 19 мая 2009

В зависимости от требований к сложности чертежей, подобных САПР, я бы выбрал C # + Windows Forms или, что еще более предпочтительно, C # + WPF.

WPF сделает рисунок намного, намного чище, чем попытка сделать это в GDI. Это особенно актуально, если вы собираетесь делать некоторые трехмерные «рисования», так как вы можете сделать много (простых) трехмерных объектов непосредственно в WPF. C # сделает программирование вашего GUI намного более продуктивным, чем попытка сделать это на C / C ++ с помощью Windows API напрямую (или даже MFC).

Лично для меня требование .NET минимально, но это действительно зависит от возможностей вашей организации ...

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