Non capisco su come implementare MVP / MVC per i miei requisiti software [chiuso]

1

Recentemente ho deciso di iniziare a sviluppare un sistema basato su client / servizio utilizzando WCF e un canale Duplex (richiamate da Servizio a client). I client si comportano come "slave", cioè si collegano solo al server e da quel momento in poi, solo il server comunica con loro. Alla fine il server potrebbe richiedere che i client inviino "flussi di dati" a lui (aggiornamenti frequenti di nuovi contenuti / oggetti).

Voglio rendere il mio software il più libero possibile, ma anche leggendo i diversi pattern per questo, come MVC e MVP, non sembrano progettati per soddisfare i miei requisiti specifici.

Qual è la migliore architettura o schema di codice per il mio problema? Considerando le tecnologie che sto usando?

    
posta Bruno Klein 16.08.2014 - 14:52
fonte

1 risposta

5

Modelli Dettagli astratti, non Vice Versa

The clients will behave as "slaves", that is, they will only connect to server and from then on, only the server communicates with them. Eventually the server may request that the clients send "data streams ... MVC and MVP, ... don't seem to be designed to fulfill my specific requirements."

Ho la sensazione che tu stia cercando di trovare un pattern che si mappa direttamente alla tua configurazione hardware / di rete. Questa è l'antitesi dei modelli di progettazione orientata agli oggetti.

I sistemi software sono molecole organiche di modelli

Come in catene di modelli. Le parti di alto livello di M.V.P. sono a loro volta le proprie strutture complesse orientate agli oggetti, necessarie per rappresentare strati astratti nidificati che alla fine arrivano ai server. Ti manca tutto il design tra il concetto MVC di livello superiore e la comunicazione server-server.

Prototipazione

Forse dovresti prendere un prototipo di mentalità. Come ha affermato Fred Brooks nel Mese di Mythical Man

“The management question, therefore, is not whether to build a pilot system and throw it away. You will do that. The only question is whether to plan in advance to build a throwaway, or to promise to deliver the throwaway to customers.”

Non sto suggerendo di costruire un intero sistema; quel tanto che basta per sperimentare le variazioni dell'architettura. Devi davvero capire dove stai andando prima di impegnarti a pianificare le consegne.

Per quanto ho potuto dire MVP vs MVC è una questione di enfasi. MVP ha un'associazione più intima tra V e C.

Segue una citazione da MVP: Model-View-Presenter Il Taligent Programming Model per C ++ e Java

...normalize the separation between the Model and the View-Controller, which we refer to as a Presentation. This represents the breaking down of a programming problem into two fundamental concepts: Data Management and User Interface.

Penso che si riduca a come si vogliono model cose. Se MVC funziona in un determinato caso, non significa che MVP sia errato in quel caso.

I modelli di progettazione del software sono linee guida, non regole hard e veloci da seguire con l'esclusione di un buon design in tutto il sistema.

MVC (MVP) e WCF Systhesis

MVC / P è diventato il paradigma go-to design per le applicazioni GUI in modo da non essere sviato perché WCF basato su Service Oriented Architecture (SOA) .

Per quanto ne so, si può facilmente usare la struttura WCF .net all'interno del modello Model-View-Whatever.

    
risposta data 16.08.2014 - 21:37
fonte

Leggi altre domande sui tag