什么是“私有.NET框架”?

38

一家知名的金融软件供应商发布了一个“私有”的.NET框架

Private Bloomberg .NET framework

什么是私有的.NET框架?

为什么有人想要拥有自己的私有.NET框架?

简单来说,如何创建一个私有的.NET框架?


一个人可以从GitHub获取框架代码,进行一些更改并声明为“私有”,但不确定是否合法!或者,他们可能是在指他们的软件,而不是框架。 - Arghya C
8
据彭博文档所述:“Bloomberg向所有客户分发一种虚拟版本的.NET框架,使得客户可以使用.NET框架而无需在机器上安装它。”不太确定这个做法是如何实现的,听起来有点像营销用语。 - David M
根据Theodorus的答案中的代码,如果没有安装MS .NET,那么Bloomberg .NET框架是已经安装的。 - Hagen von Eitzen
不明白为什么安装程序中没有包含.NET框架的Redist? - Tomer W
3个回答

28

我与该供应商没有任何关联,因此显然无法代表他们发言。说完这个...


他们的常见问题解答中说:

什么是Bloomberg私有.NET Framework软件?

如果工作站没有相应的Microsoft .NET Framework本机软件,则只安装这些软件组件。 如果两个本机Microsoft版本(3.5 SP1和4)都不存在,则在初始安装期间仅会安装私有v3.5 SP1组件。 私有v4版本的安装文件(bnetupd.exe)将被复制到 \blp\wintrv 目录,以便稍后安装。

这听起来像他们正在分发自己的.NET Framework版本,并且如果用户的工作站没有安装官方的.NET Framework,则使用该版本。 其背后的原理可能很简单,就是为了避免对用户的工作站进行重大更改:

  • 如果您已经安装了.NET Framework,则应用程序使用它是没问题的,因为不需要对工作站进行任何更改。
  • 如果您尚未安装.NET Framework,则供应商不会假设您想要安装它,因此他们捆绑了自己的构建版本,旨在仅与其应用程序一起使用,而不与您可能拥有的其他软件共享。

关于如何做到这一点的问题,答案是首先需要获得允许您执行此操作的许可证。通常,您可以使用“默认”许可证获取软件,或者您可以与供应商协商更方便的许可证。无论哪种情况,您都需要确保您拥有的许可证允许此类使用和重新分发。

从这里开始,你可能有多种方法去做(包括获取源代码并制作自定义构建,使用自定义链接器或绑定工具 -- 或者在启动时使用某种诡计)。

观察该供应商安装程序在虚拟机内的行为,我看到框架程序集确实部署为本地镜像在一个自定义目录中,该目录似乎模仿了典型的.NET安装目录结构。那个自定义目录的名称是%WINDIR%,这对我来说似乎暗示着一种使用环境变量进行重定向的方法(因为,如果您取消设置一个环境变量,它将“扩展”为其名称)。

无论如何,部署的框架仅被供应商的软件使用,并不影响其他.NET应用程序,它们只是忽略它。因此,短语私有.NET Framework是相当准确的。


1
这对我来说听起来很糟糕。如果用户以后想安装MS .NET 4.0来支持其他软件,会发生什么?他/她会安装两个版本吗?还是Blomberg的被认为是“the” .NET?MS的错误修复是否适用于Bloomberg .NET?毕竟MS和Bloomberg .NET之间有什么区别吗? - Hagen von Eitzen
9
我已经安装了之前提到的工具,以查看它们实际上的功能。正如预期的那样,这个私有的 .NET 框架并没有安装在 Windows 目录中,而是在另一个定制的目录中。它只涉及供应商的软件——其他基于 .NET 的二进制文件会简单地忽略它。 - Theodoros Chatzigiannakis
1
这让我们想起了Spolsky在2004年的文章《请问先生,我能有一个链接器吗?》。他注意到缺少一个构建包含所有必要库的可执行文件选项是(当时)传统Windows应用程序分发的一种偏离:http://www.joelonsoftware.com/articles/PleaseLinker.html - chesterbr

7

2
我不认为他们是在说这与 THE .NET Framework 有关,而是指运行在 .NET 上的专门针对 Bloomberg 的代码,他们称之为框架。"Private" 可能指的是他们需要通过某些自定义凭据定制访问其服务器的事实。

3
看起来是这样,但彭博社在他们的市场宣传用语中并不十分透明。 - Smack Jack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接