Archive for the ‘.NET 2.0’ Category

Render ASP.NET Controls to HTML String

Tuesday, July 6th, 2010

Kleiner Quickie, wie man Controls in ein HTML String umwandelt…

public string RenderControl(Control ctrl) 
{
    StringBuilder sb = new StringBuilder();
    StringWriter tw = new StringWriter(sb);
    HtmlTextWriter hw = new HtmlTextWriter(tw);
 
    ctrl.RenderControl(hw);
    return sb.ToString();
}

Programm ausführen in C#

Wednesday, December 2nd, 2009

Um mal schnell ein Programm in C# zu starten braucht man folgenden Code:

using System;
using System.Diagnostics;
 
static void Main(string[] args)
{
   Process p = new Process();
 
   p.StartInfo.FileName   = "notepad.exe";
   p.StartInfo.Arguments = "text.txt";
 
   p.Start();
}

Hex String zu int und zurück

Monday, July 13th, 2009

Nochmal ein kleiner Quickie:

Ein Hex-String zu int geht so:

int dec = Convert.ToInt32("ff", 16); // Ergibt 255

umgedreht sieht wie folgt aus:

string hex = Convert.ToString(255, 16); // Ergibt "ff"

Den Quickie hab ich in Peter Buchers Blog gefunden, Danke!

IHttpHandler und Sessions

Monday, September 8th, 2008

Wenn man den IHttpHandler in ASP.NET benutzt und will gleichzeitig auf das Session-Objekt zugreifen wird man mit einer NullReference-Exception belohnt.

Die Lösung ist denkbar einfach, wie auch trivial! Man sollte zusätzlich zur IHttpHandler Schnittstelle auch noch die System.Web.SessionState.IRequiresSessionState Schnittstelle referenzieren. Dann klappt’s auch mit der Session.

Gesehen in: Ankes C# – Blog

Programm nur einmal Starten

Monday, April 28th, 2008

Hier ein kleiner Snippet, das ich immer wieder brauche.

Um sicher zu gehen, dass ein Programm nur einmal gestartet wird braucht soll man folgenden Code einfügen:

bool createdNew;
System.Threading.Mutex mutex
   = new System.Threading.Mutex(true, Application.ProductName, out createdNew);
 
if (createdNew) {
   // bitte Form1 ersetzen
   Application.Run(new Form1());
 
   // und auch wieder Freigeben besser ist besser
   mutex.ReleaseMutex();
} else {
   MessageBox.Show("Programm wurde bereits gestartet!", "Info", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Must have Visual Studio 2008 AddIn’s

Monday, March 3rd, 2008

Für meine tägliche Arbeit sind folgende Visual Studio 2008 AddIn’s von unschätzbaren Wert.

CopySourceAsHTML
Für alle Blogger ist dieses AddIn interessant. Es kopiert den markeirten Source und wandelt es in HTML um und ich kann es dann für das Web einfügen. Link zur Software

SmartPaster
Der SmartPaster ist ein AddIn mit den man einen Text in Visual Studio 2008 Kopiert. Man hat anders als “CTRL+C” die Wahl, dass das ganze als Kommentar, als String Variable oder als StringBuilder Objekt eingefügt wird. Link zur Software

GhostDoc
Roland Weigelt’s Ghost Doc ist ein kleines Magic Tool. Mit den kann man eine komplette Software innerhalb 5 Minuten Dokumentieren. Einfach den Cursor in einer Funktion legen und dann “CTRL+SHIFT+D” drücken und staunen. Auch wenn manchmal Käse rauskommt ist dieses Tool Gold Wert. Link zur Software

Connection String Platzhalter “|DataDirectory|”

Thursday, December 6th, 2007

Es ist eine Einstellung, die ich mir eigentlich nie merken kann. Aber dafür ist ja mein Blog da.

In SQL Server 2005 ist es möglich auch eine Datenbankdatei (*.mdf) dynamisch anzubinden. Das ist auch recht gut für Web Anwendungen. Hier sollte sich die Datenbankdatei(en) im “App_Data” Verzeichnis befinden. Im Sql Connection String darauf zu? Einen absoluten Pfad anzugeben ist nicht ratsam. Aber dafür gibt es den Platzhalter “‘|DataDirectory|”. Der verweist auf das “App_Data” Verzeichnis und schon ist die Welt wieder in Ordnung

Beispiel:

1
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|database.mdf; Integrated Security=True;User Instance=True

Generic List Find

Tuesday, December 4th, 2007

Lange hab ich gesucht und dann doch gefunden. Wie die Funktion “<listobject>.FindAll()” wirklich funktioniert.

Ein Blick in die MSDN von Microsoft und ich merke irgendwie ist die Funktion nicht wirklich zu gebrauchen. Eine andere Variante bringt die Funktion in ein anderes Licht, leider ist diese von MS nicht dokumentiert.

 1   // Liste aller countrys erstellen

 2   List<string> countrys = new List<string>();

 3   countrys.Add(“Deutschland”);

 4   countrys.Add(“Frankreich”);

 5   countrys.Add(“Niederlande”);

 6   countrys.Add(“Schweiz”);

 7   

 8   // Suche nach Deutschland Pattern

 9   string searchPattern = “Deutschland”;

10  

11  // Suche durchführen

12  string found = countrys.Find(delegate(string item) { return item.Equals(searchPattern); });

Nun befindet sich in der Variable “found” der Wert “Detuschland”. :-) Sieht doch schon besser aus, als in der Dokumentation.

Debugger in Javascript

Wednesday, November 7th, 2007

Wer wie ich mit Visual Studio arbeitet wird irgendwann mal die Stop-Marker für den Sourcecode lieben. In Javascript funktionieren diese Marker leider in externen Javascript dateien.

 1   <script type=”text/javascript”src=”js/extern.js”>

 2   </script >

Hat man auf der ASPX Seite direkt einen Javascript-Block eingesetzt dann kann man mit Visual Studio kein Stop-Marker mehr setzen.

 1   <script type=”text/javascript”>

 2      

 4      function Foo() {

 5         

 6         debugger;

 7         alert(“Hallo Welt!”);

 8         

 9      }

10   </script >

Abhilfe schafft der befehl “debugger” in ein Javascript.

Beim Ausführen des Befehls “Foo” hält Visual Studio in der Zeile “debugger” an und unterbricht die Ausführung. Jetzt kann man die Vorzüge des Visual Studio Deuggers benutzen. :-)

Visual Studio 2005 F5 debuggen bei ASP.NET Anwendungen beschleunigen

Thursday, August 23rd, 2007

Lange hab ich mich darüber geärgert. Bei größeren ASP.NET Anwendungen ist das starten des Debuggers (F5) sehr langsam. Oftmals musste ich mehr als eine Minute warten, bis der Webbrowser gestartet wird und ich die Anwendung debuggen kann.

Im KB 936344 wird von Microsoft beschrieben, wie man das Starten verbessern kann.

Lösung 1:

  1. Visual Studio 2005 öffnen
  2. ASP.NET Anwendung öffnen
  3. Menü “Debuggen” öffnen und den Menüpunkt “Alle Haltepunkte löschen” auswählen
  4. Geschwindigkeit prüfen.

Lösung 2:

  1. Visual Studio 2005 öffnen
  2. Menü “Extras” und anschließend “Optionen” auswählen.
  3. Bereich “Debugger” auswählen
  4. “Quelldateien müssen exakt mit der Originalversion Übereinstimmen” deaktivieren

Lösung 3 (nix für Sicherheitsfanatiker):

Das Projektverzeichnis für den Virenscanner aussperren. Somit wird unterdrückt, dass der Sourcecode jedesmal durch den Virenscanner läuft, wenn diese verwendet werden.