Heutige Arbeiten an dem CommunityGadget Projekt #1

Auch heute hatte ich etwas Zeit, an meinem derzeitigen Hauptprojekt zu arbeiten. Geschlagene 6 Stunden habe ich heute investieren können.

Massivste Änderungen heute:

  • Die Gadget-Anwendung ist nun multilingual (Deutsch & English) und aktualisiert sich nun selbstständig. Desweiteren existiert nun ein Countdown bis zur nächsten Aktualisierung
  • Der Buildprozess wurde wesentlich vereinfacht
  • Ich habe das Setupskript (NSIS) heute angefangen und eigentlich auch schon abgeschlossen. Dies beinhaltet auch eine Routine zum Überprüfen des .NET Frameworks und des MSI Installers auf dem Zielsystem. Ansonsten werden die Daten von dem Setup heruntergeladen und automatisch “silent” installiert.
  • Das Updatesystem wurde installiert und konfiguriert, sowie ein Statistikserver hierfür eingerichtet.
  • sowie kleine Änderungen am gesamten System

Mal schauen wann es weitergeht. Ich hoffe morgen oder übermorgen. Ich hoffe gegen Mitte bis Ende nächsten Monats einen Release-Candidate bereitstellen zu können. Derzeit ist alles etwas komplexer und die Zeit verstreicht auch viel zu schnell.

 

So far.

Website

Auch in dieser Woche habe ich nicht all zuviel geschafft, aber dennoch ein paar kurze Dinge, die ich hier hinausposaunen kann.

CommunityGadget Creator:

Die Website des CommunityGadgets ist nun online. Zwar sind noch nicht alle Seiten mit dem komplettem Content gefüllt, aber man kann sich einen ersten Eindruck des Projekts verschaffen.

Desweiteren werden viele Sektionen erst nach einem Release des RC´s oder der finalen Version erfolgen. Zu sehen ist die Seite übrigends hier.

Darüberhinaus wurde dem Projekt nun ein eigenes Subforum in .NET Base gewidmet, dies findet man hier.

.NET Base:

Diese Woche (genauergesagt Montag) haben wir die 3.000 Post-Marke erreicht. Mittlerweile haben wir sogar 3.108 Beiträge, eine schöne Leistung. Dies wurde durch 263 registrierte Benutzer erreicht ;)

Desweiteren verzeichnen wir nun ca. 40.000 Impressionen von knapp 6.200 unique Besuchern. In der durchschnittlichen Zeit von knapp 14 Minuten durchstöbert der besucher im durchschnitt 6,27 Seiten. Sehr nette Zahlen, die sich in Zukunft hoffentlich nochmals verbessern werden ;)

Bald gibt´s weitere Informationen dazu.

working

Die Arbeit an dem CommunityGadget-Projekt sind nun weiter vorangeschritten. Ich habe gestern Abend und bis gerade eben an der Website und an der Datenbankmodellierung weitergearbeitet.

Da bei mir derzeit die Website höchste Priorität hat, genieße ich die Arbeit daran. Ich habe in der letzten Zeit nie etwas mit ASP.NET gemacht und kann so meinen Kenntnisstand wieder auffrischen – was mir auch viel Spaß macht.

 

Ich habe mir bei Maximilian´s Website ein paar nette Sachen abgeguckt, bspw. die Anzeige der Blog-Category-Feeds. Diese haben bei mir jetzt auch Einzug gehalten.

Desweiteren konnte ich heute auch die letzten X Foren (Startseite) und die Übersicht aller Foren vollenden.

Besonders viel Zeit und Liebe zum Detail habe ich in die Download-Seite investiert. Dort wird die Dateigröße, Version, SHA1 und MD-5 Prüfsumme aus der Datei auf dem Server ausgelesen und bereitgestellt.

Darüberhinaus habe ich mir einen ASP.NET Downloadcounter geschrieben, der auch anzeigt wann die Datei das letzte mal heruntergeladen wurde. – Und dies auch differenziert.

  • vor weniger als einer Minute
  • vor weniger als 5 Minuten
  • vor weniger als einer Stunde
  • vor weniger als vierundzwanzig Stunden
  • Gestern
  • diese Woche
  • Letzte Woche
  • oder die formatierte Ausgabe des Datums.

Desweiteren errechnet er den generierten Site-Traffic, der von der Datei verursacht wurde ;) Eine kleine technische Spielerei, die mehr viel Freude gemacht hat ;)

 

Zudem habe ich meine interne Liste bis zum RC überarbeitet. Es sind viele weitere Punkte hinzugekommen und 2-3 Dinge werden nochmal überarbeitet. Ich verspreche mir dadurch weniger Arbeit den einzelnen Forenversionen.

Desweiteren steht jetzt fest, welche Forenversionen in der RC enthalten sein werden:

Invision Power Board 3.0.5 (IPB)
Invision Power Board 2.3.6 (IPB)
vBulletin 4.0
vBulletin 3.8
Woltlab Burning Board 3.1 (WBB 3)
Woltlab Burning Board 3.0 (WBB 3)
Woltlab Burning Board 2.0.1 Lite (WBB 3 Lite)
Woltlab Burning Board 2.3.6pl2

 

Es geht in wenigen Stunden wieder zum Bund. Derzeit installiere ich mir VS 2010 auf meinem Notebook, damit ich auch beim Bund (Abends) dann etwas weiterentwickeln kann.

Da ich derzeit ein paar Probleme mit Windows Live Writer und meinem Notebook habe, muss ich schauen ob ich erst am Freitag schreibe, oder per WebInterface.

so far.

KategorienCommunityGadget, Persönlich Tags:

Eintrag #244

Es war erneut still in meinem Blog. Grund dafür waren Arbeiten am Server sowie das schreiben neuer Artikel für dotNetBase.de.

Dazu kommt noch ein Ausfall meines System, was auch mit einem größeren Datenverlust zusammenhängt. Glücklicherweise bezieht sich der Datenverlust nicht auf Projektdateien, sondern ledglich MSDN-AA Downloads, Fernsehaufnahmen und Co.

Zwar schade, aber die Projektdateien wäre wesentlich schlimmer gewesen.

Zu den Artikeln:

Mein erster Artikel lautet “Ich möchte Programmieren lernen”, und bezieht sich auf den Lernprozess und die ersten Schritt mit C#, bzw. einer Programmiersprache. Ich gehe hier auch auf den eigentlichen Prozess des Lernens ein und stelle einen Weg vor, bei dem ich des Öfteren guten Erfolg verzeichnen konnte.

Der zweite Artikel ist schon etwas älter, ich habe jedoch vergessen diesen hier aufzunehmen ;) Er bezieht sich auf das Dokumentieren von .NET Assemblies mithilfe von Sandcastle.

Zu den Serverarbeiten:

Regelmäßige Besucher unserer Website werden gestern ab ca. 23 Uhr einen Ausfall der .NET Base Website gemerkt haben. Dieser hat sich ca. 1 Stunde hingezogen und heute morgen gab es noch ein paar Probleme mit speziellen URL-Adressen.

Dies ist auf einen fehlerhaften Updateprozess der Forensoftware bzw. dessen Komponente(n) zurückzuführen. Dies Problem konnte aber jetzt gelöst werden und sollte keine Probleme mehr bereiten.

Zum CommunityGadget Creator:

Es hat sich nicht wirklich viel an dem Client geändert, seit dem letzten Eintrag. Derzeit bin ich wegen den Serverdatei etwas unmotiviert :) Ich werde mal schauen wie ich das System mit der Bereitstellung der Serverdateien noch optimierne kann. (bzw. ob das Möglich ist).

Jedoch sind die ersten Arbeiten an der Website angefangen. Vorallem hiervon verspreche ich mir weitere Kenntnisse und eine gute Übung zum Lernen. (ASP.NET, CSS, WebService, MySQL, BuildServer, Injection …)

Mein Desktop im Feburar 2010:

 

2010_february

Unwissenheit²

8. Februar 2010 Dennis Alexander 6 Kommentare

Ich bin bereits vor wenigen Tagen von Maximilian drauf gestoßen worden, aber das sollte man niemanden vorenthalten.

Ich habe bereits dreimal auf das Video geantwortet mit der Bitte das Video doch zu löschen – das einzige was gelöscht wurde, war mein Kommentar dazu.

Hier versucht uns Dennis Paul aus Norderstedt zu erklären, wie man eine 770€ Version von {smartassembly}, einem .NET Obfuscator einsetzt. Er nutzt in diesem Video die Enterprise-Version der Version 4.2. Interessanterweise lässt sich diese auch sehr schnell bei großen 1-Klick-Hostern finden …

Davon mal abgesehen davon, das man mit 12 Jahren sicherlich nicht 770€ für eine Lizenz hat, zeugt das ganze von Unwissenheit auf höchster Ebene. Wenn man soviel Geld in eine Software investiert, dann sollte man auch wissen was inkorrekte Metadaten sind, bzw. die englischen Fachbegriffe problemlos aussprechen können.

Auch die anderen Anwendungen die man in der Taskleiste findet (man siehe Total Commander, Visual Studio, Camtasia 6 und die Adobe Creative Suite) sind mehr als fragwürdig. – Hier werden sicherlich noch mehr Anwendungen nicht lizensiert sein.

Dies ist derzeit mein “FAIL” der Woche ;) Es war schwer, aber es wurde geschafft.

[Update]

Vor wenigen Stunden wurde das Video als Privat markiert. Anscheinend hat der Autor jetzt auf diesen Eintrag bzw. auf die Einträge reagiert und die Konsequenz gezogen.

KategorienFAIL Tags: , ,

Letztes Update für heute

Das Projektsystem ist nun ebenfalls implementiert. Es ist jedoch noch nicht ausgiebig getestet worden. Ich habe eine neue Projektdatei entwickelt, welche nun auch eine bessere Verschlüsselung aufweist.

Dennoch wird das Codesigning-Certificate aus Sicherheitsgründen nicht in die Projektdatei gespeichert. Morgen wird das Projektdatei-System nochmal auf Herz und Nieren geprüft, und dann werden die ersten Forenversionen in die Build einfließen.

Anschließend werde ich noch mit NSIS einen neuen Installationsassistenten zaubern. Ich habe da schon konkrete Gedanken und die werden auch prompt umgesetzt ;)

Nach den Tests wird dann – sofern mir nichts mehr einfällt – eine interne Version an Partner verteilt, die dann schon einmal testen können. Sollte dies positiv verlaufen, so wird eine RC-Version der breiten Öffentlichkeit zugänglich gemacht.

Wir werden sehen was die Zukunft bringt ;)

 

Stay tuned.

Arbeiten am Herzstück fertiggestellt

Soeben habe ich den letzten Test durchgeführt, welcher belegt das auch die Arbeiten an dem eigentlichen Herzstück, dem Generator abgeschlossen sind.

de2a167c7a9745d7ae78ddad6ea966d6

Neu hinzugekommen sind ein Statistikdienst auf dem Deployment Server, welche die Anzahl der Gadgets zählt ;) So erhält man immer einen kleinen netten Überblick darüber, wieviele Gadgets bereits erstellt wurden ;)

Darüberhinaus habe ich den Deploymentserver nun mit einem SSL-Zertifikat ausgestattet, was eine Verschlüsselung des Datenverkehrs erlaubt.

Die nächsten Schritte werden sein, ein Projektsystem einzubauen, sodass die Daten auch gespeichert werden können. Anschließend werden noch weitere Tests durchgeführt und dann werde ich mich erneut den Serverdateien widmen. Dies wird auch noch einen beachtlichen Teil meiner Zeit “verschlingen” ;) Evtl. werde ich die Version 3 mit den bereits bekannten Serverversionen von der Version 2 als öffentlichen Release Candidate zum Testen Veröffentlichen.

Arbeiten am Deployment Server abgeschlossen

Die Arbeiten, welche ich bereits heute Nacht angesprochen habe, sind nun vollkommen abgeschlossen. Das Generieren einer Anwendung wird nun vollkommen von dem Deploymentserver übernommen.

Darüberhinaus habe ich das CommunityGadget SDK fertigestellt, aber noch keine Dokumentation dazu geschrieben.

Dennoch sind mir hier und da noch ein paar Punkte aufgefallen, die man sich innerhalb des Projekts nocheinmal genauer anschauen muss.

Nächster Schritt wird erstmal eine Wartung an dotNetBase.de sein, anschließend wird an der Erstellungsroutine – diesmal dann die Serverdateien – weitergearbeitet. Die Implementierung ist ja nachwievor nicht abgeschlossen.

Es müssten dann aber auch – was die Erstellung betrifft – [außer dem Testen] das letzte sein.

Das erneute Anpassen der restlichen Serverdateien wird dann nochmal eine sehr langwierige Sache, vor der es mich etwas graut ;)

Aber naja, das muss ja auch sein.

Erneut ein kleines Update zum CGC3

Es sind nun weitere 5 Tagen vergangen und wird erneut Zeit einen kleinen Statusbericht über den CommunityGadget Creator 3 zu verfassen.

In den letzten Tagen habe ich mich vereinzelt mit der Entwicklung der Serverdateien befasst, musste aber nach kurzer Zeit feststellen das es sehr langweilig und vorallem langwierig sein kann ;) Deshalb sind nur 3-4 Serverdatein fertiggestellt worden.

Dafür habe ich die Zeit in das Herzstück des CGC3 gesteckt: der Generierungslogik des Gadgets. Ich konnte bereits die Anpassung aller benötigen Informationen sowie das komprimieren und signieren implementieren. Derzeit arbeite ich an dem .NET Base Deployment Server, welcher in Zukunft die Anwendungen kompilieren und übertragen soll.

Dies stellt sich komplexer als ich dachte. Es gibt zwar bereits einige fertige Bibliotheken oder Controls, welche das übernehmen können. Ich habe mir aber Gedacht, das es auch von Vorteil sein könnte, auch hier eigenen Quellcode zu entwickeln. So kann ich auch in diesem Gebiet meine Kenntnisse erweitern, bspw. bei “capicom.dll”, eine Klassenbibliothek die von “signtool.exe” benötigt wird.

Unter einem x64 Windows Server 2003 R2 findet man leider kein vorinstalliertes capicom, weshalb man sich das SDK vom Microsoft Download-Center herunterladen muss. [dies findet man schnell per Google] – Interessant wird´s aber jetzt erst:

Wenn man signtool.exe ohne Timestamp-Option (“/t”) nutzt, so erhält man den Fehler nicht. Nutzt man jedoch die Timestamp-Option, erhält man die Nachricht das capicom.dll nachwievor fehlt oder die Version < 2.1.0.1 ist.

Der Trick besteht darin, capicom.dll nicht in das system32-Verzeichnis zu kopieren, sondern in das SysWOW64 Verzeichnis. Dies behebt den Fehler sofort.

Grund: die capicom.dll ist keine 64bit-Klassenbibliothek und wird deshalb an der “falschen Stelle” gesucht.

Nunja, im groben und ganzen läuft es schon halb. Ein Testlauf verlief sehr positiv – ich muss das ganze aber noch weiter ausbauen weshalb es auch morgen wieder einige Probleme geben dürfte.

Dann gibt es noch die ganze “Abteilung” Serverfiles und noch 2-3 GUI Dialoge, welche noch erstellt werden müssen und mit UI-Logik belegt werden müssen.

Dann kommt noch das Projektsystem, Verschlüsselung/Entschlüsselung, ExceptionServer [Handling ist bereits erfolgt], Testen, Serverdateien, Setupprojekt, und und und. Es ist noch eine Menge Arbeit. P.S. beim letzten Kompilieren wurde die Build-Version dank incrementVersion automatisch auf 699 angehoben. ;) Es passiert hier also noch was…

Das fehlende Verständnis

1. Februar 2010 Dennis Alexander 3 Kommentare

Wenn ich durch Entwicklerforen ziehe und immer auf der Suche nach einer Frage bin, die man beantworten kann, treffe ich immer wieder auf junge Menschen, denen das Verständnis einer Programmiersprache fehlt. Der Tagendrang mag gerade am Anfang sehr hoch sein und ich denke das sich der ein oder andere auch wahnsinnig über die kleinsten Schritte in die Entwicklung freuen wird…

Aber an dieser Stelle möchte ich einen öffentlichen Schrei loswerden. Das Entwickeln von Anwendungen in einer Programmiersprache ist keine “Sache” von einem Wochenende. Nicht umsonst sind Studiengänge und Ausbildungen im IT-Bereich überlaufen.

Es gehört sehr viel Zeit und auch sehr viel Geduld dazu, sich eine Programmiersprache, bzw. erst einmal in das strukturierte Denken der Entwicklung hineinzuversetzen. Man muss zunächst die objektorientierte Denke verstehen, sozusagen das Grundgerüst erlernen auf dem man später aufbauen kann.

Auch wenn ich wirklich Leuten empfehle sich intensiv mit dem “Try&Error”-Verfahren zu beschäftigen und durch einen experimentellen Lernprozess die Fähigkeiten zu verbessern, so ist dies nicht das einzige, was ein “angehender Entwickler” lernen/wissen/können muss.

Hierzu gehört auch das Wissen der Bibliothek, der API, evtl. eines Frameworks. Ein wasserdichtes Exceptionhandling, Multithreading sowie Dateioperationen und Schleifen, Abfragen sowie Formatierungen von Werten und dessen Konvertierung (Stichwort Casting) sind die Grundanforderung an jeden Entwickler. Desweiteren dürften Events, Delegates, Interfaces und Generische Datentypen nicht fehlen. – Und ich spreche derzeit aus einem kleinen und ziemlich generellen Blickwinkel.

Es gibt dazu noch wahnsinnig viele Technologien oder weitere Scriptsprachen, die man zusätzlich lernen kann/muss um etwas zu entwickeln. Wie wäre es mit SQL, XML, LINQ, ASP.NET Atlas, MVC, CardSpaces, WPF, WCF, Azure Services, … ?

Wie man sieht gibt es eine sehr lange Liste von Dingen die man wenigstens Ansatzweise angerissen haben sollte um ein Grundverständis zu erhalten und sich einen Überblick zu verschaffen. Das dies gut mehrere Jahre dauern kann, sollte wohl nicht explizit erwähnt werden müssen …

Deshalb sollte man sich vorher genau überlegen ob man diesen Weg einschlagen möchte. Grundsätzlich ist ein “Hobbyentwickler” nicht schlecht beraten sich etwas tiefer in die Materie einzuarbeiten. Es kann ja schließlich auch Spaß machen. Nur man muss sich dann auch mal hinsetzen und sich nicht wie in vielen Communities einfach ein passendes Snippet (=Codeschnipsel) zusammenbetteln, sondern Lernen. Dies kann auch sehr deprimierend sein, wenn man ein paar Stunden vor einer Hand von Zeilen sitzt, und es nicht sofort blickt, das man eine Endlosschleife erzeugt hat! Dies gehört aber dazu. Und es gibt ja genug Möglichkeiten, sich zu informieren. Auch ohne die gleiche Frage 30 mal in einem Forum zu stellen.

Gerade im Zeitalter des Internets bieten sich viele Möglichkeiten sich Schlau zu machen. Es müssen keine teuren Bücher von Markt+Technik sein und erst recht keine “Programmiersprache for Dummies” oder ähnliche Schinken. Eine Suche über Google oder Live kann dem meisten Anfänger sofort einen Überblick über die Themengebiete geben, und kostenlose Bücher, wie die OpenBooks von GalileoComputing erlauben ein kostenloses lernen.

Darüberhinaus ist es ja auch nicht verboten in Supportforen anzufragen. Im Gegenteil, dafür sind diese ja da! Aber man sollte etwas Selbstinitiative zeigen, wenn man etwas von einem Supportforum haben “will”.

Dazu gehört es, dem “Helfenden” zu signalisieren das man sich mit der Thematik auseinandergesetzt hat, aber dennoch keine passable Lösung entwickeln konnte. Hierbei ist eine möglichst genaue Beschreibung mit Fachwörtern und dokumentierten Quellcode meist unerlässlich. Struktogramme, Aufzeichnungen oder eine bildhafte Beschreibung können auch hilfreich sein. Hinzuzufügen ist auch, das man bereits fehlgeschlagene Lösungswegs aufzeigen sollte, um dem Gegenüber bei der Einschränkung des Problems zu helfen.

Man sollte sich (wie es eigentlich immer sein sollte) höflich verhalten und seine Anfrage dezent aber dennoch subtil vorbringen. Und man sollte etwas Zeit mitbringen! Die Entwickler auf der helfenden Seite sind auch nur Menschen und haben auch Verpflichtungen.

Schließlich helfen Sie dir i.d.R. kostenlos und unverbindlich und opfern Ihre Freizeit um sich sozial zu Engagieren. Es dürfte sich also von selbst verstehen, das man sich für die Hilfe bedankt!

Solltest Ihr jetzt denken “okay, das dürfte sich von selbst verstehen” und euch dann noch für eine moderne, zukunftssichere und plattformübergreifende Programmiersprache entscheiden wollen, lade ich euch sehr gerne in mein Entwicklerforum ein. – Wo andere mit einer Masse von Beiträgen für Chaos sorgen, bleiben wir überschaulich, informativ und vor allem freundlich. Nicht umsonst erhalten wir des Öfteren das Feedback

ihr habt das gewisse etwas das andere nicht haben.

Wenn Du Wissen willst, was genau das ist, dann finde es heraus. Logischerweise kostenlos und unverbindlich.