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
Monday, December 19. 2005"Capture The Flag"-Contest @ 22C3
Auf dem 22C3 wird dieses Jahr ein CTF veranstaltet..
Ich kann nur jedem Besucher raten, so ein CTF anzugucken oder sogar mitzumachen - es ist extrem spaßig, stressig und man kann einiges lernen.. Werbetext: Capture The Flag is a hacker contest. Teams of hackers battle against each other in a fight of supremacy in a network full of vulnerable services. The teams' task is to defend a server while simultaneously attacking the other teams' servers. Thursday, December 15. 2005Auswertung vom Hacking-CTF2005
Da nun wieder ein Hacking-CTF zu ende ist, werde ich hier mal meine (kleine) Ausarbeitung über ModSecurity und PHP beim iCTF (Mitte 2005) veröffentlichen (Heise berichtete) veröffentlichen.
Continue reading "Auswertung vom Hacking-CTF2005" Monday, October 3. 2005Java-Code zum würgen
Für die Uni bin ich z.Z. an einem größeren Projekt: eine vorhandene Software in Java um S/MIME-Funktionen erweitern.
Diese Software heißt ZOË und hängt sich zwischen Mailclient und Mailserver - gut beschrieben unter ZoE - Mail-Aggregator. Der erste Blick auf den Code zeigte schon, dass der Code nicht allzu schön ist, aber nach ein paar Wochen Coding zeigt sich, dass der Code einfach grottenschlecht ist. Eigentlich ein Wunder, dass es nicht von außen zu erkennen ist. Best of schlechtem Code und schlechtem Codestyle:
Ein schönes Beispiel: eine SZTable ist dafür da, eine Collection als Tabelle im Webbrowser darzustellen, Code zur Erzeugung einer solchen SZTable sieht so aus: CODE: protected SZComponent trustedCertificatesComponent() { Map someBindings = new HashMap(); someBindings.put( "list", this.trustedCertificates() ); someBindings.put( "keysDescription", "SubjectDN|NotAfter|SerialNumber" ); someBindings.put( "headersDescription", "Subject|Expires|ID" ); someBindings.put( "delegate", this ); SZComponent aComponent = new SZTable( this.context(), this, someBindings ); return aComponent; } mehr nicht! Die Elemente sind in der Collection this.trustedCertificates() - die Frage ist jetzt nur, wie werden die Elemente angezeigt? über "keysDescription" gibt der Programmierer an, welche Attribute der Objekte in "list" angezeigt werden wollen.. SZTable ruft also dann per Reflection z.B. getSubjectDN, getNotAfter oder getSerialNumber auf! Da freut man sich richtig wenn sich mal was an den Klassen ändert Gleichzeitig erkennt man an dem Beispiel, dass SZTable für wichtige Attribute keine eigenen Accessoren hat, sondern alles über eine HashMap übergeben wird.. btw: für die Verlinkung eines Elements (also ein a href="...") braucht es ca. 10 Zeilen Code: CODE: if ( ( anObject instanceof SZRegistryInfo ) == true ) { if ( aKey.equals( "registryName" ) == true ) { String anID = ( ( SZRegistryInfo ) anObject ).registryID(); if ( anID.equalsIgnoreCase( "authentication" ) == true ) { String aPath = AuthenticationService.pathForObject( this.value(), this.context() ); return aPath; } } } Also Finger weg von ZOË - der Programmierer mag zwar mit dem Code umgehen können und teilweise geniale Code-Abschnitte programmiert haben, aber für andere Programmierer kaum wart- und erweiterbar. Schade eigentlich da das Programm auf einer guten Idee basiert. 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
« previous page
(Page 2 of 2, totaling 31 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 |
|||||||||||||||||||||||||||||||||||||||||||||||||

