Domanda

Sono in un processo di pianificazione di un'architettura per una linea di sistema distribuito commerciale, in cui molti diversi dispositivi di diversi tipi devono essere supportati in scenari di casi d'uso molto simili.

Tra gli altri, dovrò sostenere

  • PDA basati su Windows Mobile 6.x
  • Workstations PC

Quelle app serviranno una logica aziendale piuttosto semplice, quindi non voglio usare l'architettura esagerata per questo. Eppure, devo supportare:

  • Aggiornamenti remoti
  • Scenario per lo più disconnessi client per PDA (e facoltativamente, per il PC)

Durante la ricerca dell'architettura di riferimento adeguata, mi sono imbattuto Applicazioni mobili Blocca la versione della comunità e CONTRIBILE DI MOBILE Estensione a quella versione. Ciò che mi ha interessato è stato:

  • Agente disconnesso e monitor di connessione per supportare lo scenario dei client per lo più disconnesso
  • Blocco applicazioni aggiornamenti mobili per supportare gli aggiornamenti

Sono anche a conoscenza del SCSF Controparte per la piattaforma desktop.

Ora, ecco le mie domande

  1. Nella tua esperienza è l'estensione MCSF a VS2008/WM6.X/.NET CF 3.5 Matura e abbastanza stabile per l'uso della produzione? Non voglio essere vittima di sapere che non è davvero adatto all'uso aziendale, mentre sono nel mezzo del progetto.
  2. Poiché l'applicazione sarà molto semplice, non voglio renderla eccessivamente complicata dal modello MVP e da altre aggiunte del framework relative alla CAB. Ho solo bisogno di supportare gli scenari sopra descritti. Sarebbe possibile utilizzare i componenti di rilascio della comunità MCSF senza dover architerare l'intera applicazione in modo MCSF (con comandi, iniezione di dipendenza, MVP ecc.)? Penso che vorrò mantenerlo semplice per la semplice applicazione.
  3. Lo stesso per l'app per PC desktop. Penso anche che andare per CAB/SCSF completo sarebbe un grande eccessivo qui, in quanto è davvero un insieme molto semplice di funzionalità da implementare, ma vorrei ridurre i tempi di sviluppo utilizzando l'aggiornamento e possibilmente il disconnesso blocchi client. Proprio senza la complicata parte dell'interfaccia utente (creerò semplici Winforms per l'interfaccia utente). Potrebbe essere possibile?

Sto anche cercando la possibilità di condividere parte del codice relativo a clienti disconnessi/aggiornamenti remoti tra PC e PDA, ma non credo che sarebbe possibile con MCSF/SCSF.

Apprezzerei un consiglio da parte di qualcuno che è andato su quella strada davanti a me :)

È stato utile?

Soluzione

  1. MCSF è assolutamente orribile. Sembra che qualcuno in Microsoft abbia semplicemente detto a uno sviluppatore con poca esperienza di prendere lo SCSF e "farlo funzionare" sul framework compatto. Questo è stato tradotto come "se si compila, allora va bene" perché è tutto ciò che sembra essere successo.

    Funziona? Certo, ma Holy Slowness Batman! È completamente inutilizzabile in qualsiasi scenario del mondo reale. È abbastanza brutto che Ho scritto un sostituto da zero Ciò mantiene (principalmente) la compatibilità dell'interfaccia e include solo un set minimo di funzionalità.

  2. Ho scoperto che se un'app contiene 2 visualizzazioni o più, vale la pena usare il modello MVP. Ad un certo punto dovrai aggiungere un'altra vista e avrai già archiviato. Inoltre, mettere i tuoi oggetti in un framework DI/IOC spesso consente cose come l'aggregazione di eventi, che trovo terribilmente utile anche in applicazioni senza testa, quindi anche senza alcun goo MVP finisco per usarlo.

  3. Il desktop non è diverso nel mio libro. La libreria IOC che ho creato supporta sia la CF che FFX in modo identico (così come Monotouch e Telefono 7) poiché faccio un sacco di condivisione di codice su piattaforme. È raro di creare un progetto desktop in cui non lo uso.

Ora non sto dicendo che devi usare il mio progetto IOC. Lo trovo utile per tutti i problemi che colpisco e lo so abbastanza bene che quando colpisco un'area mancante di funzionalità, posso aggiungerlo rapidamente (anche se non ho trovato molto carente in mesi). Se sei a tuo agio o preferisci un altro framework DI/IOC, allora ottimo, usalo. Quello che sto dicendo è a) corri urlando da tutto ciò che ha a che fare con MCSF e b) usa un framework DI/IOC, anche se pensi che l'app sia troppo semplice per uno perché non esiste un'app nel mondo reale Questo è troppo semplice per trarne vantaggio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top