Johannes' Blog
JavaScript Best Practices – Presentation
On 24, Feb. 2013 | inGeneral | vonJohannes Hoppe
Of course, a presentation about JavaScript should be made with HTML5 & JavaScript. So, here it is! Enjoy the show in a new browser-tab or in the tiny iframe below. You might also want to fork it on GitHub or save it as an old-fashioned static PDF.
JavaScript Best Practices
On 01, Feb. 2013 | inGeneral | vonJohannes Hoppe
Kein modernes ASP.NET Projekt kommt heute noch ohne JavaScript aus. Es gab Zeiten in denen Skriptsprache unterschätzt wurde. Dies ist längst vorbei. Es ist an der Zeit, dass wir das Potential von JavaScript voll ausnutzen. Als Berater für ASP.NET MVC kennt Johannes Hoppe die erfolgreichen als auch die unglücklichen Webprojekte. Dieser intensive Vortrag wird Ihnen zeigen, wie Ihr JavaScript-Code ein solider Baustein für den Erfolg wird!
Entwickeln Sie pragmatischen Clean Code mit JavaScript. Mit 0% PowerPoint und 100% Browser stellt Johannes Hoppe seine persönlichen Best-Practices für JavaScript vor. Den „Software Craftsman“ zeichnen dabei Wissen, Werkzeuge und Übung aus. Lernen Sie die wichtigsten Patterns für eine stabile und modulare Website kennen. Überprüfen Sie Ihre persönliche Werkzeugkiste für Entwicklung, Testing und Deployment.
[Gist] ASP.NET MVC bind String property as string.Empty instead of null
On 27, Jan. 2013 | inAOP | vonJohannes Hoppe
Currently I’m migrating a good-old ASP.NET MVC v1 project to v4.
In ASP.NET MVC 1.0 the default behavior of Model Binding was to initialize strings to String.Empty. Imagine this simple method:
public ActionResult Hello(string name) { if (name.Contains("Bob")) { return Content("Hi my friend!"); } return Content("Hi stranger!"); }
However, later versions of ASP.NET MVC initialize Strings to null. This results in some nasty NullReferenceExceptions all over the code. On the one hand this change of the framework might be reasonable. The default value of a String is null. But on the other hand we should try to avoid null values at all. As soon as we start to tolerate null values we are going to clutter the code with guards against them:
Vorträge und Termine 2013
On 18, Jan. 2013 | inGeneral | vonJohannes Hoppe
Mit insgesamt 12 Vorträgen und tollem Feedback war das Jahr 2012 für mich als Sprecher ein voller Erfolg. Ich bin gespannt, ob ich eine vergleichbare Serie dieses Jahr wiederholen kann. Folgende Liste wird laufend aktualisiert:
Konferenzen
- 21.02.2013 – .NET UG Rhein-Neckar: JavaScript Best Practices
- 26.02.2013 – MongoDB Berlin: Software Tests with MongoDB
- 28.03.2013 – DHBW Mosbach: 1. Gastvorlesung zum Thema NoSQL
- 04.04.2013 – DHBW Mosbach: 2. Gastvorlesung zum Thema NoSQL
- 03.05.2013 – dotnet Cologne: Sicherheit von HTML5 und JavaScript
- 05.06.2013 – Karlsruher Entwicklertag: Sicherheit von HTML5 und JS
- 15.06.2013 – .Net Day Franken: Software Craftsmanship mit JS
SolarTournament – November 2012 Update
On 30, Nov. 2012 | inNode.js | vonJohannes Hoppe
After some busy months I published a new version of SolarTournament to Azure. The public git repository was updated, too.
Under the hood it’s a massive rewrite of the client-side code. I would like to thank Ingmar Wietig for his great work. He is definitely more skilled in math and general game related concepts than me! :-)
Improvements of the physics engine:
- free 360° movement; it’s now possible to fly a loop
- the spaceships model gets a tilt when changing direction
- new collision detection that calculates the intersection of meshes
- third-person view
WebTechCon 2012: Die Zukunft von Browser-Games mit HTML5 und WebGL
On 16, Okt. 2012 | inGeneral | vonJohannes Hoppe
Mit HTML5 & JavaScript lassen sich Browser-Games kreieren, die vormals nur mit proprietären Plugins möglich waren. Dazu zählen hardwarebeschleunigte 3D-Grafiken, welche über den WebGL-Standard unterstützt werden. Johannes Hoppe stellt die Tools und Technologien vor, die für die Erstellung von SolarTournament verwendet wurden.
Demos:
Download:
NRW Conf 2012: NoSQL in .NET – mit Redis und MongoDB
On 12, Okt. 2012 | inNoSQL | vonJohannes Hoppe
Der Vortrag stellt die beiden NoSQL-Datenbanksysteme Redis und MongoDB näher vor und gibt Praxisbeispiele. Ich präsentiere die beiden Systeme live an dem ASP.NET MVC Beispielprojekt WebNoteNoSQL.
Downloads:
- Folien: NoSQL in .NET mit Redis und MongoDB
- Demo-Code: WebNoteNoSQL
- MongoDB als Nuget Package: Mongo2Go
WDC 2012: Die Zukunft von Browser-Games mit HTML5 und WebGL
On 18, Sep. 2012 | inGeneral, Node.js | vonJohannes Hoppe
Mit HTML5 & JavaScript lassen sich Browser-Games kreieren, die vormals nur mit proprietären Plugins möglich waren. Dazu zählen hardwarebeschleunigte 3D-Grafiken, welche über den WebGL-Standard unterstützt werden. Johannes Hoppe stellt die Tools und Technologien vor, die für die Erstellung von SolarTournament verwendet wurden. Allen Teilnehmern wird der Source-Code dieses Multiplayer 3D Action-Shooters sowie eine Auswahl der Arbeitsdateien zur Verfügung gestellt.
Demos:
Download:
WDC 2012: Node.js & MongoDB – Folien und Downloads
On 17, Sep. 2012 | inNode.js, NoSQL | vonJohannes Hoppe
Zwei neue Technologien für die Cloud sind das JavaScript-Framework Node.js und die NoSQL-Datenbank MongoDB. Johannes Hoppe gibt einen Schnellstart in die beiden Open-Source-Systeme.
Downloads:
- SolarTournament (Node.js & MongoDB)
- WebNoteNoSQL (MS SQL vs MongoDB)
Fachartikel bei der Hakin9 – Sicherheit von Webanwendung (kostenlos!)
On 07, Sep. 2012 | inGeneral | vonJohannes Hoppe
Die August-Ausgabe 2012 des Hakin9 IT-Security Magazins ist ganz den Themen Server- und Netzwerksicherheit gewidmet. In einem ausführlichen 9-seitigen Artikel gehe ich auf die wichtigsten Angriffsvektoren bei Webanwendungen ein. Es werden exemplarisch Sicherheitslücken aufgezeigt und Gegenmaßnahmen benannt. Unter anderem werden PHP-Schachstellen, SQL-Injections, Session Hijacking, Cross-Site Request Forgeries (CSRF) und verschiedene Cross-Site Scripting Angriffe (XSS) erläutert. Egal ob JAVA, PHP, C# oder Ruby – die Schwachstellen sind konzeptbedingt und betreffen alle Programmier- und Skriptsprachen. Ich empfehle diese Ausgabe der Hakin9 allen Betreibern und Entwicklern von Webanwendungen als Pflichtlektüre!