This project is read-only.

Version 1.10 (02. Nov 2012)


  • CHG: [Breaking] Renamed overloaded extension method WaitForCompletion() on TaskExtensions to WaitQuietly(). The method blocks the current thread until the supplied task completes much like task.Wait(), but in contrast WaitQuietly() does not throw an exception in case that the task canceled or completed in a faulted state.

  • CHG: [Breaking] Renamed type NullTaskCompletionSource to TaskCompletionSource. This type is a simple wrapper around TaskCompletionSource{T} for the sole purpose of signaling completion via the returned Task. It is not possible to complete the Task in a canceled or faulted state.

  • CHG: [Breaking] Renamed type Empty to None to prevent naming collisions with properties named 'Empty'. In addition, the type has been moved from assembly amarok.agents to amarok.common and from namespace Amarok.Agents to Amarok.

  • CHG: [Breaking] Moved type FailureException from assembly amarok.agents to amarok.common. Changed namespace from Amarok.Agents to Amarok.

  • NEW: Added method IsAssignableTo(..) to type Verify, which verifies that the supplied type is assignable to the expected target type. The target type can be either a base class, meaning that the supplied type must derive from that base class, or the target type can be an interface, meaning that the supplied type must implement the specified interface.

  • NEW: Added static properties Completed and Canceled to type TaskHelper. These properties return pre-instantiated cached Task objects that have alreay been completed, either in succeeded or canceled state.

  • NEW: Made utility types NativeEnvironment and NativeThreading in namespace Amarok.Native publicly available.

  • CHG: Reviewed and updated documentation on all types in assembly amarok.common.


  • CHG: [Breaking] Moved types Empty and FailureException into assembly amarok.common.
  • NEW: Added missing extension method Post(Object, Message) to IAgent. Prior, this overloaded method was only available from within an agent (in types derived from Agent) but not when using an agent interface.

  • NEW: Added protected method GetAgentReference() to Agent. This method returns a new agent reference to the calling agent, which can be handed over to other agents via messages.

  • NEW: Added an implict cast operator that is able to convert an agent instance into an agent reference. That way it is no longer necessary to call GetAgentReference() when supplying an agent object where an AgentReference is expected.


  • CHG: [Breaking] All async methods on Controller like SendAsync, AccessViewModelAsync(..) etc. now return a Task that represents the ongoing asynchronous operation and can be used to wait for completion, to register a continuation and to access state and result of the operation.

  • CHG: [Breaking] SendAsync(..) and InvokeAsync(..) on IView now return a Task which represents the asynchronously running operation. This task can be used to wait for completion, to register a continuation and to access the state of the operation.

  • CHG: [Breaking] Renamed overloaded method Close(..) on Controller to CloseWindow(..).

  • CHG: [Breaking] Removed type PresentationSubsystem.

  • CHG: [Breaking] Removed type Controller{TViewModel, TView}, but added Controller{TViewModel, TEnvironment, TOptions}.

  • CHG: [Breaking] Renamed ViewAdapter{T} to FrameworkElementViewAdapter{T}.

  • CHG: [Breaking] Removed various SpawnController(..) method overloads from ControllerFactory.

  • NEW: Introduced ViewDescription and derived types WindowDescription and WindowDescription{TWindow, TController, TViewModel}. A view description is a description of the combination of view, view model and associated controller. A view description is also capable to instantiate and connect view and controller and to manage the life cycles of those instances.

  • NEW: Added overloaded methods ShowWindow(..) and ShowDialog(..) to Controller that accept a WindowDescription. These methods send specific view actions to the associated view to request the view to show a new main-level view or to show a dialog window. New functionality added to ViewWindow supports these view actions.


Last edited Nov 6, 2012 at 12:47 PM by OlafKober, version 2


No comments yet.