Sto lavorando a un'applicazione Web ASP.NET che utilizza molto JavaScript sul lato client per consentire all'utente di eseguire operazioni di riordino degli elenchi mediante trascinamento della selezione, cercando gli elementi per aggiungere all'elenco (come i suggerimenti nella barra di ricerca di Google), eliminare elementi dall'elenco, ecc.Mantenimento della coerenza tra i modelli di oggetti JavaScript e C#
Ho una "classe" JavaScript che uso per memorizzare ciascuno degli elementi di elenco sul lato client come nonché informazioni su quale azione l'utente ha eseguito sull'elemento (aggiungi, modifica, elimina, sposta). L'unica volta che la pagina viene pubblicata sul server è quando l'utente ha terminato, appena prima che la pagina venga inviata, serializzo tutte le informazioni sulle modifiche apportate a JSON e le archivia in campi nascosti nella pagina.
Quello che sto cercando è qualche consiglio generale su come compilare le mie lezioni in C#. Penso che potrebbe essere bello avere una classe in C# che corrisponda a quella di JavaScript in modo da poter semplicemente deserealizzare il JSON alle istanze di questa classe. Sembra un po 'strano però avere classi sul lato server che duplicano direttamente le classi JavaScript e esistono solo per supportare l'implementazione dell'interfaccia utente JavaScript.
Questa è una specie di domanda astratta. Sto solo cercando qualche forma di guida da parte di altri che hanno fatto cose simili in termini di mantenimento dei corrispondenti modelli di oggetti lato client e server.
Grazie, sembra un'idea interessante utilizzare RelaxNG. Di recente ho fatto alcune cose con Google Protocol Buffers, che utilizza il proprio linguaggio per definire una classe come questa, quindi puoi generare le versioni appropriate per qualsiasi lingua tu stia codificando. È interessante come un'idea può essere applicata in più diversi scenari e tecnologie. Non posso credere di non aver pensato di farlo prima. –
ya, ho pensato anche ai protobuf. Mi chiedo se il codice generato che esce da un protobufs .idl sia utilizzabile senza il serializzatore protobufs. In tal caso, è possibile utilizzare JsonSerializer in .NET, con il codice C# generato dallo strumento protobufs. – Cheeso
Quindi stai suggerendo di confrontare un'istanza serializzata della classe C# con un documento statico contenente JSON che rappresenta la mia struttura dati. Se corrispondono, so che la classe C# è giusta. Quindi confronterei le istanze della stessa classe in JavaScript con il documento JSON e, se corrispondono, allora verificheremo che sarò in grado di scambiare dati avanti e indietro da client a server senza problemi di serializzazione e deserializzazione. –