Je suis une .NET développeur, et je n'ai pas de pellicules. L'entreprise pour laquelle je travaille utilise C++ Builder 6. Nous avons été en développement en code natif depuis la conception. Notre produit phare est entièrement écrite en code natif.
Entre dans le .NET Framework avec de belles cloches, sifflets, moelleux, les lapins et les cudly chatons. Je tombe, crochet, ligne et plomb. Je convaincre la direction que .NET doit absolument être notre nouveau cadre pour tous les nouveaux logiciels de développement et que nous devrions commencer la migration de nos codeline ASAP. Avec tous les avantages qu'il ne prend pas beaucoup de convaincant. Ils acceptent ma proposition, comme d'habitude.
À ce stade, je commence à développer mon tout premier .NET application. C'est tout ce passe comme prévu. Le projet n'est qu'une composante de notre produit. Et si je reçois au point de créer un programme d'installation de cette nouvelle composante. En tant que société, nous sommes fiers de rendre les choses pour l'utilisateur facile que possible. Même Microsoft avec des milliers de développeurs de ne pas créer des installateurs comme nous le faisons. Lorsque vous installez Microsoft CRM par exemple, vous obtenez seulement une liste d'échecs et de conditions préalables qui ont des besoins de l'installation avant de pouvoir continuer. Pas nous. Jamais. Si vous besoin de quelque chose, nous allons l'installer pour vous. Imaginez que.
Nous, le lancement de l'EXE, pour vous...
Cela rend nos installations se sentir tellement facile. .NET Framework n'est pas installé? Pas de problème! Nous le ferons pour vous. Besoin de SQL Native client? Très bien!
La question est, maintenant que d'une seule composante de notre solution est écrit .NET, cela complique le processus d'installation incroyablement. Avant que je puisse même d'arriver à l'installation de notre produit, j'ai besoin de faire ce qui suit:
Détecter si la condition préalable est installé
L'installer si ce n'est pas
Vérifiez qu'il a été installé avec succès
Prochaine préalable
Pour installer .NET Framework, j'ai besoin de Windows Installer 4.5 première. Mais il y a des versions différentes pour les différents Systèmes d'exploitation, j'ai donc ajouter détection de système d'exploitation et de lancer le bon EXE. Oh, .NET framework est déjà emballé avec 2k8 et le programme d'installation exe ne peut pas s'exécuter sur elle, vous avez à courir OCSetup.exe avec les paramètres de l'installer. Soupir.
Et donc, qu'elle exploite. SQL Express 2005 doit être installé. Les dépendances augmenter une fois de plus.
Je soutiens avec la direction que même Microsoft ne le faites pas cette facile pour l'utilisateur. Leur réponse est qu'il n'y a aucune raison pour nous de ne pas être meilleur qu'eux de cette façon. Je ne peux pas argumenter avec ça, sauf que je sens qu'il y a de très bonnes raisons, ils sont allés avec leur approche.
Soudain, notre programme d'installation est massif. Toutes les conditions préalables pour .NET, ne parlons même pas de support 64 bits qui dispose d'un ensemble séparé de la gamme de Exe à installer. Alors maintenant, il en arrive au point où nous voulons que les utilisateurs soient en mesure de télécharger un "rapide" de l'évaluation. Quelle blague. Vous devez télécharger 500MO pour obtenir un 30MB application en cours d'exécution. Le majoritiy le package d'installation est un prérequis.
La direction estime que nous avons trop de dépendances/conditions préalables. Je comprends tout à fait. Ils suggèrent que nous nous éloignons de la .NET framework, de retour en terre natale où les choses étaient toujours "facile" en termes d'installation. C'est là une partie de moi veut se lever pour .NET en expliquant les avantages dans l'ensemble, l'amélioration de l'expérience du développement, de la facilité de l'entretien et de l'ensemble de la qualité du code. L'autre partie de moi est d'accord avec eux de tout cœur! Le développement de .NET tout simplement vous oblige à installer un trop grand nombre de conditions préalables qui complique l'installation.
Oui, certains de la .NET défenseurs affirment que tout devrait être installé sur une version modifiée et mise à jour du système d'exploitation. C'est vrai, mais pas tous les clients, et dire tout simplement "je suis désolé, d'abord mettre à jour", ne suffit pas. Rappelez-vous, nous sommes fiers de nous-mêmes dans l'expérience globale de l'utilisateur.
Nous envisageons maintenant écrit en code natif de nouveau et je sais que nous sommes en train de perdre en termes de rapidité de développement et tous les goodies de .NET. Mais nous sommes de plus en ce domaine, être petit si vous regardez l'image ou pas. Comme nous l'avons code natif de développement des compétences et de l' .NET est en fait un terrain nouveau pour nous, il fait même sens pour revenir.
Ma question, finalement, est-ce, qu'est-ce que votre compagnie est d'avis sur cette question, même s'il est un problème et ce sera le cas pour l'entreprise ressembler que je propose à la gestion en supposant que je veux continuer la migration de l'ensemble de nos produits .NET?