Applicazioni desktop: Strutture architettoniche?
-
02-07-2019 - |
Domanda
Mi chiedo se ci siano dei framework architettonici là fuori per creare applicazioni desktop o standalone, ad esempio in Java o C #. Sembra che ce ne siano tonnellate disponibili per le applicazioni web ma non riesco a trovare molte buone risorse su framework o best practice architetturali per lo sviluppo desktop.
Idealmente, vorrei sapere se esiste un codice sorgente disponibile per le applicazioni desktop che sarebbe considerato avere una buona architettura o che fosse costruito con un determinato framework.
Soluzione
Pur non essendo direttamente correlato alle applicazioni desktop se stai cercando un codice sorgente decente per progetti ben scritti, ho posto una domanda simile:
C # open source progetti con una qualità del codice estremamente elevata da cui imparare.
Le persone hanno dato alcuni suggerimenti piuttosto validi lì:
- il codice sorgente settimanale di Scott Hanselman C # gestito)
- Codice scritto da Microsoft Patterns & amp; Pratiche squadra.
- SharpDevelop (scritto in C #)
- Mono (la maggior parte del framework in C #)
- Paint.Net (scritto in C #)
- NHibernate (scritto in C #)
- The Castle Project (scritto in C #)
- xUnit (scritto in C #)
- .Net Source Source Code
Altri suggerimenti
Nella categoria delle app leggere, JSR 296 per Java (eventualmente in futuro Java 7) è un framework che gestisce le basi come la gestione delle risorse e le azioni. Molti link qui:
Aumentando un po 'la scala, potresti guardare vari framework RCP come:
- RCP Eclipse: http://wiki.eclipse.org/index.php/Rich_Client_Platform
- Piattaforma NetBeans: http://www.netbeans.org/products/platform/
- RCP di primavera: http: // spring-rich-c. sourceforge.net/1.0.0/index.html
- Articolo di confronto: http://www.infoq.com/news/ Eclipse RCP-netbeans-platform
AGGIORNAMENTO: è stato menzionato (da Mark Reinhold a Devoxx '08) che JSR 296 sarà incluso in Java 7.
Ulteriore aggiornamento: JSR 296 è morto. JavaFX è la direzione corrente per Java lato client.
Esiste un nuovo pacchetto di guida per l'architettura .NET di Microsoft patterns & amp; pratiche per WPF che è il codice chiamato " Prisma " - è fondamentalmente un " prossima generazione " Blocco dell'applicazione composita dell'interfaccia utente (senza gli strumenti SCSF). Utilizza l'iniezione di dipendenza, il modello composito dappertutto, ecc.
Esiste un buon DNRTV screencast che lo dimostra.
Controlla la Smart Client Software Factory di Microsoft. Contiene esempi di codice e documentazione.
Panoramica
Questa fabbrica di software fornisce prove comprovate soluzioni a sfide comuni trovate durante la costruzione e il funzionamento di compositi applicazioni client intelligenti. Aiuta architetti e sviluppatori costruiscono sistemi modulari che possono essere costruiti e distribuito da team indipendenti. Applicazioni create con il software uso in fabbrica di pratiche comprovate per operazioni come centralizzate registrazione delle eccezioni.
La fabbrica di software contiene a raccolta di componenti riutilizzabili e librerie, soluzione di Visual Studio 2008 modelli, procedure guidate ed estensioni, Argomenti, test automatici, ampia documentazione di architettura, modelli e un riferimento implementazione. La fabbrica del software utilizza Windows Form, Windows Presentazione Foundation, Windows Communication Foundation e Enterprise Library 3.1 & # 8211; Maggio 2007 pubblicazione. Con questa versione, il Il blocco applicazione dell'interfaccia utente composita è incluso nella fabbrica del software.
In Java, oggetti nudi - http://nakedobjects.org/home/index.shtml
JMatter - implementazione di oggetti nudi - http://jmatter.org/ . abbastanza bene.
entrambi sono open source.
Sul lato Java, ci sono diversi progetti rivolti alle piattaforme Rich Client (RCP è la nuova parola d'ordine per le app "desktop"):
- Eclipse RCP (se stai bene usando SWT anziché Swing)
- Spring RCP (che è in procinto di essere revisionato in Spring Desktop)
- RCP NetBeans (che non lo sono particolarmente colpito, ma che sta ottenendo una certa trazione)
- JSR 296 (Application Framework) - I in realtà piace davvero questo
Google, uno dei precedenti e otterrai tonnellate di informazioni.
È possibile utilizzare alcuni degli stessi approcci nello sviluppo client utilizzati nello sviluppo Web, come Model View Presenter. Lo spazio dei nomi System.Windows.Forms ha tutto il necessario per creare un'applicazione client in C #, con il resto di .NET Framework disponibile per fornire i servizi necessari (come IO e remoting).
Per quanto riguarda il codice sorgente per architetture solide nelle app desktop, guarda il codice per Paint.NET e SharpDevelop . Entrambi hanno approcci molto diversi che saranno interessanti per te.
Ci scusiamo per l'inclinazione .NET di questa risposta. È quello che conosco meglio. :)
Vorrei raccomandare CSLA .NET framework di Rockford Lhotka: http: //www.lhotka. net / cslanet / Default.aspx
Viene fornito con codice sorgente completo e applicazioni client di esempio integrate in ASP.NET, WinForms e WPF.
Ho appena trovato le Guida alle applicazioni composite per WPF e Silverlight che sembra molto interessante. È stato pubblicato nel febbraio 2009.
Qui sviluppiamo tecnologie .NET.
I nostri amici qui che lavorano su applicazioni client sviluppano il loro software secondo il modello di progettazione di Model View Presenter che è spesso associato allo sviluppo Web. Per loro, trovano che funzioni molto bene, credo che valga la pena dare un'occhiata.
Anche la Smart Client Factory (menzionata da Panos) può essere utile per te, sebbene non sia un framework ma piuttosto una libreria di soluzioni di best practice per problemi comuni.
In particolare al framework di presentazione organizzata delle funzioni dell'interfaccia utente che abbiamo utilizzato infonode docking windows , si tratta di un framework per finestre che utilizza un aspetto simile all'eclissi (trascina le viste ovunque, chiudile, sganciali ecc., ovviamente personalizzabili). c'è una versione gpl per i prodotti open source, anche se la licenza per sviluppatori non è così costosa ($ 299 ciascuno).
Controlla la cabina di IdeaBlade per DotNet C #. http://www.ideablade.com/CAB.html
App di esempio Cabana
L'applicazione Cabana è una semplice app di riferimento smart client con un'esperienza utente nitida e ricca di funzionalità, facile da implementare e da utilizzare sul Web. Cabana dimostra:
Un approccio semplice al blocco dell'applicazione dell'interfaccia utente composita dai pattern e amp; di Microsoft Gruppo di pratiche. Codice gestibile e riutilizzabile attraverso la composizione dell'interfaccia utente. Separazione del modello (business logic e accesso ai dati) dalla presentazione. Il modello Model-View-Presenter. Ottimizzazione delle prestazioni. E altro ancora
Di recente ho pubblicato DesktopBootstrap. È il mio tentativo di scomporre molti degli elementi comuni nella creazione di app desktop di medie e grandi dimensioni.
Puoi trovarlo qui .