OPTEN, das einzige Umbraco-zertifizierte Unternehmen der Schweiz

Progressive Web Apps - PWA

Hast Du schon mal von Progressive Web Apps gehört? Progressive Web Apps ist die Technologie, von der heutzutage die ganze Web- und App-Entwickler-Community spricht. Ihr wird unter anderem zugesprochen, dass sie Raumschiffe mit Warp-Antrieb sowie Zeitreisen mit einem DeLorean ermöglichen und die Macht wieder ins Gleichgewicht bringt. Ausserdem sollen Sie zur Rettung der Einhörner beitragen. Falls dir der Begriff Progressive Web App also noch nichts sagt, dann wird es nun eindeutig Zeit mehr zu erfahren.

weiterlesen>

Clean code: separation of concerns

Implementing a proper separation of concerns makes the code much more maintainable and extensible. In this blog I give a real life example.

weiterlesen>

Umbraco + Varnish = ♥

With this post I want to show you how Umbraco and Varnish could work together and gain higher performance.

weiterlesen>

Umbraco + Varnish = ♥

Mit diesem Blog-Eintrag will ich zeigen, wie Umbraco und Varnish zusammen arbeiten können, um eine noch bessere Performance zu erreichen.

weiterlesen>

How to track social interactions with Google Analytics

Some customers are interested in getting analytics data about the social interactions on their websites. They want to know how many likes, shares, tweets and follows are caused by visitors.

weiterlesen>

Umbraco Scaffolding

In meiner IPA (individuelle praktische Arbeit) habe ich mich damit auseinandergesetzt, wie wir uns beim Aufsetzen neuer Umbraco-Seiten Zeit und Arbeit sparen können. Das Resultat nennt sich "Scaffolding" und legt einen Grundstein für vereinfachte und einheitlichere Grundeinstellungen im Backend.

weiterlesen>

Our Octopus Odyssey: Part 7. less & CSS

We use less to manage our CSS files. When publishing we use a variable to determine the theme. The problem is that using Octopus we only want to publish once and deploy to all sites. To do this I wrote a special powershell script which compiles the CSS for every theme upon publish, so when the site is deployed the correct CSS is always used.

weiterlesen>

Our Octopus Odyssey: Part 6. NuGet repository

When we installed Octopus Deploy on our internal server we suffered very slow connection speeds between the server and the Tentacle. Despite great support from the Octopus Deploy team we could not fix the problem. But the great thing about Octopus Deploy is its flexibility. There was another way of approaching the problem which solved the issue, setting up our own nuget repository.

weiterlesen>

Our Octopus Odyssey: Part 5. web.config

In this blog I explain how we used the amazingly powerful “Substitute variables in files” feature in Octopus Deploy while deploying our web.config file.

weiterlesen>

Our Octopus Odyssey: Part 4. Database

In this blog I explain how we used DbUp to automate the deployment of database scripts alongside the website deployment using Octopus Deploy

weiterlesen>

Our Octopus Odyssey: Part 3. Variables and Powershell

In this blog I explain how I used Powershell to zip up the old web folder before deploying as a backup and changed IIS to display an under construction page whilst Octopus Deploy was deploying the site.

weiterlesen>

Our Octopus Odyssey: Part 2. Build Script

In this blog I detail how I wrote a custom build script which would delete the contents of the publish directory before publishing afresh, would use Octopack to pack a single project into a nuget package instead of all web applications in my solution and would set the build version to the date and time of the build.

weiterlesen>

Our Octopus Odyssey: Part 1. The Basics

We have one project where multiple copies of the same website are needed. Deployment had become a chore which took hours, and the possibility of making a mistake had increased. The answer was to automate the deployment and Octopus Deploy was the tool we chose.

weiterlesen>

Sharing resources between projects in a Visual Studio solution

We have a visual studio solution in which two web application projects share certain view, css, font, javascript and image files. Copying each of these resources twice to each project introduces the risk that when one is changed in the future, the developer forgets about the other and the two projects become out of sync. This blog describes how I shared resources between the two projects, so that the same physical file is referenced by both.

weiterlesen>

Merchello oder uWebShop?

Vergleich der beiden Open Source Shopsysteme Merchello und uWebShop für Umbraco zu einem gegebenen Use case.

weiterlesen>

Web Components

Web Components ist ein neuer Trend in der Web Entwicklung, welche meiner Meinung nach in der Zukunft der Webentwicklung eine wichtige Rolle spielen werden. Deshalb möchte ich mich in diesem Blogbeitrag ein wenig mit Web Components auseinandersetzen.

weiterlesen>

Project Preview

Wir wollten unsere Designs unseren Kunden so präsentieren, sodass sie einer echten Webseite möglichst ähnlich ist. Das Ergebnis ist ein jQuery-Plugin.

weiterlesen>

Getting the co-ordinates of a cell using Migradoc

I received a question relating to my earlier blog post about positioning text vertically in a Migradoc table cell. The question was for more detail on finding the co-ordinates of the cell inside the page. So I thought this would make a good topic for a follow up blog.

weiterlesen>

Einmal hinter den Mond und zurück

Einige Wochen nach Codegarden haben sich die für mich wichtigsten Inputs herauskristallisiert. Es sind diese Dinge, die hängen geblieben sind, die Ideen, die ich heute noch präsent habe. Der für mich bestimmt wichtigste Input kam von Marc Stöcker (Mindrevolution) und führte uns hinter den Mond („The Dark Side of the Moon“) - zur Wichtigkeit des Backend-Designs.

weiterlesen>

User Experience und Mythen

Das ganze Thema rund um User Experience fasziniert mich und ist unendlich lehrreich. Je mehr wir Leute und ihr Verhalten verstehen, desto besser und erfolgreicher werden unsere Webseiten.

weiterlesen>

Responsive Bilder mit maximaler Breite

Beim Erstellen einer responsive Website bin ich auf das Problem gestossen, dass ich Bilder mit der Bildschirmgrösse verkleinern möchte. Als ich nach kurzer Google Suche kein geeignetes Plugin fand, begann ich kurzerhand selbst mit der Entwicklung.

weiterlesen>

Writing a custom synonym Token filter in Lucene.net

Sometimes when running a search, you want to find synonyms of the term which was searched for as well as exact matches. This blog shows how I implemented a custom Token filter in Lucene.net to enable the indexing of synonyms for a text search.

weiterlesen>

CSS-Horizonterweiterung dank LESS

Ich bin kein Fan von CSS. Nicht weil die Möglichkeiten beschränkt sind, sondern weil die Struktur und die Lesbarkeit nicht existieren. Klar gibt es Tricks bei der Strukturierung, doch da steige ich lieber auf LESS um. LESS kann nicht nur genial strukturiert werden, es bietet auch viele coole Funktionen.

weiterlesen>

Web Emotions

Emotionen sind nicht nur etwas für Frauen. Und vor allem auch etwas, das unbedingt auf jede Webseite gehört.

weiterlesen>

Connect to your local SQL Server 2012 via TCP/IP

When testing our latest product I ran into the problem that I wanted to use the database running on my workstation but running the site on our local server. It took me a while to get it running but eventually I found the solution. Here I would like to share it with you:

weiterlesen>

The Code Garden

Software development has more in common with gardening than engineering.

weiterlesen>

Inspiration

Inspiration ist etwas Schönes. Und eine Kettenreaktion. Inspirierte Menschen schaffen wunderschöne Dinge, welche ebenfalls wieder Menschen inspirieren, schöne Dinge zu kreieren.

weiterlesen>

Richtig Verkaufen

Die OPTEN GmbH hat seit dem 1. Februar Michael Karrer als Verkäufer eingestellt. Leider haben viele Verkäufer keinen guten Ruf. Von „Türklinken-Putzer“ bis zu „Hausierer“ hört man alles. Das muss nicht sein. Und da man oder frau nicht über Nacht zum edlen Top Salesman wird, habe ich ein geniales Verkaufsseminar mit dem passenden Titel: „Verkaufen ist kein Kampfsport 1“ bei der Tschuppert AG besucht.

weiterlesen>

Configuring Entity Framework with Fluent Api

This blog post elucidates the basics of configuring Entity Framework to act as an ORM between an existing database and set of POCOs (Plain Old CLR Objects).

weiterlesen>

Minify and Bundle JavaScript- and CSS-Files

You probably heard, that you should include *.min.js from the JS-plugins in your project. Because the browser can load the file faster when it’s minified (less kilobytes). But then you can’t debug the plugin when an error occurs, because you just see the minified code.

weiterlesen>

Flying Google

Dank meinem Chef bin ich auf dem Weg zum wohl mächtigsten Internetgiganten der letzten Jahre: Welcome to Google.

weiterlesen>

Umbraco - Relationen (bezieht sich auf Umbraco 4-Versionen)

Die Relationen in Umbraco stellen ein mächtiges Instrument für faszinierende Verlinkungen dar. Lernen Sie hier die Hintergründe kennen.

weiterlesen>

Tastenkürzel für mehr Spass und Effizienz

Jeden Tag gehen wir zur Arbeit und jeden Tag klicken wir uns durch unsere Programme. Bringen wir Abwechslung in dieses eintönige Klicken! Tastenkürzel sind die Antwort - äusserst nützlich und leicht zu merken.

weiterlesen>

Vertical Text in a Migradoc table cell using PdfSharp

It is not immediately obvious how to insert vertical text (rotated by -90°) into a Migradoc table. In this blog post I explain how I managed to achieve this.

weiterlesen>

Logikelemente in Umbraco

Ihr erstes Logikelement in Umbraco: Die Navigation

weiterlesen>

HOW TO: Fehlgeschlagener Loginversuch mit CSS3 animieren

Seit ich mit CSS3 meine Animationen schreibe, bereitet mir das Ganze viel mehr Freude. Deshalb will ich euch etwas von meiner Leidenschaft für CSS3 mitgeben. Ich werde euch zeigen, wie ein fehlgeschlagenes Einloggen ziemlich schön dargestellt werden kann.

weiterlesen>

Improving performance with parallel loops

When carrying out computationally heavy calculations within a loop, dramatic performance improvements can be made by switching to a parallel loop. I recently implemented a parallel for each loop in order to benefit from the performance improvements. In this case study I outline what I learned, and some pitfalls to beware of.

weiterlesen>

Umbraco CMS - Installationsanleitung

Sehen Sie selbst, wie einfach das Website-Erstellen mit Umbraco ist! Mit dieser einfachen Step-by-Step Anweisung können Sie Umbraco in wenigen Minuten selber aufsetzen.

weiterlesen>

Using a variable as the database name in SQL Management Studio.

While writing a complicated SQL script recently I wanted to be able to test it on my local system. The script moved data from one database to another. Rather than having to go through the whole script once it was tested to change the local database name to the live name, my aim was to be able to use a variable as the database name.

weiterlesen>

Improve user experience with Single Page Applications

To get into the approach of Single Page Apps is not that easy, but when you’re in, you’ll have fun and love it. Single Page Apps are really interesting for mobile devices which don’t have the same network speed as a computer connected with a LAN cable. It opens a new experience for users. Even well-known sites such as Facebook and Soundcloud use the approach of Single Page Apps.

weiterlesen>

Enabling authentication for a Mongo DB instance running on Windows

It took me a while to figure out how to use authentication with Mongo DB, so I thought I would write a blog about it. This is useful for example, when using text search, your user needs to have admin rights for the database. It is also good practice whenever your database is hosted on a public server to use authentication, to stop just anyone being able to access your data.

weiterlesen>

Flat Design

Überall ist es seit einer Weile zu sehen und revolutioniert das Webdesign. Flat Design erobert unsere Screens und Herzen. Der neue Trend ist nicht nur schön für die Augen sondern auch höchst funktional. Dieser Blog-Eintrag geht deshalb sowohl an Designer als auch Nicht-Designer.

weiterlesen>

Tech Days 2013

On Tuesday the 12th November, Calvin and I went to the TechDays event in Basel.

weiterlesen>