Procedura: definire un profilo per estendere UML
In Visual Studio Ultimate è possibile definire un profilo UML per personalizzare gli elementi del modello standard per scopi specifici.Un profilo definisce uno o più stereotipi UML.Uno stereotipo può essere utilizzato per contrassegnare un tipo come rappresentazione di un determinato tipo di oggetto.Uno stereotipo può anche possibile estendere l'elenco di proprietà di un elemento.
Con Visual Studio Ultimate vengono installati diversi profili.Per ulteriori informazioni su tali profili e sull'applicazione degli stereotipi, vedere Personalizzazione del modello con profili e stereotipi.
È possibile definire profili personalizzati per adattare ed estendere UML all'architettura o all'area aziendale.Ad esempio:
Se si definiscono frequentemente siti Web, è possibile definire un profilo personalizzato che fornisce uno stereotipo «WebPage» da applicare alle classi nei diagrammi classi.È quindi possibile utilizzare i diagrammi classi per pianificare un sito Web.Ogni classe «WebPage» può avere proprietà aggiuntive per il contenuto della pagina, lo stile e così via.
Se si sviluppa un software bancario, è possibile definire un profilo che fornisca uno stereotipo «Account».È quindi possibile utilizzare i diagrammi classi per definire diversi tipi di account e mostrare le relazioni tra loro.
È possibile distribuire i profili personalizzati al team.Ogni membro del team può installare tale profiloe quindi modificare e creare modelli che utilizzano i relativi stereotipi.
[!NOTA]
Se si applicano gli stereotipi di un profilo in un modello che si sta modificando e quindi si condivide il modello con altri utenti, questi utenti dovranno installare lo stesso profilo nei loro computer,altrimenti non potranno visualizzare gli stereotipi utilizzati.
Un profilo spesso fa parte di un'estensione di Visual Studio più grande.Ad esempio, è possibile definire un comando che converte alcune parti di un modello in codice.È possibile definire un profilo che gli utenti devono applicare ai pacchetti che desiderano convertire.È possibile distribuire il nuovo comando insieme al profilo in una singola estensione di Visual Studio.
È inoltre possibile definire varianti localizzate di un profilo.Gli utenti che caricano l'estensione visualizzano la variante appropriata alle impostazioni cultura utilizzate.
Definizione di un profilo
Per definire un profilo UML
Creare un nuovo file XML con l'estensione di file .profile.
Aggiungere le definizioni degli stereotipi in base alle linee guida descritte in Struttura di un profilo.
Aggiungere il profilo a un progetto Visual Studio Extension (file .vsix).È possibile creare una nuova estensione per il profilo o aggiungere il profilo a un'estensione esistente.
Vedere la sezione successiva, Aggiunta di un profilo a un progetto Visual Studio Extension.
Installare l'estensione nel computer.
Fare doppio clic sul file dell'estensione con l'estensione di file .vsix.
Riavviare Visual Studio.
Verificare che sia stato installato il profilo.
Selezionare il modello in Esplora modelli UML.
Nella finestra Proprietà fare clic sulla proprietà Profili.Il profilo verrà visualizzato nel menu.Impostare il segno di spunta accanto al profilo.
Selezionare un elemento per il quale il profilo definisce stereotipi.Nella finestra Proprietà fare clic sulla proprietà Stereotipi.Gli stereotipi verranno visualizzati nell'elenco.Impostare il segno di spunta per uno degli stereotipi.
Se il profilo definisce ulteriori proprietà per questo stereotipo, espandere la proprietà dello stereotipo per visualizzarle.
Inviare agli altri utenti di Visual Studio il file dell'estensione da installare nei relativi computer.
Aggiunta di un profilo a un progetto Visual Studio Extension
Per installare un profilo e poterlo inviare agli altri utenti, è necessario aggiungere il profilo a un'estensione di Visual Studio.Per ulteriori informazioni, vedere Distribuzione delle estensioni di Visual Studio (la pagina potrebbe essere in inglese).
Per definire un profilo in una nuova estensione di Visual Studio
Creare un progetto Visual Studio Extension.
[!NOTA]
Per eseguire questa procedura, è necessario avere installato Visual Studio SDK.
Scegliere Nuovo dal menu File, quindi fare clic su Progetto.
Nella finestra di dialogo Nuovo progetto, in Modelli installati, espandere Visual C#, fare clic su Extensibility, quindi fare clic su Progetto VSIX.Impostare il nome del progetto, quindi scegliere OK.
Aggiungere il profilo al progetto.
- In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto, scegliere Aggiungi, quindi fare clic su Elemento esistente.Individuare il file del profilo nella finestra di dialogo.
Impostare la proprietà Copy to Output del file del profilo.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul file del profilo, quindi scegliere Proprietà.
Nella finestra Proprietà impostare la proprietà Copia nella directory di output su Copia sempre.
In Esplora soluzioni aprire source.extension.vsixmanifest.
Il file verrà visualizzato nell'editor del manifesto dell'estensione.
Nella pagina Risorse, aggiungere una riga che descrive il profilo:
Fare clic su Nuovo.Impostare i campi nella finestra di dialogo Aggiungi nuovo asset come segue.
Impostare Tipo su Microsoft.VisualStudio.UmlProfile
Ciò non è una delle opzioni a discesa.Questo nome da tastiera.
Fare clic File in filesystem e selezionare il nome del file di profilo, ad esempio MyProfile.profile
Compilare il progetto.
Per eseguire il debug del profilo, premere F5.
Verrà aperta un'istanza sperimentale di Visual Studio.In questo esempio, aprire un progetto di modello.In Esplora modelli UML, selezionare l'elemento radice del modello, quindi nella Finestra Proprietà selezionare il profilo.Selezionare gli elementi negli stereotipi get e set il modello già definiti.
Per estrarre il progetto VSIX per la distribuzione
In Esplora risorse aprire la cartella .\bin\Debug o .\bin\Release per individuare il file .vsix.Si tratta di un file di Visual Studio Extension.Può essere installato nel computer ed essere inviato agli altri utenti di Visual Studio.
Per installare l'estensione:
Fare doppio clic sul file .vsix.Verrà avviato Visual Studio Extension Installer.
Riavviare le istanze di Visual Studio in esecuzione.
Se Visual Studio SDK non è stato installato, è possibile utilizzare la procedura alternativa seguente per le estensioni di piccole dimensioni.
Per definire un'estensione del profilo senza utilizzare Visual Studio SDK
Creare una directory di Windows che contenga i tre file seguenti:
Profilo.profile
extension.vsixmanifest
[Content_Types].xml: digitare questo nome come illustrato in questo ambito, con le parentesi quadrate
Modificare [Content_Types].xml in modo da includere il testo seguente.Si noti che viene inclusa una voce per ogni estensione di file.
<?xml version="1.0" encoding="utf-8"?> <Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types"> <Default Extension="profile" ContentType="application/octet-stream" /> <Default Extension="vsixmanifest" ContentType="text/xml" /> </Types>
Copiare un file extension.vsixmanifest esistente e modificarlo con un editor XML.Modificare i nodi ID, Nome e Contenuto.
Un esempio di extension.vsixmanifest è disponibile nella directory seguente:
unità**:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles**
Il nodo Contenuto deve essere simile al seguente:
<Content> <CustomExtension Type="Microsoft.VisualStudio.UmlProfile" >YourProfile.Profile</CustomExtension> </Content>
Comprimere i tre file in un file compresso.
In Esplora risorse selezionare i tre file, fare clic con il pulsante destro del mouse, scegliere Invia a, quindi fare clic su Cartella compressa.
Rinominare il file compresso modificando l'estensione di file da .zip in .vsix.
Per installare il profilo in un altro computer con le versioni di Visual Studio appropriate, fare doppio clic sul file .vsix.
Per installare un profilo UML da un progetto Visual Studio Extension
Fare doppio clic sul file .vsix in Esplora risorse o aprirlo all'interno di Visual Studio.
Fare clic su Installa nella finestra di dialogo visualizzata.
Per disinstallare o disabilitare temporaneamente l'estensione, aprire Gestione estensioni dal menu Strumenti.
Definizione di profili localizzati
È possibile definire diversi profili per impostazioni cultura o lingue diverse e inserirli tutti nella stessa estensione.Quando un utente carica l'estensione, visualizzerà il profilo definito per le impostazioni cultura utilizzate.
È necessario fornire sempre un profilo predefinito.Se non è stato definito un profilo per le impostazioni cultura dell'utente, verrà visualizzato il profilo predefinito.
Per definire un profilo localizzato
Creare un profilo come descritto nelle sezioni precedenti Definizione di un profilo e Aggiunta di un profilo a un progetto Visual Studio Extension.Si tratta del profilo predefinito e verrà utilizzato in tutte le installazioni per le quali non viene fornito un profilo localizzato.
Aggiungere una nuova directory nella stessa directory del file del profilo predefinito.
[!NOTA]
Se l'estensione viene compilata tramite un progetto Visual Studio Extension, utilizzare Esplora soluzioni per aggiungere una nuova cartella al progetto.
Modificare il nome della nuova directory sostituendolo con il codice ISO breve per le impostazioni cultura localizzate, ad esempio bg per il bulgaro o fr per il francese.È consigliabile utilizzare un codice indipendente dalle impostazioni cultura, in genere costituito da due lettere, non il codice delle impostazioni cultura specifiche come ad esempio fr-CA.Per ulteriori informazioni sui codici delle impostazioni cultura, vedere Metodo CultureInfo.GetCultures (la pagina potrebbe essere in inglese), in cui viene fornito un elenco completo di codici delle impostazioni cultura.
Aggiungere una copia del profilo predefinito nella nuova directory.Non modificare il nome del file.
Una cartella di Visual Studio Extension di esempio, prima di essere compilata o compressa in un file .vsix, può contenere le cartelle e i file seguenti:
extension.vsixmanifest
MyProfile.profile
fr\MyProfile.profile
de\MyProfile.profile
[!NOTA]
Non inserire in extension.vsixmanifest un riferimento alle versioni localizzate dei profili.I file dei profili copiati devono avere lo stesso nome del profilo presente nella cartella padre.
Modificare la nuova copia del profilo, traducendo nella lingua di destinazione tutte le parti che saranno visibile all'utente come ad esempio gli attributi displayName.
È possibile creare cartelle per le impostazioni cultura e profili localizzati aggiuntivi per tutte le impostazioni cultura che si desidera.
Compilare l'estensione di Visual Studio, compilando il progetto di estensione o comprimendo tutti i file come descritto nelle sezioni precedenti.
Struttura di un profilo
Il file XSD per i profili UML è disponibile nel seguente esempio relativo all'impostazione di stereotipi e profili XSD.Per facilitare la modifica dei file di profilo, installare il file .xsd in:
%ProgramFiles%\Microsoft Visual Studio 11.0\Xml\Schemas
In questa sezione viene utilizzato come esempio il profilo C#.La definizione completa del profilo è disponibile nella directory seguente:
unità**:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\CSharp.profile**
Le prime parti di questo percorso potrebbero essere diverse nell'installazione utilizzata.
Per ulteriori informazioni sul profilo .NET, vedere Stereotipi standard per modelli UML.
Sezioni principali della definizione del profilo UML
Ogni profilo presenta il contenuto seguente:
<?xml version="1.0" encoding="utf-8"?>
<profile dslVersion="1.0.0.0"
name="CSharpProfile" displayName="C# Profile"
xmlns="https://schemas.microsoft.com/UML2.1.2/ProfileDefinition">
<stereotypes>...</stereotypes>
<metaclasses>...</metaclasses>
<propertyTypes>...</propertyTypes>
</profile>
[!NOTA]
L'attributo denominato name non deve contenere spazi né punteggiatura.L'attributo displayName, che compare nell'interfaccia utente, deve essere una stringa XML valida.
Ogni profilo contiene tre sezioni principali.In ordine inverso, esse sono:
<propertyTypes>: un elenco di tipi utilizzati per le proprietà definite nella sezione stereotipi.
<metaclasses>: un elenco di tipi di elemento del modello a cui vengono applicati gli stereotipi in questo profilo, ad esempio IClass, IInterface, IOperation, IDependency.
<stereotypes>: le definizioni degli stereotipi.Ogni definizione include i nomi e i tipi delle proprietà aggiunte all'elemento del modello di destinazione.
Tipi di proprietà
La sezione di <propertyTypes>dichiara un elenco di tipi utilizzati per le proprietà nella sezione di <stereotypes>.Esistono due tipi di proprietà: esterno ed enumerazione.
Un tipo esterno dichiara il nome completo di un tipo .NET standard:
<externalType name="System.String" />
Un tipo enumerazione definisce un set di valori letterali:
<enumerationType name="PackageVisibility">
<enumerationLiterals>
<enumerationLiteral name="internal" displayName="internal" />
<enumerationLiteral name="protectedinternal" displayName="protected internal" />
</enumerationLiterals>
</enumerationType>
Metaclassi
La sezione <metaclasses> include un elenco di tipi di elemento del modello per cui possono essere definiti gli stereotipi in questo profilo:
<metaclass
name="Microsoft.VisualStudio.Uml.Classes.IClass" />
<metaclass
name="Microsoft.VisualStudio.Uml.Classes.IInterface" />
<metaclass
name="Microsoft.VisualStudio.Uml.Components.IComponent" />
Per l'elenco completo dei tipi di elemento del modello e di relazione che è possibile utilizzare come metaclassi, vedere Tipi di elemento del modello.
Definizione degli stereotipi
La sezione <stereotypes> contiene una o più definizioni degli stereotipi:
<stereotype name="CSharpClass" displayName="C# Class"> ...
Ogni stereotipo elenca uno o più tipi di elemento del modello o di relazione a cui può essere applicato.È possibile assegnare il nome di un tipo di base per includere tutti i relativi tipi derivati.Ad esempio, se si specifica Microsoft.VisualStudio.Uml.Classes.IType, lo stereotipo può essere applicato a IClass, IInterface, IEnumeration e a molti altri tipi di elemento.
<metaclasses>
<metaclassMoniker name=
"/CSharpProfile/Microsoft.VisualStudio.Uml.Classes.IClass" />
</metaclasses>
L'attributo name di metaclassMoniker è un collegamento a un elemento nella sezione <metaClasses>.
[!NOTA]
Il nome del moniker deve iniziare con /yourProfileName/, dove yourProfileName è definito nell'attributo name del profilo ("CSharpProfile" in questo esempio).Il moniker termina con il nome di una delle voci nella sezione delle metaclassi.
Ogni stereotipo può elencare zero o più proprietà da aggiungere a qualsiasi elemento del modello a cui viene applicato.<propertyType> contiene un collegamento a uno dei tipi definiti nella sezione di <propertyTypes>.Il collegamento deve essere un oggetto <externalTypeMoniker> per fare riferimento a un oggetto <externalType>, o un oggetto <enumerationTypeMoniker> per fare riferimento a un oggetto <enumerationType>.Anche in questo caso il collegamento inizia con il nome del profilo.
<properties>
<property name="IsStatic"
displayName="Is Static" defaultValue="false">
<propertyType>
<externalTypeMoniker
name="/CSharpProfile/System.Boolean" />
</propertyType>
</property>
<property name="PackageVisibility"
displayName="Package Visibility"
defaultValue="internal">
<propertyType>
<enumerationTypeMoniker
name="/CSharpProfile/PackageVisibility"/>
</propertyType>
</property>
</properties>
</stereotype>
Tipi di elemento del modello
Il set di tipi per i quali è possibile definire stereotipi è elencato in Tipi di elemento del modello.
Risoluzione dei problemi
Gli stereotipi non appaiono nei modelli UML.
È necessario selezionare il profilo in un pacchetto o in un modello.Gli stereotipi saranno quindi visualizzati sugli elementi del pacchetto o del modello.Per ulteriori informazioni, vedere Procedura: aggiungere stereotipi a elementi di modello.L'errore seguente viene visualizzato quando si apre un modello UML: VS1707: The following profiles cannot be loaded because a serialization error occurred: MyProfile.profile
Verificare che la sintassi XML di base del profilo sia corretta.
Assicurarsi che ogni nome di Moniker abbia il formato /profileName/nodeName.ProfileName è il valore dell'attributo name nel nodo del profilo radice.NodeName è il valore dell'attributo name di una metaclasse, externalType o enumerationType.
Assicurarsi che la sintassi sia come descritta qui e come illustrata in unità**:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\**.
Disinstallare l'estensione difettosa.Scegliere Gestione estensioni dal menu Strumenti.
- Se l'estensione non viene visualizzata, vedere l'elemento successivo.
Ricompilare il file VSIX e aprirlo in Esplora risorse per reinstallarlo.Riavviare Visual Studio.
L'estensione non viene visualizzata in Gestione estensioni, ma quando si tenta di reinstallarla, viene visualizzato il messaggio seguente: The extension is already installed to all applicable products.
Rimuovere il file dell'estensione da una sottocartella di LocalAppData\Microsoft\VisualStudio\11.0\Extensions\
Per visualizzare LocalAppData, è necessario impostare Visualizza cartelle e file nascosti nella scheda Visualizza di Opzioni cartella di Esplora risorse.
LocalAppData si trova in genere in C:\Users\userName\AppData\Local\
Riavviare Visual Studio.
Vedere anche
Attività
Procedura: aggiungere stereotipi a elementi di modello
Concetti
Stereotipi standard per modelli UML
Altre risorse
Personalizzazione del modello con profili e stereotipi