Monday, February 2. 2009Beta-Prüfungen - dotnet
Mittlerweile sind die Ergebnisse für zwei Beta-Exams da. Die Prüfungen 071-505 und 071-563 habe ich bestanden
Also steht demnächst 70-536 an.. Die Prüfung ist quasi der Grundlagen-Teil, der somit kein Problem sein sollte. Außerdem behandelt es den Stoff von dotnet 2.0.. Jetzt habe ich für einen Voucher mehr Verwendung Friday, September 14. 2007Bug in der dotnet RichTextBox?
Ich glaube, ich bin da auf einen echten Bug im dotnet Framework gestoßen. Wenn man die ReadOnly Property von False auf True wechselt, ändert sich zwar auch die Property BackColor (klar, die Box soll ja grau werden um den Benutzer zu zeigen, dass er da nichts tippen kann) aber die visuelle Darstellung auf dem Display ändert sich nicht. Interessanterweise ist die Darstellung korrekt nachdem man einfach die Windows-Sitzung sperrt (Windows-Taste + L) und sich dann wieder anmeldet.
Jetzt bin ich mal gespannt, wie Microsoft auf meinen Support-Call reagiert. Reproduziert werden konnte das Verhalten vom Support-Techniker schon.. Aber diese Fehler wurde auch schon mal vor ein paar Monaten gemeldet und reproduziert
Posted by Jtb
in dotNet
at
22:09
| Comments (2)
| Trackbacks (0)
Defined tags for this entry: dotNet
Tuesday, April 24. 2007Dokumentation ohne Sinn - Teil 1
Das passiert, wenn man eine Dokumentationspflicht hat:
/// <summary>
Posted by Jtb
in dotNet
at
16:56
| Comments (3)
| Trackbacks (0)
Defined tags for this entry: dotNet
Thursday, January 11. 2007Generics - mühsame Umstellung
Generics in C# sind eine schöne Sache. Wenn man jedoch ein altes Projekt auf Generics umstellen will, merkt man schnell, dass das einige Arbeit ist.
Zwar kann eine Klasse erheblich schrumpfen (extremes Beispiel: von 294 Zeilen auf 40 runter), aber dafür muss man erstmal feststellen, welche Methode jetzt rausfliegen kann. Gerade wenn es dann um Sichtbarkeiten bei abgeleiteten Klassen geht, muss man ständig nachschauen Größtes Manko was mich jetzt in C# noch stört: keine Covariant return types...
Posted by Jtb
in dotNet
at
20:08
| Comments (19)
| Trackbacks (0)
Defined tags for this entry: dotNet
Saturday, May 6. 2006WM-Ende Countdown
Ihr habt kein Bock mehr auf die WM?
Ihr wollt endlich wissen wann der ganze Wahnsinn ein Ende hat? Für den WM-Hasser gibt es ab sofort den WM-Ende Countdown für den Windows-PC Einfach runterladen, installieren und starten - ihr werdet immer auf den aktuellen Stand gehalten, wie lange ihr noch aushalten müsst. Falls an eurem Arbeitsplatz ein WM-Fan vorbeigehen sollte, könnt ihr den Countdown einfach ins Systray minimieren (Doppelklick auf das Fußballicon im Systray). WM-Ende Countdown Setup Für die Installation wird das dotnet-Framework 2 benötigt (32bit Variante und 64bit Variante kann man sich bei Microsoft runterladen) Bitte beachtet, dass dieses Produkt kostenlos ist und ich es ohne jede Garantie anbiete. Installation auf eigenes Risiko! Wer meinen Code validieren will, kann dazu gerne den .Net Reflector nutzen Monday, March 6. 2006Lizenzierung für dotnet-Programme
Aufgabe: ein dotNet-Programm soll ein Lizenzmodul bekommen. Features sollen freischaltbar und optional mit Ablaufdatum versehen werden..
Jetzt kann man sich einen Lizenzkey wie von Windows bekannt irgendwie zusammenrechnen und damit einige Nachteile in Kauf nehmen oder man nimmt eine schöne Lösung: Anwendungslizenzen mit digitalen XML-Signaturen Aber erstmal zu den Nachteilen eines einfachen Lizenzkey:
Ein Vorteil eines Lizenzkeys ist aber seine feste Länge. Jetzt ein paar Überlegungen: Warum eigentlich die Informationen verschlüsseln oder hashen? Die Information an sich muss doch nicht versteckt werden - nur ihre Validität muss gewährleistet sein. Informationen speichert man heutzutage in XML-Dateien. Vorteil: sowohl von Maschine als auch Mensch leicht lesbar - eine beispielhafte Lizenz-Datei könnte z.B. so aussehen: CODE: <license> <expires>2006-12-31T00:00:00</expires> <feature> <name>MeinFeature</name> <expires>2005-12-31T00:00:00</expires> </feature> <feature> <name>MeinFeature2</name> </feature> </license> Den Anspruch Informationen in einer XML-Datei abzusichern erfüllen digitale XML-Signaturen. Dafür bedient man sich einfach der asymmetrischen Verschlüsslung/Signatur und setzt in dem Fall einfach die Signatur als neues Element in die XML-Datei: CODE: <license> <expires>2006-12-31T00:00:00</expires> <feature> <name>MeinFeature</name> <expires>2005-12-31T00:00:00</expires> </feature> <feature> <name>MeinFeature2</name> </feature> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI=""> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>zy7NouuPtItDJ2H2Ronc66uZH3U=</DigestValue> </Reference> </SignedInfo> <SignatureValue>FkvvXy3 [....] xd8=</SignatureValue> </Signature> </license> [SignatureValue ist hier gekürzt, da der String sehr lang ist] Die eigentlichen Informationen bleiben bestehen und können nun ohne die Signaturprüfung fehlschlagen zu lassen nicht mehr verändert werden. Alternativ kann die Signatur auch in eine neue Datei geschrieben werden - dann müssen aber zwei Dateien an den Kunden ausgeliefert werden: Lizenzdatei und Lizenzsignaturdatei. Vorteile:
Ein Beispielprojekt für das ganze gibt es bei CodeProject: Using XML Digital Signatures for Application Licensing. Thursday, February 9. 2006D&D Online - keine Alternative zu WoW
Nachdem ich nun ein bißchen D&D Online Beta gespielt habe, bin ich der Meinung, dass D&D Online keine Alternative zu WoW ist (Warnung: alles bezieht sich auf die Beta - es kann sich noch einiges ändern!).
Es fehlt einfach der Daddel-Faktor. Die D&D-Regeln mögen für ein Pen&Paper-Spiel ganz schön sein, aber nicht wirklich für ein MMORG (Massive Multiplayer Online Roleplaying Game). Ehrlich gesagt verstehe ich nicht wie man D&D Online überhaupt ein MMORG nennen kann - es fehlt einfach das "Massive". In der Stadt sieht man natürlich die anderen Spieler, aber es fehlt die Interaktion. Da alle Dungeons instanziert sind, geht man sowieso nur alleine (dazu später mehr) oder mit einer Gruppe rein. Aufgrund der wesentlich komplexeren Regeln muss eine Gruppe eingespielt sein (z.B.: Dieb muss immer vorgehen). Das Sterben wird in DDO wesentlich stärker bestraft: wenn die Gruppe einen nicht ins Leben zurückholt, wird man in die letzte Taverne zurück teleporiert. Dabei wird der Quest-Status für den Dungeon zurückgesetzt (also alles nochmal neu machen). Man ist also lange Zeit im Dungeon unterwegs, hat eigentlich alle Quests gelöst und stirbt dann am Ende (z.B. durch Ertrinken oder banale Sachen wie Disconnect, Lag oder sonstiges) muss auf die Gruppe hoffen (solange man nicht alleine unterwegs ist). Falls die Gruppe unfair ist, muss sie einen nicht retten - sie bekommen ja die XP.. Der Spielspaß in DDO entsteht durch die Interaktion mit der Gruppe - d.h. der Spielspaß ist nur dann da, wenn man eine gute Gruppe hat. Viele XP-Rusher wie bei WoW machen den Spielspaß dann komplett kaputt. Irgendwie stört mich auch, dass ich Leben&Mana nur über Heilzauber, Tränke, Resting-Stones und in Tavernen regenerieren kann. Selbst in der Taverne dauert es lange bis man wieder komplett regeneriert ist. Außerdem benötigt DDO eine hohe Auflösung. Unter 1024x768 ist absolut garnichts zu machen - besser klappt es erst mit 1280x1024. Immerhin sind die UI-Komponenten komplett verschiebbar. Informationen über Character oder Items werden in einem eigenen Fenster angezeigt - Tooltips werden da viel schöner und platzsparender. Sehr schön finde ich allerdings den eingebauten VoIP-Client - die Frage ist aber ob das nicht gerade die RP-Atmosphere zerstört. Ed hat sich auch zum Betatest geäußert und DDO kommt nicht gerade gut weg.. Was mir aber abgesehen vom spielerischen Aspekt sehr gut gefällt, ist die Infrastruktur hinter DDO. Der Launcher ist in dotNet geschrieben (Version 1.1) und spricht auch mit den Servern über Standardprotokolle. Es gibt Webservices zum Login & Abfragen der Serverliste. Jeder Programmierer kann also sehr leicht die Informationen abfragen und z.B. auf die Clan-Homepage einbauen. Weiterhin wird dadurch das dotNet-Framework verbreitet was mich sehr freut (leider halt die alte Version). Sunday, January 22. 2006Webservices in der Praxis
Für einen kleinen Dienst auf der Arbeit habe ich einen Webservice gebaut (klar, die Vorteile sprechen für sich: eingebaute Verschlüsslung dank https und Zugriff von fast überall).
Da der Client auch in C# 2005 geschrieben werden sollte (man will ja mal die neuen Features ausprobieren), habe ich den Webservice natürlich auch gleich in dotNet geschrieben - geht ja auch schön leicht: ein paar Klicks und fertig ist das ganze im Visual Studio 2005. Getestet und nun kommt das Problem des Deployments - auf dem passenden Server ist zwar nicht ein, nicht zwei sondern schon drei Webserver installiert (Apache2+Tomcat und Lotus Domino).. Upps, da fehlt IIS... na ja, als Workaround schnell mal einen IIS installiert und eingerichet, aber wirklich toll ist es nicht. Also der Plan: den Server-Teil neu in Java programmieren. In der Theorie kein Problem, in der Praxis aber schon. Das generierte WSDL vom dotnet-Webservice will die WTP-Extension von Eclipse nicht als korrekt validieren. Also alles aus der WSDL-Datei entfernen (eigentlich nur SOAP12) - und die Validierung klappt. Nun merkt man, dass es nicht (so einfach) wie bei dotNet möglich ist einen SoapHeader zu definieren und in Implementierung anzusprechen.. Nur mal als Beispiel wie einfach das mit dotNet 2.0 ist:
und
Thursday, May 19. 2005STC 2005
Frisch zurück von der STC 2005
![]() Auf der diesjährigen Student Technology Conference gab es einige interessante Vorträge und Workshops. Leider war die Zeit etwas knapp und die Zeiteinheiten doppelt belegt, so dass ich mir nur ein Viertel der Vorträge angehört habe und den Rest der Zeit dann mit anderen Studenten, MS-Leuten und Vortragenden (dank der Community DevCon 2005 waren mir einige Gesichter schon bekannt) gelabbert habe. Vielleicht wird ja die nächste STC ein bißchen länger dauern Am wichtigsten war wohl das Gespräch mit dem für Darmstadt zuständigen MS Senior Student Partner. An der TU Darmstadt gibt es momentan noch zwei MS Student Partner (was das ist, wird auf Studentprogram beschrieben) von denen einer bald weggeht - sprich es wird eventl. ein Platz für mich frei Jetzt muss ich nur noch Bewerbung & Lebenslauf schreiben und an MS mailen.. Relativ schön ist auch, dass man mal andere Meinungen und Praxisansätze mitbekommt. Resultat eines Gesprächs: ich muss mir den Borland C#-Builder angucken. Immerhin soll dieser einen wesentlich besseren C#-Editor bieten als das VS.Net selber. Aber es gab nicht nur pure Wissensübertragung in den Vorträgen/Workshops sondern auch Unterhaltung. Besonders hervorzuheben will ich das Couch Coding am Abend (wie programmiert man ein StudentTechnologyConference2005KneipenInformationsDienst als Webservice mit verteilten Aufgaben). Das ganze natürlich mit entsprechender Stimmung und reichlich Bier intus (nicht ich - aber der Rest Ob der Code jemals freiwillig veröffentlicht wird weiß ich leider noch nicht - allerdings war auch gerade die Vorgehensweise interessant. Nicht einfach per Klick Webservice hinzufügen alles das VS.Net machen lassen, sondern das ganze per XML-Datei, die eine Art Kontrakt darstellte. Für den Xbox-Wettbewerb waren dann leider meine Fahrkünste nicht ausreichend - zwar unter den TOP30 aber nur die ersten 16 kamen in die nächste Runde. Der Gewinner bekam dann am Ende der Veranstaltung eine Xbox Fleißig Werbung für theSpoke machte Gesa und ihr Team. Mittlerweile wächst der Userstamm immer mehr an, so dass ein bißchen Leben reinkommt. Jetzt fehlt nur noch die neue Version von theSpoke und ich wäre glücklich.. ![]() Da ich bislang mit der neuen dotNet Version und dem VS.Net 2005 noch nicht allzuviel gemacht hatte, waren die Vorträge von Neno Loje (VS.NET Tools - Visual Studio 2005 - Mehr als nur eine IDE), Bernd Marquardt (C# 2.0 - Wohin geht die Reise? C# und seine Entwicklung) sowie Dr. Holger Schwichtenberg (Windows Forms 2.0 - Schneller fertig mit Windows Forms 2.0) sehr informativ. ![]() Leider war ich von Windows Forms 2.0 (also dem Produkt, nicht dem Vortrag!) enttäuscht. Zwar gibt es endlich neue Menübar-, Statusbar- und Symbolleisten-Komponenten (die heißen jetzt statt *bar nun *strip), aber diese bieten immernoch keine direkte Unterstützung für das CommandPattern. Auch das Benutzer die Items im Menü oder der Symbolleiste selber zusammenstellen können (in MS Office schon länger üblich), muss man immernoch von Hand programmieren Die neue Datenbindung mit neuem Grid bietet zwar für den Anfänger Vorteile, erinnert aber arg an Access. Für den Profi bleibt es dann nur übrig den Zugriff von Hand zu schreiben. Insbesondere weil es sowas wie das Fabrikobjekt in ASP.Net-Datenbindung für Windows Forms nicht gibt.. Wer es also sauber mit Datenbankabstraktionslayer machen will, codet immer noch alles selbst.. Update: eventl. gibt es doch mit ADO.Net 2.0 eine Möglichkeit dies zu machen - wie mir Matthias beim TheSpoke-Copy kommentiert hat Auch kann man jetzt Anwendungen leicht deployen - per ClickOnce. Dabei geht der Benutzer einfach im Browser auf eine URL und geht auf Installieren. Dann wird die Anwendung (inkl. möglicher Abhängigkeiten, allerdings muss das dotNet-Framework vorher installiert sein) unter \Dokumente und Einstellungen\{username}\Lokale Einstellungen\< ...> installiert. Der geübte Systemadmin erkennt sofort, dass damit das Verzeichnis nicht ins Roaming Profile aufgenommen wird. Gleichzeitig wird eine Installation pro Benutzer gemacht. Effektiv also auf Mehrbenutzersystemen (mehrere Benutzer arbeiten an einem Rechner oder auch Terminalserver) und beim Einsatz vom Roaming Profiles für das Deployment untauglich Sehr schön gefällt mir die Compilersicherheit/Intellisense bei Properties. Die Programmproperties können in Scopes eingeteilt werden - entweder Speicherung pro Benutzer oder für die Anwendung global. Das Framework kümmert sich dann um die Speicherung. Schönes Beispiel für Benutzerscope: Anwendungsstarts - so sieht man wie oft man selber die Anwendung gestartet hat. Das schon bei ClickOnce erwähnte Problem mit den Roaming Profiles tritt hier allerdings auch wieder auf. Weiterhin wird pro Programmversion (durch Assembly-Version spezifiziert) eine eigene Properties-Datei angelegt. Dabei werden alte Einstellungen nicht migriert Interessante Daten von der STC2005: 414 Studenten, 16 Redner, 16 Techniker, 28 Service-Mitarbeiter, 12 Köche, 200kg Putenfleisch, 500l Bier, über 8.000 KW Stromverbrauch Wednesday, May 18. 2005Auf zur STC2005
Auf geht es zur STC2005 in Kassel um 2 Tage lang interessante Vorträge, Workshops und gutes Essen zu genießen
Wednesday, April 20. 2005STC 2005 (2)
Ich habe eben die Mail bekommen, dass ich zur Student Technology Conference 2005 kann - und somit zu den wenigen ausgewählten gehöre
Die Agenda liest sich schonmal gut Friday, March 4. 2005STC2005
Nachdem ich bei der Community DevCon 2005 war, habe ich mich gerade für die Student Technology Conference 2005 angemeldet (Seit heute freigeschaltet, wie Stefan in seinem theSpoke-Blog geschrieben hat
Das Program zur STC 2004 liest sich schon sehr gut Ich hoffe, dass ich ausgelost werde und zu einem der 300 Teilnehmer gehören werde - Antwort gibt es leider erst im April.. Sunday, February 20. 2005Community DevCon
Die Community DevCon ist (leider) schon zuende und ich habe einiges zu berichten.
Sehr informativ war der Vortrag von Bijan Javidi (Technologieberater - Microsoft Developer Platform & Strategy Group) über das neue "Visual Studio Team System" (kurz VSTS) - so wird z.B. die IDE um einige Funktionen bereichert und derzeit externe Tools integriert. Zu diesen Tools gehören z.B. NUnit und FxCop: die Unit-Tests laufen dann direkt in der IDE ab, ein CodeCoverage-Tool hebt ungetestete Code-Bereiche farbig hervor. Die Testergebnisse von FxCop tauchen auch direkt als Taskitems auf, so dass man den Fehler leicht per Doppelklick erreichen kann. Besonders hervorhebenswert ist die Tatsache, dass VSTS kein properitäres Datenformat verwendet, sondern alles in einer MS-SQL-DB speichert (so kann z.B. ein anderer Standort über Replikation direkten Zugriff auf den Code bekommen). Einziges Problem ist dann natürlich die Lizenz für das DBMS - aber da wird noch eine Entscheidung getroffen.. Community Aber auch aus dem Community-Bereich gibt es viel zu berichten. Um die Kommunikation mit der "normalen" Community (also z.B. nicht die MVPs) zu verbessern wurde das clip-Program ins Leben gerufen. Clip steht in der Langform für "Community Leader/Influencer Program" - eventl. ein bißchen unglücklich gewählter Name ("Beeinflusser"). Das Programm ist vor allem dazu gedacht vorhandene Usergroups zu unterstützen und die Kommunikation zwischen MS und der Community zu organisieren. Mal sehen ob sich das clip-Programm wie das MVP-Programm etabliert. Eine im deutschsprachigen Raum (Deutschland, Österreich, Schweiz) entstande Entwicklung wurde mittlerweile in mehrere andere Sprachen portiert - die Rede ist von Codezone. Auch hier werden in nächster Zeit ein paar Änderungen stattfinden - es soll ein Syndication-Resourcekit geben (ca zur TechEd 2005) und die Links um Metadaten bereichert werden (z.B. "Kauf-Content" versus "Gratis-Content" Einstufung eines Links). Mehr Content und eine bessere Usability gibt es dann auch zur Cebit 2005 Die ineta (International .NET Association) soll bekannter gemacht werden und deren Termine zentral gesammelt werden (z.B. Vorträge in einzelnen Usergroups). Alles interessante über Communities ist bei MS auf der im Aufbau befindlichen Community Guide Site zu finden. Ein sehr cooles Projekt wurde dann auch noch vorgestellt: .NET Golf. Ziel dabei ist es eine Lösung für ein kleines Problem zu entwicklen/einzureichen - mit minimaler Codegröße. Die Lösungen für die alten Probleme lagen bei ~100-200 Bytes! Um den Anreiz zu erhöhen gibt es teilweise Preise für die kleinsten Lösungen.
Posted by Jtb
in dotNet
at
01:49
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: dotNet
Friday, February 18. 2005Community DevCon (Pre-Event)
Bin gerade vom Pre-Event der Community DevCon nach Hause gekommen (wohne ja in der Nähe vom Veranstaltungsort).. Der eigentliche Event fängt morgen an und muss nach dem Start einfach gut werden
Eine Party wie sie sich ein Informatiker vorstellt: ein Coding-Contest als Unterhaltung. Beim Contest mussten zwei mehr oder weniger freiwillig zusammengestellte Teams ihr Können unter Beweis stellen - sie müssten jeweils eine Version von Breakout mit dotNet v2 in Visual Studio.Net 2005 innerhalb von 2 Stunden coden. Die zwei Stunden über wurden die Teams per Kamera überwacht und zur Jury (Rest der Teilnehmer) live übermittelt.. Die Ergebnisse waren teilweise "interessant" - vielleicht aber auch aufgrund des Alkohlspiegels der einzelnen Teilnehmer: das eine Team baute eine Lösung ohne jegliche Beachtung von OOP, speicherte alles notwendige in ein paar "globalen" Variablen (Array für die Blocks) und kam mit zwei Funktionen aus. Das andere Team hatte dachte mehr an das Erzählte von ihrem Profs und versuchte sich an einer sauberen Lösung .. und scheiterte leider dabei - ein Triumph der funktionalen Programmierung Ehrlich gesagt war die Referenz-Implementierung noch am schönsten (ein paar Interfaces: IMoveable, IRenderable und ein paar Objekte von Gameelement abgeleitet) Aber auch abseits vom Coding Contest gab es genug Stoff für Unterhaltungen- Hauptthema meiner Gespräche war natürlich das neue dotNet v2 und das neue Community-Portal für Schüler und Studenten: theSpoke (über das ich auch überhaupt zu der Konferenz konnte). Aber auch zur Zukunft von Passport gab es interessante Hintergrundinformationen (sorry, keine Details - möchte MS nichts vorwegnehmen).. Besonders interessant für mich war der Austausch mit Frank Eller - Themen waren u.a. der Vergleich von Generics in Java und dotNet v2, mögliche Arten eines Vortrags an einer Uni/FH um den Studenten dotNet näher zu bringen sowie ein Portal-Projekt von Frank.. Bin schon gespannt auf den nächsten Tag (heute in 7,5 Std).. btw: warum ist eigentlich so wenigen der BOFH ein Begriff? Edit: Mittlerweile sind die beiden Lösungen des Coding-Contests im "Developer Group Deutschland Blog" online: Codezone Developer Contest
Posted by Jtb
in dotNet
at
02:39
| Comments (2)
| Trackbacks (0)
Defined tags for this entry: dotNet
Wednesday, February 16. 2005Community DevCon
Ich habe einen der exklusiven Plätze für theSpoke Mitglieder bekommen und bin somit morgen und übermorgen auf der "Community Developer Konferenz" in Ffm
Berichte natürlich hier im Blog...
Posted by Jtb
in dotNet
at
11:08
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: dotNet
(Page 1 of 1, totaling 15 entries)
|
QuicksearchStatische SeitenCalendar
KategorienBlog abonnierenCreative CommonsBlog AdministrationShow tagged entries 26c3 cisco Coding darmstadt dhcp dotNet fachschaft Failover Foto Fun Gadgets Games General gremienarbeit Hacking Handy Hardware Internet Java Kino LAN-Party Linux Microsoft netzwerk Office openldap PHP planspiel Redundanz Server staub studierende Studium stupa switch TV twitter Verwaltung Virtual Server Wahlen Windows Work ältestenrat |
|||||||||||||||||||||||||||||||||||||||||||||||||

