Sto creando un'applicazione MVC3 e ho bisogno di alcune linee guida generali su come per gestire complesse interazioni lato client tra i miei componenti.
Ecco la mia definizione di un componente in generale:
Componente che ha il proprio controller, modello e vista. Tutti di la logica del componente è posizionata all'interno di queste tre parti e il componente è sorta di "standalone", contiene la propria forma, i dati necessari per interazione, si aggiorna con Ajax e così via.
Oltre a questa logica interna e al comportamento del componente, è necessario essere in grado di "parlare" con il mondo esterno. Con questo voglio dire che dovrebbe fornire dati ed eventi (sorta di) così quando questo componente viene incorporato nelle pagine può notificare altri componenti che possono quindi essere aggiornati in base a lo stato e i dati correnti.
Ho un'idea di usare il client ViewModel (in java-script) che lo farebbe collega tutti i componenti rilevanti sulla pagina e controlla l'interazione tra loro. Ciò renderebbe i componenti riutilizzabili, modulari - indipendenti da il contesto in cui vengono utilizzati.
Come faresti questo, sono un po 'bloccato perché non so se questo è un buon approccio e c'è una possibilità tecnica per raggiungere questo obiettivo usando java-script / jquery. La parte confusa riguarda l'aggiornamento tramite Ajax, come assicurarsi che quel componente sia correttamente collegato a ViewModel quando componente è aggiornato Ajax (o anche peggio rimosso o dinamicamente aggiunto). Inoltre, come dovrebbe essere costruito questo ViewModel e quale tecnicismi da usare qui e in componenti per lavorare in sinergia ???
Sul web, ho trovato i vari esempi dell'approccio simile, ma sono troppo semplificati (anche per i manichini) o più specifici e lo fanno non fornire risorse preziose o soluzioni generali per questo tipo di implementazione. Se hai alcuni esempi seri, sarebbe, anche, molto utile.
Nota: il mio obiettivo è quello di rendere le interazioni tra molti componenti sul stessa pagina più semplice e più robusta ed elegante.