65 votes

Déployer ASP.NET MVC sur Linux : Meilleures pratiques, outils et surprises

Je m'interroge sur les meilleures pratiques pour développer des applications ASP.NET MVC avec une option de déploiement sur Linux. Si vous créez ce type d'applications MVC,

  • Quelle plate-forme Linux/Mono visez-vous ?
  • Quelle part du développement faites-vous sous Windows et quelle part sous Linux ?
  • Utilisez-vous un ORM pour abstraire la base de données ? Lequel ?
  • Utilisez-vous un moteur de construction sous Linux ? Et les tests ?
  • Quels autres outils utilisez-vous ?
  • Quel travail supplémentaire cela a-t-il représenté de cibler Linux en plus de Windows ?
  • Quelles surprises laides ou agréables avez-vous rencontrées ?

34voto

skolima Points 12221

L'entreprise pour laquelle je travaille utilise Mono sur Linux comme principal environnement de déploiement. Il n'y a donc pas de travail "supplémentaire" - nous fournissons l'ensemble de la pile, du matériel aux applications, en passant par le système d'exploitation (personnalisé et rogné). L'utilisation de l'Open Source permet de réaliser d'énormes économies pour nous et nos clients (et oui, nous contribuons aux projets de systèmes d'exploitation dont nous dépendons).

L'important est de tester constamment en utilisant votre cible réelle (désolé, Mono sur Windows ne compte pas). Bien sûr, les développeurs utilisent Visual Studio, mais l'intégration continue (à l'aide de CruiseControl.Net (vous aurez besoin de Mono 2.4.2 pour l'exécuter sous Linux) est réalisé à la fois sous Windows et sous Linux, testant toutes les versions de Mono sur lesquelles nous nous attendons à travailler (il est devenu beaucoup plus stable récemment, mais des régressions se produisent quand même entre les versions). Il est assez facile d'exécuter versions parallèles Mono sur un système *nix, vous pouvez même inclure une construction svn snapshot si vous préférez attraper les régressions en amont plus tôt. Si vous ne déployez pas votre propre distribution, rappelez-vous que la plupart des fournisseurs de Linux livrent Mono avec des correctifs personnalisés - cela nous a déjà causé des problèmes. De plus, de nombreuses distributions ont beaucoup de retard dans la mise à jour de Mono, et c'est un projet qui progresse rapidement.

Pour la couche base de données, nous utilisons principalement ADO.NET "ordinaire" - Oracle (avec dotConnect pour Oracle (ils supportent Mono) et SQLite (Mono est livré avec un connecteur fonctionnel). J'ai également utilisé la version officielle de Pilote ADO.NET pour MySQL (Connecteur/NET) et lui aussi fonctionne bien. Les mappages ORM sont plus délicats, mais NHibernate est utilisable (gardez à l'esprit qu'ils ne pas supportent officiellement Mono).

Quant au moteur de construction et aux tests - NAnt et NUnit sont bien connus et bien testés. Avec les versions les plus récentes de Mono, xbuild (clone de MSBuild) est devenu utilisable, mais préparez-vous à contribuer à de nombreux correctifs si vous décidez de l'utiliser pour des scénarios plus complexes.

Écrivez des tests. Beaucoup de tests. Soyez prêt à contribuer aux correctifs et aux rapports de bogues, et si vous utilisez des composants commerciaux, assurez-vous que le fournisseur supporte officiellement Mono.

4voto

Drew Noakes Points 69288

Le blog de Nathan Bridgewater contient quelques articles intéressants qui montrent, entre autres, que la situation est bonne :

  • exécution de MVC3 avec razor sur mono
  • migration d'ASP.NET MVC de Windows/SQL Server vers Linux/MySQL
  • installer et exécuter MonoDevelop
  • installation de mono à partir des sources

http://www.integratedwebsystems.com/category/dotnet/mono/

1voto

mkchandler Points 2389

Jetez un coup d'œil à la Projet Mono . Il semble que ce soit ce que vous recherchez. Si je me souviens bien, ASP.NET MVC y est maintenant intégré.

Je n'ai jamais travaillé avec Mono, mais d'après ce que j'ai compris, il n'y a pas beaucoup de différences.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X