2012-01-21 3 views
9

Ho iniziato a giocare con la modellazione UML in VS. Ho provato a creare diagrammi con alcune classi, collegarli e generare del codice dal modello - dopo aver installato il Feature Pack, tutto sembra funzionare correttamente.Creazione di eventi C# con Visual Studio Modeling Project

Tuttavia, ciò che mi manca è la capacità di dichiarare eventi, che giocano un ruolo piuttosto importante in .Net (e sono spesso la chiave del design).

Come si dichiarano gli eventi nel diagramma di classe UML in Visual Studio?

EDIT:

per chiarire le cose. Sono non interessato a qualcosa relativo alla funzione Diagramma di classe presente nei progetti C# in Visual Studio per qualche tempo.

Questa domanda è relativa a Modeling Project, che è una nuova funzionalità di Visual Studio 2010 Ultimate.

+0

Nella mia mente, non è possibile gestire gli eventi in UML. Ho provato e non ho mai trovato come fare, quindi buona domanda ... –

risposta

2

UML è linguaggio indipendente dall'implementazione. Il corretto modo per definire un linguaggio specifico della lingua in UML è utilizzando uno stereotype. Uno stereotipo è una specializzazione del metaclasse UML. Definire un profile che estende Class in un EventHandler ed Event stereotipo che estende Message. Quindi applica quegli stereotipi alle classi nei tuoi modelli in modo appropriato. È quindi possibile inserire i dettagli dell'implementazione idioma specifici della lingua nello stereotipo.

+0

Grazie per questa risposta. Dopo altri 20 minuti di studio della documentazione, ho finalmente scoperto che esiste un profilo C# con stereotipo "evento" fornito con il Feature Pack. Tuttavia, i modelli di generazione del codice sembrano ignorare completamente gli attributi con questo stereotipo. Continuerò a indagare su questo, quindi non segnerò ancora questa come risposta. Comunque ti concederò la taglia (altrimenti scadrà). –

+1

@ Matěj Zábský: Ho notato lo stesso comportamento di te. Ho presentato un bug [qui] (https://connect.microsoft.com/VisualStudio/feedback/details/725112/generate-code-in-vs2010-modeling-project-events-ignored). Se hai accesso a quel sito, votalo per l'attenzione rapida. – kmote

+0

@kmote Nice, upvoted. –

1
+1

Purtroppo, questo non aiuta. Il diagramma di classe è qualcosa di diverso dal progetto di modellazione. Il diagramma delle classi è uno strumento di progettazione della classe semplificato disponibile in tutti i progetti C#.Modeling Project è una nuova funzionalità di Visual Studio 2010 Ultimate (da cui la mancanza di materiali online) ed è un designer di architettura UML in piena regola con Class, Process, Sequence, Layer e altri diagrammi. –

-1

Si dovrebbe cercare tra cui pattern Observer \ Event. È discusso molto bene qui. http://www.cumps.be/nl/blog/read/design-patterns-observer-event-pattern

+0

Come mi aiuta? L'evento è richiesto lì (l'evento * è * l'implementazione del pattern Observer). Devo trovare un modo per rappresentare un evento in UML, non evitare di usare eventi. –

+0

Non penso che abbiamo un modo diretto di rappresentare gli eventi in un diagramma UML. – Dinesh

0

Nessuno dei precedenti è stato utile per me. Ecco come attivare C concetti # lingua:

  • Assicurarsi si dispone già di un progetto di modellazione o crearne uno
  • In Visual Studio Select Architettura -> Windows -> modello UML explorer
  • Selezionare il progetto di modellazione e aperto il pannello delle proprietà
  • In "Profili" selezionare la casella di controllo "Profilo C#".

Per aggiungere un evento a un diagramma delle classi:

  • creare un nuovo attributo su una classe.
  • Nel pannello delle proprietà di controllo "C# evento" in stereotipi

Purtroppo non v'è alcuna indicazione visiva per l'attributo per contrassegnare come un evento.