An Overview of C# 4.0 – CodeProject

Februar 2nd, 2014

  • Dynamic Lookup

    When you declare a variable with dynamic, all of its method invocations or member accesses will be resolved at runtime.

  • Generics Covariance and Contravariance

    In previous versions of C#, generic types are invariant. That is, for any two types GenericType and GenericType, in which T is a subclass of K or K is a subclass of T, GenericType and GenericType have no inheritance relationship whatsoever to each other. On the other hand, if T is a subclass of K and if C# supports covariance, GenericType is also a subclass of GenericType, or if C# supports contravariance, GenericType is a superclass of GenericType.

  • Optional and Named Parameters

    The last two features of C# 4.0 that we’ll discuss about are optional parameters and named parameters. These features have been with VB.NET since forever, and I’m glad they are finally implemented in C#.

Posted from Diigo. The rest of my favorite links are here.

Kategorien: Allgemein | Kommentare deaktiviert

ISO/IEC 9126 – Wikipedia

Januar 28th, 2014

    • ISO/IEC 9126
    • Die Norm ISO/IEC 9126 stellt eines von mehreren Modellen dar, um Softwarequalität sicherzustellen. Es bezieht sich mit seinen Kriterien ausschließlich auf die Qualität der Software als ‘Produkt’ (Produktqualität), nicht oder nur indirekt (über die Ergebnisse) auf die Qualität der Softwareentwicklungsprozesse (Prozessqualität).
    • Qualitätsmerkmale
    • Funktionalität: Inwieweit besitzt die Software die geforderten Funktionen? – Vorhandensein von Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen.
    • Interoperabilität: Fähigkeit, mit vorgegebenen Systemen zusammenzuwirken.
    • Sicherheit: Fähigkeit, unberechtigten Zugriff, sowohl versehentlich als auch vorsätzlich, auf Programme und Daten zu verhindern.
    • Konformität: Fähigkeit des Softwareprodukts, Standards, Konventionen oder gesetzliche Bestimmungen und ähnliche Vorschriften bezogen auf die Funktionalität einzuhalten
    • Zuverlässigkeit: Kann die Software ein bestimmtes Leistungsniveau unter bestimmten Bedingungen über einen bestimmten Zeitraum aufrechterhalten?
    • Bedienbarkeit: Aufwand für den Benutzer, die Anwendung zu bedienen.
    • Wartbarkeit/Änderbarkeit: Welchen Aufwand erfordert die Durchführung vorgegebener Änderungen an der Software? – Aufwand, der zur Durchführung vorgegebener Änderungen notwendig ist. Änderungen können Korrekturen, Verbesserungen oder Anpassungen an Änderungen der Umgebung, der Anforderungen oder der funktionalen Spezifikationen einschließen.
    • Testbarkeit: Aufwand, der zur Prüfung der geänderten Software notwendig ist.
    • Übertragbarkeit: Wie leicht lässt sich die Software in eine andere Umgebung übertragen?

Posted from Diigo. The rest of my favorite links are here.

Kategorien: Allgemein | Kommentare deaktiviert

Overview of C# 3.0

Januar 27th, 2014

    • In an implicitly typed local variable declaration, the type of the local variable being declared is inferred from the expression used to initialize the variable.
    • Extension methods are static methods that can be invoked using instance method syntax. In effect, extension methods make it possible to extend existing types and constructed types with additional methods.
    • Lambda expressions provide a more concise, functional syntax for writing anonymous methods.

      A lambda expression is written as a parameter list, followed by the => token, followed by an expression or a statement block.

    • An object initializer specifies values for one or more fields or properties of an object.
    • var r = new Rectangle {  P1 = new Point { X = 0, Y = 1 },  P2 = new Point { X = 2, Y = 3 } };
    • A collection initializer specifies the elements of a collection.
    • List digits = new List { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    • C# 3.0 permits the new operator to be used with an anonymous object initializer to create an object of an anonymous type.
    • new { p1 = e1 , p2 = e2 , … pn = en }
    • Query expressions provide a language integrated syntax for queries that is similar to relational and hierarchical query languages such as SQL and XQuery.
    • A query expression begins with a from clause and ends with either a select or group clause. The initial from clause can be followed by zero or more from, let, where or join clauses. Each from clause is a generator introducing a range variable ranging over a sequence. Each let clause computes a value and introduces an identifier representing that value. Each where clause is a filter that excludes items from the result. Each join clause compares specified keys of the source sequence with keys of another sequence, yielding matching pairs. Each orderby clause reorders items according to specified criteria. The final select or group clause specifies the shape of the result in terms of the range variable(s). Finally, an into clause can be used to “splice” queries by treating the results of one query as a generator in a subsequent query.
    • Oftentimes properties are implemented by trivial use of a backing field, as in the following example:
    • Automatically implemented (auto-implemented) properties automate this pattern.
    • public Class Point {  public int X { get; set; }  public int Y { get; set; } }

Posted from Diigo. The rest of my favorite links are here.

Kategorien: Allgemein | Kommentare deaktiviert

What’s New in the C# 2.0 Language and Compiler

Januar 27th, 2014

    • Generics 
       

      Generic types are added to the language to enable programmers to achieve a high level of code reuse and enhanced performance for collection classes.

    • Iterators 
       

      Iterators make it easier to dictate how a foreach loop will iterate over a collection’s contents.

    • Nullable Types 
       

      Nullable types allow a variable to contain a value that is undefined.

    • Static Classes 
       

      Static classes are a safe and convenient way of declaring a class containing static methods that cannot be instantiated.

Posted from Diigo. The rest of my favorite links are here.

Kategorien: Allgemein | Kommentare deaktiviert

APP.NET v2.4.3

November 2nd, 2009

Die neueste Version des PM-Tools Auto Project Planner (APP.NET) ist verfügbar. Die Version enthält keine neuen Features, dafür aber weitere kleinere Fehlerkorrekturen.

Download APP.NET.msi (390KB)
Download APP.NET.zip (206KB)

Kategorien: Auto Project Planner | Kommentare deaktiviert

APP.NET-FAQ: Der Algorithmus / Das Abbruchkriterium

Oktober 31st, 2009

  • MSE = Mean Square Error = Mittlerer Quadratischer Fehler
    In unserem Fall die Summe der quadratischen Abweichung zwischen dem erwarteten und berechnetem Ende aller Tasks
    D.h. für den einzelnen Task (Erwartetes Ende (Expected End) - Berechnetem Ende)²
    Oder noch einfacher ausgedrückt:
         Task A soll zum Datum X fertig sein, wird aber erst zu X+5 Tage fertig
         Task B soll zum Datum Y fertig sein, wird laut Berechnung erst 10 Tage später fertig
         MSE = 5² + 10² = 125
         Genau das ist der Fehler (Error) der in der ersten Zeile des Berechnungs/Calculation Fensters angezeigt wird
  • Den MSE gilt es zu minimieren. Das funktioniert so…
  • Iterativer Algorithmus
    Ein Algorithmus ist iterativ, wenn er das Ziel durch wiederholte Anwendung gleicher Arbeitsschritte erreicht.
    In unserem Fall wird in jeder Iteration der MSE erneut berechnet.  
  • Monte Carlo Prinzip
    Die Aufgaben werden nach Vorgaben des Benutzers und dem Zufalls(=Monte Carlo)-Prinzip (unter Berücksichtigung einer Priorisierung) den Mitarbeitern zugeordnet.
  • Priorisierung
    Pro Iteration wird für jene Tasks, die den größten Anteil am Gesamtfehler liefern die Priorisierung erhöht
  • Das Abbruchkriterium bzw. Was wenn die Berchnung nicht endet?
    Ziel ist es einen MSE von 0 zu erreichen, d.h. alle Task werden vor den vom Benutzer definierten Zieldatum fertig
    Ist dies nicht möglich, wird auch unser Algorithmus keine Lösung finden und nicht abbrechen. Das müssen dann sie manuell machen (stop calculation)
  • Ich plane meine Tasks immer so, dass die Berechnung innerhalb weniger Sekunden abgeschlossen ist.

Kategorien: Auto Project Planner | Kommentare deaktiviert

APP.NET-FAQ: Fix Today?

Oktober 26th, 2009

Der Algorithmus benötigt ein Startdatum der Berechnung, d.h. mit welchem Datum kann begonnen werden scheibchenweise Aufgaben den Mitarbeitern zuzuordnern. Diesbezüglich gibt es zwei Vorgehensweisen.
1) Wenn die Checkbox gesetzt, wird das Startdatum auf den Wert links davon fixiert. D.h. wird ein Projekt später wieder geöffnet, rechnet das genau so durch wie beim letzten mal. Das wird auch für die Beispiele/Examples verwendet. Es würde ja verwundern, wenn ein Beispiel Fehler zurückliefert.
2) Ist die Checkbox nicht gesetzt, wird beim Öffnen des Projekts das heutige Datum als Today eingetragen. Diese Einstellung sollte beim Arbeiten mit dem Tool im Echtbetrieb vorliegen.
Sie erstellen einen Plan, der rechnet durch. Zwei Wochen später wird das Projekt wieder geöffnet, der Plan rechnet nicht mehr durch. Hier ist es die Aufgabe des PM die geleistete Arbeit und eventuell geänderte Abschätzungen einzugeben. Das macht man solange bis der Plan wieder durchrechnet und in ein, zwei Wochen… das ganze von vorne.

Kategorien: Auto Project Planner | Kommentare deaktiviert

APP.NET-FAQ: Sind alle Eingabevariablen notendig?

Oktober 21st, 2009

Nein. Es reicht eine Aufgabe/Task und einen Mitarbeiter/Worker zu erstellen und miteinander zu verknüpfen (über die Checkbox beim MA, wenn die AG selektiert ist). Bei der Aufgabe muss eine Abschätzung in Stunden angegeben werden. Zusätzlich muss noch ein Zieldatum/Expected End festgelegt sein, das aber mit Heute + 1 Monat bereits einen Default Wert hat.
Damit kann die Berechnung schon gestartet werden (Strg + Tab).
Alles weitere dient dazu die Aufgaben (z.B. gegenseitige Abhängigkeiten), die Mitarbeiter (z.B. Fähigkeiten, Anwesenheit) und die Zuordnung 1A-nMA festzulegen.

Übrigens… das Ergebnis des oben genannten, einfachsten APP-Projekts links, das mitgelieferte Beispiel Example – RUP.appX rechts

 Ergebnis - Sehr einfache Aufgabe          Ergebnis - Example RUP

Kategorien: Auto Project Planner | Kommentare deaktiviert

APP.NET v2.4.2

Oktober 21st, 2009

Die neueste Version meines PM-Tools Auto Project Planner (APP.NET) ist verfügbar. Die Version enthält keine neuen Features, dafür aber einige Fehlerkorrekturen. 

Download APP.NET.msi (379KB)
Download APP.NET.zip (196KB)

Kategorien: Auto Project Planner | Kommentare deaktiviert

Hallo Welt!

Oktober 20th, 2009

Willkommen in meinem Blog über Softwareentwicklung und Projektmanagement im Allgemeinen und über meine Open Source Software APP.NET im Speziellen. Der Umstieg von einer konventionellen Homepage auf einen (Wordpress-)Blog und der Umstieg von Englisch auf Deutsch hat denselben Hintergrund. Ich möchte schnell über interessante Themen berichten und einfach mit Lesern des Blogs und Anwendern meiner Software in Kontakt treten können.

Welcome to my Blog about software development, project management and my Open Source Software APP.NET. Unfortunately – for you – the Blog will be in German language only. If you’re interested in the project management tool APP.NET please visit me @ www.codeplex.com.

Solltest Du an meinem Privatleben mit Hund und Katz interessiert sein, hast du dich ein wenig verirrt. Statt kitesoft.net heisst es dann nämlich softkite.net und statt SWE&PM – A Pitbull’s Diary.

Das wars fürs erste. Bis bald,
Dein Don Didi

Kategorien: Auto Project Planner, Projekt Management, Software Entwicklung | Kommentare deaktiviert