Contact

netcreate OHG
  • Send mail to the author(s) E-mail
  • XING

My talks

Community

.NET Developer Group Braunschweig Co-Lead INETA Deutschland Microsoft Community Leader/Insider Program (CLIP) .NET GUI Just Community e.V.

Categories  RSS 2.0

Archives

Blogs of friends

Comments

Stats

Total Posts: 229
This Year: 62
This Month: 0
This Week: 0
Comments: 105

Tags

 

Vorträge: User Group, NRW08, BASTA!

Posted in .NET Entwicklung | Community |  Konferenzen at Wednesday, June 25, 2008 6:35 PM W. Europe Daylight Time

User Group

Meine kleine "User Group Tour" geht weiter.  Ich halte einen weiteren Vortrag bei der DNUG OWL, dieses Mal aber nicht über VSTO, sondern über Team System (meinem zweiten Lieblingsthema). Der Termin ist der 29.07.08. Weitere Informationen: hier

Danach habe ich noch einen Termin bei der DNUG Braunschweig am 19.08.08. :) Weitere Informationen gibt es hier: www.dotnet-braunschweig.de

NRW08

Ich wurde wieder für die Konferenz NRW08 als Sprecher bestätigt! :-) Das freut mich sehr, da letztes Jahr die NRW07 sehr spannend für mich war. Ich bin gespannt was Daniel und Stephan sich dieses Mal alles einfallen lassen haben, ein paar Inspirationen kann man schon auf der Webseite erhaschen.
Der Termin ist der 12.09.08. Weitere Informationen zur Konferenz unter www.nrw08.de

BASTA!

Ein persönliches Highlight dieses Jahr wird für mich die BASTA! sein. Gestern kam die Bestätigung rein, dass ich dort einen Vortrag zu VSTO 3.0 halten darf. Ich bin sehr gespannt was mich erwartet.
Der Termin ist der 22-26.09.08. Weitere Informationen zur Konferenz unter www.basta.net


Ich freue mich den einen oder anderen Leser meines Blogs auf den Events persönlich kennen zu lernen.

Bald ist wieder ice-Zeit!

Posted in .NET Entwicklung | Community |  Konferenzen at Wednesday, June 25, 2008 2:58 PM W. Europe Daylight Time
ice2008

Am 30.08.2008 findet in Lingen die Konferenz: ice:2008 (intelligent communities for europe) statt. Nicki lädt wieder zahlreiche Sprecher und ATEs zu seiner Community Konferenz ein. Ich war letztes Jahr da und kann nur sagen, es war großartig! Leider bin ich dieses Jahr an dem Termin verhindert (wieso heiraten an dem Tag so viele Paare...weiß das einer?).

Für alle die noch keinen wichtigen Termin haben, haben nun einen! ;-)

Online Vortrag zum Thema ReSharper 4.0

Posted in .NET Entwicklung | Community at Monday, May 26, 2008 1:48 PM W. Europe Daylight Time

Morgen am 27.05.08 wird es einen Online Vortrag zum Thema ReSparper 4.0 geben. Dies geschieht im Rahmen der .net user group Köln Online Usertreffen.

Referent: Albert Weinert
Beginn: 18:30

Geplant sind folgende Themenbereiche die ReSharper beherrscht.

  • Quelltext Navigation
  • Refactoring
  • Quelltext Erzeugung
  • Quelltext Analyse
  • Unit Testing
  • Live Templates
  • usw.

Hier geht es zur Anmeldung und mehr Informationen.

WPF erhält ein Office Ribbon Control

Posted in .NET Entwicklung |  Office 2007 at Monday, May 12, 2008 10:10 PM W. Europe Daylight Time

...gerade gelesen WPF wird ein Ribbon Control erhalten:

Another oft-requested control is the Office Ribbon, and I'm sure you'll be pleased to know that we're also shipping an implementation of that control, also out-of-band, before the end of the year. The ribbon will be fully implemented in WPF, will be compliant with the UI design guidelines and have an intuitive collection-based API.

und sogar ein DataGrid. :-)

Link:

Bug: Drücke STRG+F -> Visual Studio 2008 stürzt ab

Posted in .NET Entwicklung |  VS Team System |  Tools at Tuesday, April 22, 2008 6:54 PM W. Europe Daylight Time

Ich hatte einen komischen Fehler, jedesmal wenn ich STRG+F in Visual Studio 2008 gedrückt habe und dann die Suche ausführen wollte, ist mir Visual Studio einfach ohne Fehlermeldung abgestürzt. Der Fehler trat bei mir im Zusammenhang mit dem ReSharper von JetBrains auf.  Nach längerem Suchen habe ich eine Lösung gefunden: Der Fehler hat nicht direkt etwas mit dem ReSharper zu tun, sondern ist ein Fehler in Windows selber. Ich benutze Windows XP 64bit Edition und diese hat einen Bug. Dafür gibt es einen kostenlosen Hotfix von Microsoft, den man anfordern kann. Der Hotfix ist (auch) für Windows Server 2003 64bit gedacht, also nicht abwimmeln lassen bei der MS Hotline. :-)

Nach der Installation des Hotfix läuft alles wieder wunderbar!

Bleibt noch zu erwähnen, dass es einen Workaround für das Visual Studio SP1 geben wird, so dass der Hotfix nicht mehr nötig ist.

Links:

.NET Runtime version 2.0.50727.1433 - Fatal Execution Engine Error

Posted in .NET Entwicklung |  Tools at Friday, April 18, 2008 7:45 PM W. Europe Daylight Time

Diese nette Event Log Meldung bekam ich, als ich ein Outlook 2007 Add-In kompilieren wollte:

.NET Runtime version 2.0.50727.1433 - Fatal Execution Engine Error (79FEC5F0) (80131506)

Visual Studio 2008 stürzte beim Kompilieren des Add-Ins sang und klanglos ab. Das Ganze konnte ich so oft wie ich wollte reproduzieren. Also ging ich auf die Suche nach der Ursache.

Als erstes dachte ich, es läge am neuen ReSharper 4.0 EAP, den ich installiert habe. Dazu habe ich einen passenden Eintrag im ReSharper Forum gefunden, der genau passte und demnach ein Bug in der CLR von .NET sein könnte. Leider half mir die Lösung nicht weiter. Nachdem ich den ReSharper deinstalliert hatte, war der Fehler immer noch vorhanden.

Nach langem Suchen stieß ich auf einen Tipp im MS Forum. Dort wurde empfohlen, die Power Commands for Visual Studio 2008 zu deinstallieren. Ich hatte vor kurzem die neuste Version (V1.1) der ansonsten coolen Commands installiert. Bingo! Seitdem ich diese deinstalliert habe, läuft alles wieder. Es scheint aber so, dass der Fehler bei einigen weiterhin auftritt... zum Glück erst mal nicht mehr bei mir. ;-)

Weitere VSTO Vorträge im Anmarsch...

Posted in .NET Entwicklung | Allgemein | Community at Wednesday, April 16, 2008 7:29 PM W. Europe Daylight Time

Visual Studio Tools for Office scheint ein beliebtes Thema zu sein. Kaum hatte ich gepostet, dass ich gern auch andere Menschen und Städte kennen lernen würde, habe ich weitere Einladungen zu User Groups bekommen. Ich kann quasi meine eigene kleine UG Tour starten, wie cool! ;-)

Wer mich gern einmal persönlich kennenlernen möchte, hat hier die Gelegenheit:

Neue .NET Community: dotnet-GUI.com

Posted in .NET Entwicklung | Community at Tuesday, April 15, 2008 3:34 PM W. Europe Daylight Time
dotnetguiLetzte Woche ging die .NET Community dotnet-gui.com online. Das Forum befasst sich mit allem was zur GUI und Usability Entwicklung zu tun hat. Folgende Themen sind Bestandteil davon:
  • Windows Forms
  • Windows Presentation Foundation
  • Silverlight
  • Usability
  • Werkzeuge
  • und mehr

Gründer Norbert Eder dazu:

Erklärtes Ziel ist es, eine Community zu schaffen, die kompetente Hilfestellungen sowohl an Einsteigern und Fortgeschrittenen leisten kann. Weiters sollen konstruktive Diskussionen zu den einzelnen Bereichen unter Gleichgesinnten ermöglicht werden

Coole Idee! Es wurde Zeit dass wir mal eine deutschsprachige GUI-Entwicklergemeinde bekommen. Ich hoffe das Projekt wird ein Erfolg! *daumen_drück* Norbert!

Links:

Morgen geht es nach Hamburg

Posted in .NET Entwicklung | Allgemein | Community at Sunday, April 06, 2008 12:30 PM W. Europe Daylight Time

Ich habe vor einigen Tagen eine Einladung von Microsoft zum "Roundtable mit den Thema Internet Explorer 8 und Windows Vista Service Pack 1" erhalten.

Ich bin sehr gespannt was mich erwartet und wen ich da alles treffen werde. Von Stephan weiß ich es schon! ;-)

VSTO 3.0 Vortrag in der .NET Developer Group Ulm

Posted in .NET Entwicklung | Community at Sunday, April 06, 2008 12:07 PM W. Europe Daylight Time

Thomas Schissler, Lead der .NET Developer Group Ulm, hat mich eingeladen einen Vortrag über das Thema Visual Studio Tools for Office (VSTO) zu halten.  Das mache ich doch sehr gern! ;-)

Wer mich live in Ulm erleben möchte, sollte am 28.04.08 zum User Group treffen einfinden. Ich freue mich sehr auf das Event und darauf Ulm näher kennen zu lernen.

Links:

P.s.: Ich lerne auch gern andere Städte und Leute kennen, sprecht mich einfach an. Wie Torsten schon in seinem Blogpost erwähnt hat, gibt es neue Möglichkeiten für die Reisekosten. Mehr dazu in einem weiterem Post von mir.

Sticky Notes für VS 2008

Posted in .NET Entwicklung |  Tools |  Tools at Wednesday, March 19, 2008 9:34 AM W. Europe Standard Time

Ich bin heute über das coole Visual Studio 2008 AddIn Sticky Notes gestolpert. Sowas hatte ich mir schon immer gewünscht, endlich Kommentare/Notizen zu Klassen erstellen, ohne diese immer im Quellcode zu vermerken.

stickynotes

Links:

Was sind Activities und WebSlices beim IE 8?

Posted in .NET Entwicklung | Allgemein at Friday, March 07, 2008 12:09 PM W. Europe Standard Time

Für alle die sich genau diese gleiche Frage gestellt haben, kann ich diese zwei Links empfehlen:

Schönen Gruß an Hardy, der gestern eine spontane IE 8 Beta Demonstration auf der Cebit zu dem Thema gezeigt hat. ;-)

Back from ready.for.take.off Launch Event

Posted in .NET Entwicklung | Allgemein |  Konferenzen at Friday, February 22, 2008 11:33 AM W. Europe Standard Time

Das Launch Event in Frankfurt war mit 7500 Teilnehmern eines der größten (wenn nicht das bisher größte) Entwickler Event von Microsoft in Deutschland. Ich war als ATE (Ask the expert) mit dabei und konnte 3 Tage lang über Visual Studio Team System, VSTO und ASP.NET diskutieren und zahlreiche Fragen dazu beantworten.

Es war ein sehr cooles Event! Mir hat es großen Spaß gemacht mit den anderen "roten Westen" zu Fachsimpeln und unser Wissen/Erfahrung weitergeben zu können. Meine Füße sagen mir zwar mach das nie wieder, aber no-way! :D

Thomas hat ein paar Bilder dazu veröffentlicht, ich habe leider meine Kamera vergessen :-/

P.s: Hier das Video von dem ich immer gesprochen habe, nun Live und in Farbe! :)

ConfigurationSection in Action

Posted in .NET Entwicklung at Sunday, January 27, 2008 9:23 PM W. Europe Standard Time

Seit dem .NET Framework 2.0 gibt es neue Möglichkeiten, eigene ConfigurationSection für eine App.config zu implementieren. Früher musste dazu das System.Configuration.IConfigurationSectionHandler Interface abgeleitet werden, welches aber nun deprecated ist. Nun bot sich für meine kleine StartUp-Applikation an, die ConfigurationSection zu benutzen.

Mich hat schon länger das Bootverhalten meines Rechners genervt. Alle Programme starten gleichzeitig, das kann man doch tunen! Aus diesem Grunde habe ich mir eine kleine StartUp-Applikation erstellt, welche Programme nach einer bestimmen Zeit nacheinander startet. Dazu habe ich mir meine eigene App.config Section überlegt. Der schnellste Weg ohne eine eigene ConfigurationSection wäre mit NameValueCollection gewesen. NameValueCollection verwaltet aber nur einen Key und ein Attribut und gerade wenn man mit mehr als Attributen arbeiten will, bietet sich eine eigene ConfigurationSection an. Auf geht es!

Folgende XML Struktur soll die ConfigurationSection einlesen:

App.config - Copy Code
1<programSettings> 2 <programToStart delayBeforeStartSeconds="0"> 3 <programToStartList > 4 <add programName="test.exe" startNextDelaySeconds="0"/> 5 <add programName="test1.exe" startNextDelaySeconds="0" 6 startOption="/startup" /> 7 </programToStartList> 8 </programToStart> 9</programSettings>

Es gibt folgende Attribute:

delayBeforeStartSeconds Gibt an, wie lange die Applikation warten soll, bis das erste Programm gestartet wird
programName Programmname des zu startenden Programms
startNextDelaySeconds Gibt die Wartezeit an, bis das nächste Programm gestartet werden soll
startOption Falls das Programm Startoptionen hat, können die hier hinterlegt werden.


Was benötigen wir noch? Wir brauchen eine ConfigurationSection-Klasse, eine ConfigurationElement-Klasse, welche die Attribute ausliest und eine ConfigurationElementCollection-Klasse, die die Iteration über die einzelnen ConfigurationElemente übernimmt.

Als erstes müssen wir eine Klasse (ProgramToStartConfiguration) erstellen, dazu müssen wir von der
ConfigurationSection-Klasse ableiten:

ConfigurationSection - Klasse - Copy Code
1 public class ProgramToStartConfiguration : ConfigurationSection 2 { 3 private ConfigurationPropertyCollection _properties; 4 5 private ConfigurationProperty _programToStartList; 6 private readonly ConfigurationProperty _delayBeforeStartSeconds; 7 8 public ProgramToStartConfiguration() 9 { 10 _programToStartList = new
                  ConfigurationProperty(
"programToStartList",
                                             typeof(ProgramToStartList)); 11 _delayBeforeStartSeconds = 12 new ConfigurationProperty("delayBeforeStartSeconds", 13 typeof(int), (int)1000, 14 ConfigurationPropertyOptions.None); 15 _properties = 16 new ConfigurationPropertyCollection(); 17 18 _properties.Add(_programToStartList); 19 _properties.Add(_delayBeforeStartSeconds); 20 21 } 22 23 [IntegerValidator(MinValue = 1, MaxValue = 10000, 24 ExcludeRange = false)] 25 public int TimeBeforeStart 26 { 27 get { return (int)this["delayBeforeStartSeconds"]; } 28 set { this["delayBeforeStartSeconds"] = value; } 29 } 30 [ConfigurationProperty("programToStartList")] 31 public ProgramToStartList ProgramToStartList 32 { 33 get { return base[_programToStartList] as ProgramToStartList; } 34 } 35 36 protected override ConfigurationPropertyCollection Properties 37 { 38 get { return _properties; } 39 } 40 }

Wie man in der XML Darstellung (s. Zeile 2) sehen kann, ist die ConfigurationSection als "programToStart" bezeichnet
und enthält das Attribut "delayBeforeStartSeconds". Damit wir das Attribut auslesen können, müssen wir ein passendes ConfigurationProperty (s. Zeile 12-15) erstellen. Damit wir das Property ansprechen können, müssen wir es noch nach außen hin sichtbar machen (s. Zeile 24-30). Passend dazu habe ich einen IntegerValidator erstellt, da der Wert der benötigten Zahl zwischen 1 und 10000 liegen soll. Was jetzt noch fehlt, ist die ConfigurationPropertyCollection zur Verwaltung der Properties.

In Zeile 3-6 der XML Section ist eine Auflistung von mehreren Elementen zu sehen. Damit wir so eine Auflistung als Collection erstellen können, muss die ConfigurationElementCollection-Klasse (ProgramToStartList) erstellt werden:

ConfigurationElementCollection - Klasse - Copy Code
1 public class ProgramToStartList : ConfigurationElementCollection 2 { 3 protected override ConfigurationElement CreateNewElement() 4 { 5 return new ProgramToStart(); 6 } 7 8 protected override object GetElementKey(ConfigurationElement element) 9 { 10 if (element is ProgramToStart) 11 return ((ProgramToStart) element).ProgramName; 12 else 13 throw new ArgumentException("The specified element is 14 not of the correct type."); 15 } 16 }


Die Klasse erfordert die beiden Methoden CreateNewElement() und GetElementKey(). Damit die Attribute von einem Element ausgelesen werden können, benötigen wir noch eine ConfigurationElement-Klasse:

ConfigurationElement - Klasse - Copy Code
1 public class ProgramToStart : ConfigurationElement 2 { 3 private ConfigurationPropertyCollection _properties; 4 private readonly ConfigurationProperty _programName; 5 private readonly ConfigurationProperty _startNextDelaySeconds; 6 private readonly ConfigurationProperty _startOption; 7 8 protected override ConfigurationPropertyCollection Properties 9 { 10 get { return this._properties; } 11 } 12 13 public ProgramToStart() 14 { 15 _programName = new ConfigurationProperty("programName", 16 typeof (string),"", 17 ConfigurationPropertyOptions.IsRequired); 18 _startNextDelaySeconds = 19 new ConfigurationProperty("startNextDelaySeconds", 20 typeof (int), (int) 1000, 21 ConfigurationPropertyOptions.None); 22 _startOption = new ConfigurationProperty("startOption", 23 typeof(string), ""); 24 _properties = 25 new ConfigurationPropertyCollection(); 26 27 _properties.Add(_programName); 28 _properties.Add(_startNextDelaySeconds); 29 _properties.Add(_startOption); 30 } 31 32 [IntegerValidator(MinValue = 1, MaxValue = 10000, 33 ExcludeRange = false)] 34 public int StartNextDelaySeconds 35 { 36 get { return (int) this["startNextDelaySeconds"]; } 37 set { this["startNextDelaySeconds"