2015-09-27 12 views
38

Un popolare fornitore di software finanziario distributes a "private" .NET framework:Che cos'è un "framework .NET privato"?

Private Bloomberg .NET framework

Che cosa è esattamente un quadro privato NET?

Perché qualcuno potrebbe voler avere una propria versione privata del framework .NET?

In termini di base, come si può fare per creare un framework .NET privato?

+0

Uno può ottenere il codice framework da GitHub, apportare alcune modifiche e rivendicarlo 'private', ma non è sicuro che sia legale! O forse, si riferiscono al loro software, non al framework. –

+8

Dalla documentazione Bloomberg: "Bloomberg distribuisce una versione virtuale del framework .NET a tutti i clienti che consente l'uso del framework .NET senza doverlo installare sulla macchina." Non so bene come funzionerebbe, sembra che il marketing mi parli. –

+0

@DavidM Secondo il codice nella risposta di Theodorus, il framework * di Bloomberg .NET è * installato se MS .NET non è presente. –

risposta

28

Non sono affiliato con questo venditore in alcun modo e quindi ovviamente non posso parlare per loro di ciò che significano. Con quella di mezzo ...


loro FAQ membri le seguenti:

Qual è il software .NET Framework privata Bloomberg?

Questi componenti software vengono installati solo se la workstation non dispone del corrispondente software Microsoft .NET Framework nativo installato. Nel caso in cui non siano presenti entrambe le versioni native di Microsoft (3.5 SP1 e 4), durante l'installazione iniziale verrà installato solo il componente v3.5 SP1 privato. Il file di installazione (bnetupd.exe) per la versione privata v4 verrà copiato nella directory \ blp \ wintrv per l'installazione in un secondo momento.

Sembra che stiano distribuendo la propria versione di .NET Framework e tale versione sia utilizzata se la workstation non ha installato .NET Framework ufficiale. La logica alla base di questo potrebbe essere semplice come per evitare di fare cambiamenti drastici al workstation dell'utente:

  • Se hai già il .NET Framework installato, va bene per l'applicazione ad usarlo, perché nessuna modifica alla workstation sono necessarie.
  • Se .NET Framework non è già installato, il fornitore non presume che lo si voglia installare, quindi raggruppa la propria build che è destinata a funzionare solo con le proprie applicazioni e non a essere condivisa con altri software tu forse hai.

Per quanto riguarda la domanda su come si farebbe una cosa del genere, la risposta è che prima di tutto è necessario disporre di una sorta di licenza che ti consenta di farlo. In generale, è possibile ottenere un software con la sua licenza "predefinita" oppure è possibile negoziare una licenza più conveniente con il proprio fornitore. In ogni caso, è necessario assicurarsi che questo tipo di utilizzo e ridistribuzione sia consentito dalla licenza di cui si dispone.

Da lì in poi, ci sono probabilmente molti modi per procedere (incluso receiving the source code e creare una build personalizzata, usando un linker personalizzato o uno bundling tool - o qualche tipo di inganno all'avvio).

Osservando il comportamento del programma di installazione di questo fornitore in una macchina virtuale, quello che vedo è che gli assembly framework sono effettivamente distribuiti come native images in una directory personalizzata che sembra imitare la struttura della tipica directory di installazione di .NET. Il nome di quella directory personalizzata è %WINDIR%, che a mio avviso sembra suggerire una sorta di reindirizzamento usando le variabili d'ambiente (perché, se disattivi una variabile d'ambiente, questa si "espande" al suo nome).

In ogni caso, il framework distribuito viene utilizzato solo dal software del fornitore e non sembra interessare altre applicazioni .NET, semplicemente lo ignorano. Quindi la frase .NET Framework privata è ragionevolmente accurata.

+1

Questo suona terribile per me. Cosa succede se l'utente desidera in seguito installare MS .NET 4.0 per supportare altri software? Avrà due versioni installate? O Blomberg è riconosciuto come "il" .NET? Le correzioni dei bug di MS verranno applicate a Bloomberg .NET? Dopotutto, c'è qualche differenza tra MS e Bloomberg .NET? –

+9

@HagenvonEitzen Ho finito di installare gli strumenti di cui sopra per vedere cosa fanno effettivamente. Come previsto, questo framework .NET privato * non * è installato nella directory di Windows ma in un altro, personalizzato. Riguarda solo il software del fornitore - altri binari basati su .NET semplicemente lo ignorano. –

+1

E questo ci porta al 2004 di Spolsky "Please Sir May I Have a Linker?", Nel quale ha notato che la mancanza di un'opzione per la costruzione di un eseguibile contenente tutte le librerie necessarie era una partenza dalla (tradizionale) distribuzione di app di Windows: http: //www.joelonsoftware.com/articles/PleaseLinker.html – chesterbr

2

Non credo che stanno dicendo questo è legato alla IL .NET Framework, solo che è codice Bloomberg-specifico che viene eseguito su .NET che loro chiamano un quadro. Molto probabilmente il privato si riferisce al fatto che richiedono l'accesso personalizzato ai propri server tramite alcune credenziali personalizzate.

+2

Non corretto per il commento di David M. –

+3

Apparentemente così, ma Bloomberg non è esattamente trasparente con i loro interventi di marketing. –

7

Microsoft ha deciso di installare il server not to publish redistributable .NET Framework 3.5 per Windows 8, Windows 10, Windows 2012 e l'installatore online molto spesso does not work. Quindi altri fornitori devono creare i propri programmi di installazione offline. Non è la prima struttura fatta in casa che ho incontrato. Anche se it is not legal, gli sviluppatori sono spinti a supportare le app .NET 3.5 su Windows 8, Windows 10 e Windows 2012 server.