Up Cocktail overview
DevForce 2010 Resource Center » Cocktail overview » Transitioning from the DevForce Application Framework to Cocktail

Transitioning from the DevForce Application Framework to Cocktail

Last modified on March 05, 2012 21:03

If you have been developing your current application using the DevForce Application Framework, rest assured that Cocktail kept the functionality that DAF provided. We strived to reduce some of the complexity and to clean up some obsolete concepts in DAF when creating Cocktail. Below you'll find a list of new features and breaking changes in Cocktail. As you can see, moving to Cocktail, mostly means updating namespaces and type names in your current application.


  • Simplified namespace structure, Cocktail puts all types into a single namespace to make it easier to find things.
  • Reducing from three assemblies to two assemblies plus an optional util assembly.
  • New ConnectionOptions class and IConnectionsOptionsResolver to manage connections to different data sources.
  • New DialogManager to handle dialogs and message boxes. 
  • New ValueConverters to handle image bindings.
  • New OperationResult class combining IResult and INotifyCompleted functionality to simplify the mixing of Caliburn.Micro and DevForce Coroutines.
  • New BusyWatcher class to handle busy indicators.
  • Support for asynchronous bootstrapping tasks.
  • Convenient static access to EventAggregator via static EventFns class.
  • Enhanced logging API and integrated logging with Caliburn Micro.
  • Support for custom MEF catalogs.
  • Reference application demonstrating real world use cases with Cocktail.
  • MIT license.

Breaking changes

  • Most code from Caliburn.Micro.Extensions and IB.Application.Framework.Core assemblies combined in the Cocktail assembly, except for the CombGuid class, which is found in the Cocktail.Utils assembly.
  • Caliburn.Micro.Extensions namespace changed to Cocktail.
  • IdeaBlade.Application.Framework namespaces changed to Cocktail.
  • BaseEntityManagerProvider class renamed to EntityManagerProvider.
  • Removed BaseFakeStoreEntityManagerProvider class.
  • Removed BaseDesignTimeEntityManagerProvider class.
  • CompositionHelper class renamed to Composition.
  • ICompositionCatalogService interface and CompositionCatalogService class removed and functionality moved to static Composition class.
  • CompositionContext class removed. Similar functionality is provided by IdeaBlade.Core.Composition.CompositionContext.
  • IVerifierResultNotificationService interface renamed to IValidationErrorNotification.
  • EntityManagerInterceptor class renamed to EntityManagerDelegate.
  • ICustomVerifier interface removed and replaced with EntityManagerDelegate.Validate(object, VerifierResultCollection).
  • Client-side validation is always taking place in Cocktail.
    • If no implementation of IValidationErrorNotification is found, a ValidationException is thrown instead.
  • BaseDesignTimeViewModelLocator class renamed to DesignTimeViewModelLocatorBase.
  • AlwaysCompleted class renamed to AlwaysCompletedOperationResult.
  • CoroutineFns.AsResult() extension method replaced with CoroutineFns.AsOperationResult().
  • AsyncResult class renamed to OperationResult and enhanced.
  • FrameworkBootstrapper.InitializeCompositionBatch renamed to PrepareCompositionContainer.
  • Removed implicit fake store initialization.
  • Removed all code that was marked obsolete.
  • ViewLocator not supporting singular 'View' and 'ViewModel' in folder names.
    • e.g. SomeNamespace.View.SomeView or SomeNamespace.ViewModel.SomeViewModel.

No design time data support in Silverlight 5 until .NET 4.5 is released, due to a known incompatibility between Silverlight 5 and .NET 4.

Tags: Cocktail
Created by DevForce on January 13, 2012 16:53

This wiki is licensed under a Creative Commons 2.0 license. XWiki Enterprise 3.2 - Documentation. Copyright © 2015 IdeaBlade