Project Design - Separazione delle attività JS e C # - Rischi vs Vantaggi

1

Sono in fase di RFP lavorando con i fornitori di outsourcing sulla riscrittura al 100% di un prototipo completamente funzionante dell'app asp.net che ho scritto, per renderlo commercialmente valido.

Ho un'idea per un progetto e vorrei ricevere un riscontro sul suo significato. In sintesi, è quello di scrivere in parallelo JS e il software server.

Background (che può aiutare a comprendere e rispondere alla domanda): troppi anni di IT, ha mantenuto le mie competenze di programmazione "dilettanti", molta gestione di progetti informali, molto lavoro con persone altamente tecniche, può approfondire il nudo metallo, ma nessuna "moderna" direzione del team di sviluppo software. Ho un documento dettagliato sui requisiti, un gustoso design UI / UX parziale e il software prototipo che fa di nuovo tutto ciò che la riscrittura dovrebbe fare.

L'applicazione è un'app basata su abbonamento SaaS multi-tenant. La funzionalità generale è come un forum di gruppo altamente strutturato. L'app non è un'app formale "a pagina singola", tuttavia, il cuore dell'applicazione è in realtà una singola pagina, chiamata Pagina principale (molto creativa). La pagina principale nel prototipo impiega circa 20K linee di VB.Net e 10K linee di Javascript (un piccolo JQ, altrimenti solo JS grezzo). L'ambiente di destinazione sarà ASP.NET MVC EF, client JQ-pesante, server C #, AJAX fino in fondo.

Una precedente proposta richiedeva due programmatori, da 3,5 a 4,5 mesi, più un .5 Project Manager.

Il mio piano è di assumere una breve fase di progettazione / architettura, quindi condurre un team di codifica di tre persone per lo sviluppo, con molta larghezza di banda di comunicazione.

Il mio obiettivo con il nuovo approccio (sotto) è di fare l'intero progetto in 2,5 o 3 mesi con tre codificatori invece di due, e mantenere i costi ridotti facendolo andare più veloce e facendo il PM da solo.

La sfida che vedo (e sperimentata quando ho scritto il prototipo) è che mentre la pagina principale ha dozzine di transazioni e formati che devono essere elaborati, si riducono a un set molto piccolo di formati JSON che devono essere inviati a / dal server. Per iniziare, ho dovuto scrivere un ciclo di dati client / server completo (semplice), e quindi aggiungerlo, una transazione alla volta, andando avanti e indietro tra la scrittura del codice cliente, quindi il codice server, per ogni transazione.

La NUOVA idea di design è questa:
- In generale, prevede di spostare un sacco di codice server (ad es. Preparare e filtrare le visualizzazioni client) sul client
- Quindi, definire chiaramente i data set JSON che ciclicheranno tra client e server - Costruisci e scrivi due applicazioni
   - Un'applicazione temporanea "JS Development"
      - CRUD Throw-away per caricare tabelle JSON consumate dal client, come se fossero dal server (forse 10 campi per tabella, max)
      - Una funzione server minima per inviare quei JSON al client in risposta alle richieste AJAX
      - Scrivi tutto il JS per la pagina principale utilizzando questa applicazione
   - Un'applicazione "C # Server Development" (che diventerebbe l'app "completa")
      - CRUD Throw-away per caricare tabelle JSON che vengono consumate dal server, come se dal client
      - Una funzione client minima per avviare il consumo di tali JSON dal server
      - Scrivi la pagina principale C # (controller) e dati (modello) strati utilizzando questa applicazione
- Metti insieme le due applicazioni temporanee quando sono in gran parte completate.

Durante la fase di codifica principale, uno sviluppatore avrebbe scritto il codice cliente, un altro avrebbe scritto il codice server e un terzo avrebbe funzionato sulle funzioni di pagina non principale nell'applicazione "Server".

Spero di ottenere un riscontro sull'eventualità di questo approccio A) pazzo, rischioso, molto difficile da eseguire, mai fatto prima, o B) ho-hum, usato tutto il tempo, qual è il problema.

E, se l'approccio è fattibile, quali sarebbero i rischi e i fattori critici di successo da tenere a bada.

    
posta wayfarer 07.05.2016 - 21:39
fonte

0 risposte

Leggi altre domande sui tag