web-dev-qa-db-fra.com

C # en fait un langage multiplateforme?

C # (et la plate-forme .NET en général) ressemble à ce qu'il devient une bonne option formule des applications multi-ciblées:

  • framework officiel MS .NET: Développement complet de Windows, ASP.NET DEV, Windows Phone Dev, etc.
  • mono et tous ses dérivés: MonoTouch, monocontrôle: le reste du monde. Ces outils sont aujourd'hui RTM.

  • Cela signifie-t-il que c # devient une bonne langue pour cibler les plateformes les plus populaires: bureau, web et mobile?

  • Est-il toujours préférable d'utiliser le langage "natif" des plates-formes cibles (objectif C, Java, etc.)
  • Est-ce seulement un écran de fumée et seulement une langue marketing?

Veuillez noter que je suis vraiment conscient, je ne pourrai pas copier/coller le code entre les plates-formes. Mais je suis sûr que les couches inférieures d'applications (modèles, affaires, etc.) peuvent être réutilisées, mais je sais que je devrai adapter les couches supérieures (interface graphique, etc.) à la plate-forme. Mon objectif est davantage axé sur les compétences requises que le partage de code technique.

[modifier] I AM Un développeur C # dans une entreprise qui utilise massivement C #. C'est pourquoi j'ai parlé de C # dans un plan visant à développer la gamme de plates-formes cibles dans ma société.

20
Steve B

Oui, en général, le .NET Framework est idéal pour les applications ciblant une large gamme d'appareils. Mais ce n'est pas unique à .NET; Java= le faisait aussi longtemps avant. La chose à garder à l'esprit est qu'il n'y a pas réel Alternative aux outils natifs pour une plate-forme particulière.

Les applications MAC que vous créez avec .NET seront jamais Employer des applications de Mac OS X publicitaires, et c'est considéré comme un problème de vaste majorité Utilisateurs OS X . Cela peut ne pas être important pour vous de manière stratégique, selon que les valeurs de votre modèle commercial optimisent la saturation en optimisant la satisfaction des utilisateurs, mais c'est certainement quelque chose à garder à l'esprit lorsque vous faites un choix.

Les systèmes d'interface graphique de Linux et de Windows sont un peu plus flexibles sur lesquels les applications ont l'air "natif" et s'adaptent bien à la plate-forme. Mais je blâme que surtout sur l'absence de directives d'interface claires et que les développeurs d'applications ont toujours été disposés à ignorer ceux qui existent. De nombreux utilisateurs Mac préfèrent le Mac précisément parce que de son interface utilisateur cohérente.

Considérant que vous devrez adapter la couche d'interface graphique à la plate-forme spécifique (et éventuellement la réécrire dans une langue différente entièrement, telle que l'objectif-c), qui vous laisse tirer parti de la plate-forme .NET uniquement pour le code de la bibliothèque. Et puis il n'y a pas une victoire très claire pour C # sur C++, à mon avis.

Pour le développement rapide des applications, il existe peu de variations meilleures que c # et .net. Et poussant une application rapidement et l'avoir immédiatement disponible sur une diversité de plates-formes est certainement un avantage commercial. Mais pour de véritables applications multi-plateformes qui visent à satisfaire vraiment l'utilisateur, ce n'est pas nécessairement la solution d'argent Bullet.

12
Cody Gray

Microsoft .NET est la mise en œuvre officielle CLR, DLR, BCL, CLI et CLS. D'autres sociétés, groupes, communautés ou groupes de travail ne sont pas associés à Microsoft de manière à ce que ceux-ci puissent avoir une mise en œuvre de 1: 1 de la dernière version de cadre et de langue.

Fondamentalement, vous devez examiner les fonctionnalités de langue et de cadre que vous souhaitez tirer parti dans un projet concret et vérifier si ceux-ci sont présents dans des implémentations non officielles .NET.

Si vous vous attendez à une solution de compilation et de distribution de partout, vous avez tort: ​​vous devez faire une étude de cas.

6

J'utilise C # sur des jeux en cours d'exécution sur Xbox et Windows Machines, je l'utilise dans Compact Framework Apps pour Robotics Solutions, j'utilise MonoTouch pour le développement iPad, j'ai quelques applications Web fonctionnant sur Linux et peu d'autres solutions. Habituellement, il y a une façon de faire votre chose sur une plate-forme donnée. La couche centrale est à peu près la même pour la plupart (étude de cas nécessaire). Le problème - et je le considère comme une série une - est l'environnement de développement. Je suis habitué à Visual Studio et à ses caractéristiques. Mais monoduelop, par exemple, me conduit noix.

2
scarlaxx