Qu’est-ce qu’un “framework .NET privé”?

Un fournisseur de logiciels financiers populaire dissortingbue un framework .NET “privé” :

Cadre privé Bloomberg .NET

Qu’est-ce qu’un framework .NET privé?

Pourquoi quelqu’un pourrait-il avoir sa propre version privée du framework .NET?

En termes simples, comment pourrait-on créer un framework .NET privé?

Je ne suis en aucun cas affilié à ce fournisseur et je ne peux donc évidemment pas parler pour eux de leur signification. Avec ça à l’écart …


Leur FAQ indique ce qui suit:

Qu’est-ce que le logiciel .NET Framework privé de Bloomberg?

Ces composants logiciels ne sont installés que si le logiciel Microsoft .NET Framework natif correspondant n’est pas installé sur le poste de travail. Si les deux versions natives de Microsoft (3.5 SP1 et 4) ne sont pas présentes, seul le composant privé v3.5 SP1 sera installé lors de l’installation initiale. Le fichier d’installation (bnetupd.exe) de la version privée de v4 sera copié dans le répertoire \ blp \ wintrv pour une installation ultérieure.

On dirait qu’ils dissortingbuent leur propre version du .NET Framework et cette version est utilisée si le poste de travail n’a pas installé le .NET Framework officiel. Cela pourrait être aussi simple que d’éviter de modifier radicalement le poste de travail de l’utilisateur:

  • Si vous avez déjà installé le .NET Framework, vous pouvez l’utiliser avec l’application, car aucun changement n’est nécessaire sur votre poste de travail.
  • Si vous n’avez pas déjà installé le .NET Framework, le fournisseur ne suppose pas que vous souhaitiez qu’il soit installé. Au lieu de cela, ils intègrent leur propre version destinée à fonctionner uniquement avec leurs applications et à ne pas partager avec d’autres logiciels. .

En ce qui concerne la question de savoir comment faire quelque chose comme ça, la réponse est que tout d’abord vous devez avoir une sorte de licence qui vous permette de faire cela. En général, vous pouvez obtenir un logiciel avec sa licence “par défaut” ou vous pouvez négocier une licence plus pratique avec son fournisseur. Dans tous les cas, vous devez vous assurer que ce type d’utilisation et de redissortingbution est autorisé par la licence dont vous disposez.

À partir de là, il y a probablement plusieurs façons de le faire (y compris recevoir le code source et créer une version personnalisée, utiliser un éditeur de liens personnalisé ou un outil de regroupement – ou une sorte de ruse lors du lancement).

En observant le comportement du programme d’installation de ce fournisseur au sein d’une machine virtuelle, je constate que les assemblys d’infrastructure sont effectivement déployés en tant qu’images natives dans un répertoire personnalisé qui semble imiter la structure du répertoire d’installation .NET standard. Le nom de ce répertoire personnalisé est %WINDIR% , ce qui me semble suggérer une sorte de redirection utilisant des variables d’environnement (car si vous supprimez une variable d’environnement, elle se déploie à son nom).

Dans tous les cas, l’infrastructure déployée n’est utilisée que par les logiciels du fournisseur et ne semble pas affecter les autres applications .NET, elle les ignore simplement. Ainsi, l’expression .NET Framework privée est raisonnablement précise.

Microsoft a décidé de ne pas publier .NET Framework 3.5 pour Windows 8, Windows 10, Windows 2012 Server et le programme d’installation en ligne qui ne peuvent pas être redissortingbués très souvent. Les autres fournisseurs doivent donc créer leurs propres installateurs hors ligne. Ce n’est pas le premier cadre maison que j’ai rencontré. Même si ce n’est pas légal , les développeurs doivent prendre en charge les applications .NET 3.5 sur les serveurs Windows 8, Windows 10 et Windows 2012.

Je ne pense pas qu’ils disent que cela est lié à THE .NET Framework, mais seulement que c’est le code spécifique à Bloomberg qui s’exécute sur .NET qu’ils appellent un framework. Privé fait probablement référence au fait qu’il nécessite un access personnalisé à ses serveurs via certaines informations d’identification personnalisées.