unseren Blog abonnieren... rss feed abonieren
.NET
.NET + C#. Die für mich derzeit schönste und modernste Entwicklungsplatform.

Interface naming convention

"I" als Praefix - das ist Geschmacksfrage und soll nicht Thema sein. Folgendes hat mich schmunzeln lassen: A couple of programmers on our team learned that interface names should begin with "I", but didn't pick up on the rest of the guidelines. So they treated "I" as a personal pronoun, not as an acronym. We now have interface names like "IAmAChildObject", "INeedMyDataRow", "IAmDependentAndWantMyParentCollection", and "ICanDeleteMyself". [via Brad Abrams (in den Kommentaren)]

posted @ Freitag, 6. Juni 2008 00:31 | Feedback(0) | Filed Under [ .NET ]

Debugging von First Chance Exceptions

Beim Debuggen finden sich von Zeit zu Zeit sogenannte "First chance exceptions" im Output Window. Das sind Exceptions die von der Anwendung gehandelt wurden. Oft ist es gewollt oder normal, das eine Exeption erwartet wird und von der Anwendung bearbeitet wird. Beispiel: Ein fehlgeschlagenen Datenbankzugriff. (Ob das grundsätzlich guter Stil ist, ist wie so vieles eine Geschmackfrage.) Der Name kommt daher das der Debugger die Exception 2 Mal sieht. Das erste Mal vor der Anwendung (first chance exception) und das zweite Mal, wenn die Anwendung die Exception nicht verarbeitet hat - also das Programm normalerweise...

posted @ Mittwoch, 23. April 2008 02:16 | Feedback(0) | Filed Under [ .NET ]

Hohe Auffassungsgabe und Teamfaehigkeit...

... solche Phrasen in Stellenangeboten wirken auf mich eigentlich abschreckend. Hier wird wertvoller Platz mit Allgemein-Punkten verschenkt. Hat schon wer den egozentrischen Einzelkämpfer gesucht? (Auch wenn das vielleicht in einigen, wenigen Situation ein interessanter Schritt sein könnte.) Wohltuend anders ist hingegen das hier zu findende Job-Angebot. Wer fit ist in WPF oder Winforms, begeistert von .NET 3.5 und Agilen Entwicklungsmethoden wird sich sicherlich sehr angesprochen fühlen.

posted @ Mittwoch, 16. April 2008 14:23 | Feedback(0) | Filed Under [ .NET ]

"It's not fluent man"

In einem online verfügbaren Talk, spricht Anders Hejlsberg kurz über die Geschichte von C# und dann ausführlich über die neuen Features von C# 3.0. Er zeigt die Entwicklung Anhand von Code Beispielen, zum Beispiel die C# Evolution von Generics, Lambda Expressions, Extension Methods zu LINQ. Automatic Properties und Expression Trees werden kurz angerissen und einiges mehr. Interessant ist auch der Blick von Anders auf die Zukunft von C#. Wie immer ist es eine Freude den Architekten von c# über Code sprechen zu hören. Ein hervorragendes Schulungsvideo, sehr sehenswert:-) Silverlight wird benötigt und zeigt seine Streaming Qualitäten. [Lang.NET...

posted @ Donnerstag, 28. Februar 2008 03:55 | Feedback(0) | Filed Under [ .NET ]

Microsoft MVC

Microsoft MVC beschreitet einen alternativen Web Anwendungen mit ASP.NET Webseiten zu entwickeln. Der Name ist Programm, Model, View und Controller werden vollwertige Entitäten. Folgendes Video bietet eine kurze musikalische Einführung :-) Das WebForm Model soll nicht abgelöst werden, sondern lediglich durch eine eigenständig supportete Lösung ergänzt werden. WebForm und MVC Controls (die erst noch entwickelt werden müssen) werden nicht kompatibel sein. Konzepte wie ViewState und den damit verbunden Zugriff auf die vom Benutzer manipulierten Daten über Controls kennt das MVC Framework nicht. Der Einsatz von MS-MVC sollte also nicht Paradigma sein, sondern wohl überlegt. In Szenarien die eine große Anzahl von...

posted @ Sonntag, 25. November 2007 02:13 | Feedback(0) | Filed Under [ .NET ASP.NET Unterhaltung ]

Eclipse Benutzer mehr Hilfebedürftig als VS Anwender

Untiges Bild zeigt deutlich, dass Eclipse Benutzer mehr Hilfe durch Google in Anspruch nehmen müssen und einen höheren Informationsbedarf haben als die Visual Studio Anwendergemeinde. Die Recherche belegt dies imposant. Eclipse Entwickler sind offensichtlich auch beeinflusst von astronomischen Ereignissen. Ihr Hilfebedarf wächst mit Mond und Sonnenfinsternissen maßlos. Die Frage für IT-Entscheider muss also lauten, ob Sie sich im harten Projektalltag auf Entwicklerteams verlassen möchten, die derartig Bedingungsfühlig sind.

posted @ Dienstag, 20. November 2007 03:18 | Feedback(0) | Filed Under [ .NET Software-Entwicklung Unterhaltung ]

PHP vs. Resharper

Wir machen gerade ein kleines PHP Projekt (<40h). Es handelt sich um eine Synchronisationslösung zwischen einer Desktop Applikation in .NET mit MSDE und eine Front Office PHP Lösung. Dynamische Sprachen sind von der Sache erst einmal was sehr schönes. Für vieles sicher einfacher und schneller (Buildtasks, DSLs, Konfiguration). Nicht nur aus technischer Spielerei gibt es Dinge wie die DLR, Boo oder IronPython. Doch für echte Anwendungslogik fühlt sich das arbeiten mit PHP deutlich langsamer an.   Am schmerzlichsten vermisse und ich Resharper. Mir war gar nicht bewusst, wie oft ich kleinere Refaktorisierungen durchführe. Meist "Methode Extrahieren" und Umbenennen. Aber auch...

posted @ Montag, 12. November 2007 00:05 | Feedback(0) | Filed Under [ .NET ]

ÜberUtils - Strings

Schade, dass wir noch kein .NET 3.0 einsetzen. (Aber aus Zeitgründen, sind die Zeiten wo jede Beta sofort installiert werden musste leider Passe. Aber noch drei Wochen, dann können wir migrieren :-) Brad Vincent baut gerade eine Utility Klassen Sammlung auf, die viele schönes hat, aber Extension Methods erfordert. Links: UberUtils auf CodePlex Blog Post von Brad Vincent

posted @ Sonntag, 11. November 2007 23:23 | Feedback(0) | Filed Under [ .NET ]

.NET Framework 3.5 Namespaceposter

  Kopiert aus dem Net 3.5 Poster . [via Stefan Falz]

posted @ Samstag, 10. November 2007 18:01 | Feedback(0) | Filed Under [ .NET ]

UnitTesting: Mocking vs. Datenerzeugung

Eines der größten Themen wenn es um Unit-Testing geht, ist das Mocken von Objekten. Die Grundidee beim Mocken ist fein granuliertes Testen zu ermöglichen, in dem Stellvertreter Objekte erzeugt werden, die die Bedürfnisse des Testfalls befriedigen. Hierfür gibt es in der .NET Welt eine Reihe von Frameworks die dies ermöglichen. Die bekanntesten sind wohl NMock, RhinoMocks und das Mächtige TypeMock.NET. Seit mehreren Jahren bin ich nun Test Infected, was mein Entwicklerleben deutlich einfacher macht. Im Schnitt liegt mein Test-Coverage für die Businessschicht bei über 80%. Trotz dessen sind Mocking Frameworks noch nicht wirklich in meinem Toolset gelandet. Stattdessen arbeite ich...

posted @ Montag, 22. Oktober 2007 01:05 | Feedback(0) | Filed Under [ .NET Software-Entwicklung ]

Wooow! .NET 3.5 Framework Code wird veröffentlicht

Big News today: Scott Guthrie kündigt an, dass die Sourcen des .NET 3.5 Frameworks mit samt Code und Kommentaren veröffentlicht werden. WCF, Workflow und LINQ Code wird zwar erst später nachgeschoben, soll aber kommen. Dass ist unerwartet, aber nach einer langen Serie von wirklich wundervollen Dingen die das .NET Team produziert, mehr als Zuckerguss:-) Auch wenn schon durch Reflector bisher wenig geheim war, ist Debuggen ein neues Level von Transparenz. Ich bin schon gespannt und neugierig auf die Entwickler-Kommentare!  Das .NET Team rockt und Scott Guthrie rückt auf in den Olymp meiner persönlichen Helden :-) 

posted @ Mittwoch, 3. Oktober 2007 22:15 | Feedback(0) | Filed Under [ .NET ]

Fluent Interface vs. Method Chaining vs. DSL

Wo der der Unterschied zwischen "Method Chaining" und einem "Fluent Interface" liegt, ist sicher eine Ermessensfrage. Hier ein Beispiel für Method Chaining: 1 StringBuilder stringBuilder = new StringBuilder(); 2 stringBuilder 3 .Append("Method Chaining -") 4 .Append("die wohl älteste Methode") 5 .AppendLine("der Welt") 6 .AppendLine(":-)"); Ein Fluent Interface liefert hingegen Kontext, nehmen wir diesen Code:   1 PlaceOrder 2 .CreateNew(PremiumOrder.With(22).Items) 3 .For.User("MR-T") 4 .InCase( 5 User.IsFriendlyLevel == AboveAverage && 6 User.Age > 18 7 ).Commit()   Die Implementierung für obigen Code...

posted @ Mittwoch, 12. September 2007 22:53 | Feedback(0) | Filed Under [ .NET Software-Entwicklung ]

Dependency Injection & IoC Container

Guter Einblick in Dependency Injection. Ist zwar für Juice, einem Java Framework aber das Prinzip bleibt das Gleiche. Und ist nicht C# das bessere Java? :-) [Video:] Was ich spannend finde ist, das je klarer die Konzepte werden desto mehr Spass macht es sich damit zu weiter beschäftigen. Die Fragen werden interessanter: Wo sind Gemeinsamkeiten  und Unterschiede zwischen "Service Locator Pattern" u. "Dependency Injection"? Welche Vor und Nachteile habe die jeweiligen Muster? Wo ist der Unterschied zwischen Dependency Injection und Inversion of Control. Und wie kann mir das bei meiner Arbeit helfen. Inversion of Control Container für .NET Castle (Microkernel & Windsor) ...

posted @ Freitag, 7. September 2007 03:52 | Feedback(0) | Filed Under [ .NET Software-Entwicklung ]

DSL (Domain Specific Language) und Fluent-Interface

Ich arbeite gerade an Testmethoden und habe mich über folgenden Code gefreut, weil er ein relativ komplexes Thema ziemlich lesbar gestaltet. Der Test ist natürlich grün :-)    (Clicken für Originalgrösse) Das Setup für die Tests ist mir immer noch einen Tick zu lang und ich werde wohl noch refaktorisieren. Auch werde ich gleich noch ein paar mehr Asserts hinzufügen. Erzeugt werden 8 Angebote mit jeweils 4 und 3 Eigenschaften. Sticker haben hier keinen Preis, sind also kein echtes Angebot aber für den Test reicht das komplett. Die Angebote lassen sich mit einem Einzeiler persistieren. Die Flyer und Sticker Klassen Definition und Helper...

posted @ Samstag, 18. August 2007 03:44 | Feedback(0) | Filed Under [ .NET Software-Entwicklung ]

Old news is as well news

Alle Webseiten von "microsoft.com" laufen nun auf Windows 2008 Server und IIS 7 (beide noch Beta). Microsoft hosted auf 80 Servern 500 Virtual Roots, 350+ Webapplikationen. Es werden 10 000 Anfragen pro Sekunde und 300 000 Parallel Verbindungen verarbeitet. Nachzulesen via IIS Blogs. Ob alte Neuigkeiten Neuigkeiten bleiben sei dahin gestellt. Ich freue mich jedenfalls schon auf das nächste  Jahr. Orcas und IIS 7 sind sehr vielversprechend auch für ASP.NET 2.0 Anwendungen. Die Migration von 2.0 auf 3.0 scheint nicht annähernd so schmerzlich zu werden, wie es die Migration von 1.1 auf 2.0 war. Orcas wird ASP.NET 2.0 als Entwicklungsumgebung...

posted @ Dienstag, 10. Juli 2007 04:13 | Feedback(0) | Filed Under [ .NET Web Applikationen ]

Wie gross ist der .NET Markt

Wesner Moise möchte diesen Monat NStaic, ein vielversprechendes Code Analyse Tool, fertigstellen. Er stellt sich die Frage wie gross der .NET Markt ist und liefert folgende Zahlen:  1 Mio Mal wurde Visual Studio ausgeliefert 15 Mio Mal wurde Visual Studio Express heruntergeladen 200 000 Bücher über c# werden jedes Jahr verkauft 120 000 Bücher über .NET werden jährlich verkauft 100 000 Bücher über VB.NET Vergleichszahlen liefert das Oreilly Radar. Demnach ist Java (Q1 2007 verkaufte Bücher: 63 136) knapp vor c#...

posted @ Sonntag, 8. Juli 2007 22:32 | Feedback(0) | Filed Under [ .NET ]

Moonlight Hackathon

Miguel de Icaza beschreibt sehr detailiert wie ein kleines Team Silverlight innerhalb von 21 Tagen für Linux portierten. Beeindruckend ist der Arbeits , Schlaf- und Wachrhythmus über die Kontinente verteilt. Schichtarbeit getrieben durch Enthusiasmus:-) Die Problemstellung (Grafik-Engine mit einer Unmenge von Möglichkeiten, viele drum herum z.B. Installer) war mehr als komplex. Für mich als .NET Entwickler ist es eine gute Nachricht wenn ein Team von Alpha-Geeks eine neue Technologie derartig schnell und begeistert aufnimmt. Es schaft Vertrauen, wenn .NET und begleitende Technologien wie WPF aktiv für und auf anderen Platformen, wie Mac, Linux, Mobile Devices entwickelt und gefördert werden. Der Artikel ist...

posted @ Donnerstag, 21. Juni 2007 15:05 | Feedback(0) | Filed Under [ .NET Software-Entwicklung ]

210 Ajax Frameworks

Michael Mahemoff zählt 210 Ajax Frameworks. 79 davon sind pur client-seitig, 131 sind server-seitig. Er zählt erstaunliche 19 Ajax Frameworks für ASP.NET.

posted @ Donnerstag, 24. Mai 2007 01:07 | Feedback(0) | Filed Under [ .NET ASP.NET WEB 2.0 ]

Nur die CLR 2.0 und Du

Oren Eini stellt eine interessante Frage."Du hast nur die CLR und must ein komplexe Anwendung bauen. Aus projektpolitischen Gründen ist es nicht erlaubt externe Bibliotheken zu verwenden - egal ob Open Source (OSS) oder von Microsoft. Kannst Du eine Anwendung auf diese Art und Weise bauen?". Oren verneint die Frage rhetorisch. Die Entwicklung eines einfachen IoC schätzt er auf 2 Tage, die Entwicklung einer rudimentären OR/M Schicht auf eine Woche. Ersteres empfinde ich dank Activator.CreateInstance() als einfach. Eine OR/M Schicht dürfte nach einer Woche kritisch zu beurteilen sein. Ob objektrelationales Mapping zwinged erforderlich ist sei dahin gestellt. ADO.NET ist mächtig. Objekte...

posted @ Freitag, 18. Mai 2007 18:18 | Feedback(0) | Filed Under [ .NET Castle NHibernate Software-Entwicklung ]

Dynamic Language Runtime (DLR)

Bisher glaubte ich, dass die einzige wirkliche Sprache des .NET frameworks c# sei. VB.NET war für mich bestenfalls eine Pflichtleistung Microsofts für die Unverbesserlichen. Das Konzept der CLR, eine Ausführumgebung für jede beliebige Sprache zu sein, empfand ich als ausserodentlich gutes Marketing. Natürlich ist die CLR technisch schön. Die Idee ist elegant. Aber für die Praxis? Ich meine, wer benötigt denn IronPython oder die PHP-CLR Phalanger, die populäreren Vertreter der vielen (hundert?) CLR Sprachen. In den letzten vier Jahren mit c# habe ich nur wenig die dynamische Typisierung PHPs vermisst. Die immer wiederkehrende Diskussion, statische Typisierung vs. dynamische Typisierung, wurde auch in der x-ten Version nicht spannender. Ruby, Python oder...

posted @ Sonntag, 13. Mai 2007 03:41 | Feedback(0) | Filed Under [ .NET ASP.NET Software-Entwicklung ]

NHibernate in Deutschland - eine Nische?

Wie viele deutsche Entwickler verwenden NHibernate? Google Trends beantwortet die Frage einfach: „Zu wenig Suchende“ um einein Trend zu ermitteln. Schade! Die Suche im deutschsprachigen Netz nach NHibernate ermittelt 17 600 Treffer. Im Vergleich dazu gibt 276 000 Treffer für Hibernate, um den Faktor 15 Mal mehr. Linq: 81700 NHibernate 17600 iBatis 608 Objectspaces: 596 Unten ist der Vergleich zwischen java und c# (.Net sieht nur marginal besser aus.) via Google Trends zu sehen. Im Prinzip kann das nur heißen, das Java Benutzer einen wesentlich höheren Suchbedarf haben...

posted @ Freitag, 27. April 2007 18:26 | Feedback(0) | Filed Under [ .NET NHibernate Software-Entwicklung ]

GUID - warum, weshalb und wie

Ich war noch nie ein grosser Freund von diesen grossen, global eindeutigen, hässlichen Identifieren. Wie sieht das denn aus: "30dd879c-ee2f-11db-8314-0800200c9a66" ? Und verbraucht das nicht unötig viel mehr Platz (128bit) als ein Auto Increment Feld (32bit)? Wid der Index unserer lieblings Datenbank nicht unnötig aufgebläht. Und sind sie denn wirklich "globally unique"? Kalid Azad hat jedoch ein paar gute Gründe GUIDs einzusetzen und leistet großartige Arbeit GUIDs zu erklären. Sehr lesenswert: The Quick Guide to GUIDs. (robert)

posted @ Freitag, 27. April 2007 17:46 | Feedback(0) | Filed Under [ .NET ]