What is a "private .NET framework"?
Asked Answered
C

3

38

A popular financial software vendor distributes a "private" .NET framework:

Private Bloomberg .NET framework

What exactly is a private .NET framework?

Why might someone want to have their own, private version of the .NET framework?

In basic terms, how might one go about creating a private .NET framework?

Coldblooded answered 27/9, 2015 at 5:56 Comment(4)
One can get the framework code from GitHub, make some change and claim it private, but not sure if that is legal! Or maybe, they are referring to their software, not the framework.Romanist
From Bloomberg documentation: "Bloomberg distributes a virtual version of the .NET framework to all customers that allows use of the .NET framework without having to install it on the machine." Not quite sure how that would work, sounds like marketing speak to me.Martellato
@DavidM According to the code in Theodorus' answer, the Bloomberg .NET framework is installed if no MS .NET is present.Watering
didn't understand why not include the .NET FW Redist with the installation?Dancy
S
28

I'm not affiliated with this vendor in any way and thus I obviously can't speak for them about what they mean. With that out of the way...


Their FAQ states the following:

What is the Bloomberg private .NET Framework software?

These software components are only installed if the workstation does not have the corresponding native Microsoft .NET Framework software installed. In the case that both native Microsoft versions (3.5 SP1 and 4) are not present, only the private v3.5 SP1 component will be installed during the initial installation. The installation file (bnetupd.exe) for the private v4 version will be copied to the \blp\wintrv directory for installation at a later date.

This sounds like they are distributing their own version of the .NET Framework and that version is used if the workstation does not have the official .NET Framework installed. The rationale behind this could be as simple as to avoid making drastic changes to the user's workstation:

  • If you already have the .NET Framework installed, it's fine for the application to use it, because no changes to your workstation are required.
  • If you do not have the .NET Framework already installed, then the vendor doesn't assume you want it installed, so instead they bundle their own build that's intended to work only with their applications and not to be shared with other software you may have.

Regarding the question of how you'd do something like that, the answer is that first of all you need to have some sort of license that allows you to do this. In general, you can obtain a piece of software with its "default" license or you can negotiate a more convenient license with its vendor. In any case, you need to make sure that this kind of usage and redistribution is permitted by the license you have.

From there on, there are probably multiple ways you could go about it (including receiving the source code and making a customized build, using a custom linker or a bundling tool -- or some kind of trickery when launching).

Observing the behavior of this vendor's installer inside a virtual machine, what I see is that the framework assemblies are indeed deployed as native images in a custom directory that seems to mimic the structure of the typical .NET installation directory. The name of that custom directory is %WINDIR%, which to me seems to suggest some kind of redirection using environment variables (because, if you unset an environment variable, it "expands" to its name).

In any case, the deployed framework is used only by the vendor's software and does not seem to affect other .NET applications, they simply ignore it. So the phrase private .NET Framework is reasonably accurate.

Shumaker answered 27/9, 2015 at 6:44 Comment(3)
This sounds terrible to me. What happens if the user later wants to install MS .NET 4.0 to support some other software? Will he/she have two versions installed? Or is Blomberg's recognized as "the" .NET? Will MS bug fixes be applied to Bloomberg .NET? Is there any difference between MS and Bloomberg .NET after all?Watering
@HagenvonEitzen I've finished installing the aforementioned tools to see what they actually do. As expected, this private .NET framework is not installed in the Windows directory but in another, custom one. It concerns only the vendor's software - other .NET-based binaries simply ignore it.Shumaker
And this brings us to Spolsky's 2004 "Please Sir May I Have a Linker?", in which he noticed the lack of an option of building an executable containing all needed libraries was a departure from (then) traditional Windows app distribution: joelonsoftware.com/articles/PleaseLinker.htmlSolenoid
N
7

Microsoft decided not to publish redistributable .NET Framework 3.5 for Windows 8, Windows 10, Windows 2012 server and online installer very often does not work. So other vendors need to create their own offline installers. It is not the first home-made framework I met. Even if it is not legal, developers are pushed to support the .NET 3.5 apps on Windows 8, Windows 10 and Windows 2012 server.

Nitrochloroform answered 27/9, 2015 at 12:13 Comment(0)
L
2

I don't think they are saying this is related to THE .NET Framework, only that it is Bloomberg-specific code which runs on .NET that they call a framework. Private most likely refers to the fact that they require custom access to their servers via some custom credentials.

Lookout answered 27/9, 2015 at 6:2 Comment(1)
Apparently so, but Bloomberg isn't exactly being transparent with their marketing speak.Lookout

© 2022 - 2024 — McMap. All rights reserved.