.NET 3.5 pubblicato l'11 / 07. NET 3.0 nell'11 / 06. Perché la maggior parte delle persone utilizza ancora .NET 2.0? [chiuso]

StackOverflow https://stackoverflow.com/questions/157055

Domanda

Le persone hanno sviluppato le proprie soluzioni ai seguenti problemi:

  • Framework di messaggistica coerenti per lo scambio di informazioni in remoto (webservices, rpc, ...)
  • SDK per le gestioni statali per cose come macchine a stati finiti e flussi di lavoro
  • Quadri di autenticazione
  • E molto altro.

Da oltre due anni ora, Microsoft offre .NET 3.0 che contiene coerenti e ben documentati cosiddetti Foundations for Workflows, Communication, Authentication e un nuovo modo di creare app Web.

Tuttavia, ... le persone stavano ancora costruendo i propri framework con una mappatura relazionale degli oggetti coerente per indirizzare i loro database, le proprie tecniche per estendere dinamicamente classi e metodi in fase di esecuzione (per consentire al cliente di personalizzare il comportamento dell'applicazione, ad esempio).

Per oltre un anno ora, Microsoft offre .NET 3.5 che, tra l'altro, contiene LINQ e quindi un ottimo ORM e mezzi meravigliosi per estendere il tuo codice e rendere molto più semplice scrivere codice dopo tutto .

Ma guardati intorno ... sembra che la maggioranza usi ancora .NET 2.0. I siti Web vengono creati in ASP.NET semplice. L'esperienza desktop è ancora raggiunta con una combinazione di CSS, JavaScript e HTML. Gli eseguibili utilizzano WinForms semplicemente vecchi, i flussi di lavoro sono implementati con delegati, eventi, do / while e switch / case.

Senza troppe discussioni, sarei felice di vedere ragioni concrete per la seguente domanda:

Secondo te: perché le persone non saltano sul treno .NET 3.5?

È stato utile?

Soluzione

  1. Richiede l'apprendimento di nuove cose, molti sviluppatori LOB "solo un lavoro" non possono essere disturbati.
  2. Investimenti di codice legacy, i sistemi personalizzati potrebbero non essere necessari, ma funzionano, ricodificare elementi per utilizzare sistemi basati su Framework è una perdita di tempo se il sistema esistente non è danneggiato.
  3. Costo del software di sviluppo. La codifica efficace in .net 3.x richiede davvero VS2008. L'aggiornamento di un intero team di sviluppatori a quello dal 2005 potrebbe costare.
  4. Stabilità. 2.0 è stata un'evoluzione del Framework 1.1. 3.0 e 3.5 includono le nuove tecnologie v1, (quelle che hai elencato). Agli sviluppatori piace vedere le tecnologie dimostrarsi prima di poter giustificare ai loro manager che vale la pena fare il salto. Come con l'adozione di Windows, probabilmente vedrai più persone che vanno da VS2005 a VS2010 e da .net 2.0 a .net 4.0 poiché conterrà v2 delle tecnologie 3.x.

Altri suggerimenti

Per lo stesso motivo, so che gli sviluppatori Java che ancora codificano in Java 1.4-- il cambiamento è costoso e, per le persone che svolgono un lavoro interno alle aziende in cui Farlo è fatto è molto più importante dell'uso di nuove tecnologie, spesso inutili.

Per un sacco di lavoro interno c'è poca giustificazione per l'aggiornamento di applicazioni più vecchie per funzionare in ambienti più nuovi.

Inoltre, le grandi corperazioni non sono affezionate a nessun tipo di cambiamento per varie preoccupazioni di stabilità, le troverete comunque a prendere decisioni per usare la tecnologia più vecchia in nuove soluzioni semplicemente perché credono che la nuova tecnologia non sia abbastanza stabile, non si sa abbastanza a riguardo o non abbastanza del software su cui si basano per supportarlo.

E non l'ho mai usato, quindi non potrei dirlo, ma può darsi che .NET 2 sia abbastanza buono per le esigenze delle persone e che .NET 3.5 non offra abbastanza per giustificare l'apprendimento / cambiando ciò è coinvolto, anche per le aziende che sono d'accordo con il più all'avanguardia.

Perché non è ben supportato dalle società di web hosting.

Sto sviluppando una nuova applicazione Web ma la mia società di hosting fornisce solo supporto ASP.NET 2.0.

Se vuoi il supporto di Windows 2000, dovrai rimanere con .NET 2.0. Non è poi così male.

So parlare per me e la mia compagnia. Non lo usiamo ancora. Perché? Bene
1 : la maggior parte dei nostri utenti ha già installato il framework NET 2.0. Non è necessario installare un altro framework.
2 - Non cambieremo solo perché è la novità. Deve aggiungere un valore.
3 - Pagare davvero il cambiamento significherebbe un'enorme quantità di lavoro. Di contro, deve pagare.
4 - È ancora presto per dire se ne valga la pena (un anno non è quasi sufficiente) in termini di bug e nuovi problemi. Tuttavia, ne vale la pena.

.NET 3.0 conteneva elementi che erano fantastici per i nuovi progetti, ma che molti progetti esistenti non vorrebbero prendere per motivi di aggiornamento - richiederebbe rilavorazioni significative per integrarli.

Per quanto riguarda questo:

  

Da oltre un anno, Microsoft offre .NET 3.5

In che modo è novembre 2007 oltre un anno fa? Sì, .NET 3.5 è eccezionale e io amo LINQ (in particolare LINQ to Objects) e i vantaggi di C # 3.0 - ma comporta sempre un costo per il cambiamento. Per cominciare, c'è il costo della distribuzione di Visual Studio 2008. Quindi c'è il costo di ripetere il test di tutto su .NET 3.5 (e ora .NET 3.5SP1). Quindi c'è il costo di distribuire .NET 3.5 su tutti i server o il costo di richiedere .NET 3.5 su tutti i client. Oh, per non parlare del costo di imparare effettivamente ad usare tutte le nuove tecnologie in modo produttivo.

Succederà, ma non dovresti aspettarti che sia molto rapido.

Per aggiungere un'altra nota a ciò che ha detto @ SCdF , qualsiasi azienda con un personale IT significativo, che non lo è incentrato sullo sviluppatore (ovvero The Majority), di solito è fortemente resistente alle nuove tecnologie.

I dipartimenti IT tendono a rimanere indietro dal punto di vista degli sviluppatori perché non vedono il valore del business nell'aggiornamento a nuovi sistemi / hardware solo per stare al passo con la curva. L'IT è troppo impegnato a gestire la sicurezza e la manutenzione (reale o appena percepito) per gestire gli sviluppatori che cercano di farli aggiornare a .Net 3.5.

Gli sviluppatori sono anche notoriamente cattivi nel comunicare con altri dipartimenti sul valore aziendale. Quando uno sviluppatore cerca di ottenere l'IT, o l'azienda a bordo con l'aggiornamento a .Net 3.5, iniziano a parlare di flussi di lavoro automatizzati e XML e servizi Web invece di parlare di dollari e centesimi.

Brian Prince di Microsoft ha un'ottima presentazione su " Soft Skills " questo va oltre questo. Se glielo chiedi bene, potrebbe venire nella tua compagnia e presentare :)

Ho chiesto a un manager di un precedente datore di lavoro perché non aveva ancora effettuato il passaggio, la risposta era "Non voglio supportare tre framework", significa 1.1, 2.0, 3.5.

Ho spiegato che l'aggiornamento a 3.5 non era lo stesso del passaggio da 1.1 a 2.0 (3.5 è un'estensione di 2.0 che utilizza una dll diversa (Core.dll), non una dll aggiornata come da 1.1 a 2.0).

Riesco a vedere molti manager che usano questa linea di pensiero, quindi spetta a te farglielo sapere!

2.0 funziona, vero? Penso che le novità siano fantastiche e interessanti e mi piace rimanere aggiornato sulle ultime novità, ma alla fine della giornata, se funziona, spesso la decisione è di attenersi a ciò che hai. Ho supportato un negozio che eseguiva programmi DOS 6.2x per anni (fino al 2004) e mi grattavo la testa. Ma alla fine della giornata, in quel caso non c'era motivo commerciale convincente per spendere qualcosa per andare avanti.

Sono sicuro che ci sono anche altri motivi.

Per tutti i nuovi progetti, cerco di usare 3.5 (o qualunque sia il framework più recente). Ma tutti i vecchi siti, perché i clienti dovrebbero pagare per l'aggiornamento se funziona?

Se vuoi una tecnologia specifica in 3.5, allora aggiorna, ma a meno che; non aggiustare ciò che non è rotto ..

Sarei interessato a vedere per quanto tempo è uscito 2.0 prima di ottenere la "quota di mercato maggioritaria" - Voglio dire, 1 o 2 anni potrebbero sembrare molto tempo per te e per me, ma devi ricordare che la nuova lingua deve essere rilasciata, quindi le persone devono allenarsi su di essa, quindi devono conoscerla bene abbastanza per "vendere" alla direzione. Inoltre, VS2005 era "abbastanza buono" per un bel po 'di persone, e ci sono costi associati all'aggiornamento a VS2008 per supportare le versioni linguistiche più recenti - non solo denaro, ma tempo.

Lo stesso motivo per cui molte persone usano ancora Windows XP!

Alcuni lavori fa, mi trovavo in una situazione interessante. Come autore originale dei servizi web ASMX dell'azienda, mi è stato chiesto di verificarli. C'era una particolare preoccupazione per il fatto che avevo basato i servizi su un XSD fatto a mano e che nessun altro lo capiva davvero bene.

Ho consigliato di usare WCF, poiché non avranno bisogno di formati XML personalizzati e non dovranno giocare con XSD: basta definire un contratto dati in codice.

Anche dopo aver spiegato che .NET 3.5 SP1 equivale a un paio di service pack per .NET 2.0, oltre ad alcuni nuovi assembly, mi guardavano ancora come se stessi per diventare violento. Ovviamente, l'aggiornamento delle versioni .NET è un processo lungo e costoso . Lezioni da .NET 1.1 o migrazione di .NET 2.0.

Un piccolo passo nella giusta direzione, per quanto riguarda la migrazione verso WCF: vedi I servizi Web ASMX sono & # 8220; Legacy Technology & # 8221; .

Per l'elaborazione governativa, il framework 3.5 non è ancora approvato per alcuni ambienti, quindi sei costretto a utilizzare 2.0 o 3.0.

La sfida più grande è giustificare l'aggiornamento al business, soprattutto ora che siamo in una recessione globale.

Dovrebbe esserci un vantaggio o una tecnologia specifica in 3.5 di cui il tuo progetto (probabilmente greenfield) non può assolutamente fare a meno, per spingerlo.

Sto cercando di mettere insieme un caso per questo in una grande azienda, quindi i vantaggi aziendali devono superare lo status quo. Nell'attuale clima, anche il "mantenimento del talento" non lo taglierà, soprattutto con un pool crescente di candidati in generale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top