Tags: , , | Posted by AlexanderZeitler on 5/30/2009 6:05 PM | Comments (1)

rws2-big

Am Montag, 01. Juni 2009, findet das nächste Virtual ALT.NET Online Meeting statt.

Dieses Mal beantwortet Udi Dahan Fragen zu DDD, SOA, CQS, Messaging und NServiceBus.

Beginn: Montag, 1. Juni 2009 21:00 Uhr (07:00 PM GMT)

Ende: Montag, 1. Juni 2009 22:30 Uhr (08:30 PM GMT)

LiveMeeting URL für die Teilnahme: http://snipr.com/virtualaltnet

VAN Kalender: http://www.virtualaltnet.com/van/Home/Calendar

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Posted by AlexanderZeitler on 5/30/2009 4:33 PM | Comments (1)

Seit gestern beschäftige ich mich mit der AddIn-Entwicklung für SolidWorks – natürlich lief der Einstieg – x64 sei Dank – nicht reibungslos.

Um Visual Studio 2008 (SP1) für die AddIn-Entwicklung für SolidWorks zu verwenden, sollte man zunächst die Visual Studio 2005 C# Addin Template herunterladen und die Datei SWCharpAddin.zip in den Ordner

%USERPROFILE%\Documents\Visual Studio 2008\Templates\ProjectTemplates

kopieren.

Danach steht die Template über File / New Project / C# zur Verfügung (Visual Studio muss als Administrator gestartet werden):

SWCSharpAddin Template installiert

Nach dem Erstellen des Projekts möchte man nun sehen, was das AddIn bereits tut und drückt F5.

Dies führt zum Start von SolidWorks.

AddIns werden in SolidWorks in dem Fenster “Zusatzanwendungen” im Menü “Extras angezeigt” – wenn wir unser Addin hier suchen, finden wir allerdings... nichts:

Kein Addin weit und breit

Der Grund ist, dass unser AddIn standardmäßig mit der Target-CPU-Einstellung “AnyCPU” compiliert wird, es jedoch explizit mit “x64” kompiliert werden muss. Außerdem muss die AddIn-Assembly im gleichen Ordner wie die sldworks.exe liegen.

Also stellen wir in Visual Studio unter “Build” / “Configuration” auf x64 um (falls diese Konfiguration noch nicht existiert, kann diese von “AnyCPU” kopiert werden und auf x64 umgestellt werden):

x64 Konfiguration im Configuration Manager

Damit die Assembly nach dem Build im Ordner der SolidWorks-Installation landet, stellen wir in den Projekt-Eigenschaften im Reiter “Build” noch den Output-Path um:

OutputPath in den Build Settings 

Nun können wir also unser SolidWorks AddIn endlich kompilieren und verwenden, also schnell Strg+Shift+B gedrückt, um den Build anzustoßen und... wieder eine Fehlermeldung:

File "C:\Program Files\SolidWorks (2)\SolidWorks\SwCSharpAddin1.dll" is not a valid assembly

Also Google gebootet und nach “File is not a valid assembly” gesucht, Resultat: KB956933.

Das AddIn verwendet tatsächlich ComRegisterFunctionAttribute und ComUnregisterFunctionAttribute, also nochmal in die Projekt-Eigenschaften, Post-Build-Events und dort die x64-Variante von regasm.exe eingetragen wie im Artikel beschrieben.

Jetzt aber! Strg+Shift+B und...

File "C:\Program Files\SolidWorks (2)\SolidWorks\SwCSharpAddin1.dll" is not a valid assembly.

Nach einigem Suchen bin ich auf des Rätsels Lösung gestoßen:

In den Projekt-Eigenschaften im Reiter “Build” gibt es die Option “Register for COM interop”:

Register For COM Interop - Stolperfalle deluxe

Diese Option verwendet im Hintergrund regasm.exe – allerdings die 32Bit-Variante, weshalb es nicht ausreicht, wie im Artikel beschrieben, nur die x64-Variante in den Post-Build-Events einzutragen – auch der Haken bei “Register for COM interop” muss entfernt werden.

Wenn wir nun nochmals F5 drücken, startet SolidWorks, SwCSharpAddIn1 ist in den Zusatzanwendungen zu finden und beim Klick auf das nun vorhandene Menü “'C# Addin”

C# Addin im SolidWorks Menü

können wir uns einen Würfel erzeugen lassen:

Ein Würfel, erzeugt mittels SolidWorks API

Resultat: mit x64 ist man noch immer ein Außenseiter...

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: | Posted by AlexanderZeitler on 5/27/2009 3:52 PM | Comments (1)

Einen neuen Ribbon per VSTO zu erstellen ist relativ einfach.

Auch die Festlegung der Position in der Applikation ist sehr einfach – wenn man weiß wie ;-)

Damit ich es nicht nochmal suchen muss:

Zunächst muss man ein VSTO – Projekt erstellen und einen neuen Ribbon (Visual Designer) hinzufügen:

Ribbon im Designer

Die entscheidenden Einstellungen für die Position des Ribbons in der Anwendung (hier Excel) sind folgende:

Properties für RibbonTabs

Die OfficeId findet man in den Listen von “2007 Office System Document: Lists of Control IDs” (in diesem Fall ExcelRibbonControls.xlsx in der Spalte “TabName”) – danke an Lars für den Tip.

Wenn man das AddIn startet, erscheint der Ribbon an der gewünschten Position:

TimeSyncRibbonPosition

Noch ein Hinweis: Wenn man diese Einstellung bei keinem selbstentwickelten Ribbon anpasst, erscheinen alle TabGroups auf einem Ribbon innerhalb der gleichen Anwendung.

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Posted by AlexanderZeitler on 5/18/2009 12:51 PM | Comments (6)

Eigentlich wollte ich ja an der MSDN Blog-Parade zum Thema “Was sind Ihre Lieblings-Entwickler-Tools” gar nicht teilnehmen, aber ich war gestern und heute von zwei meiner Tools wieder so begeistert, dass ich nun doch teilnehme ;-)

  1. ReSharper – für mich das Tool schlechthin, ohne das ich Visual Studio nicht mehr nutzen möchte. Hauptgrund ist für mich der geniale Refactoring-Support und auch die Unterstützung bei TDD.
  2. Die xUnit.Net BDD Extensions von Björn Rochel sind für mich das ideale Framework um BDD zu betreiben – in Verbindung mit ReSharper unschlagbar im Handling.
  3. Mindjet Mindmanager 8 – Ich verwende das Tool seit ca. 1 Monat und manage damit inzwischen praktisch jede Form von Informationen, sei es für die Ideenfindung, Anforderungsmanagement oder Datenbank-Design.

Nicht in die Top 3 geschafft haben es Visual Studio 2008 (da es für mich sowieso zum Reportaire eines .NET Entwicklers gehört) und Notepad++ (ich nutze es zwar häufig, aber es gäbe auch andere Möglichkeiten).

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Posted by AlexanderZeitler on 5/17/2009 8:17 PM | Comments (4)

.NET Usergroup Karlsruhe

Am vergangenen Donnerstag fand wie angekündigt, das Treffen der .NET Usergroup Karlsruhe zum Thema “Test-Driven Development und Behavior Driven Development” von und mit Gregor Biswanger und Robert Walter statt.

Die beiden Referenten schafften durch einen abwechslungsreichen Vortragsstil mit viel Live-Coding eine Athmosphäre in der die Zuschauer eingebunden waren.

Hieraus resultierten viele angeregte Diskussionen zum Thema TDD, die auch in der Pause kein Ende fanden.

Nach der Einführung in TDD wurde noch Behavior Driven Development am Beispiel von StoryQ vorgestellt und im Anschluß daran fandt noch die Verlosung von CrashTest.NET statt – die Glücksfee spielte eine Silverlight Applikation.

Bedingt durch die vielen Diskussionen endete der Vortrag erst kurz vor 23 Uhr – einige machten leider vorher schon schlapp (u.a. auch Gregors Laptop ;-) ).

Bedingt durch die am nächsten Tag stattfindente .NET Cologne waren die üblichen Verdächten dieses Mal leider nicht für weitere Diskussionen zu gewinnen…

Hier noch einige Bilder vom Treffen:

Frank

Frank freut sich über die zahlreichen Besucher...

Ralf und Frank

Ralf weist auf den Karlsruher Entwicklertag hin...

Gregor und Robert

 

 

Gregor (bekennender Clean Code Developer) und Robert beim Live-Coding.

Currently rated 5.0 by 2 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , | Posted by AlexanderZeitler on 5/15/2009 7:14 PM | Comments (0)

Bereits im März hatte Microsoft für das o.g. Problem einen Hotfix veröffentlicht.

Dieser hatte allerdings einige Schwächen, die mit dem am 11. Mai erschienen Update behoben werden.

Um den neuen Fix zu installieren, muss der alte Fix nicht deinstalliert werden.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: | Posted by AlexanderZeitler on 5/10/2009 8:59 PM | Comments (0)

Was würde Google tun?

Ein Buch, das ich in den letzten Tagen gelesen habe und mich begeistert hat, ist “Was würde Google tun? - Wie man von den Erfolgsstrategien des Internet-Giganten profitiert ” von Jeff Jarvis.

Jeff Jarvis, Blogger auf Buzzmachine.com, Professor an der New York University und Mitgründer von Entertainment Weekly, zeigt in seinem Werk, wie sich die Welt durch Google verändert hat und wie sie sich nach seiner Meinung in den nächsten Jahren noch verändern wird.

Im ersten Teil des Buches schildert Jarvis seine Erfahrungen, die er selbst in Kunden-Lieferanten-Beziehungen gemacht hat und wie sich diese durch das Aufkommen von Blogs und Twitter zu Gunsten der Kunden verändert haben – für Ihn ein Indiz dafür, das Kunden oder Nutzer durch das Internet und Google immer mehr an Macht gewinnen und Unternehmen Ihren Kunden diese auch gewähren sollten, um künftigt am Markt erfolgreich zu sein.

Ein Grund für diesen Machtgewinn ist die zunehmende Verlinkung und freie Zugänglichkeit von Informationen, die bisher bewußt von Unternehmen oder Regierungen zurückgehalten wurden. Dies führt auch dazu, dass sich User in Netzwerken organisieren. Jeff Jarvies empfiehlt Unternehmen, Netzwerke und Plattformen zu schaffen, um so die User an sich zu binden.

Um diese Plattformen für die User möglichst attraktiv zu gestalten, sollten diese für die User so einfach wie möglich zu verwenden sein und das Unternehmen sollte den Usern beim Netzwerk nicht im Weg stehen.

Im zweiten Teil analyisert Jarvis verschiedene Branchen, allen voran Verlage, TV-Sender und Werbeagenturen. Diesen prophezeit er in der jetzigen Form in den nächsten Jahren den Untergang und empfiehlt Ihnen, Ihre Geschäftstätigenkeiten neu auszurichten.

Anhand der beschriebenen Beispiele leitet Jeff Jarvis mehrere Regeln ab, die Unternehmen (oder der Leser) künftig beachten sollten, um für die Zukunft gewappnet zu sein.

Alles in allem fasst das Buch in einem (auch für Nicht-Techies) angenehm zu lesenden Stil die Erfahrungen zusammen, die praktisch jeder, der sich mit dem Internet befasst, in der einen oder anderen Form bereits gemacht hat und zeigt, welches Potential durch neue Ideen und Möglichkeiten noch darin enthalten ist.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , , , | Posted by AlexanderZeitler on 5/4/2009 9:25 PM | Comments (4)

dnugka

Am 14.05.2009 um 18:00 Uhr findet das nächste Treffen der .NET Usergroup Karlsruhe (XING-Gruppe der .NET Usergroup Karlsruhe) statt.

Thema

Test-Driven Development und Behavior-Driven Development von und mit Gregor Biswanger und Robert Walter

Details zum Vortrag

Ein neues Software Projekt beginnt. Das Design der Architektur steht auch schon. Nun können die hoch motivierten Entwickler starten, ihre Fachbereiche mit Code zu füllen. Doch kommt es schon nach kurzer Zeit zu großen Problemen! Die Anwendung macht an unterschiedlichen Stellen alles andere als das, was gefordert wurde. Keiner kann am Ende sagen woran das liegt, jeder versucht seine Position zu verteidigen. Ist das Projekt nun zum Scheitern verurteilt? Wird nun der Fertigstellungstermin noch weiter nach hinten geschoben, der sowieso schon an der Schmerzgrenze lag?! Nein, durch Test Driven Development kann dieses Problem verringert werden. Damit ist nicht die Fehleranfälligkeit gemeint, sondern das rechtzeitige Erkennen, an welcher Stelle es gerade nicht funktioniert wie es soll.

Einführung in Test Driven Development

Was ist überhaupt TDD? Wie kann ich TDD für neue oder bestehende Projekte richtig nutzen? Welche Arten von Testmöglichkeiten für heutige Softwareprojekte geboten wird, soll auch verdeutlicht werden. Dabei wird einmal die Theorie und anschließend die Praxis genauestens durchleuchtet. Dementsprechend werden dabei folgende Punkte besprochen: Unit-Tests, Integrations-Tests, Akzeptanz-Tests und Mocking.

Theorie & Praxis: Code-Coverage

Sehr oft wird beim Schreiben von Codes genau an denn Tests geschrieben, die niemals zu Problemen eintreffen werden. Somit passieren Fehler, die bis heute im Unbekannten weiter leben. Damit diese Horrorvisionen nicht Wirklichkeit wird, spielt die Testabdeckung eine wichtige Rolle!

Einführung in Behavior Driven Development

Durch eine Erweiterung von TDD durch Behavior-Driven Development (kurz BDD) werden Tests strukturierter nach den Anforderungen aufgebaut. Hier wird unverkennbar der Kern von TDD für qualitative Softwareprojekte genutzt, und durch die Erweiterung von BDD die funktionalen Anforderungen in den Mittelpunkt gestellt.

Über die Sprecher

Gregor Biswanger ist Consultant bei der Firma TRIA IT-solutions in München. Seine Schwerpunkte liegen im Bereich der .NET-Architektur und agilen Prozessen.
Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group).

Unterstützt wird Gregor bei den Vorträgen von Robert Walter.

Teilnahme

Bitte meldet Euch wieder via XING an, die Location ist wie üblich im “Kleinen Ketterer:

DJK-Ost
Friedrichstaler Allee 52
76131 Karlsruhe

Vorabanmeldungen können auch per E-Mail an Frank Pfattheicher gesendet werden.

Sonstiges / Verlosungen etc.

Verlosung von Fuzzing-Tests für .NET mit CrashTest.Net

CrashTest.Net ist ein Testwerkzeug, dass explizit auf .NET-Projekte zugeschnitten ist und eine bisher für das .NET-Umfeld ungenutzte Testmethode verwendet. Bei der Testmethode handelt es sich um Fuzzing. Es hilft Entwicklern ihre Software zu optimieren und zeigt ihnen unbedachte Fälle, die später beim Endnutzer fatale Folgen haben können. Ohne notwendige Einstellungen führt es vollautomatisch eine sehr große Anzahl von Tests an ihrer .NET-Assembly durch. Es versucht alle Methoden mit sehr vielen Parametern auszuführen. Und all das, ohne vorher komplizierte Einstellungen zu vorzunehmen oder im Quellcode irgendwelchen Test-Code zu implementieren. Fuzzing birgt ein sehr großes Potential. Dieses Potential wird der .NET-Welt mit CrashTest.Net einen entscheidenden Schritt näher gebracht.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: | Posted by AlexanderZeitler on 5/4/2009 6:14 PM | Comments (1)

Wenn man beim Start einer WPF-Anwendung die Fehlermeldung clr20r3 erhält (meist über den Fehlerberichterstattungsassistenten) oder im EventLog einen Eintrag in dieser Form erhält

Event Type:    Error
Event Source:    .NET Runtime 2.0 Error Reporting
Event Category:    None
Event ID:    5000
Date:        04.05.2009
Time:        17:45:49
User:        N/A
Computer:    MYCOMPUTER
Description:
EventType clr20r3, P1 MyApplication.exe P2 1.0.0.0, P3 49ff0cd5, P4 mscorlib, P5 2.0.0.0, P6 492b8182, P7 5290, P8 11, P9 system.io.filenotfoundexception, P10 NIL.

kann man sich mittels des folgenden Codes die genaue Exception anzeigen lassen:

App.xaml:


    
         
    

In der App.xaml.cs behandelt man die Exception dann wie folgt:

public partial class App : Application
{
	private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
	{
		MessageBox.Show(e.Exception.Message);
	}
}

Beim erneuten Start der betroffenen Applikation erhälten man dann die detailierte Exception:

Detailierte Exception

Currently rated 3.5 by 4 people

  • Currently 3.5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , | Posted by AlexanderZeitler on 5/4/2009 1:51 PM | Comments (1)

 

Zusammen mit Thomas Schissler organisiere ich den .Net Opensapce Süd 2009. Seit heute ist die offizielle Homepage online und ich freue mich, die Veranstaltung hier ankündigen zu dürfen.

Die besten Gespräche hat man fernab von einer festgelegten Agenda, bei einem Kaffee und beim "du". Dort gibt es keine Rollenaufteilung in Sprecher / Zuhörer, Entwickler / Administrator usw. und die Themen finden sich vor Ort ganz von selbst. Das ist die Idee vom .NET Open Space, die sich bereits 2008 in Leipzig bewährt hat. Hier sind alle gleich. Auch die Organisatoren halten sich im Hintergrund und moderieren nur ab und an etwas.

Der .NET Open Space Süd 2009 läuft vom 11.07.2009 bis 12.07.2009. Welche Inhalte in dieser Zeit bearbeitet werden, wird vor Ort bestimmt, denn die Veranstaltung ist Open Space.

Die Teilnahme ist kostenlos. Die Teilnehmer gestalten das Programm selbst. Erfahrungsaustausch ist das A und O und steht im Vordergrund.

Mehr Informationen und Anmeldung unter: http://ulm.netopenspace.de

Ich würde mich natürlich freuen, möglichst viele bekannten Gesichter und den einen oder anderen Leser meines Blogs bei diesem Event begrüßen zu dürfen. Ausdrücklich möchte ich betonen, dass dies nicht nur ein Event für Experten ist, sondern dass natürlich auch Teilnehmer willkommen sind, die sich noch nicht für solche halten.

An dieser Stelle auch ein herzliches Dankeschön an Torsten Weber und Alexander Groß für die Unterstützung bei der Einrichtung der Website für den .NET Open Space Süd 2009.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5