.NET 3.5 publié dans 11/07 .NET 3.0 dans 11/06. Pourquoi la plupart des gens utilisent-ils encore .NET 2.0? [fermé]

StackOverflow https://stackoverflow.com/questions/157055

Question

Les gens ont développé leurs propres solutions aux problèmes suivants:

  • Infrastructure de messagerie cohérente pour l'échange d'informations à distance (webservices, rpc, ...)
  • SDK pour la gestion des états pour des choses telles que les machines à états finis et les flux de travail
  • cadres d'authentification
  • Et bien plus encore.

Depuis plus de deux ans , Microsoft propose .NET 3.0 qui contient une base cohérente et bien documentée appelée Foundations for Workflows, Communication, Authentication et une nouvelle façon de créer des applications Web.

Cependant,… les gens construisaient toujours leurs propres infrastructures avec un mappage relationnel objet cohérent pour adresser leurs bases de données, leurs propres techniques pour étendre dynamiquement les classes et les méthodes au moment de l'exécution (pour que le client puisse personnaliser le comportement de l'application, par exemple).

Depuis plus d'un an , Microsoft propose .NET 3.5 qui, entre autres, contient LINQ et constitue donc un excellent ORM et un moyen formidable d'étendre votre code et de le rendre beaucoup plus facile à écrire. .

Mais regardez autour de vous ... il semble que la majorité utilise encore .NET 2.0. Les sites Web sont créés dans ASP.NET. L’expérience bureautique est toujours réalisée avec une combinaison de CSS, JavaScript et HTML. Les exécutables utilisent WinForms, les workflows sont implémentés avec des délégués, des événements, des actions à effectuer et des commutateurs / cas.

Sans trop de discussions, je serais heureux de voir des raisons concrètes à la question suivante:

Selon vous: pourquoi les gens ne sautent-ils pas dans le train .NET 3.5?

Était-ce utile?

La solution

  1. Nécessite d'apprendre de nouvelles choses. Beaucoup de développeurs LOB ne doivent pas être dérangés.
  2. Les investissements dans le code hérité, les systèmes personnalisés ne sont peut-être pas nécessaires, mais ils fonctionnent. Recoder des éléments pour utiliser des systèmes basés sur Framework est une perte de temps si le système existant n'est pas en panne.
  3. Coût du logiciel de développement. Le codage efficace dans .net 3.x nécessite vraiment VS2008. Mettre à niveau toute une équipe de développeurs avec celle de 2005 pourrait coûter cher.
  4. Stabilité. La version 2.0 était une évolution du framework 1.1. 3.0 et 3.5 incluent les nouvelles technologies v1 (celles que vous avez énumérées). Les développeurs aiment voir les technologies faire leurs preuves avant de pouvoir justifier auprès de leurs gestionnaires que le saut en vaut la peine. Comme avec l'adoption de Windows, vous verrez probablement plus de gens passer de VS2005 à VS2010 et de .net 2.0 à .net 4.0, car cela contiendra la v2 des technologies 3.x.

Autres conseils

Pour la même raison, je connais les développeurs Java qui codent encore en Java 1.4 - les modifications coûtent cher et, pour les personnes qui travaillent à l'interne, elles travaillent au sein de sociétés pour lesquelles il est bien plus important de réussir que de le faire, plutôt que d'utiliser de nouvelles technologies.

Pour de nombreux travaux internes, rien ne justifie la mise à niveau d'applications anciennes pour qu'elles fonctionnent dans des environnements plus récents.

De plus, les grandes entreprises ne sont pas friandes de changement pour diverses raisons de stabilité, vous les verrez toujours prendre la décision d'utiliser des technologies plus anciennes dans de nouvelles solutions simplement parce qu'elles pensent que la nouvelle technologie n'est pas assez stable, mais pas assez connue à ce sujet ou pas assez du logiciel sur lequel ils comptent le soutenir.

Et, je ne l'ai jamais utilisé, je ne saurais le dire, mais il se peut que .NET 2 suffise aux besoins des utilisateurs et que .NET 3.5 ne soit pas suffisant pour garantir l'apprentissage / Cela change, même pour les entreprises à la pointe de la technologie.

Parce que ce ne sont pas des sociétés d’hébergement Web bien supportées.

Je développe une nouvelle application Web, mais ma société d'hébergement fournit uniquement le support ASP.NET 2.0.

Si vous souhaitez une prise en charge de Windows 2000, vous devrez rester avec .NET 2.0. Ce n'est pas si mal de toute façon.

Je peux parler pour moi et pour mon entreprise. Nous ne l'utilisons toujours pas. Pourquoi? bien

1 : la plupart de nos utilisateurs disposent déjà du framework NET 2.0. Pas besoin d'installer un autre framework.
2 : nous ne changerons pas simplement parce que c'est la nouvelle chose. Cela doit ajouter de la valeur.
3 : pour que le changement soit réellement rentable, il faudrait beaucoup de travail. Encore une fois, il doit être rentable.
4 : Il est encore trop tôt pour dire si cela en vaut la peine (une année, ce n'est pas assez) en termes de bugs et de nouveaux problèmes. Cela semble en valoir la peine.

.NET 3.0 contient des éléments intéressants pour les nouveaux projets, mais que de nombreux projets existants ne voudraient pas prendre pour être mis à jour - il faudrait un remaniement important pour les intégrer.

Quant à cela:

  

Depuis plus d'un an, Microsoft propose .NET 3.5

En quoi novembre 2007 a-t-il lieu il y a un an? Oui, .NET 3.5 est formidable et j'aime LINQ (en particulier LINQ to Objects) et les avantages de C # 3.0 - mais le changement entraîne toujours un coût. Pour commencer, il y a le coût de déploiement de Visual Studio 2008. Il y a également le coût de tout tester à nouveau contre .NET 3.5 (et maintenant .NET 3.5SP1). Ensuite, il y a le coût du déploiement de .NET 3.5 sur tous les serveurs, ou le coût de l'exigence de .NET 3.5 sur tous les clients. Oh, sans parler du coût pour apprendre à utiliser toutes les nouvelles technologies de manière productive.

Cela arrivera, mais vous ne devriez pas vous attendre à ce qu'il soit très rapide.

Pour ajouter une note supplémentaire à ce que @ SCdF a déclaré, toute entreprise dotée d'un personnel informatique important, ce n'est pas centré sur les développeurs (c.-à-d. la majorité) résiste généralement très bien aux nouvelles technologies.

Les départements informatiques ont tendance à prendre du retard du point de vue des développeurs car ils ne voient pas l'intérêt de la mise à niveau vers de nouveaux systèmes / matériels pour conserver une longueur d'avance. Le service informatique est trop occupé par la sécurité et la maintenance (réelle ou perçue) pour traiter avec les développeurs qui souhaitent les faire passer à .Net 3.5.

Il est également notoire que les développeurs communiquent mal avec les autres départements à propos de la valeur commerciale. Lorsqu'un développeur essaie de convaincre les entreprises ou les entreprises de passer à .Net 3.5, il commence à parler de flux de travail automatisés, ainsi que de XML et des services Web, au lieu de dépenser de l'argent.

Brian Prince de Microsoft a une très bonne présentation sur & Soft; Soft Skills " cela passe en partie par-dessus. Si vous le lui demandez gentiment, il pourrait bien venir dans votre entreprise et lui présenter:)

J'ai demandé à un responsable chez un ancien employeur pourquoi il n'avait pas encore changé, la réponse était: "Je ne veux pas avoir à supporter trois cadres". signifiant 1.1, 2.0, 3.5.

J'ai expliqué que la mise à niveau vers la version 3.5 n'était pas la même chose que passer de la version 1.1 à la version 2.0 (la version 3.5 est une extension de la version 2.0 utilisant une dll différente (Core.dll) et non une dll mise à jour telle que 1.1 à 2.0).

Je peux voir beaucoup de gestionnaires utiliser cette ligne de pensée, donc c'est à vous de le leur faire savoir!

2.0 fonctionne, non? Je pense que les nouveautés sont géniales et cool et que j'aime rester au courant des dernières nouveautés, mais en fin de compte, si cela fonctionne, la décision est souvent de rester avec ce que vous avez. Je soutenais un magasin qui exécutait des programmes DOS 6.2x pendant des années (jusqu'en 2004) et j'essayais de me gratter la tête à ce sujet. Mais au bout du compte, il n’y avait aucune raison d’affaires impérieuse à dépenser quoi que ce soit pour aller de l’avant.

Je suis sûr qu'il y a aussi d'autres raisons.

Pour tous les nouveaux projets, j'essaie d'utiliser la version 3.5 (ou quelque soit le cadre le plus récent). Mais pour tous les anciens sites, pourquoi les clients paieraient-ils pour la mise à niveau lorsque cela fonctionne?

Si vous souhaitez une technologie spécifique dans la version 3.5, mettez à niveau, mais sauf si; ne répare pas ce qui n'est pas cassé ..

Je serais intéressé de voir combien de temps la version 2.0 a été utilisée avant d'obtenir "la part de marché majoritaire". - Je veux dire, 1 ou 2 ans peuvent sembler longs, mais vous devez vous rappeler que la nouvelle langue doit être publiée, ensuite les gens doivent s'entraîner dessus, alors ils doivent bien la connaître assez pour " vendre " à la direction. En outre, VS2005 était "assez bon". Pour un grand nombre de personnes, la mise à niveau vers VS2008 prend en charge des coûts pour la prise en charge des versions linguistiques les plus récentes - pas seulement de l'argent, mais du temps.

La même raison que la plupart des gens utilisent encore Windows XP!

Il y a quelques emplois, j'étais dans une situation intéressante. En tant qu'auteur original des services Web ASMX de la société, on m'a posé des questions sur leur gestion. J'étais particulièrement préoccupé par le fait que j'avais basé les services sur un XSD fabriqué à la main et que personne d'autre ne comprenait vraiment bien le XSD.

J'ai recommandé d'utiliser WCF, car ils n'auront pas besoin de formats XML personnalisés, ni de jouer avec XSD. Vous ne devez pas définir un contrat de données dans le code.

Même après avoir expliqué que .NET 3.5 SP1 constituait quelques services packs pour .NET 2.0, ainsi que de nouveaux assemblys, ils me regardaient toujours comme si j'étais sur le point de devenir violent. Évidemment, la mise à niveau des versions .NET est un processus long et coûteux . Leçons tirées de la migration .NET 1.1 ou .NET 2.0.

Un petit pas dans la bonne direction en ce qui concerne la migration vers la WCF: voir Les services Web ASMX sont une & # 8220; technologie héritée & # 8221; .

Pour le traitement gouvernemental, le cadre 3.5 n'est pas encore approuvé pour certains environnements. Vous devez donc utiliser la version 2.0 ou 3.0.

Le plus gros défi consiste à justifier la mise à niveau de l'entreprise, surtout en période de récession mondiale.

Il devrait exister un avantage ou une technologie spécifique dans 3.5 dont votre projet (probablement greenfield) ne peut absolument pas se passer, pour le faire valoir.

J'essaie de faire valoir nos arguments dans une grande entreprise. Les avantages commerciaux doivent donc l'emporter sur le statu quo. Dans le climat actuel, maintenir les talents ne suffira pas, surtout avec un bassin grandissant de candidats.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top