I have spent the last few days testing and POCing this framework,
http://duoco.de/. There is also a open source counterpart here
https://github.com/kswoll/WootzJs
DuoCode compiles C# to Javascript with basically full runtime support like reflection which opens up possibilities to use Type conventions over configuration and Interface injection using IoC
I have succesfully created a Binding for Knockout, next step is to create a Binding and Viewlocator for Durandal.
I have created a Binding for most of the Basic functions of knockout and after that stuff lk
using Knockout;
namespace ViewModels
{
public class FooViewModel
{
private readonly Observable<string> bar;
private readonly Observable<string> computed;
private readonly Observable<int> numbers;
public FooViewModel()
{
bar = Global.Observable("HelloWorld");
computed = Global.Computed(() => bar.Get() + "COMPUTED");
numbers = Global.ObservableArray(new[] { 1,4,3,5 }); //Generic arrays as params like this is not yet possible due to a bug that I have filed a ticker for
numbers.Remove(i => i == 4); //All functions of Obs.array are bound
bar.Subscribe(System.Console.WriteLine); //Translate to console.log on client
}
public Observable<string> Bar { get { return bar; } }
public Observable<string> Computed { get { return computed; } }
}
}
Next version of Durandal might be a exakt clone of Caliburn.Micro :D