.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv November 2012

Hackathon 2012: Projekt Wortwecker - Teil 2

29.11.2012 21:13:00 | Daniel Springwald

Bereits am zweiten Tag unseres Events hatten Dirk und ich den Großteil der elektronischen Schnittmuster für die verschiedenen physikalischen Lagen des Wortweckers erstellt. Wie erwartet machte das Passepartout für die einzelnen Buchstaben den meisten Aufwand, zumal wir noch ein laserfähiges Icon für die Weck-Funktion erstellen mussten.


Am dritten Tag konnten wir dann bereits die ersten Platten laserschneiden. 

Nachdem die erste Holzplatte mit den Montagelöchern für die jeweils 112 LEDs geschnitten war, konnte auch hier die Bestückung beginnen:

Dirk setzte die Leuchtdioden ein und verlötete die Anoden so, dass alle mit einander verbunden waren.


Dirk verlötet die LEDs in der Halterungsplatte

Anschließend galt es, an jede LED ein 30cm langes Kabel zu löten, welches später mit der Lochraster-Platine verbunden werden sollte. Hierbei teilten Dirk und ich uns die Arbeit auf: Die Kabel schneiden, abisolieren und zu verzinnen übernahm Dirk  - das eine Ende der Kabel an die Platine zu löten, war meine Aufgabe.  Das Anlöten der anderen Kabelenden an die Kathoden der einzelnen LEDs war dann gemeinsame Arbeit.


Viele viele Kabel!

Um bei dem ganzen Kabelwust zumindest ein wenig den Überblick zu behalten, verwendeten wir bei jedem achten Kabel eine andere Farbe als bei den vorherigen sieben. Dadurch musste an jedem Schieberegister-Chip das erste Kabel immer die Sonderfarbe haben, sonst war wohl etwas falsch gelaufen. 

In der Zwischenzeit beschäftigte Thomas sich damit, den Produktionsprozess der Platinen zu optimieren um sowohl Zeit zur sparen, als auch die Qualität zu steigern. 

Mitten im Arbeitsvorgang verweigerte der Lasercutter dann überraschend den Dienst und verlangte nach einem neuen Luftfilter. Da dieser aber nicht kurzfristig beschafft werden konnte, mussten wir die Arbeiten an dieser Stelle unterbrechen. Von da an konzentrierten wir unsere gesamte Energie darauf, die vier Elektroniken und Verkabelungen fertig zu stellen. 

Am Ende des vierten Tages hatten wir dann tatsächlich für jede der vier Uhren die Elektronik fertig gestellt, getestet und ge-bugfixed. 

Interessante und zum Teil überraschende Fehlerquellen gab es auch hier wieder ausreichend in Form von defekten LEDs, defekten Schieberegistern und kontaktlosen Lötstellen. Wiederum wären wir hier ohne Jens´ Oszilloskop aufgeschmissen gewesen. 

HTTP-Status 400 trotz Inhalt

28.11.2012 17:34:00 | Martin Hey

Der Anwendungsfall: Eine ajax-basierte Anwendung soll im Fehlerfall in den Ajax-Requests zwar einen Inhalt zurückgeben, der zu rendern ist, gleichzeitig aber auch einen von 200 abweichenden Statuscode, damit im Browser z.B. im JavaScript eine Unterscheidung stattfinden kann. Verkürzt und stark vereinfacht sieht das dann aus wie im folgenden Beispiel:

[HttpPost]
public ActionResult BuySomething(BuyProduct model)
{
    if (!ModelState.IsValid)
    {
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return this.PartialView(model);
    }

    return this.PartialView("SuccessView", model);
}

Damit kann der Client nun im Fehlerfall zusätzliche Aktionen durchführen.

Im IIS7 funktioniert das out-of-the-box leider nicht, da hier mit Standardeinstellungen der Body-Content in der Antwort ersetzt wird. Um dieses Verhalten anzupassen, gibt es das Attribut existingResponse im Element system.webServer / httpErrors.

<system.webServer>
  <httpErrors existingResponse="PassThrough"></httpErrors>
</system.webServer>

Setzt man den Wert auf PassThrough, ersetzt der IIS den Content nicht, wenn gleichzeitig ein Statuscode >= 400 gesetzt wird.

HTTP-Status 400 trotz Inhalt

28.11.2012 16:34:00 | Martin Hey

Der Anwendungsfall: Eine ajax-basierte Anwendung soll im Fehlerfall in den Ajax-Requests zwar einen Inhalt zurückgeben, der zu rendern ist, gleichzeitig aber auch einen von 200 abweichenden Statuscode, damit im Browser z.B. im JavaScript eine Unterscheidung stattfinden kann. Verkürzt und stark vereinfacht sieht das dann aus wie im folgenden Beispiel:

[HttpPost]
public ActionResult BuySomething(BuyProduct model)
{
    if (!ModelState.IsValid)
    {
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return this.PartialView(model);
    }

    return this.PartialView("SuccessView", model);
}

Damit kann der Client nun im Fehlerfall zusätzliche Aktionen durchführen.

Im IIS7 funktioniert das out-of-the-box leider nicht, da hier mit Standardeinstellungen der Body-Content in der Antwort ersetzt wird. Um dieses Verhalten anzupassen, gibt es das Attribut existingResponse im Element system.webServer / httpErrors.

<system.webServer>
  <httpErrors existingResponse="PassThrough"></httpErrors>
</system.webServer>

Setzt man den Wert auf PassThrough, ersetzt der IIS den Content nicht, wenn gleichzeitig ein Statuscode >= 400 gesetzt wird.

maxRequestLength vs. maxAllowedContentLength

28.11.2012 16:24:00 | Martin Hey

Wer sich mit Dateiuploads beschäftigt wird sich früher oder später Gedanken über Dateigrößenbeschränkungen machen wollen oder müssen.

Die Einstellung dafür findet sich in der web.config. Jedoch gibt es dabei gewisse Dinge zu beachten:

  1. Die MSDN ist sehr spärlich mit Informationen zu den Stellen an denen Änderungen notwendig sind und den vorhandenen Abhängigkeiten.
  2. Je nach verwendeter IIS-Version sind unterschiedliche Werte anzupassen.

Konfiguration des IIS

Relevant ist das Attribut maxAllowedContentLength im Element system.webServer / security / requestFiltering / requestLimits. Zu beachten ist hier, dass dieser Wert in Byte ist. Für Dateigrößen von 20 MB ist hier daher 20971520 einzutragen.

Konfiguration der ASP.NET Runtime

Relevant ist das Attribut maxRequestLength im Element system.web / httpRuntime. Zu beachten ist, dass dieser Wert in Kilobyte ist. Für Dateigrößen von 20 MB ist hier daher 20480 einzutragen. Wird der IIS 6 verwendet, spielt maxAllowedContentLength keine Rolle und es muss nur maxRequestLength angepasst werden.

 

maxRequestLength vs. maxAllowedContentLength

28.11.2012 15:24:00 | Martin Hey

Wer sich mit Dateiuploads beschäftigt wird sich früher oder später Gedanken über Dateigrößenbeschränkungen machen wollen oder müssen.

Die Einstellung dafür findet sich in der web.config. Jedoch gibt es dabei gewisse Dinge zu beachten:

  1. Die MSDN ist sehr spärlich mit Informationen zu den Stellen an denen Änderungen notwendig sind und den vorhandenen Abhängigkeiten.
  2. Je nach verwendeter IIS-Version sind unterschiedliche Werte anzupassen.

Konfiguration des IIS

Relevant ist das Attribut maxAllowedContentLength im Element system.webServer / security / requestFiltering / requestLimits. Zu beachten ist hier, dass dieser Wert in Byte ist. Für Dateigrößen von 20 MB ist hier daher 20971520 einzutragen.

Konfiguration der ASP.NET Runtime

Relevant ist das Attribut maxRequestLength im Element system.web / httpRuntime. Zu beachten ist, dass dieser Wert in Kilobyte ist. Für Dateigrößen von 20 MB ist hier daher 20480 einzutragen. Wird der IIS 6 verwendet, spielt maxAllowedContentLength keine Rolle und es muss nur maxRequestLength angepasst werden.

 

DNUG Braunschweig - Best Practices für die SharePoint 2010 Entwicklung

28.11.2012 08:06:00 | Lars Keller

Die DNUG Braunschweig trifft sich am 05.12.2012 um 19:00 im Restaurant Zucker (Tagungsraum). Dieses Mal hält unser Mitglied Lars Osssenkop einem Vortrag zum Thema “Best Practices für die SharePoint 2010 Entwicklung”.

Abstract:
Ohne PowerPoint geht es direkt ins Visual Studio und wir schauen uns gemeinsam aus meiner Sicht klassische Szenarien in der SharePoint Entwicklung an. Neben C#-Coding werden wir auch viel XML sehen, um Listen, Felder und Inhaltstypen deklarativ im SharePoint zu erzeugen. Das Augenmerk lege ich hier auf SharePoint 2010 Lösungen, die direkt beim Kunden deployed werden können und so keine weiteren Anpassungen an der Oberfläche mehr benötigen. Die Vorteile liegen hier in der Wiederverwendbarkeit und den besseren Wartung der Lösung. Gemeinsam möchte ich mit euch meine Ansätze diskutieren und auch Ideen entwickeln, wie man im SharePoint Solution Upgrades sinnvoll durchführen kann.

C#-Entwickler ohne SharePoint Kenntnisse erhalten einen Überblick darüber, wie man SharePoint Lösungen entwickelt und wo die Vor- und Nachteile zur ASP-Webentwicklung liegen können. SharePoint Anfänger sind aufgerufen Fragen zu stellen und erhalten einen tiefergehenden Blick hinter die SharePoint-Entwicklung. Erfahrene SharePoint Entwickler diskutieren mit uns die Ansätze.

Vita:
Lars Ossenkop ist, kommend aus der Java-Entwicklung, seit der Teilnahme am SharePoint 2007 TAP passionierter aber manchmal auch frustrierter SharePoint-Entwickler mit Schwerpunkt in der Entwicklung von geschäftsprozessunterstützenden Anwendungen bei der H&D International Group.

Wie immer ist die Veranstaltung kostenlos! Weitere Informationen zur DNUG Braunschweig können hier gefunden werden: http://www.dotnet-braunschweig.de

Video zum Microsoft MVP Open Day 2012

27.11.2012 09:38:00 | Lars Keller

Auf dem Microsoft Open Day 2012 wurde ein Video über das Microsoft MVP Program gedreht. In den Hauptrollen sind Jan Rombolotto, Damir Tomicic, Martina Grom, Gehard Goeschl, Dominik Berger, Annabelle Ridge, Stephan Fasshauer und Ich! :-)

Viel Spaß beim Schauen!

Eigene Klebefolien schneiden

24.11.2012 17:55:00 | Daniel Springwald

Gestern wurde mir bewusst, dass man mit dem Lasercutter auch Klebefolien schneiden kann. Das musste natürlich gleich getestet werden!

Also direkt mal ein Bild aus dem Netz geladen, vektorisiert und gelasert.


Das größte Element, bzw. das Stück mit der besten Möglichkeit zur Ausrichtung dient zur groben Positionierung.
Dabei ist egal, ob dieses Stück Folie am Ende auf der Fläche verbleiben soll.

Alle folgenden, kleineren Folienteile klebt man dann einfach von außen nach innen, bis die Fläche komplett zugeklebt ist.


Anschließend entfernt man die nicht gewünschten Teile, so dass nur noch das Motiv übrig bleibt.

Oprah Winfrey liebt Surface – aber weshalb mit dem iPad?

24.11.2012 11:22:54 | Mathias Gronau

Oprah Winfrey ist wohl die bekannteste amerikanische Talkshow-Moderatorin. Zumindest hat sie aber einigen gesellschaftlichen Einfluss. Was sie in ihrer Oprah Winfrey Show sagt, findet nicht nur in den USA Beachtung. So einen Einfluss eines Talkmasters können wir uns in Deutschland nicht vorstellen. Nun hat Oprah auf Twitter verkündet, dass das Surface auf ihrer Liste ihrer 48 Lieblingsgeräte steht. Außerdem habe sie bereits zwölf Geräte als Weihnachtsgeschenk gekauft. Dabei bleibt selbstverständlich offen, ob sie diese Aussage selbst ausgebrütet hat oder sie von Microsoft dafür bezahlt wurde. Aber egal, das ist schließlich nicht mein Geld. Interessanter ist der Tweet selbst. Sie sehen ihn hier rechts. Gleich auf den ersten Blick (na gut, evtl. sind auch zwei Blicke erforderlich), fällt auf, dass sie diesen Tweet mit dem iPad geschrieben hat. Nun vermutet Forbes, dass es überhaupt nicht ihr Fehler wäre, da es keine offizielle Twitter-App für Windows 8 und Windows RT gibt. TechCrunch hält mit der Information dagegen, dass es die drei Apps Rowi, MetroTwit und Tweetro gibt. Allerdings ist Tweetro bislang nur als Vorabversion auf den Markt gekommen und wird derzeit im Store nicht mehr angeboten. Im deutschen Store findet sich im Übrigen wirklich keine Twitter-App. Aber wird eine extra App wirklich benötigt? Ich habe es ausprobiert: mit dem Internet Explorer lässt sich hervorragend twittern, und es tut auch überhaupt nicht weh. Ich sehe keinen tieferen Sinn darin, für jede Kleinigkeit eine extra App zu installieren, so lange, bis das Surface total vollgemüllt ist und ich das Gerät frustriert in die Ecke lege und dort vergammeln lasse, weil ich keinen Überblick mehr über die ganzen Apps habe. Da ist mir der gute alte IE doch noch lieber. Aber auch für alle appsüchtigen gibt es Trost: Ende Oktober gab es bereits den folgenden Tweet:          

Windows 8 gilt als das sicherste Windows aller Zeiten

24.11.2012 10:20:49 | Mathias Gronau

Die Sicherheitsbranche ist sich einig: was die Security anbelangt ist Windows 8 ein deutlicher Fortschritt. Diese Aussage stammt nicht von Microsoft (was sollte der OS-Hersteller auch anderes sagen), sondern es ist die Quintessenz aus mehreren Meldungen des Onlinemagazins Computerworld.ch. Michael Binder, Presales-Consultant bei Symantec in der Schweiz, betonte anlässlich einer Presseveranstaltung in Zürich, dass das Betriebssystem komplett neu designt wurde. Dabei meinte er nicht die Modern UI, sondern die Betriebssystemarchitektur, also das, was hinter den Kulissen geschieht. Die erhöhte Sicherheit wird erreicht, indem alle Apps in einer Sandbox ausgeführt werden. Das bedeutet, dass sie vom Rest des Betriebssystems getrennt sind. Um es einmal flapsig auszudrücken: Jede App kann sich nur selbst zerschießen und kann die anderen Apps nicht negativ beeinflussen. Die größten Probleme sieht er in den guten alten Desktop-Anwendungen, die nach wie vor alle auf den gleichen Kernel zugreifen. Trotzdem gibt sich der Spezialist überzeugt: “Die größte Gemeinsamkeit von Windows 8 gegenüber all seinen Vorgängern ist daher nur der Name” und weiter: “Das Betriebssystem ist von der Architektur her Security-technisch deutlich besser als alles, was Microsoft bislang hergestellt hat.” Auch Aryeh Goretsky, Forscher beim Antiviren-Software-Hersteller Eset, meint, dass Microsoft das Umfeld für den Betrieb von Schutzprogrammen gegen Schadsoftware verbessert habe. Er betont ausdrücklich, dass die erste Software, die geladen wird, die Antiviren-Software ist. Dadurch werde vermieden, dass vor der Anti-Malware-Software ein durch Schadsoftware infizierter Gerätetreiber geladen werde. In der Vergangenheit sei es den Programmierern von Schadsoftware mehrfach gelungen, auf diese Weise die Virensoftware in die Irre zu führen. Des Weiteren erwähnt er lobend das “Unified Extensible Firmware Interface”. Dies verlangt, dass jede Firmware nur mit einer digitalen Signatur geladen werden kann. Dadurch soll verhindert werden, dass sich im Betriebssystem Rootkits einnisten können. Dieser sichere Bootvorgang unterstützt den gleichnamigen Industriestandard und wird vom Nist (National Institute of Standards and Technology) empfohlen. Bekanntlich enthält Windows 8 standardmäßig den Windows Defender, eine eigene Software zum Schutz vor Schadprogrammen. Als ich dies zum ersten Mal gehört habe, war meine Reaktion die Befürchtung, dass hier der gleiche Ärger ins Haus steht wie beim Internet Explorer. Das ist aber nicht der Fall. Ein Evangelist von Microsoft hat mir das so erklärt: wird Windows installiert, kommt damit auch der Defender auf die Festplatte und er ist auch aktiv. Wird nun eine andere Anti-Virensoftware installiert, deaktiviert sich der Windows Defender automatisch. Er bleibt so lange deaktiviert, bis die Schutzsoftware des Drittherstellers deinstalliert wird oder bis sie ihren Dienst einstellt, beispielsweise, weil die Lizenz abgelaufen ist. Dieser Fall tritt vor allem bei neuen Rechnern häufig auf, die mit einer vorinstallierten zeitlich limitierten Lizenz eines kostenpflichtigen Anti-Malwareprogamms ausgeliefert werden. Läuft die Lizenz ab, wird dies von den Anwendern gerne ignoriert, so dass frühere Versionen von Windows plötzlich ohne Schutz ausgeführt werden. Unter Windows 8 kann dies nicht geschehen, da sich in diesem Fall der Windows Defender automatisch wieder aktiviert.

Solution Dateien als Administrator öffnen

21.11.2012 17:07:00 | Peter Bucher

Was unter Windows 7  nicht der Fall war, ist bei Windows 8 jetzt der Fall.

Verknüpfungen auf Visual Studio Solution Dateien (*.sln) können nicht per Rechtsklick oder über die Eigentschaften des Links als Administrator gestartet werden.

Das ist mühsam. Bei einem ASP.NET Projekt kommt ohne Adminstratorrechte immer Fehler und immer nur das leere VS öffnen ist auch doof.

Nach einer zweiten Suche - Gestern habe ich nichts gefunden - fand ich die Lösung bei David.

Eine Registry-Datei, bspw. RunAsAdministrator.reg mit folgendem Inhalt als Textdatei erstellen:

Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell\runas\Command]
@="\"C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\MSEnv\\VSLauncher.exe\" \"%1\""


Der Pfad "Program Files (x86))" muss gegebenfalls angepasst werden.
Für ein Englisches Windows 64Bit passt es.

Nach dem Ausführen der Datei ist die Option per Rechtsklick und auch in den Einstellungen der Verknüpfung verfügbar.
Mit letzerem ist es möglich, die Verknüpfung normal zu öffnen - es wird immer als Administrator ausgeführt.

Ich hoffe das hilft einigen hier draussen.

Windows 8 Apps mit HTML5 und JavaScript entwickeln

21.11.2012 08:14:17 | Andre Kraemer

Windows 8 Apps mit HTML5 und JavaScript - Das große Training_grossIm Sommer dieses Jahres habe ich auf YouTube ein Video zur Entwicklung von Apps für Windows 8 hochgeladen. Es sollte das erste Video einer Serie werden, in der ich einen Einstieg in die Entwicklung geben wollte.

Aus den weitern Youtube Videos wurde allerdings nichts. Das lag aber nicht daran, dass ich keine Zeit oder keine Lust mehr gehabt hätte, sondern daran dass ich die Chance hatte etwas größeres und professionelleres als ein paar Youtube Videos zu machen.

Statt nämlich weiter im Home Office mit Amateurausrüstung zu arbeiten hatte ich das Glück von video2brain nach Graz eingeladen zu werden.

Nach insgesamt 10 Aufnahmetagen, die sich auf den August und den Oktober verteilten hatte ich dann knapp 12 Stunden Rohmaterial fertig, aus denen 9 Stunden geschnittenes Video wurden.

Das Videotraining an sich richtet sich an Ein- und Umsteiger in der App Entwicklung. Von den beiden verfügbaren Entwicklungspfaden (XAML + C#/C++/VB.NET und HTML + JavaScript) habe ich mich für den letzteren entschieden.

Das Videotraining startet mit einer allgemeinen Einführung in die Entwicklung von Windows 8 Apps. Ich befasse mich also mit den Fragen: “Was ist neu"?”, “Was ist anders?” oder auch “Was hat es mit den neuen Design Prinzipien auf sich”. Anschließend zeige ich wie man die Entwicklungsumgebung einrichtet und erkläre die Standard-Projektvorlagen.

Weiter geht es mit einem Rundflug über die enthaltenen Controls / Oberflächenelemente. Natürlich zeige ich auch Datenzugriffe und Datenbindung und gehe insbesonders auf Neuerungen wie Charms Bar, den Snap View, Live Tiles, etc. ein.

Alles in allem denke ich dass das Training einen schönen Einstieg in die App Entwicklung gibt und das notwendige Wissen vermittelt um eigene Apps schreiben zu können. Vorkenntnisse in HTML und JavaScript sind dabei natürlich von Vorteil Smiley

Die Arbeiten an dem Video Training haben sich übrigens als recht abenteuerlich herausgestellt. Zum einen war es mein erstes Video Training, was die Sache natürlich nicht gerade leichter gemacht hat. Den ganzen Tag alleine in einem Tonstudio zu sitzen und ohne Feedback in ein Mikro zu sprechen ist schon etwas ganz anderes als einen Vortrag oder eine Schulung vor Publikum zu halten.

Zu den normalen Startschwierigkeiten kam dann allerdings noch hinzu, dass:

  • Microsoft kurz vor den ersten Aufnahmen den Begriff “Metro” verbannt hat ohne eine Alternative zu nennen
  • Erst ca. eine Woche nach den ersten Aufnahmen, die noch mit der Windows 8 Preview und dem Visual Studio 2012 Release Candidate aufgezeichnet wurden, die RTM Version beider Produkte für MSDN Subscriber verfügbar war – leider ohne Chance vorab bereits dran zu kommen. Deshalb musste ich im Oktober dann noch einmal alle Beispiele migrieren und auf Ihre Funktionalität prüfen. Ich hoffe mal, dass mir dabei nichts durch die Finger gerutscht ist.
  • Sich die MSDN an einigen Stellen immer wieder änderte

Trotz aller Stolpersteine denke ich dass das Endprodukt gut geworden ist und bin selbstverständlich sehr stolz auf mein Erstlingswerk.

Falls jemand das Training gesehen hat, würde ich mich über Feedback natürlich sehr freuen.

Windows 8 Apps mit HTML5 und JavaScript entwickeln

21.11.2012 08:14:00 | Andre Kraemer

Windows 8 Apps mit HTML5 und JavaScript - Das große Training_grossIm Sommer dieses Jahres habe ich auf YouTube ein Video zur Entwicklung von Apps für Windows 8 hochgeladen. Es sollte das erste Video einer Serie werden, in der ich einen Einstieg in die Entwicklung geben wollte.

Aus den weitern Youtube Videos wurde allerdings nichts. Das lag aber nicht daran, dass ich keine Zeit oder keine Lust mehr gehabt hätte, sondern daran dass ich die Chance hatte etwas größeres und professionelleres als ein paar Youtube Videos zu machen.

Statt nämlich weiter im Home Office mit Amateurausrüstung zu arbeiten hatte ich das Glück von video2brain nach Graz eingeladen zu werden.

Nach insgesamt 10 Aufnahmetagen, die sich auf den August und den Oktober verteilten hatte ich dann knapp 12 Stunden Rohmaterial fertig, aus denen 9 Stunden geschnittenes Video wurden.

Das Videotraining an sich richtet sich an Ein- und Umsteiger in der App Entwicklung. Von den beiden verfügbaren Entwicklungspfaden (XAML + C#/C++/VB.NET und HTML + JavaScript) habe ich mich für den letzteren entschieden.

Das Videotraining startet mit einer allgemeinen Einführung in die Entwicklung von Windows 8 Apps. Ich befasse mich also mit den Fragen: “Was ist neu"?”, “Was ist anders?” oder auch “Was hat es mit den neuen Design Prinzipien auf sich”. Anschließend zeige ich wie man die Entwicklungsumgebung einrichtet und erkläre die Standard-Projektvorlagen.

Weiter geht es mit einem Rundflug über die enthaltenen Controls / Oberflächenelemente. Natürlich zeige ich auch Datenzugriffe und Datenbindung und gehe insbesonders auf Neuerungen wie Charms Bar, den Snap View, Live Tiles, etc. ein.

Alles in allem denke ich dass das Training einen schönen Einstieg in die App Entwicklung gibt und das notwendige Wissen vermittelt um eigene Apps schreiben zu können. Vorkenntnisse in HTML und JavaScript sind dabei natürlich von Vorteil Smiley

Die Arbeiten an dem Video Training haben sich übrigens als recht abenteuerlich herausgestellt. Zum einen war es mein erstes Video Training, was die Sache natürlich nicht gerade leichter gemacht hat. Den ganzen Tag alleine in einem Tonstudio zu sitzen und ohne Feedback in ein Mikro zu sprechen ist schon etwas ganz anderes als einen Vortrag oder eine Schulung vor Publikum zu halten.

Zu den normalen Startschwierigkeiten kam dann allerdings noch hinzu, dass:

  • Microsoft kurz vor den ersten Aufnahmen den Begriff “Metro” verbannt hat ohne eine Alternative zu nennen
  • Erst ca. eine Woche nach den ersten Aufnahmen, die noch mit der Windows 8 Preview und dem Visual Studio 2012 Release Candidate aufgezeichnet wurden, die RTM Version beider Produkte für MSDN Subscriber verfügbar war – leider ohne Chance vorab bereits dran zu kommen. Deshalb musste ich im Oktober dann noch einmal alle Beispiele migrieren und auf Ihre Funktionalität prüfen. Ich hoffe mal, dass mir dabei nichts durch die Finger gerutscht ist.
  • Sich die MSDN an einigen Stellen immer wieder änderte

Trotz aller Stolpersteine denke ich dass das Endprodukt gut geworden ist und bin selbstverständlich sehr stolz auf mein Erstlingswerk.

Falls jemand das Training gesehen hat, würde ich mich über Feedback natürlich sehr freuen.

Da war doch noch was: Windows 8

20.11.2012 19:43:00 | Peter Bucher

Mit Windows 7 bin ich schon länger sehr zufrieden und habe lange gewartet.
Seit kurzem habe ich Windows 8 und möchte ein wenig berichten, was ich denn darüber denke.

Die Installation verlief eigentlich relativ glimpflich und relativ schnell. Hatte nur Startschwierigkeiten mit meinem USB-Stick.

Kein Startmenü geht für mich gar nicht, tut mir leid.
Es ist einfach zu praktisch mit der Windows-Taste automatisch etwas auszuführen oder zu starten, wenn man es eintippt.
Und auch sonst ist man sich das gewohnt.

Nach kurzer Suche sties ich auf das Programm Start8. Ja ich weiss, es gibt auch kostenlose Alternativen, aber die 5$ haben mich nicht geschmerzt dafür. Es wird ein gutes Programm abgeliefert.

Das Startmenü ist wie in Windows 7 und kann sogar noch Verändert werden.
Dazu lässt sich im Programm einstellen, dass Windows mit dem Desktop startet, nicht mit dem Windows 8 Startbildschirm.

Etwas nerviges ist dann noch der Spellchecker im Internet Explorer, bzw. global.
Der kann so ausgeschalten werden.

Im Firefox kann der Spellchecker so ausgeschalten werden.


Was gibts noch zu sagen. Von der Geschwindigkeit her verglichen mit Windows 7 eher schneller. Aber das kann auch daran liegen, dass die vorherige Installation einfach schon alt war.

Das Einfenster-System von Windows 8 für Desktop geht für mich einfach gar nicht und der Desktop als so eine Krücke ohne Startmenü.

Auf einem Tablet oder so geht es vielleicht ja noch, aber für Desktop muss ein Mehrfenster-System her und zwar standardmässig.

Im kopieren / verschieben, etc. von Dateien und Ordnern ist Windows auch nicht besser geworden.

Aber was gib es schon für Alternativen?
Man lebt halt mit den Schwächen und geniesst die Annehmlichkeiten.

Was ist eure Erfahrung mit Windows 8?

Steve Wozniak: Microsoft ist kreativer als Apple

17.11.2012 11:22:02 | Mathias Gronau

Eigentlich haben wir es ja schon immer gewusst, aber nun kommt die Bestätigung direkt von Apple-Mitgründer Steve Wozniak: Microsoft entwickelt Produkte mit einem Wow-Faktor. Diese Aussage machte er im Gespräch mit Andrew Keen von TechCrunch. Als ein Beispiel nennt er die von Microsoft Research entwickelte Simultanübersetzungstechnik: “Wenn Microsoft in der Spracherkennung in der gezeigten Art Fortschritte macht, muss ich ihnen attestieren, dass sie im Labor gesessen und sich wirklich etwas Innovatives ausgedacht haben.” In diesem Zusammenhang kritisiert er, dass Apple in der letzten Zeit sich nur auf das iPhone 5 konzentriert und keine Neuerungen zu bieten habe. Hier das Interview im Video: Keen On… Steve Wozniak: Is Microsoft More Innovative Than Apple?  

Lenovo kündigt Thinkpad Tablet 2 an

17.11.2012 10:29:00 | Mathias Gronau

Lt. Einer Meldung des Onlinemagazins IT-BUSINESS plant Lenovo, seinen Tablet PC Thinkpad Tablet 2 auch in Deutschland zu verkaufen. Das speziell für Business-Anwender zugeschnittene Gerät ist nur zehn Millimeter dick und verfügt über ein 10,1 Zoll-Display mit einer Auflösung von 13.66 x 768 Pixel. Es ist mit einem Intel Dual Core-Atom-Prozessor Z2760 mit einer Taktrate von 1,8 Gigahertz ausgestattet. Standardmäßig ist das Gerät mit einem Gigabyte Arbeitsspeicher ausgestattet, er kann aber auf zwei Gigabyte erweitert werden. Beim integrierten Speicher kann zwischen 32 und 64 Gigabyte gewählt werden. Das Gerät ist mit Lautsprechern, einem Mikrofon, einer 2 Megapixel-Kamera auf der Vorderseite sowie einer zweiten Kamera mit 8 Megapixeln auf der Rückseite und einem LED-Blitz ausgestattet. Des Weiteren verfügt das Thinkpad 2 über einen USB- sowie einen Mini-HDMI-Anschluss, einen MicroSD-Steckplatz sowie einen 3,5 mm-Anschluss für Kopfhörer und Mikrofon. Die Kommunikation mit der Außenwelt erfolgt über WLAN, GPS, Bluetooth sowie optional UMTS. Nach Herstellerangaben soll der Akku im Standby bis zu 30 Tage halten, ehe er wieder aufgeladen werden muss. Bei MP3-Wiedergabe versorgt er das Gerät 150 Stunden lang mit Strom, bei Videostreaming immerhin noch 10 Stunden. Die Käufer können zwischen Windows 8 und Windows 8 Pro wählen. Das Gerät soll ab 629 Euro erhältlich sein (unverbindliche Preisempfehlung für die kleinste Ausstattung). Außerdem wird für das Gerät umfangreiches Zubehör wie ein Stylus und eine Dockingstation angeboten.

Neue Version der Office Developer Tools

15.11.2012 01:58:00 | Lars Keller

Seit ein paar Tagen gibt es ein neues Release der Office Developer Tools zum Herunterladen. Es sind einige neue Features hinzugekommen! Die Tools beinhalten Napa, Office Apps, VSTO, LightSwitch, SharePoint,..

Die VSTO Runtime hat ebenfalls ein Update bekommen. Wir können nun endlich Office 2013 & .NET 4.5 als Ziel-Plattform nehmen.

Weitere Informationen zum Update, gibt es hier.

Das Surface – es wird immer schlimmer

14.11.2012 12:24:00 | Mathias Gronau

Mittlerweile sind die ersten Surface-Geräte bekanntlich ausgeliefert. Über die Probleme, die dabei aufgetreten sind, habe ich ja bereits berichtet. Aber auch viele Kunden, die das Gerät inzwischen erhalten haben, werden damit nicht so richtig glücklich. Immer mehr Käufer klagen darüber, dass die Tastatur an den Nähten aufreißt und auch, dass sich Aufkleber am Gerät selbst ablösen. Defekte Tastaturen habe ich bereits mehrere gesehen; sich ablösende Aufkleber kann ich nicht bestätigen, da auf meinem Gerät gar kein Aufkleber vorhanden ist. Allerdings habe ich noch ein anderes Problem, ebenfalls mit der Touch-Tastatur. Ich habe in der Zwischenzeit etwa 20 oder 25 Seiten mit dem Gerät geschrieben und an einigen häufig verwendeten Tasten hat sich die schwarze Farbe bereits deutlich abgelöst, so dass das Material unter der Farbe durchscheint. Ich mag mir gar nicht vorstellen, wie die Tastatur nach 200 oder 500 Seiten aussieht. Auf jeden Fall ist die Tastatur jetzt nach etwa zwei Wochen bereits deutlich stärker ramponiert als die Microsoft-Tastatur an meinem Desktop nach mehr als 10 Jahren. Wenig erfreulich ist auch der Versuch, mit dem Support für Surface Kontakt aufzunehmen, den Sie unter www.surface.com/support erreichen – oder auch nicht. Mit etwas Glück wird die Seite angezeigt. Derzeit reagiert sie bei mir überhaupt nicht. Als ich sie heute früh einmal aufrufen konnte, sollte ich erst einmal mein Gerät registrieren. Soweit kein Problem. Die erforderlichen Daten in das Formular eingegeben, abgeschickt, und die Nachricht bekommen, dass ein Fehler aufgetreten ist. Das ist bis jetzt der Stand der Dinge, der Fehler tritt immer wieder auf, wenn auch mit teilweise unterschiedlichen Fehlermeldungen. Irgendwie macht das alles keinen richtigen Spaß. Da bringt Microsoft ein Gerät raus, das absolut sexy aussieht, recht performant arbeitet und das durchaus das Zeug dazu hat, ein absoluter Verkaufshit zu werden. Wie es nun dazu kommen kann, dass Auslieferung, Verarbeitung und/oder Materialproblemen dieses Gerät zum Kundenvergrämungsprogramm werden kann, will mir wirklich nicht in den Kopf.

Berührungslose Gesten in Windows 8

14.11.2012 06:32:40 | Mathias Gronau

Elliptic Labs plant, die im Science Fiction-Film “Minority Report” gezeigten berührungslosen Gesten beginnend mit Windows 8 an den Anwender zu bringen. Das Unternehmen, eine Ausgründung der norwegischen Universität mit Büros in Oslo und im Silicon Valley, veröffentlicht verschiedene Werkzeuge, die es Software-Entwicklern ermöglichen sollen, die berührungslosen Gesten in ihre Produkte zu integrieren. Die Bedienung soll der der Kinect ähneln, aber noch deutlich weicher funktionieren. Anders als die Kinect funktioniert das Elliptic-Gerät aber nicht mit einer Kamera, sondern die Gesten werden über Ultraschall erkannt, der über mehrere Mikrophone aufgenommen wird. Elliptic kündigt an, dass das System berührungslose Gesten für jedes in Windows 8 enthaltene Steuerelement enthält. Weiterhin angekündigt wird ein SDK sowie ein “Startkit”, mit dessen Hilfe Entwickler und Gerätehersteller beginnen können, die Technologie in ihre Geräte zu integrieren. Die Markteinführung ist für Ende 2013 geplant.

Hartnäckige Fehlern mit minimalem Nachbau auf die Schliche kommen

13.11.2012 20:25:00 | Peter Bucher

Es gibt sie überall und immer wieder: Hartnäckige Fehler, die einfach nicht zu finden sind.
Wer schon seit geraumer Zeit vor einem Fehler sitzt und wirklich schon alles versucht hat, muss sich eine Alternative überlegen.

Die Lösung ist häufig ein minimales Testprojekt zu erstellen und dort alles nachzubauen, um das Problem zu reproduzieren.
Das minimale Testprojekt kann eine Kopie es Originals sein, das einfach abgespeckt wird, oder eine Nachstellung in einem neuen Projekt.

So viel Aufwand ist das meistens nicht und häufig werden "doofe" Fehler während dem Erstellen gefunden.

Kann der Fehler reproduziert werden, wird weiter abgespeckt, bis es funktioniert.
Danach muss der Unterschied zwischen dem Original und dem Testprojekt gefunden werden.
Es kann auch wieder Code vom originalen Projekt eingefügt werden, um so den Ort des Fehlers einzugrenzen.

In den meisten Fällen kann so ein Fehler aufgespürt werden.

Eine Alternative dazu ist das kommentieren von Code, bis es funktioniert.
Aber ein Neubau oder Abbau von Code wie oben beschrieben ist der übersichtlichere Weg, finde ich.

Teil 2: Umkehrung der Kontrolle erkärt, oder: Von der Fabrikmethode zum DI-Container

13.11.2012 17:56:00 | Peter Bucher

Dies ist die Fortsetzung der Artikelserie "Umkehrung der Kontrolle erkärt, oder: Von der Fabrikmethode zum DI-Container" mit folgenden Teilen:

Der erste Teil liegt schon eine Zeit zurück, das hindert mich aber nicht daran, da doch noch mehr zu veröffentlichen.

Ein Rückblick auf Teil 1:

Wir haben Abhängigkeiten angeschaut, worin die Probleme liegen wie sie mithilfe der Umkehrung der Kontrolle mittels Factory Methode umgangen werden können.

Es gibt noch das Abstract Factory Pattern, von der Gang of Four folgendermassen beschrieben:

Bietet eine Schnittstelle zum Erzeugen von Familien verwandter oder voneinander abhängiger Objekte, ohne ihre konkreten Klassen zu benennen.

Auf folgender Abbildung ist gut zu erkennen, was für Akteure mitspielen:

  • Eine Schnittstelle Abstract Factory, die nur die Interfaces der Produkte zurückgibt.
  • N konkrete Implementationen wie z.B. Concrete Factory A.
  • Implementationen von den Produkten

Dieses Pattern erinnert mich an das Provider Pattern, wo es einen abstrakten Provider und bspw. FileProvider und SqlProvider gibt.
Einfach das in diesem Fall hier Objekte in verschiedenen Familien erzeugt werden, anstelle ein Verhalten in verschiedenen Familien zu repräsentieren.

Ich habe es in dieser Form noch nie genutzt aber es gibt sicher Einsatzfälle und Abwandlungen davon.

Das war jetzt ein kleiner Ausflug in die Patterns, aber eigentlich ging es darum, den Weg von der Fabrikmethode zum DI-Container zu beschreiben.

Eine Fabrikmethode ist das Mittel des DI-Containers, der dafür gedacht ist das schreiben und verwalten von vielen Factorymethoden zu ersparen. Er stellt eine globale Factorymethode dar, die über den Interfacetyp eine konkrete Klasse zurückgibt, die im Container registriert ist.

Er geht noch weiter indem er ganze Objekthierarchien von Abhängigkeiten in Form von Konstruktorargumenten oder Eigenschaften auflösen kann.

Diese gewonnene Bequemlichkeit forciert auch das Unterteilen von Code in mehrere Klassen, die jeweils dedizierte Aufgaben haben und dann per Container injiziert werden können.

 

Ich habe länger überlegt, was ich noch in diesen Artikel bringen soll. Es gibt sehr viele kleine, simple, einfache Beispiele für einen Container.
Zum Abschluss gibt es noch den Quellcode des Vorgängers von LightCore, der schon einiges konnte aber viel viel kleiner war als die aktuelle Version von LightCore.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using PeterBucher.AutoFunc.Fluent;
using PeterBucher.AutoFunc.Mapping;
namespace PeterBucher.AutoFunc
{
    public class AutoFuncContainer : IContainer
    {
        private readonly IDictionary<Type, IMappingItem> _mappings;
 
        public AutoFuncContainer()
        {
            this._mappings = new Dictionary<Type, IMappingItem>();
        }
 
        public ILifecycleFluent Register<TContract, TImplementation>()
        {
            Type typeOfContract = typeof (TContract);
            MappingItem mappingItem;
 
            if (!this._mappings.ContainsKey(typeOfContract))
            {
                Type typeofImplementation = typeof (TImplementation);
                mappingItem = new MappingItem(typeofImplementation);
                this._mappings.Add(typeOfContract, mappingItem);
                return mappingItem.LifecycleFluent;
            }
 
            throw new Exception("mapping for this contract allready registered");
        }
 
        private object Resolve(Type typeOfContract)
        {
            IMappingItem mappingItem = _mappings.Where(m => m.Key.Equals(typeOfContract)).SingleOrDefault().Value;
 
            switch (mappingItem.Lifecycle)
            {
                case Lifecycle.Singleton:
                    if (mappingItem.Instance == null)
                    {
                        this.CreateInstanceFromType(mappingItem.ImplementationType);
                    }
                    return mappingItem.Instance;
            }
 
            return this.CreateInstanceFromType(mappingItem.ImplementationType);
        }
 
        public TContract Resolve<TContract>()
        {
            return (TContract) this.Resolve(typeof (TContract));
        }
 
        private object CreateInstanceFromType(Type implementationType)
        {
            ConstructorInfo[] constructors = implementationType.GetConstructors();
            if (constructors.Length == 0 || constructors.Length == 1 && constructors[0].GetParameters() == null)
            {
                return Activator.CreateInstance(implementationType);
            }
 
            ConstructorInfo constructorWithDependencies = constructors.OrderByDescending(
                delegate(ConstructorInfo c)
                    {
                        var parameters = c.GetParameters();
                        return parameters == null || parameters.Count() == 0;
                    }).First();
 
            List<object> parameterResults = new List<object>();
 
            foreach (var parameter in constructorWithDependencies.GetParameters())
            {
                parameterResults.Add(this.Resolve(parameter.ParameterType));
            }
 
            return constructorWithDependencies.Invoke(parameterResults.ToArray());
        }
    }
}

video2brain – Meine erste Windows 8 App

12.11.2012 10:27:09 | Gregor Biswanger

Meine erste Windows 8 App_gross

Vor einem Monat veröffentlichte ich die Lern-DVD „WPF 4.5 und Silverlight 5“ und kann heute mit stolz eine weitere neue DVD meinerseits ankündigen, „Meine erste Windows 8 App“. Diese Unterscheidet sich von den bisherigen video2brain-DVDs dadurch, dass innerhalb von 3 Stunden eine Windows Store App durchgehend entwickelt wird.

 

"Meine erste Windows 8 App" Trailer

 

Offizielle Beschreibung

Dieses Video-Training vermittelt interessierten Software-Entwicklern die notwendigen Grundlagen um eigene Apps für das Microsoft-Betriebssystem Windows 8 schreiben zu können. Sie starten mit den Grundlagen zum Startbildschirm, den Design-Richtlinien und generellen Windows 8 Konzepten, bis hin zur Vorbereitung einer eigenen, kleinen App (RSS-Reader) für den Windows Store.

Weitere Informationen

- Produktübersicht

- Inhaltsverzeichnis

Kostenfreie Probevideos

Ladezustand Anzeigen mit VisualStates

 

ToastNotification auslösen

 

Gewinnspiel bis zum 18. November 2012

 

image


Bei den bisherigen Ankündigungen gab es immer eine Verlosungsaktion via formloses Kommentar. In Kooperation mit dem dotnet.de-Portal, werden diesmal 5 DVD´s verlost und wer eine abstauben möchte muss diesmal folgende Quizfrage beantworten:

 

Welches neue Feature bringt C# 5.0?

 

Schicken Sie Ihre Antwort bis zum Sonntag, den 18. November 2012, 24 Uhr, an red@dotnet.de und gewinnen Sie! Falls Sie sich über die Lösung noch nicht ganz sicher sind, sollten Sie die dot.NET News diese Woche ganz besonders aufmerksam lesen, denn jeden Tag versteckt das dotnet.de-Team einen Buchstaben des Lösungswortes in einer der News-Meldungen. Diese Buchstaben gilt es Ende der Woche nur noch, in die richtige Reihenfolge zu bringen. Damit es nicht allzu schwer wird, werden Sie die Links zu den besagten News ab Ihrer Erscheinung auch hier finden. Der Rechtsweg ist wie immer ausgeschlossen.

Nun wünsche ich allen viel Spaß beim Rätseln!

Besten Dank

Besten Dank an das ganze video2brain-Team und an Addison-Wesley!

video2brain-logoaddison-wesley

Community, Windows 8 und Katzenhirn

10.11.2012 12:58:00 | Jürgen Gutsch

Dank Lars Keller, habe ich dieses Wochenende am Community Open Day 2012 in München und Unterschleißheim teilnehmen können. Lars wies in einem INETA-Newsletter darauf hin, dass auch Community Leads teilnehmen können die nicht im CLIP-Programm sind.

Mit der Teilnahme erhoffte ich mir, eventuell doch noch für den .NET-Stammtisch Konstanz-Kreuzlingen in das CLIP-Programm aufgenommen zu werden und so etwas mehr Unterstützung für die Usergroup zu erhalten.

Das Event fand am ersten Tag in einer wirklich coolen Location in München mit diversen Vorträgen statt. Den zweiten Tag verbrachten wir dann in der Microsoft-Zentrale in Unterschleißheim. Die Veranstaltung war natürlich hauptsächlich geprägt durch Windows 8 und Windows Phone 8 aber auch einige andere Neuerungen wurden vorgestellt.

Mir war es allerdings wichtiger einige Leute aus der Developer Community zu treffen und mich mit denen zum Thema Community und Unterstützung durch Microsoft auszutauschen oder einfach mal so zu tratschen…

So wie es aussieht haben wir (der .NET Stammtisch Konstanz Kreuzlingen) mit Florian Endres jetzt einen Ansprechpartner der besser erreichbar ist als die Vorgänger und von dem wir uns die eine oder andere Unterstützung erhoffen können. Was das CLIP-Programm angeht, schauen wir einfach mal was sich ergibt. Die Aussichten sind auf jeden Fall nicht schlecht.

Was hat das nun mit Katzenhirn zu tun?

Katzenhirn ist recht klein und man übersieht es schnell wenn man zügig auf der Autobahn von Lindau nach München fährt. Erst auf der Rückfahrt ist es mir aufgefallen und ich musste drei… nein… viermal schauen um sicher zu gehen, dass ich mich nicht geirrt habe. Katzenhirn.

Arduino Workshop Kit (unboxing)

09.11.2012 22:16:00 | Daniel Springwald

Heute konnte ich das Kit Workshop Base (mit Arduino Board) von RS Components auspacken und mir einen ersten Eindruck davon verschaffen.

Bereits auf den ersten Blick fällt mir auf, dass die Zusammenstellung des Kits auf Qualität und langfristige Nutzbarkeit ausgelegt ist:

Die Box für die Aufbewahrung der Bauteile und Box für die Drahtbrücken machen einen soliden Eindruck. 

Die ausgewählten Bauelemente decken im Vergleich zu anderen Lernpaketen ein recht breites Spektrum an Komponenten ab. Daher sollten die Möglichkeiten, was man mit dem Kit so alles bauen kann recht groß sein. Auch das Breadboard ist im Vergleich zu den mir sonst bekannten, beiliegenden Steckplatinen schon fast luxuriös groß.

Dem Kit liegen keine Bauanleitungen in Papier bei. Stattdessen stellen RS Components auf ihrer Seite Video-Anleitungen bereit, mit denen man zum Beispiel ein Theremin, ein Love-O-Meter oder einen Wahrsager bauen kann.

Die Videos sind gut gemacht und leicht verständlich. Ein kleiner Wermutstropfen ist dabei vielleicht, dass sie ausschließlich in Englisch verfügbar sind. Das sollte aber aus meiner Sicht für den Arduino-Interessierten bestimmt kein Problem sein ;-)

Das Kit ist für ca. 50 € erhältlich und bietet aus meiner Sicht deutlich mehr Möglichkeiten als beispielsweise das teurere „Lernpaket für Arduino“ von Franzis.

Für Arduino-Einsteiger oder Elektronik-Interessierte bestimmt ein prima Weihnachtsgeschenk.

Ich werde die nächsten Tage darauf verwenden, ein paar Experimente mit dem Kit durchzuführen und werde natürlich hier darüber berichten.

Async und Await für .NET 4.0 und Silverlight

09.11.2012 15:43:00 | Christian Binder

Async und Await ist wohl eines der wichtigsten Neuerungen in .NET 4.5. Wer allerdings nicht .NET 4.5 nutzen kann, für den gibt es nun ein NuGet Packet, welches für folgende Plattformen Async und Await ermöglicht.

  • NET Framework 4.0 (with KB2468871)
  • Silverlight 4
  • Windows Phone 7.5
  • Portable class libraries targeting those platforms

Alle Infos gibt's hier.

TF Service jetzt RTM

05.11.2012 09:40:00 | Christian Binder

TF Service ist nun RTM. Nur Build ist noch im Status Preview.
Die neue URL ist tfs.visualstudio.com. Für bis zu 5 Usern gibt einen Free Plan, mehr dazu unter diesem Link.

 

Viel Spass
Chris

Hackathon 2012: Projekt Wortwecker - Teil 1

02.11.2012 12:55:00 | Daniel Springwald

Im September war es dann soweit: Dirk, Jens und Thomas fanden sich ein, damit wir gemeinsam 4 Tage und Nächte lang Pizza essen, Cola trinken und basteln konnten.

Unser Ziel war es, dass am Ende jeder der vier Bastler einen fertigen Wortwecker mit nach Hause nimmt - also eine Uhr, welche die aktuelle Zeit in Form von Sätzen anzeigt. Dabei werden die Buchstaben durch einzelne LEDs mit entsprechendem Passepartout dargestellt.

Geplanter Funktionsumfang des Wortweckers:

•Anzeige der Uhrzeit
•Automatische Zeitstellung per Funkuhr
•Helligkeit der Leuchtdioden je nach Umgebungshelligkeit
•Weck-Zeit einstellbar
•Weck-Melodie definierbar

Als „Gehirn“ der Uhr wählten wir einen Arduino Uno

Arduino Uno mit Funkuhr-Modul
Arduino Uno mit Funkuhr-Modul

Insgesamt sind pro Wecker 112 LEDs verbaut, welche alle einzeln angesteuert werden möchten. Da der Arduino natürlich nicht über so viele Ports verfügt, muss noch eine entsprechende Schaltung zwischen Arduino und LEDs eingesetzt werden. Kern dieser Schaltung sind bei unserem Projekt 14 Stück TPIC6C595 Schieberegister pro Uhr. 

Ohne Plan läuft nichts...
Ohne Plan läuft nichts...

Da wir nicht nur ein reines Löt- und Bestückungs-Projekt durchführen wollten, entschieden wir uns für die Verwendung von Lochrasterplatinen statt geätzte Platinen zu designen. Eine Wahl, welche wir bei einem „nächsten Mal“ sicher überdenken würden ;-)

Tag 1

Los ging es am ersten Tag mit der Programmierung des Arduino, wobei dieser Tag eigentlich nur ein halber war, da wir erst am späten Nachmittag begannen und zu diesem Zeitpunkt auch erst zu dritt waren.

Während Dirk und Thomas die LED-auf-Worte-Übersetzung und die Beschickung des Schieberegisters vorbereiteten, konnte ich mich mit dem Auslesen des Funkuhr-Modules befassen.

Dirk und Thomas programmieren die Schieberegister
Dirk und Thomas programmieren die Schieberegister

Was mich zugegebener Maßen an den Rand des Wahnsinns getrieben hat. Der verwendete Funkuhr-Empfänger ließ sich nicht korrekt auslesen und verweigerte jede sinnvolle Zusammenarbeit. Einer Stunde und viele Test-Programme später probierte ich ein zweites Exemplar aus, und – aha – dieses funktionierte dann augenscheinlich. Also war wohl der erste Empfänger kaputt. Am nächsten Tag funktionierte dann aber auch dieser zweite Empfänger nicht mehr bzw. nur noch sehr sporadisch.

Am Ende stellte sich per Zufall heraus, dass das Notebook den Empfang der Uhr störte: Der Abstand der Uhr zum Notebook bestimmte, ob diese ein (funktionierendes) Zeitsignal empfangen konnte oder halt nicht.

Wenn die Funkuhr ausreichend weit vom Notebook entfernt ist, funktioniert sie plötzlich
Wenn die Funkuhr ausreichend weit vom Notebook entfernt ist, funktioniert sie plötzlich


Impressionen vom Schieberegister-Test-Arbeitsplatz

Tag 2 

Der zweite Tag startete mit den Arbeiten an der ersten Platine. Die Aufgaben waren die Verteilung der Bausteine und die optimale Verdrahtung der Lochrasterpunkte als Ersatz für Leiterbahnen. Im Nachhinein betrachtet liegt die Anzahl an Drähten und Bauteilen pro Platine wahrscheinlich knapp an der Grenze (oder auch darüber), was man noch per Lochraster machen kann oder sollte.

Die Platine wird bestückt..
Die Platine wird bestückt...

... und verlötet
... verlötet, und gemessen

Nachdem Jens und Thomas die erste Platine fertig bestückt und verlötet hatten, ging es an das Hardware-Debugging. Prima war dabei, dass Jens sein Oszilloskop mitgebracht hatte, denn die Schaltung verhielt sich überhaupt nicht so wie erwartet.

Auch hier zeigte sich nach langem Suchen, dass wir – wie schon bei der Funkuhr – einem Phantom nachgejagt waren.

Gut dass Jens sein Oszilloskop dabei hatte
Gut dass Jens sein Oszilloskop dabei hatte

Arduino und die Arrays

Offenbar initialisiert ein Arduino Programm ein Byte-Array auf dem Heap mit Nullen, während es auf dem Stack den Speicher bereit stellt wird, jedoch der vorherige Inhalt der betroffenen Speicherzellen unverändert bleibt. Das frühe Testprogramm mit ausschließlich statischem Array funktionierte daher wunderbar. Für den Test der fertigen Platine hingegen waren die identischen Code-Zeilen bereits in Methoden ausgelagert worden und verhielten sich daher anders. Aber wer soll so etwas erahnen? Da liegt es näher, nach Fehlern auf der umfangreich verdrahteten und verlöteten Platine zu suchen... und das dauert dann durchaus mal mehrere Stunden.

Feedbackmöglichkeit zu LightCore

01.11.2012 22:45:00 | Peter Bucher

Ich möchte in einiger Zeit LightCore 1.5 veröffentlichen, darin enthalten sind unter anderem einige Bugfixes.

Ausserdem möchte ich aber die Zeit noch nutzen, evt. das eine oder andere umzubauen und möchte eure Meinung berücksichtigen.

 

Damit ihr die Möglichkeit habt vor dem Release noch ein Vorschlag zu machen, gibt es jetzt die Seite https://lightcore.uservoice.com/.
Auf der http://lightcore.ch/ ist UserVoice über ein Widget erreichbar.

 

Ich hoffe auf einige interessante Vorschläge!

DNUG Braunschweig - Lap Around Windows Phone 8 & Windows Phone 8 Runtime. (Level 300)

01.11.2012 01:41:00 | Lars Keller

Die DNUG Braunschweig trifft sich am 13.11.2012 um 19:00 im Restaurant Zucker (Tagungsraum). Dieses Mal kommt uns Damir Dobric mit einem Vortrag zum brandaktuellen Windows Phone 8 SDK besuchen.

Abstract:
Nach WinRT für Windows 8, steht uns Entwickler die brandneue Windows Runtime Version von Windows Phone 8 zur Verfügung.
In diesem Vortrag lernen Sie die Entwicklung für die neue Windows Phone 8  Plattform  kennen. Darüber hinaus, befassen wir uns mit dem Windows Runtime Konzept und Code-Sharing zwischen Windows 8 und Windows Phone 8. Im Rahmen von Mobile-First Strategie werden verschiedene  Möglichkeiten vorgestellt, die das Ziel haben, möglichst ähnliche Code-Basis für mehrere Plattformen zu verwenden und die mobile Geräte mit Hilfe von Windows Azure Mobile Services in Cloud zu heben.
Dieser Vortrag adressiert professionelle Entwickler und Architekten, die Web- und Mobile-Geschäftslösungen konzipieren und implementieren.
Es sind alle eingeladen die nicht nur lernen möchten, sondern auch Ihre Erfahrungen und Fragen in der offenen Diskussionsrunde auf den Tisch bringen wollen.
Was wir an diesem Abend nicht machen werden ist UX!
 
Bio:
Damir Dobric is co-founder, managing director and lead architect of DAENET, which is Microsoft Gold Certified Partner and leading technology integrator specializing in the Microsoft technologies with strong focus on Windows. DAENET is the worldwide winner of world wide Technology Innovation Award for year 2005, German innovation award for SOA in 2008 and Microsoft Partner of the year 2010. For more information please see: http://www.daenet.eu.

Damir is Docent on University of applied sciences in Frankfurt am Main, member of Connected Technology Advisory and Windows Azure Insiders Groups, Windows Azure VTSP and works with Microsoft on helping the industry adopt Windows related technologies. He has well over two decades of experience as a developer, architect, speaker and author. He strongly focuses on R&D with practical implementation of approven architectural concepts in customer projects.
You can visit: http://developers.de/blogs/damir_dobric/default.aspx

He has been awarded as Most Valuable Professional (MVP) for extraordinary efforts in Connected System Developer technical communities . The official MVP profile: https://mvp.support.microsoft.com/profile=1600605C-C43F-4A2B-A793-3F9DF49A6AB9

Wie immer ist die Veranstaltung kostenlos! Weitere Informationen zur DNUG Braunschweig können hier gefunden werden: http://www.dotnet-braunschweig.de

Regeln | Impressum