Laden...

Forenbeiträge von Sym Ingesamt 9 Beiträge

12.05.2009 - 16:12 Uhr

Hat da niemand mit Erfahrungen machen können, oder ist schon der Ansatz fehlerhaft?

29.04.2009 - 11:10 Uhr

Hallo,

ich habe eine Aktivität geschrieben, die einen anderen Xoml-Workflow startet und nach durchlaufen darüber informiert wird. Dies funktioniert soweit.

Dabei halte ich das Parent-Child-Verhältnis in einem Dictionary vor. Beim Laden einer WorkflowInstance möchte ich das Dictionary nun füllen.

Ich habe nun folgendes versucht, um dem gestarteten Workflow Informationen mitzugeben:

[...]
workflowInstance = this.Runtime.CreateWorkflow(xmlReader, null, parameters, workflowInstanceId);
[...]
Activity childRootActivity = workflowInstance.GetWorkflowDefinition();
childRootActivity.UserData.Add("ParentID", "test");
childRootActivity.SetValue(CallingWorkflowIDProperty, workflowInstance.InstanceId);

Mit der zurgehörigen Property

public static DependencyProperty CallingWorkflowIDProperty = DependencyProperty.RegisterAttached("CallingWorkflowID", typeof(Guid), typeof(CallWorkflowService));

Der Workflow wird persistiert, entladen und wieder geladen. Leider bekomme ich mittels

object p1 = childRootActivity.UserData["ParentID"];
object p2 = childRootActivity.GetValue(CallingWorkflowIDProperty);

keine Ergebnisse.

Ist die Idee flasch?

12.03.2009 - 16:09 Uhr

Mit anderen Worten, du verwendest Namen zur syntaktischen Gruppierung von Objekten.

Aua.

LaTino

Genau! Im Bereich FE (und zwar in den Forms) würde ich diese Notation verwenden. Gerade weil ich beim Entwickeln mich eher daran erinnere, um was für ein Control es sich handelt. Und über Intelisence möchte ich ja gerade mein gesuchtest Control finden.

Das diese Notation im restlichen C#-Bereich nicht mehr verwendet wird, sehe ich auch so. Da lässt sich der Code (meiner Meinung nach) aber auch besser Strukturieren.

[...]
normalerweise schreibt man z.b.
"TimeFormatLabel"
"ThumbNailPictureBox"[...]

Den ControlTyp hinten anzuhängen, halte ich für mindestens ebenso unsinnig. Dann kann ich ihn auch davor schreiben und habe dadurch eine einfache Einschränkung in der Codecompletion.

12.03.2009 - 12:42 Uhr

Es kommt ganz darauf an, wieviele Controls in einer Maske zu finden sind.

Habe ich in einer Maske 20 Labels, 20 Textboxen und 7 Buttons ist es doch wesentlich leichter, über Codecompletion zunächst den Bezeichner zu nennen, was die Auswahl dann einschränkt.

Ich weiß häufig nicht genau, wie das Control genau heißt, aber ich weiß, was für ein Typ es ist. Oder gibt es dann eine einfache Möglichkeit mittels intellisece die Auswahl einzuschränken?

12.03.2009 - 12:17 Uhr

Für ein eigenes Control kann hat man sicher einen passenden Bezeichner.

Und über die Codecompletion ist ein Control schneller zu finden.

Meist hat man im GUI-Bereich in einer Klasse eine ganze Menge Controls. Häufig weiss man nicht genau den Namen, aber die Art des Controls.

Mittels Codecompletion lässt sich über den Controltyp schnell die gesucht Komponente finden. Wenn der Controltyp nun am Ende des Bezeichners steht, ist dies nicht so einfach, oder?

12.03.2009 - 11:31 Uhr

Siehe dazu z.B. http://www.csharpfriends.com/articles/getarticle.aspx?articleid=336

8.2. Naming Guidelines

Generally the use of underscore characters inside names and naming according to the guidelines for Hungarian notation are considered bad practice.

Hungarian notation is a defined set of pre and postfixes which are applied to names to reflect the type of the variable. This style of naming was widely used in early Windows programming, but now is obsolete or at least should be considered deprecated. Using Hungarian notation is not allowed if you follow this guide.

And remember: a good variable name describes the semantic not the type.

An exception to this rule is GUI code. All fields and variable names that contain GUI elements like button should be postfixed with their type name without abbreviations. For example:

System.Windows.Forms.Button cancelButton;
System.Windows.Forms.TextBox nameTextBox;

Ist das gängige Praxis? Ich würde eher tbxName und btnCancel verwenden.

Gibt es dazu irgendwo einen offiziellen Link von MS?

12.03.2009 - 11:28 Uhr

Ja, auch in Java nimmt man von dieser Notation Abstand. Ich habe auch hier im Forum dazu gesucht.

Bei Java wird es jedoch im FE dennoch eingesetzt, was die Control-Benamung betrifft. Ist dies bei C# auch so? Darauf wollte ich eigentlich hinaus.

12.03.2009 - 11:17 Uhr

Hallo,

ich bin relativ neu im Bereich DotNet und C#.

Ich habe mich durch die Microsoft Guidelines gewühlt und finde dazu nicht die richtige Antwort.

Ich komme aus dem Java-Bereich und dort wird für das Frontend meist die ungarische Notation für Komponentenbezeichner genutzt.

Wie ist das in C#/DotNet? Mit wurde mitgeteilt, dass man dort den Komponententyp am Ende des Names mit angibt, was ich persönlich nicht schön finde.

Hat dazu wer einen offiziellen Link?

Dank und Gruß