Dienstag, 27. Juli 2010
Microsoft bietet unter http://1code.codeplex.com/ Entwickleren, Testern usw. eine Code-Sammlung für einfache Standard-Probleme die jedem Entwickler täglich über den Weg laufen können. Die Beispiel-Codes sind in verschiedenen Sprachen, C#/VB/C++, und bieten Beispiel-Code in diversen Solutions, die sich speziell diesem einen Problem widmen. Ein “Sample-Code-Browser” liegt ebenfalls bei, der einen guten Überblick bietet.
Have fun!
Thema: .NET > 3.0, C# |
Beitrag kommentieren
Mittwoch, 14. Juli 2010
Events sind klasse! Oft wird man gefragt, wie man denn Events implementiert. Man weiß, dass dazu mehrere Schritte notwendig sind, doch oft fehlt dem einem oder anderen das Kleine Zwischenstück was den Code rund macht.
Hier ist der Code der dich glücklich macht; kurz und schmerzlos:
Die Klasse “ClassWithEvent” ist die Klasse die das Event zur Verfügung stellt:
...
///
/// Occurs when [the evented].
///
public event EventHandler TheEvented;
///
/// Raises the event.
///
///
The instance containing the event data.
protected virtual void OnTheEvented(EventArgs e)
{
if (TheEvented != null)
{
TheEvented(this, e);
}
}
private AnotherMethod()
{
//Mach irgendwas...
OnTheEvented(EventArgs.Empty);
}
...
Und hier ist die Klasse “CurrentEventUsingClass” die das Event registrieren und nutzen möchte:
...
ClassWithEvent.TheEvented += CurrentEventUsingClass_TheEventedMethod;
void CurrentEventUsingClass_TheEventedMethod(object sender, EventArgs e)
{
// was immer du möchtest...oder:
throw new NotImplementedException();
}
...
Was passiert hier? Die Klasse “CurrentEventUsingClass” registriert sich auf das Event welches von der Klasse “ClassWithEvent” zur Verfügung gestellt. Innerhalb von “ClassWithEvent” wird in der Methode “AnotherMethod” die Methode OnTheEvented(…) aufgerufen. Innerhalb dieser Methode wird geprüft, ob sich irgendjemand auf das Event “TheEvented” registriert hat, falls ja, also != null, wird dieser aufgerufen. In diesem Fall wird dann also in “CurrentEventUsingClass” die Methode “CurrentEventUsingClass_TheEventedMethod(…)” aufgerufen.
Happy bubbling!
Thema: .NET > 3.0, .NET 2.0, C# |
Beitrag kommentieren
Mittwoch, 14. Juli 2010
Mal wieder musste ich googlen um die einzelnen Schritte zum nutzen einer Embedded Resource. Hier nun endlich die schnelle Nachschlage-Variante:
- Im Solution Explorer die Grafik mit rechts anklicken und “Properties” wählen
- Build Action auf “Embedded Resource” stellen
- Im Projekt unter Properties -> AssemblyInfo.cs erweitern mit:
[assembly: WebResource("Path.image.png", "image/png")]
Wichtig: Der Pfad “Path.image.png” muss genauso angegeben werden, wie die Datei im Dateisystem liegt.
Beispiel: Projektname ist “Kfz.Audi.A3″ und die Datei “neuerA3.png” liegt hier im Ordner “Bilder/A3″ muss der Pfad heißen
[assembly: WebResource("Kfz.Audi.A3.Bilder.A3.neuerA3.png", "image/png")]
- Kompilieren
- Zugriff im Code mit:
Page.ClientScript.GetWebResourceUrl(this.GetType(), "Path.image.png");
Laut Beispiel also:
Page.ClientScript.GetWebResourceUrl(this.GetType(), "Kfz.Audi.A3.Bilder.A3.neuerA3.png");
Thema: .NET > 3.0, .NET 2.0, C# |
Beitrag kommentieren
Mittwoch, 31. März 2010
Wer häufig per Remote Desktop arbeitet, und dazu 2 Monitore zur Verfügung hat, kann auch per RDP beide Monitore nutzen.
Wie funktioniert das?
Dazu per WIN+R den Ausführen-Dialog starten, und dann mstsc /span eingeben. Die anschließend startende RD-Verbindung wird direkt auf beide Monitore gelegt.
Die Fenster sind im Full-Screen ja auf beide Monitore gezogen!
Abhilfe schafft das kostenfreie Tool GridMove (http://jgpaiva.dcmembers.com/gridmove.html). Diese bringt Templates für die Monitor-Aufteilung mit. Für 2 Monitore nutze ich das Template 2-Part-Vertical. Der Snap-Modus des Tools ermöglicht es nun, ein Fenster an den oberen Rand zu ziehen, und es anschließend in dem definierten Bereich im Full-Screen anzuzeigen.
Weitere Infos gibt es hier:
http://blogs.msdn.com/kirillosenkov/archive/2009/04/10/remote-desktop-span-across-multiple-monitors.aspx
Thema: Allgemein, Tools & Co. |
Beitrag kommentieren
Donnerstag, 11. März 2010
Um zu prüfen welche Größe ein in den Cache zu legendes Objekt, z.B. ein Dataset, hat, bietet sich dieser Code an:
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, YOUROBJECT);
// size in KB
double size = Convert.ToDouble(ms.Length) / Convert.ToDouble(1000);
Thema: .NET > 3.0, .NET 2.0, C# |
Beitrag kommentieren