Archiv für die Kategorie » .NET 2.0 «

Events die xte…

Mittwoch, 14. Juli 2010 | Autor: admin

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

Bild als Embedded Resource

Mittwoch, 14. Juli 2010 | Autor: admin

Mal wieder musste ich googlen um die einzelnen Schritte zum nutzen einer Embedded Resource. Hier nun endlich die schnelle Nachschlage-Variante:

  1. Im Solution Explorer die Grafik mit rechts anklicken und “Properties” wählen
  2. Build Action auf “Embedded Resource” stellen
  3. 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")]
  4. Kompilieren
  5. 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

Wie groß ist das im Cache liegende Objekt?

Donnerstag, 11. März 2010 | Autor: admin

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

Der gute alte ASP.NET LifeCycle

Dienstag, 11. November 2008 | Autor: admin

  • Begin PreInit
    • End PreInit
  • Begin Init
    • End Init
  • Begin InitComplete
    • End InitComplete
  • Begin PreLoad
    • End PreLoad
  • Begin Load
    • End Load
  • Begin LoadComplete
    • End LoadComplete
  • Begin PreRender
    • End PreRender
  • Begin PreRenderComplete
    • End PreRenderComplete
  • Begin SaveState
    • End SaveState
  • Begin SaveStateComplete
    • End SaveStateComplete
  • Begin Render
    • End Render

Thema: .NET 2.0 | Beitrag kommentieren

User Interface Process Application Block (UIP) Version 2.0 – Tutorial Visual Studio 2008

Mittwoch, 30. April 2008 | Autor: admin

In dem Artikel beschreibe ich wie man sich ein kleines Beispielprojekt mit UIP2 aufbaut. Das fertige Projekt findet hier ihr [uipapplication].

Mit UIP ist es möglich Prozesse viewbasiert abzubilden.

Download & Installation

Das Download Paket findet sich unter

http://www.microsoft.com/downloads/details.aspx?FamilyID=98C6CC9D-88E1-4490-8BD6-78092A0F084E&displaylang=en

Nach der Installation kann die Solution, standardmäßig zu finden unter „C:\Program Files\Microsoft Application Blocks For .Net\User Interface Process 2.0\Code\Microsoft.ApplicationBlocks.UIProcess.sln“, mit Visual Studio 2008 geöffnet und in das neue VS08-Format konvertiert werden.

Die Solution kann nun einmal kompiliert werden, damit die entstandenen Assemblies (.dll-Dateien) im Anschluss in eigenen Projekten referenziert werden können (kleiner Tipp: Wenn das kompilieren nicht funktioniert, einfach mal in den Project-Properties | Application | Target Framework nachschauen welche .NET-Version ausgewählt ist). Falls die Verzeichnis-Rechte nicht stimmen und ein „Access denied“-Fehler auftritt findet sich unter „C:\Program Files\Microsoft Application Blocks For .Net\User Interface Process 2.0\Scripts\“ die Datei „SET_PERMS.BAT“, welche die Zugriffsrechte der Verzeichnisse setzt. Somit ist UIP startklar.

Los geht’s! weiter…

Thema: .NET 2.0, UIP | Beitrag kommentieren