Condividi tramite


Personalizzazione ed estensione di un linguaggio specifico di dominio

Modellazione di Visual Studio e la visualizzazione dell'SDK (VMSDK) forniscono vari livelli a cui è possibile definire gli strumenti di modellazione:

  1. Definire un linguaggio specifico (DSL) di dominio utilizzando il diagramma della definizione di modello DSL.È possibile creare rapidamente un modello DSL con una notazione schematica, formato leggibile XML e gli strumenti di base che sono obbligatori generare il codice e altri elementi.

    Per ulteriori informazioni, vedere Procedura: definire un linguaggio specifico di dominio.

  2. Ottimizzare il modello DSL utilizzando le funzionalità più avanzate della definizione di modello DSL.Ad esempio, è possibile creare collegamenti aggiuntivi visualizzata quando l'utente crea un elemento.Queste tecniche sono principalmente eseguiti nella definizione di modello DSL e alcune richiedono alcune righe di codice programma.

  3. Estendere gli strumenti di modellazione tramite il codice programma.VMSDK è appositamente progettato per semplificare l'integrazione delle estensioni con il codice generato dalla definizione di modello DSL.Per ulteriori informazioni, vedere Scrittura di codice per personalizzare un linguaggio specifico di dominio.

[!NOTA]

Dopo avere aggiornato il file delle definizioni DSL, non dimenticare di fare clic su Trasformazione di tutti i modelli nella barra degli strumenti di Esplora soluzioni prima di ricompilare la soluzione.

In questa sezione

Per ottenere questo risultato

Fare riferimento a questo argomento

Consentire che l'utente imposti le proprietà di stile e di colore della forma.

Fare clic con il pulsante destro del mouse sulla forma o la classe del connettore, quindi aggiungere espostoe fare clic su un elemento.

Vedere Personalizzazione della presentazione nel diagramma.

Classi diverse di visualizzazione dell'elemento del modello simili sul diagramma, la condivisione delle proprietà altezza e larghezza iniziali, colore, descrizioni comandi.

Ereditarietà di utilizzo tra le forme o le classi del connettore.I mapping tra le forme derivate e le classi di dominio derivate ereditano i dettagli del mapping di elementi padre.

O, è necessario eseguire il mapping delle classi di dominio della stessa classe della forma.

Una classe di elemento del modello per la visualizzazione dei contesti diversi di forme.

Eseguire il mapping di più classi shape alla stessa classe di dominio.Quando si compila la soluzione, utilizzare la segnalazione errori e fornire il codice necessario per decidere la forma da utilizzare.

Il colore della forma o altre funzionalità come carattere indica lo stato corrente.

Vedere Aggiornamento di forme e di connettori per riflettere il modello.

creare una regola che aggiorna le proprietà esposte.Vedere Le regole propagano le modifiche all'interno del modello.

In alternativa, utilizzare OnAssociatedPropertyChanged() aggiornare le funzionalità non esposte come le frecce o il tipo di collegamento.

Icona sulle modifiche della forma per indicare lo stato.

Per impostare la visibilità del mapping dell'elemento Decorator nella finestra dettagli DSL.Individuare più elementi Decorator dell'immagine nella stessa posizione.Vedere Aggiornamento di forme e di connettori per riflettere il modello.

o, override ImageField.GetDisplayImage().Vedere l'esempio in ImageField.

Impostare un'immagine di sfondo in qualsiasi forma

override InitializeInstanceResources() per aggiungere un ImageField ancorato.Vedere Personalizzazione della presentazione nel diagramma.

Forme di annidamento a qualsiasi profondità

Impostare una struttura ad albero che utilizza ricorsivo.Definire BoundsRules per contenere forme.Vedere Personalizzazione della presentazione nel diagramma.

Connettori di connessione agli elementi fissi al limite di un elemento.

Define incorporamento degli elementi terminali, rappresentati dalle piccole porte nel diagramma.Utilizzo BoundsRules correggere le porte sul posto.Vedere l'esempio dello schema circuitale a L'sdk di visualizzazione e modellazione.

Il campo di testo visualizzato un valore derivato da altri valori.

Eseguire il mapping dell'elemento Decorator di testo a una proprietà calcolata personalizzata o del dominio di archiviazione.Per ulteriori informazioni, vedere Proprietà di archiviazione calcolate e personalizzate.

Propagare le modifiche tra elementi del modello, o tra le forme

Vedere Convalida in un linguaggio specifico di dominio.

Propagare le modifiche alle risorse come altra Visual Studio estensioni all'esterno dell'archivio.

Vedere I gestori eventi propagano le modifiche al di fuori del modello.

La finestra proprietà vengono visualizzate le proprietà di un elemento correlato.

L'inoltro della proprietà di installazione.Vedere Personalizzazione della finestra Proprietà.

Categorie di proprietà

La finestra delle proprietà è suddivisa nelle sezioni chiamate categorie.impostare categoria le proprietà del dominio.Le proprietà con lo stesso nome della categoria verranno visualizzati nella stessa sezione.È anche possibile impostare categoria di un ruolo della relazione.

Controllare l'accesso utente alle proprietà del dominio

set È visualizzabile false per impedire una proprietà del dominio vengano visualizzati nella Finestra Proprietà in fase di esecuzione.È comunque possibile eseguirne il mapping su un testo agli elementi Decorator.

è l'interfaccia utente di sola lettura impedisce agli utenti di modificare una proprietà del dominio.

L'accesso di programma alla proprietà del dominio non verrà modificato.

Modificare il nome, l'icona e la visibilità dei nodi nell'esploratore del modello del linguaggio DSL.

Vedere Personalizzazione di Esplora modelli.

Abilitare la copia, taglia e incolla

impostare Abilitare incolla di copia proprietà di editor nodo nel modello DSL Esplora Risorse.

Collegamenti ai riferimenti di copia e i relativi database di destinazione ogni volta che un elemento viene copiato.Ad esempio, commenti di copia collegate a un elemento.

impostare copia di propagazioni proprietà del ruolo di origine (rappresentato dalla linea in un lato di relazione di dominio nel diagramma di definizione DSL).

Scrivere il codice per eseguire l'override di ProcessOnCopy per realizzare effetti più complessi.

Vedere Personalizzazione del comportamento di copia.

L'eliminazione, reparent, o consente il ricollegamento degli elementi correlati quando un elemento viene eliminato.

impostare Eliminazione di propagazioni valore di un ruolo della relazione.per gli effetti più complessi, override ShouldVisitRelationship e ShouldVisitRolePlayer metodi in MyDslDeleteClosure classe, definita in DomainModel.cs

Vedere Personalizzazione del comportamento di eliminazione

Mantenere il layout e l'aspetto delle forme sulla copia e la trascinamento-goccia.

Aggiungere forme e i connettori a copiato ElementGroupPrototype.Il metodo più pratico di cui eseguire l'override è ElementOperations.CreateElementGroupPrototype()

Vedere Personalizzazione del comportamento di copia.

Incolla forme in un percorso selezionato, ad esempio la posizione corrente del cursore.

override ClipboardCommandSet.ProcessOnCopy() per utilizzare la versione di posizione-specifica ElementOperations.Merge(). vedere Personalizzazione del comportamento di copia.

Creare collegamenti aggiuntivi su incolla

override ClipboardCommandSet.ProcessOnPasteCommand()

Abilitare il trascinamento della selezione dal diagramma, da altri diagrammi UML o di DSLs dagli elementi di windows

Vedere Procedura: aggiungere un gestore di trascinamento della selezione

Consentire una forma o uno strumento da trascinare su una forma figlio, ad esempio una porta, come se fosse stato trascinato sull'oggetto padre.

Definire una direttiva di unione dell'elemento nella classe dell'oggetto di destinazione, per inoltrare l'oggetto trascinato sull'oggetto padre.Vedere Personalizzazione della creazione e dello spostamento di elementi.

Consentire una forma o uno strumento da trascinare su una forma e creare collegamenti aggiuntivi o oggetti.Ad esempio, per consentire a un commento da rilasciare in un elemento che deve essere collegato.

Definire una direttiva di unione dell'elemento nella classe di dominio di destinazione e definire collegamenti da generare.In casi complessi, è possibile aggiungere codice personalizzato.Vedere Personalizzazione della creazione e dello spostamento di elementi.

creare un gruppo di elementi con uno strumento.Ad esempio, un componente con un set prestabilito di porte.

Eseguire l'override del metodo di inizializzazione della casella degli strumenti in ToolboxHelper.cs.Creare un prototipo del gruppo (EGP) di elementi che contiene gli elementi e i relativi collegamenti della relazione.Vedere Personalizzazione di strumenti e della casella degli strumenti.

Includere il principale e la porta forme in EGP, oppure definire BoundsRules per posizionare forme della porta quando il EGP viene creata un'istanza.Vedere Le regole associate (BoundsRules) vincolano posizione e dimensione delle forme.

Utilizzare uno strumento di connessione per creare un'istanza di diversi tipi di relazioni.

Aggiungere il collegamento connettono le direttive (LCD) al generatore di connessione che viene richiamato dallo strumento.Le i crystal display liquidi determinano il tipo di relazione dai tipi dei due elementi.A tale scopo dipendere dagli stati degli elementi, è possibile aggiungere codice personalizzato.Vedere Personalizzazione di strumenti e della casella degli strumenti.

Strumenti appiccicosi - l'utente può fare doppio clic su qualsiasi strumento per creare molti forme o connettori in successione.

Nel modello DSL Esplora Soluzioni, selezionare Editor nodo.Nella Finestra Proprietà, impostare Elementi della casella degli strumenti appiccicosi di utilizzo.

definire i comandi di menu

Vedere Procedura: modificare un comando di menu standard in un linguaggio specifico di dominio

vincolare il modello con le regole di convalida

Vedere Convalida in un linguaggio specifico di dominio

Generare codice, i file di configurazione, o documenti da un linguaggio specifico di dominio.

Generazione di codice da un linguaggio specifico di dominio

Personalizzare il modo in cui i modelli vengono salvati in un file.

Vedere Personalizzazione dell'archiviazione dei file e della serializzazione XML

Salvare i modelli a database o altri contenuti multimediali.

override TheLanguageDocData

Vedere Personalizzazione dell'archiviazione dei file e della serializzazione XML

Integrare più DSLs in modo che funzionino come parte di un'applicazione.

Vedere Integrazione di modelli tramite ModelBus di Visual Studio.

Consentire al modello DSL sia esteso da terze parti e che il controllo estensione.

Estendere il DSL mediante MEF

Condivisione di classi tra DSL utilizzando una libreria DSL

Definizione di un criterio di blocco per creare segmenti di sola lettura

Vedere anche

Concetti

Procedura: definire un linguaggio specifico di dominio

SDK di visualizzazione e modellazione (linguaggi specifici di dominio)

Altre risorse

Scrittura di codice per personalizzare un linguaggio specifico di dominio