Un piccolo team può entrare nel mondo .NET mentre molti di loro stanno lavorando su lingue OpenSource?

5

Siamo un team di circa 15 dipendenti, in un'azienda non IT. Oggi sviluppiamo principalmente siti Web, utilizzando PHP, MySQL, ecc. Gestiamo un po 'meno di 100 server Linux su noi stessi.

Ma oggi ci troviamo di fronte a un progetto troppo grande per noi per codice. Abbiamo selezionato un ottimo fornitore (sì, in outsourcing) e ora ci chiedono di scegliere tra C ++ / Qt e .NET / WPF.

L'app è altamente grafica e pensata per essere distribuita su sistemi Windows. .NET è raccomandato per noi come più facile da progettare e più leggero.

E la nostra squadra? Possiamo gestire, con il nostro piccolo numero, entrambi gli universi contemporaneamente?

responsabili:

  • durante lo sviluppo: progetta l'app, controlla il codice
  • dopo lo sviluppo: server host, effettuare la manutenzione e rispondere alle chiamate dell'utente
  • nel caso in cui abbiamo bisogno di una v2, intendiamo richiamare lo stesso provider

Che ne pensi?

Modifica

Abbiamo finalmente scelto C ++ / Qt. I motivi sono:

  • il tempo di sviluppo è stato testato per essere alquanto uguale
  • ci si adatta meglio dal punto di vista gestionale
  • e aumenta la portabilità multipiattaforma
posta Fabien Polley 11.10.2011 - 20:15
fonte

6 risposte

10

Passerò all'altra direzione su questo: se il tuo team ha esperienza e familiarità con Linux, e tu gestisci i tuoi server, l'outsourcing verso un negozio .NET sarà un disastro. Non avrai l'esperienza per frenare gli outsourcer quando impazziranno, le tue intuizioni di linux e PHP ti mancheranno nell'ambiente Windows, non vedrai facilmente goofy costrutti .NET e maledirai i destini che si legano a supportare due set di server, uno per Linux, uno per Windows. Se assumi qualcuno di Windows per supportare quel set di server, gli scontri e gli argomenti della cultura ti stupiranno.

    
risposta data 11.10.2011 - 21:14
fonte
4

L'outsourcing va bene, ma dovresti avere alcuni dei tuoi dipendenti che capiscono anche il sistema e come funziona.

Se i tuoi ragazzi sono attualmente tutti membri di PHP, allora forse vedi se qualcuno di loro è interessato ad alcuni corsi di formazione su .NET e ne ottieni alcuni per loro.

Avere qualcosa in outsourcing di cui nessuno dei tuoi dipendenti sa nulla è un'attività rischiosa.

Modifica

Giusto per chiarire, non voglio dire che dovresti solo guardare alcuni dei tuoi ragazzi quando è finito per imparare come funziona, voglio dire che dovresti avere alcuni dei tuoi sviluppatori che sono coinvolti regolarmente con il progetto, che capisce come funziona mentre progredisce e chi può essere il tuo "intermediario" tra te (presumo che tu sia il "manager") e le persone a cui sei esternalizzato. Ciò significa che dovresti avere sviluppatori che stanno imparando .NET ora.

Le stesse persone che parlano con la terza parte contribuiranno a costruire un buon rapporto di lavoro ed è anche meglio di tutti i tuoi sviluppatori che li bombardano con domande.

    
risposta data 11.10.2011 - 20:30
fonte
4

Can we handle, with our small number, both universes at the same time ?

La tua squadra in particolare? Che non lo so.

Ma molti sviluppatori lavorano in entrambi i mondi. Non è un grosso problema. Tutto ciò di cui c'è veramente bisogno è la volontà di imparare la nuova tecnologia. Penso che saresti sorpreso di quanto si possa imparare in un paio di mesi lavorando con la nuova tecnologia.

In realtà metto in discussione la saggezza di esternalizzare un'applicazione del genere se vuoi essere quella che la supporta. Se producono un pezzo di cianfrusaglia, e poi su e spariscono, sei fregato. Un approccio migliore potrebbe essere stato, se avessi avuto bisogno di risorse aggiuntive, di portare gli appaltatori inhouse per aiutarti a svilupparlo.

    
risposta data 11.10.2011 - 21:49
fonte
2

Se sei un negozio mirato all'open source, ti consiglio vivamente di evitare stack Microsoft, in particolare attraverso deal in outsourcing. Ho visto accadere questo e non è carino .....

I motivi:

  • Resterai bloccato a supportare due piattaforme (Linux e Windows). O peggio ancora, deciderà in qualche data futura di standardizzare su Windows e di rimanere bloccato per sempre ......
  • C'è uno scontro culturale fondamentale tra i due mondi. La mentalità è diversa, gli approcci sono diversi, le dinamiche di squadra sono diverse.
  • I prodotti Microsoft non funzionano bene con prodotti non Microsoft in generale. Rendono relativamente facile per te andare all-Microsoft, ma non è molto facile interfacciarsi con il resto del mondo.
  • Se è in atto una nuova relazione in outsourcing, è già abbastanza difficile da gestire. Non vuoi che la tecnologia e le differenze culturali siano al di sopra di tutto !!

Se vuoi funzionalità di piattaforma in stile .Net ma un approccio open source, sei molto meglio andando sulla piattaforma Java. Vantaggi:

  • Java stesso è open source (OpenJDK), come lo sono la maggior parte dei principali IDE e strumenti
  • Java funziona egregiamente su Linux e Windows.
  • È possibile distribuire facilmente le applicazioni client su macchine Windows o Linux con Java Web Start .
  • L'ecosistema open source di librerie per Java è il migliore di qualsiasi linguaggio, in particolare sul lato server, ma per le applicazioni lato client in rete è anche molto buono.
  • Se non ti piace Java-the-language, ci sono molti grandi linguaggi open source che girano sulla piattaforma Java (Clojure, Scala, Groovy, JRuby, ecc ....)
  • Se vuoi sfruttare la tua esperienza in PHP, puoi persino eseguire PHP sulla piattaforma Java con strumenti come Quercus (disclaimer: non li ho mai provati)
risposta data 26.01.2012 - 12:12
fonte
1

Considerati i vincoli elencati, penso che la scelta migliore sia C ++ / Qt.

C ++ farà tutto ciò che C # farà, avrai più accesso alle librerie di terze parti, Qt stesso è sia multipiattaforma che disponibile sotto LGPL se soddisfa le tue esigenze, il tuo team avrebbe un accesso migliore a Qt che a C # , l'opzione esisterebbe per fornire Linux e amp; OS-X, ecc.

Inoltre, anche Microsoft ha recentemente riconosciuto che C # /. Net non è tutto ciò che hanno affermato di essere. Ecco un discorso di Herb Sutter che getta luce sul C ++ per lo sviluppo futuro ... link

Onestamente, l'unico posto in cui penso che C # avrebbe un reale vantaggio è se lo sviluppatore può finire la versione C # per molto meno $$$ rispetto alla versione C ++, il che è improbabile. Anche così, se stai ancora pensando a C #, dovresti prendere in considerazione anche Java, perché ottieni comunque la maggior parte dei benefici che ho elencato per C ++ / Qt.

    
risposta data 12.10.2011 - 02:35
fonte
-1

Nella mia esperienza (ero in una squadra che ha fatto una transizione simile) ci saranno difficoltà e frustrazioni, ma andrà tutto bene, tutto dipende dalla motivazione della squadra a cambiare.

Qualcosa che ha aiutato molto è stato un allenamento intensivo di una settimana in .NET prima di iniziare il progetto.

    
risposta data 11.10.2011 - 20:20
fonte

Leggi altre domande sui tag