2012-11-18 25 views
5

Esiste un'alternativa Java a queste tecnologie? Trovo le funzionalità di associazione dei dati e INotifyPropertyChanged di maggior uso (insieme ai contenitori e agli elementi di questo tipo), ma la mancanza di multipiattaforma di .NET mi fa pensare a Java. Cosa suggerisci? C'è qualche prodotto equivalente? Uno che implementa XAML?Alternativa Java MVVM e WPF

+0

Si può sostenere che WPF è iniziato come una truffa spudorata di J2EE. Proprio come .La rete stessa era una ripugnante sfrontatezza di Java (usando solo "static void Main()" e "string", invece di "static void main()" e "String"). IMHO ... – paulsm4

+7

Potrebbe essere discusso ma non risponderebbe alla domanda che viene fatta, vero? –

+2

WPF come copia di J2EE? Cosa stai fumando? – Paolo

risposta

7

La tecnologia (WPF)

Se siete alla ricerca di un'alternativa al WPF per la piattaforma Java si dovrebbe dare un'occhiata a JavaFX.

La tecnologia è molto simile a WPF nei seguenti modi:

  • L'interfaccia utente applicazioni è costituito da un albero di oggetti chiamato un grafico scena costituito da Node oggetti (che è simile alla WPF visivo albero composto da oggetti UIElement).
  • Il nodo Pane e le sue derivate sono concettualmente simili ai pannelli di layout WPF.
  • L'interfaccia utente può essere creata utilizzando una marcatura chiamata FXML simile a XAML.
  • JavaFX fornisce oggetti che rappresentano proprietà che supportano l'associazione e la notifica delle modifiche (si pensi alle proprietà di dipendenza). A differenza delle proprietà di dipendenza, non sono legate alla tecnologia dell'interfaccia utente, quindi possono essere utilizzate dalle classi del modello.
  • L'interfaccia utente può essere abbinata a CSS.

Dai un'occhiata alla mia risposta alla domanda how does JavaFx compare to WPF che fornisce un confronto molto più dettagliato (ma ancora di alto livello) di WPF e JavaFX.

Il modello di progettazione (MVVM)

Il modello MVVM è una specializzazione del modello presentation model. È possibile creare una variante di questo in JavaFX poiché la piattaforma fornisce proprietà che supportano l'associazione e il modello di presentazione è fondamentalmente un oggetto che incapsula lo stato del modello e fornisce operazioni che agiscono su tale stato.

La maggior parte degli esempi che ho visto utilizza una variante del modello di visualizzazione del modello. JavaFX supporta una struttura MVP molto semplice in cui ogni vista è associata a una classe 'controller'. Questo va bene per le piccole applicazioni, ma in realtà non fornisce una grande separazione delle preoccupazioni.

2

Forse dovresti tenere d'occhio il fantastico MVVMFX Framework. Basandosi sui paralleli tra WPF e JavaFX come la dichiarazione descrittiva dell'interfaccia utente (FXML/XAML), hanno cercato di adottare le migliori pratiche di sviluppo con WPF.

Supporta, naturalmente, i concetti di Databinding e implementa le interfacce necessarie per le notifiche tra view, viewModel e il modello. UI e la sua UI-Logic (codice retrostante) sono realizzati con file fxml (creati con Scene Builder) e la classe Java obbligatoria. Con molti buoni esempi non è difficile capire i loro concetti perché è un'implementazione rigorosa del modello MVVM più puro. Tutto ciò che serve è stabilire il framework nelle dipendenze del progetto.