Caliburn Micro .Net 3.5 - Building 1.0 RC for WPF 3.5

Feb 28, 2011 at 3:18 PM
Edited Jun 29, 2011 at 2:12 AM

Instructions How to compile Caliburn.Micro framework for .NET 3.5 (WPF)

Update: Updated Instructions have been posted on Firegarden Software compiling for Caliburn.Micro 1.1 RTW - Please use these instructions for all versions

Downlod Caliburn.Micro 1.0 RC and build Caliburn.Micro 1.0 on the .net framework 3.5 runtime.

  1. Download the latest Caliburn.Micro .net 4.0 source code.
  2. Change the project to target the .net 3.5 runtime
  3. Remove the reference to System.Windows.Interactivity (this will be replaced with assembly from Blend 3 SDK
  4. Add new reference to System.Windows.Interactivity from  Blend 3 SDK  or download specific assembly files here.
  5. Add a reference to the reactive extensions framework for .net3.5 sp1 or download System.CoreEx.dll assembly file here.
  6. At this point you will almost compile. There are a few quick changes to source:
  7. First remove the #if else code below and use the simplified #else version as "public interface IParent : IParent"
  8. Second problem will be related to a ActionMessage.cs guardPars.Zip() call. See code below.

#if NET
public interface IParent<out T> : IParent
#else
public interface IParent : IParent
#endif

'System.Array' does not contain a definition for 'Zip'

The following class is code to fix the error Caliburn.Micro 1,0 RC will compile under .Net 3.5.

You must add this to ActionMessage.cs or a file of its own as there is no Linq Zip implementation in 3.5.Edit: This code was not compiling but it does now

static class EnumerableExtension
{

public static IEnumerable<TResult> Zip<T1, T2, TResult>(this IEnumerable<T1> source1, IEnumerable<T2> source2,

Func<T1, T2, TResult> func){

            using (var iter1 = source1.GetEnumerator())

            using (var iter2 = source2.GetEnumerator())

            { while (iter1.MoveNext() && iter2.MoveNext()) { yield return func(iter1.Current, iter2.Current); } }

        }

    }
}

 

Download Required and Compiled Assemblies

To speed up the process you can  download the required 3.5 binaries including the .net 3.5 System.Windows.Interactivity.dll and System.CoreEx.dll along with the final Caliburn.Micro.dll 3.5 build from my website.

If you have any questions please respond to this thread and I will replay asap.

build
Mar 31, 2011 at 1:20 PM
Edited Mar 31, 2011 at 1:20 PM

What did you do for DatePicker in ConventionManager?  I added a reference to the WPFToolkit however I still get the build error:

The type or namespace name 'Windows' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

p.s. http://firegarden.com/ seems to be down.

Mar 31, 2011 at 1:22 PM

Scrap that, it's only the Silverlight project that's broken.  WPF builds fine, but the WPF Toolkit is required for DatePicker convention.

Apr 4, 2011 at 3:20 PM

Thank you this is back up and assemblies available for download,

Jun 22, 2011 at 7:54 PM
Edited Jun 22, 2011 at 7:58 PM

Is there a.NET 3.5 version of caliburn micro v1.1 RTW?

Coordinator
Jun 22, 2011 at 9:18 PM

Not officially...but as you can see...it is possible.

Jun 23, 2011 at 3:23 AM

It would be nice if a .NET 3.5 version could be part of the build / distribution of the RTW. Also, none of the samples work on vs2008.

Jun 23, 2011 at 8:42 AM

There are also a few forks of Caliburn.Micro that compile for .Net 3.5, including mine, check out the forks page for more.

Jun 29, 2011 at 2:15 AM

Updated instructions for compiling Caliburn.Micro 1.1 against .net 3.5 have been posted on Firegarden software.