Conseil en programmation MS Windows pour développeur Mac / Unix

J’ai quelques années d’expérience dans l’écriture d’outils de ligne de commande Unix (sans expérience graphique) en python, C et C ++, et je ne suis que récemment entré dans le monde de l’interface graphique (Cocoa et IOS uniquement). J’ai appris beaucoup d’objectives-C et je commence à comprendre comment fonctionne le cacao MVC. Cependant, l’une des applications que je développe nécessite une version Windows et je me demandais quel est le bon sharepoint départ étant donné que je n’ai absolument aucune expérience du développement Windows.

Je pensais utiliser Visual C ++ 2010 Express comme plate-forme de développement (parce que c’est gratuit et que je n’ai pas besoin d’apprendre le C ++). Mon application est relativement simple, elle ne comportera que deux fenêtres et passera la plupart du temps en arrière-plan. Il devra cependant communiquer avec le système d’exploitation (load dll’s etc) et un serveur en ligne (méthodes HTTP) et je ne suis pas sûr que Visual C ++ Express edition me permette d’accéder aux API requirejses. Une application Windows Forms suffirait-elle? Est-ce que je vais à ce sujet dans le mauvais sens? Dois-je apprendre le C #? Tout conseil sera apprécié.

Si vous êtes déjà satisfait du bon C ++, visual Studio C ++ express devrait vous convenir. Étant donné que vous ne faites pas une interface graphique compliquée, vous n’avez même pas besoin de plonger dans le code managé – C ++ express vous permet de créer des applications de console et d’interface graphique c ++ appropriées. Vous n’avez pas non plus besoin d’installer la plate-forme SDK – elle fait partie de VS C ++ express.

N’étant pas géré en C ++, vous pourrez partager des fichiers sources entre vos différents projets. c ++ géré, malgré le c ++ dans le nom, est vraiment un langage suffisamment différent pour que vous puissiez travailler avec iso C ++.

Note: L’API Windows native est une API C, pas un framework C ++. Donc, il ne fournit pas un ensemble riche de classes dans un cadre cohérent à traiter. D’un autre côté, bien que, gros, c’est en fait assez simple à travailler.

Aussi: Étant donné que vous êtes déjà familiarisé avec le développement Mac, il existe un package LGPL (iirc) appelé CFLite qui se construit sous Windows et qui implémente l’API C qui sous-tend l’API Objective-C Cocoa.

Si vous utilisez ses abstratcions, vous pouvez partager une plus grande partie du code entre Windows et Mac (et d’autres plates-formes).

Autres IDE C ++ que vous pouvez envisager:

  • Code :: Blocs
  • Créateur QT

les deux peuvent être configurés pour utiliser le port MINGW de GCC dans Windows.

vous serez mieux avec c ++ que c # si vous avez besoin de plus de “bas niveau”. Charger dlls (c’est-à-dire libs) est simple (pragma comment lib …), tout comme le transfert et la communication HTTP.

Donc, VC ++ avec Windows form suffira, et c’est “very c ++”.

Vous avez access à toutes les API globales, et le chargement d’apis spécifiques comme http ne nécessite que deux lignes: une pour inclure l’en-tête wininet et une autre lib (les libs sont en fait des “références” à dlls).

Si vous utilisez la méthode C ++ Express, vous devez installer Windows SDK séparément et le configurer pour que Visual Studio puisse l’utiliser. Et vous ne pouvez pas utiliser MFC.

Je voudrais cependant suggérer C #, car on a l’impression de mettre des petites briques de jouets ensemble. Plus facile à déboguer et à entretenir. Le problème avec C # est qu’il a tellement de fonctions de bibliothèque que vous ne pouvez pas savoir si ce que vous voulez est déjà fait à une fonction. Mais c’est pour ça que nous sums ici 🙂 Si vous sentez que quelque chose que vous voulez faire devrait déjà exister, alors posez une question à ce sujet. Une caractéristique notable que C # ne possède pas est les archives zip (elles ont quelque chose de similaire, mais pas tout à fait). Pour les zips, vous pouvez utiliser des bibliothèques publiques, telles que SharpZipLib ou DotNetZip .

Si j’étais vous, je ne sauterais pas si rapidement dans une toute nouvelle API. Avez-vous envisagé d’utiliser Python sous Windows? La plupart des paquets Python que j’ai vus sont également disponibles pour Windows, donc vous vous sentirez comme chez vous. Et si vous avez besoin d’une interface graphique, vous pouvez opter pour wxPython, pyGTK ou quelque chose de similaire.

Pour les choses spécifiques à Windows, vous pouvez toujours utiliser les ctypes. Surtout si elles sont aussi simples que de charger une DLL.

Avez-vous envisagé d’approcher Adobe AIR? il vous permet de déployer sur Mac, Linux, Windows, iOS, etc. La communication et le lancement de processus natifs sont possibles depuis la version 2.0 et le dernier SDK 2.5 peut cibler les systèmes d’exploitation et les téléviseurs Android. Avec votre expérience, vous devriez être capable de choisir ActionScript3 / MXML en un rien de temps.

De plus, vous pouvez utiliser quelques IDE gratuits avec les SDK Flex et AIR. ou, si vous êtes étudiant ou développeur à faible revenu, vous pouvez obtenir une copie gratuite de Flash Builder 4 auprès d’Adobe: http://www.adobe.com/devnet-archive/flex/free/


edit: Je pense que le déploiement d’applications AIR sur iPhone nécessite Flash Professional CS5, qui inclut les options de packaging pour iPhone. en même temps, j’ai lu que AIR et les autres compilateurs croisés pour iOS sont extrêmement lents, il est donc préférable de les développer en mode natif dans Objective-C pour iOS.