Multithreading is becoming an increasingly important part of modern programming. One reason for this is that multithreading enables a program to make the best use of available CPU cycles, thus allowing very efficient programs to be written. Another reason is that multithreading is a natural choice for handling event-driven code, which is so common in today’s highly distributed, networked, GUI-based systems.

Of course, the fact that widely used operating systems support multithreading is also a factor. Whatever the reasons, the increased use of multithreading is changing the way that programmers think about the fundamental architecture of a program.

Although C++ does not contain built-in support (*) for multithreaded programs, it is right at home in this arena.

In this blog we will have a look at some features of multithreaded support in the Qt-Framework.

Continue reading

Posted in C++, Embedded | Tagged , | Leave a comment

Since the Gradle build system (http://www.gradle.org) gets more and more attention I decided to have a look at how it works. This article should give you a brief overview of some of the features so that you get the taste of Gradle. It is not meant to be a tutorial to get you started and it’s recommended that you know about another build system. Continue reading

Posted in ALM, Java | Tagged , , | Leave a comment

As of now bbv Software Services also is available under www.bbv.eu to take into account the opening of our German branch earlier this month.

Posted in Announcement | Leave a comment

In ihrem neusten Artikel zeigen die beiden Softwareingenieure von bbv Software Services, Thorsten Ruf und Roland Simon, die neuen Konzepte des Team Foundation Servers (TFS) 2012 für die aktive Unterstützung des agiles Requirements Engineerings. Sie beleuchten insbesondere die UI-Planung via Storyboard und den Request Feedback.

Thorsten Ruf und Roland Simon sind Experten für die Einführung, den Betrieb sowie individuelle Anpassungen und Migrationen des Team Foundation Servers.

Erschienen im windows.developer, 10.2012

Posted in .NET, Agile, ALM, Requirement, Team Foundation Server | Tagged | Leave a comment

In my current project, we do a lot of refactoring to keep the source code as simple and understandable as possible. This involves a lot of renaming of classes and moving classes between namespaces to structure the code in a better understandable way (here is explained how we structure our code). Sometimes, this results in unit tests not renamed or moved along with the production classes they test.

Therefore, I wrote some NDepend queries that show us these misplaced or misnamed test classes.

Continue reading

Posted in .NET, Clean Code, Test Driven Development | Tagged , , | Leave a comment

We are extremely proud to present a 2-day workshop about RavenDB with the inventor himself. Oren Eini aka Ayende Rahien will visit Switzerland and share with you great insights into RavenDB and especially the new version 1.2 release. Falling asleep in your chair was yesterday. Ayende is not only a great speaker but also an extremely smart person which knows to challenge his audience. Be part of it!

You will learn how to use the Document Database RavenDB efficiently in your applications to save time and effort on communicating with database storage. During the course we will, as a team, build a practical application demonstrating all important data management patterns.

The course will be on October 1-2 in Lucerne an will be held in Englisch. Limited seats available only.

Register now!

Members of the .NET Usergroups Berne and Central Switzerland get a discount of 20%!

Posted in .NET | Tagged , , , | Leave a comment

In seinem neusten Artikel geht Georg Lampart auf die Server-Side Traces des SQL Servers ein. Probleme in der Datenbank kommen immer im ungünstigsten Moment: Der nächtliche Import schlägt fehl, Datenbanktransaktionen sind plötzlich langsam, bei einem Benutzer treten Datenbankfehler auf, die zudem auf der Testumgebung nicht nachvollzogen werden können.

Der SQL Server bietet mit den Server-Side Traces ein leistungsfähiges Werkzeug, das sich für Produktivsysteme sehr gut eignet. Der Einsatz wird mit vier Hilfsprozeduren vereinfacht, die im Artikel vorgestellt werden.

Georg Lampart ist Senior Software Engineer bei der bbv Software Services AG mit Schwerpunkt SQL-Server-Datenbankentwicklung sowie der .NET-Softwareentwicklung in Bereich Businessapplikationen.

Erschienen im windows.developer, 8.2012

Posted in .NET, Announcement, SQL | Tagged , | Leave a comment

In my last post I described the ResourceManager and how to create a filebased ResourceManager. This post covers  how we can get resources from the server to the client and how to handle multiple resource managers and basenames. Continue reading

Posted in .NET | Tagged | Leave a comment

One of the .NET tracks during the Bootcamp 2012 in Barcelona offered an opportunity to use, learn and analyze Caliburn.Micro 1.3. After using PRISM 1.0 for over a year I decided to compare those 2 MVVM frameworks. Continue reading

Posted in .NET, UI | Tagged , , , | 1 Comment

Memory management is one of the most fundamental areas of software engineering.
In many scripting languages you do not have to worry about memory management, but that does not make memory management any less important.

In languages like C and C++, memory management was left to the responsibility of the software engineer. Modern C++ designs make heavy use of dynamic memory. (e.g. Inversion of control, dependency injection, factories, collections of objects, design for testability, event passing with objects, etc.)
This is a standard practice in desktop applications, where memory is freely available and latency not an issue.

On embedded and real time systems, the situation is different:
Dynamic allocation of memory may be non-deterministic, depending on the underlying operating system. Fragmentation of the dynamic memory pool can lead to a slower system responsibility over time or even worse to “out of memory” exceptions, even if there is enough memory available.

A conservative approach in designing real-time systems is not to use dynamic memory at all. But there are also other possibilities to implement such systems.
Continue reading

Posted in C++, Embedded | Tagged , , | Leave a comment