7

Tengo algunos años de experiencia escribiendo herramientas de línea de comandos de Unix en Python, C y C++, y recientemente cruzado al mundo de GUI (solo Cocoa e IOS) . Aprendí un poco de Objective-C y estoy empezando a entender cómo funciona el MVC de cacao. Sin embargo, una de las aplicaciones que estoy desarrollando necesita una versión de Windows y me preguntaba qué buen lugar para comenzar sería que no tengo absolutamente ninguna experiencia de desarrollo de Windows.MS Windows Asesoramiento de programación para desarrollador Mac/Unix

Estaba pensando en usar Visual C++ 2010 Express como mi plataforma de desarrollo (porque es gratis y porque no necesito aprender C++). Mi aplicación es relativamente simple, solo tendrá dos ventanas y pasará la mayor parte del tiempo ejecutándose en segundo plano. sin embargo, tendrá que comunicarse con el sistema operativo un servidor en línea (métodos HTTP) y no estoy seguro de si Visual C++ Express edición me da acceso a la API requerida de (DLL de carga, etc.) y. ¿Sería suficiente una aplicación de Windows Forms? ¿Voy por esto de la manera incorrecta? ¿Debo aprender C#? Cualquier consejo será apreciado.

Respuesta

3

Si ya está contento con C++ adecuado, visual Studio C++ express le conviene. Dado que no está haciendo una interfaz gráfica de usuario complicada, ni siquiera necesita sumergirse en el código administrado: C++ express le permite crear aplicaciones de consola y GUI adecuadas. Tampoco necesita instalar la plataforma SDK, es parte de VS C++ express.

Al no ser administrado C++, podrá compartir archivos fuente entre sus diversos proyectos. C++ administrado, a pesar del C++ en el nombre, realmente es un lenguaje lo suficientemente diferente que será molesto trabajar con él si simultáneamente tiene que lidiar con iso C++.

-

Nota: La API de Windows nativo es una API de C, no un marco de C++. Por lo tanto, no proporciona un conjunto rico de clases en un marco coherente para tratar. Por otro lado, si bien es grande, en realidad es bastante sencillo trabajar con él.

Además: Dado que ya está familiarizado con el desarrollo de Mac, hay un paquete LGPL (iirc) llamado CFLite que se basa en Windows y que implementa la API C que subyace a la API Objective-Cocoa.

Si usa sus abstracciones, puede compartir una gran parte del código entre Windows y Mac (y otras plataformas).

de Otros C++ IDE es posible que desee considerar:

  • Código :: Blocks
  • Qt Creator

ambos de los cuales puede ser configurado para utilizar el puerto Mingw de GCC para ventanas.

+0

Estoy dividido entre Python y C++, pero como estoy más cómodo con C++ voy a probar VS C++ para esta aplicación. ¡Gracias! – CodeWombat

2

estará mejor con C++ que C# si necesita más cosas de "bajo nivel". Cargando dlls (es decir, libs) es simple (pragma comment lib ...), como lo es la transferencia HTTP pura y la comunicación.

Por lo tanto, VC++ con forma de Windows será suficiente, y es "muy C++".

Tiene acceso a todas las API globales, y la carga de apis específicos como http requiere solo dos líneas: una para incluir el encabezado wininet y otras lib (libs son en realidad "referencias" a dlls).

1

Si utiliza el modo C++ Express, debe instalar Windows SDK por separado y configurarlo para que Visual Studio pueda usarlo. Y no puedes usar MFC.

Sin embargo, sugiero C#, porque se siente como poner pequeños ladrillos de juguete juntos. Más fácil de depurar y mantener. El problema con C# es que tiene tantas funciones de biblioteca que posiblemente no puedas saber si lo que deseas ya está hecho para una función. Pero es por eso que estamos aquí :-) Si sientes que algo que quieres hacer ya debería existir, entonces haz una pregunta al respecto. Una característica notable que C# no tiene es archivos comprimidos (tiene algo similar, pero no del todo). Para cremalleras puede utilizar las bibliotecas públicas, como SharpZipLib o DotNetZip.

+0

¿El único inconveniente de usar C++ Express es juntar las piezas? ¿Hay alguna ventaja de usar C# .Net vs C++ .Net? – CodeWombat

+0

C# es por un orden de magnitud más fácil de usar que C++. No sé sobre C++. NET, nunca usé ese combo, no me parece natural. – Dialecticus

+1

WinForms y C++ no son exactamente BFF. La mayoría de los desarrolladores hacen la interfaz de usuario final de su aplicación en C# y usan C++ para los métodos lógicos. Si está buscando verdaderamente replicar la experiencia de XCode/Interface Builder sin emplear una solución multiplataforma, C# y WinForms son realmente su mejor opción. Es dudoso que un veterano programador de Objective-C no quede impresionado por la extensión de las bibliotecas incorporadas después de unos días de codificación en C#. –

0

¿Ha pensado en acercarse a Adobe AIR? que le permite desplegar en Mac, Linux, Windows, iOS, etc. comunicarse con el lanzamiento de los procesos y nativas ha sido posible desde el 2.0 y el último SDK 2.5 puede apuntar OS y Android TV. con su experiencia, debería poder tomar ActionScript3/MXML en poco tiempo.

Además, hay un puñado de IDEs gratuitos que puede usar con Flex y AIR SDK. o, si usted es un desarrollador de estudiante o de bajos ingresos, se puede obtener una copia gratuita de Flash Builder 4 de Adobe: http://www.adobe.com/devnet-archive/flex/free/


edición: creo el despliegue de aplicaciones de AIR en iPhone requiere Flash Professional CS5, que incluye el paquete para las opciones de iPhone. al mismo tiempo, he leído que el aire y otros compiladores cruzados para iOS son muy lento, por lo que es quizás mejor para desarrollar de forma nativa en Objective-C para iOS.

+0

He considerado el desarrollo multiplataforma (Qt, wxWidgets, etc.), pero debido a que esta aplicación es muy pequeña (tardó un par de meses (2-3 horas/semana) en desarrollar la versión para Mac sin ninguna experiencia previa en Objective C) Decidí que probablemente sería más rápido escribirlo con un IDE de Windows en un idioma en el que ya me siento cómodo (en este caso C++). Podría considerar Adobe AIR una vez que entre al desarrollo multiplataforma. – CodeWombat

1

Si fuera usted, no me lanzaría a una nueva API tan rápidamente. ¿Has considerado usar Python en Windows? La mayoría de los paquetes de Python que he visto también están disponibles para Windows, por lo que te sentirás como en casa. Y si necesita alguna GUI, puede optar por wxPython, pyGTK o algo similar.

cosas específicas de Windows, siempre se puede utilizar ctypes. Especialmente si son tan simples como cargar una DLL.

+0

He pensado en usar Python. De hecho, cuando comencé la versión para Mac de la aplicación, estaba usando Py-ObjC, pero rápidamente me deshice del código python y lo escribí en Obj-C puro porque resultó ser más fácil: hay una clase para casi todo en la API de Cocoa y por lo que necesitaba hacer, Py-ObjC se estaba volviendo hambriento. La razón por la que creo que Windows forms/C++ es porque estoy tratando de establecer un paralelo con la experiencia de Interface Builder/Xcode. – CodeWombat

+0

El paralelo en el mundo de Windows es C#. No es difícil de aprender, pero si ya conoces a Python y probablemente ya tienes algún código que implemente algunas de las cosas que necesitas en tu aplicación de Windows, ¿por qué pasar a C#? – kichik

+1

Tiene un punto válido, ¿hay alguna limitación que me tope en cuanto a hacer llamadas a la API de Windows si elijo escribir la aplicación en Python? – CodeWombat

Cuestiones relacionadas