Archive for Mai, 2012

 

FocusMeter: Produktivität messen

Read full article  | Kommentare deaktiviert

Wie viel Prozent unserer Arbeitszeit sind wir wirklich produktiv? Um dafür eine Antwort zu finden hat Daniel Lang das hilfreiche Open Source Tool “FocusMeter” entwickelt. Es wird damit die Produktivität gemessen.

Das Tool klinkt sich in den Tray. So wird es angezeit, wenn man produktiv ist:

Ein roter Punkt erscheint, wenn man nicht produktiv ist:

Daniel hat eine ausführliche Zusammenfassung auf seinem Blog geschrieben.

Als Datenspeicher verwendet er RavenDB. Die dokumentenorientierte Datenbank wurde von Ayende in C# entwickelt und steht sowohl unter einer Open Source wie auch kommerziellen Lizenz zur Verfügung. Ayende ist am 14. September bei der Community Konferenz Professional .NET 2012 in Wien zu Gast.

Fazit: das Tool ist einfach zu verwenden und es ist sehr interessant, welche Daten daraus gewonnen werden können.

Read More

Simple.Data

Read full article  | Kommentare deaktiviert

Simple.Data  ist eine leichtgewichtige Datenzugriff Komponente für .Net die SQL Injection Attacken verhindert, wobei langwieriger ADO.Net Code oder generierte ORM Modelle nicht benötigt werden.

 Anstatt

public User FindUserByEmail(string email)
{
    User user = null;
    using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Default"].ConnectionString))
    using (var command = new SqlCommand("select id, email, hashed_password, salt from users where email = @email", connection))
    {
        command.Parameters.Add("@email", SqlDbType.NVarChar, 50).Value = form.Email);
        connection.Open();
        using (var reader = command.ExecuteReader())
        {
            if (reader.Read())
            {
                user = new User {Id = reader.GetInt32(0), Email = reader.GetString(1), Password = reader.GetString(2), salt = reader.GetString(3)};
            }
        }
    }
    return user;
}

 kann auch einfach folgender Code mit Simple.Data verwendet werden.

public User FindUserByEmail(string email)
{
    return Database.Open().Users.FindByEmail(email);
}

 Es werden die Methoden- und Eigenschaftsnamen zur Laufzeit interpretiert und Simple.Data erzeugt anhand von Konventionen den benötigten SQL Befehl. Intern wird das seit .Net 4 vorhandene dynamic Feature verwendet. Im oben gezeigten Beispiel gibt es keine definierte Methode “FindByEmail”, aber Simple.Data kann davon ablesen, dass eine Select Abfrage gegen die Tabelle “Users” durchgeführt werden soll bei der die Email Adresse dem übergebenen Wert entspricht.

 Simple.Data ist viel leichtgewichtiger wie die O/R Mapper NHibernate , Entity Framework  und ähnliche. Aufgrund der Verwendung von Konventionen werden keine Mapping Dateien benötigt und viele Abfragen können aus dem Methodennamen abgelesen werden. Es werden dabei die Basis Such-Methoden FindBy* und FindAllBy* unterstützt. Sie generieren dabei Gleichheitsabfragen (where email = ‘…’). Für komplexere Abfragen können die Find* und FindAll* Methoden verwendet werden. Diese unterstützen Ungleichheits-Operatoren, Like und Joins. Um Daten zu schreiben, aktualisieren oder zu löschen gibt es die entsprechenden Insert, Update und Delete Methoden. Es können auch Stored Procedures genutzt werden.

Beispiele für Abfragekonventionen:

User u = (User)db.Users.FindById(23);
IEnumerable u = db.Users.FindByAllByName("Bob").Cast();
db.Users.FindAllByType("Admin")

Mehr zu den möglichen Methoden und Konventionen sind im Simple.Data Wiki zu finden.

 Simple.Data unterstützt nicht nur SQL Server 2005 und spätere Versionen sowie SQL Server Compact 4.0, sondern auch My SQL 4.0 (und höher), SQLite, Oracle und MongoDB.

 

Simple.Data kann mit Hilfe von NuGet direkt im Visual Studio Projekt referenziert werden.

Greg Young und Rinat Abdullin haben bei der Community Konferenz “Professional .Net 2011″ in Wien über CQRS gesprochen. Simple.Data kann beispielsweise für die Read Seite und dessen dünnen Read Layer verwendet werden um Abfragen einfach und effektiv umzusetzen.

Read More

Professional .NET 2012 Homepage ist online

Read full article  | Kommentare deaktiviert

Die Professional .NET 2012 Community Konferenz findet heuer am 14. September in Wien mit Oren Eini (aka Ayende Rahien) und Sebastien Lambla statt. Die Homepage inklusive Session Programmm ist nun online: www.dotnet-austria.at
Ihr wollt eine Session machen? Schickt euren Abstract an uns: http://pronet2012.dotnet-austria.at/call-for-papers/

Das Extra Frühbucher Ticket kostet 75 €. Damit wird die Tagungspauschale des Hotels (Essen, Getränke, Beamer, Leinwand,…) bezahlt. Bitte sichert euch eure Tickets rechtzeitig.

http://pronet2012.dotnet-austria.at/anmeldung/

Read More