Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Ship ReactiveUI 5.0 #219

Merged
merged 427 commits into from
@paulcbetts
Owner

This branch is the Master branch for tracking all of the stuff that will eventually become ReactiveUI 5.0

What MUST HAPPEN to Ship

  • Clean up the collection interfaces and classes (tracked in #287, because we can't do it post 5.0)
  • Rewrite ReactiveAsyncCommand to be more like ReactiveCocoa's RACCommand (because we can't do it post 5.0, #288)
  • Document everything that's not documented at the moment (tracked in #316)
  • Fix the Website because it's a train wreck

What WOULD BE AWESOME to Ship

  • Readonly reactive collections (tracked in #267)
  • Fix the XYZPlayground samples, people read them
  • Finish the PowerShell integration with RxUIViewModelGenerator
  • Move Xamarin.* to new unified profile that they're going to release soon (Dubious if they'll actually release them soon)

Notes

  • Preferably, don't commit to this branch directly unless it's something small, do it via a PR
  • Maintenance / Cleanup is definitely more important than New Features right now, since none of the uncompleted New Features require breaking changes. We can always ship them later. Maintenance will involve breaking changes.
  • Don't merge this to master yet until ReactiveUI 5.0 ships
@Martin-Andersen

Integration with FluentValidation would be very nice. Catel has Catel.Extensions.FluentValidation maybe we can get some inspiration from them.

@Martin-Andersen

A reference application that is not to simple to show what's possible with RxUI. It's very importing to always keep this application up to date with new features and best practiced patterns

@wendazhou wendazhou referenced this pull request
Closed

Rxui5 validation #225

@jlaanstra
Owner

@xpaulbettsx how about using the CommonServiceLocator from the patterns and practices team For ReactiveUI and make people specify there own DI container?

@shiftkey

@jlaanstra for client applications I'd argue that you can get away with something simple (you don't need to resolve components insanely quickly like you would with a web application serving a non-trivial amount of requests).

There's things that I love from Autofac (readable registration code and being able to use ctor parameters like Func<T>, IEnumerable<T>, Lazy<T> etc without registering components explicitly) that might be able to be added ontop of Paul's proposal.

And with RxUI looking to move to PCL for much of it's core, it may constrain what containers people can use until upstream projects choose to support PCL. And would Mono* devs be able to use existing containers too on their projects?

@paulcbetts
Owner

how about using the CommonServiceLocator from the patterns and practices team For ReactiveUI and make people specify there own DI container?

The current design is CSL, in Delegate Form. It was a terrible idea to copy, many containers don't allow Register after initial setup, others don't support multiple registration per type - the design of CSL is just wrong for ReactiveUI.

@Haacked
Owner

Correction. The design of CSL is just wrong.

:trollface:

@paulcbetts
Owner

@Haacked Well, I was trying to be nice, but yeah :)

@jlaanstra
Owner

I'm neutral about CSL. The thing is that it's already used a lot. How about including a DI container with RxUI in a similar fashion as Mvvmlight. We can pick an existing one or create our own. I'm just thinking of the best way to do this in a non-terrible way, without losing the flexibility to use your own DI container if you want to.

We could make DI an implementation detail and not expose it at all, but that means losing extensibility right?

@deavon

Paul,

I'd love to help out with ReactiveUI 5.0. Is there anything you'd like me to focus on?

Here's my work history:
http://www.linkedin.com/in/deavon

Thanks,
D

@wendazhou
Owner

I think that in terms of IOC, there are two distinct issues we need to solve.

On one hand, ReactiveUI internally needs a DI container to wire all the extensibility mechanisms up, and personally, I feel that MEF would be a perfect fit in this case. It exists in a portable library, and has a simple attributed model that makes everything very simple. I don't think there is any need that this be replaceable as a DI container, and I think that it is acceptable to force the application to use a given DI framework to extend the framework.

On the other hand, we need a way to plug into the existing DI container used by the application, for stuff like ResolveViewFor and other places where we need to instantiate application code in the framework. I think that, in this case, a common facade remains the best way so that people can choose their own DI container. However terrible the design of CSL might be, it would limit its scope to just the interface between RxUI and the client code.

@paulcbetts
Owner

I think that in terms of IOC, there are two distinct issues we need to solve.

@wendazhou This is a great point, MEF might certainly be worth looking into as a hard dependency. Though, to be honest, I think that the Gist that I linked above serves all of the purposes of MEF without the configuration ceremony. You can do:

  • Already instantiated singletons: locator.Register(typeof(IFoo), () => myFoo);
  • Lazy instantiations: locator.Register(typeof(IFoo), () => someLazy.Value);
  • Create on-demand: locator.Register(typeof(IFoo), () => new Foo())

You could add Extension methods to do all of these things easily, and the code is straightforward and doesn't involve scanning every type of an assembly like MEF does. On mobile platforms, that scan will be killer for startup performance and memory consumption (on a big'ish desktop app that I once worked on, MEF used ~10MB on startup, right off the bat)

@paulcbetts
Owner

I'm just thinking of the best way to do this in a non-terrible way, without losing the flexibility to use your own DI container if you want to.

@jlaanstra You kind of already have one in RxUI 4 (i.e. just call Register and GetService, they both work even if you never set anything up), but I agree - you should never have to set up a container

@paulcbetts
Owner

@deavon You don't need to be approved or added to anything before you can help out, no resumé necessary! If you wanted something easy to hack on, there's definitely some janitor-type things that can be done. Specifically, the usage of Code Contracts is pretty lax, and it'd be great if that was filled out for every method.

However, don't feel constrained that you have to work on that, if you have an idea, create a pull request! If you have trouble getting started with Git or GitHub, feel free to send an Email, paul@paulbetts.org.

@deavon

Thanks, Paul! Will do. I don't know if you've met Kyle Neath, but I worked with him at LEVEL Studios a few years ago.

@DamianReeves

I got my wires crossed before. The EF6 model of dependency resolution uses chain of responsibility and seems like an interesting why to solve the question on how a framework can allow integration with DI containers and also manage the need of the framework to create its own objects and services.

I also happen to be a fan of MEF too, but it seems like the average developer has the impression that MEF is too hard to learn.

@wendazhou
Owner

@DamianReeves MEF has quite a lot of technical parts, but RxUI can set that all up itself, and then all the user has to do is add a Export(ITheContractInterface)] to their implementation. We could even provide special attribute classes for all the extension points that automatically export the correct type (and eventually metadata if needed).

Personally, I dislike the service locator pattern, because it makes code harder to test (you have to mock the Service Locator, providing the correct implementations etc.), especially compared to something like constructor injection that makes dependencies very obvious. However, it does seem to be the simplest model to abstract away, and this does have some advantages for a framework.

@jlaanstra
Owner

I did some work on RxApp in 8b94898 by simplifying unit test and design mode detection. Still a lot of work to do.

@paulcbetts
Owner

@jlaanstra That looks good, but if you have a hack at redoing it further, please start a PR first (even a dummy one like the CSS Selectors PR) so that we can discuss it first, that'll be a pretty big change

@jlaanstra
Owner

@xpaulbettsx sure! The only thing I need to do for portable is adapt MakeRelease.ps1 to build portable libraries and than all tasks for portable are done. I'll make a new PR for RxApp changes.

@johnnyelwailer

Any thoughts on blendability especially with the new .Bind syntax? There should be done a lot to enable the tooling with design time data (maybe even something like a reactive design time data generator :)).

@DamianReeves

@wendazhou it turns out that MEF has limited portable library support. Try adding System.ComponentModel.Composition and you will quickly find out that you can't include this and target Windows Phone 8 and Windows Store Apps.

I've implemented the type of dependency resolution I spoke of before in a project I hacked at this week. I'm going to give a go at implementing something similar in my reactiveui fork.

How do I go about updating my fork to grab the latest from here (haven't dealt with git in the fork and pull request workflow that much)?

@paulcbetts
Owner

@DamianReeves

git remote add upstream https://github.com/reactiveui/ReactiveUI.git
git fetch upstream
git checkout rxui5-master
git merge upstream/rxui5-master
@wendazhou
Owner

@DamianReeves you have to use the Microsoft.Composition Nuget package for WinRT, but it is true that it has no WP8 support, so I guess it wouldn't work.

@paulcbetts
Owner

Any thoughts on blendability especially with the new .Bind syntax? There should be done a lot to enable the tooling with design time data (maybe even something like a reactive design time data generator :)).

@johnnyelwailer RxUI5 bindings are actually Blendable in a way that's so simple you'll kick yourself, it's so much better than the Microsoft way, in almost every way. When RxUI5 releases, I'll blog about it.

@DamianReeves

So since I'm stuck on .NET 4.0 at work, does this me I can't use 5.x alpha? Whats the plan for those of us who can't upgrade to .NET 4.5 yet?

@paulcbetts
Owner

Whats the plan for those of us who can't upgrade to .NET 4.5 yet?

"There was that law of life, so cruel and so just, that one must grow or else pay more for remaining the same." - Norman Mailer

@DamianReeves

It would be great to at least get the RxApp refactorings for ReactiveUI "4.x".
I find the service location setup in 4.5 to be not great when you use a container that doesn't like registering stuff after the container is created (I have a working solution for this, but its no where as elegant as what @jlaanstra added for 5.x).
So yes I'm having feature envy.

@paulcbetts
Owner

It would be great to at least get the RxApp refactorings for ReactiveUI "4.x".

That'd be a breaking change for the 4.x folks, that's sadly not possible.

@paulcbetts paulcbetts referenced this pull request in akavache/Akavache
Merged

Ship Akavache 3.0 #47

4 of 5 tasks complete
paulcbetts and others added some commits
@paulcbetts paulcbetts Don't double-register ReactiveUI Core
b6ce0c9
@paulcbetts paulcbetts RIP old solutions
d4a8d30
@paulcbetts paulcbetts Let's set up some project files
23e05f6
@paulcbetts paulcbetts Make ReactiveUI.sln everything non-Xamarin
e6da746
@paulcbetts paulcbetts Update to latest Rx built on 3.0.10
57abce4
@paulcbetts paulcbetts Fix up the solution for Xamarin
a0099ef
@paulcbetts paulcbetts Make ReactiveUI_XSAll.sln build
e96ab2e
@paulcbetts paulcbetts Add sln for projects that can *only* be built in Xamarin Studio (Xama…
…rin.Mac)
39f3d49
@paulcbetts paulcbetts Handle some quirkiness around framework type resolution on MonoDroid
f66d855
@paulcbetts paulcbetts Fix inner types
cc70adb
@paulcbetts paulcbetts Implement Events for Monodroid
92f3c13
@paulcbetts paulcbetts Add Monotouch ReactiveUI.Events, fix up build paths
135f368
Paul Betts Merge pull request #286 from reactiveui/fixup-xamarin
Fixup Xamarin solution files + Add ReactiveUI.Events for Xamarin.iOS / Xamarin.Android
545ada4
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/master' into rxui5-master
Conflicts:
	NuGet/ReactiveUI-Core/ReactiveUI-Core.nuspec
	NuGet/ReactiveUI-Mobile/ReactiveUI-Mobile.nuspec
	NuGet/ReactiveUI-NLog/ReactiveUI-NLog.nuspec
	NuGet/ReactiveUI-Platforms/ReactiveUI-Platforms.nuspec
	NuGet/ReactiveUI-Testing/ReactiveUI-Testing.nuspec
	NuGet/ReactiveUI/ReactiveUI-Xaml.nuspec
	NuGet/ReactiveUI/ReactiveUI.nuspec
	ReactiveUI.Blend/Properties/AssemblyInfo.cs
	ReactiveUI.Mobile/Properties/AssemblyInfo.cs
	ReactiveUI.NLog/Properties/AssemblyInfo.cs
	ReactiveUI.Platforms/Android/Properties/AssemblyInfo.cs
	ReactiveUI.Platforms/Cocoa/Properties/AssemblyInfo.cs
	ReactiveUI.Platforms/Gtk/Properties/AssemblyInfo.cs
	ReactiveUI.Platforms/Xaml/Properties/AssemblyInfo.cs
	ReactiveUI.Routing/Properties/AssemblyInfo.cs
	ReactiveUI.Testing/Properties/AssemblyInfo.cs
	ReactiveUI/Properties/AssemblyInfo.cs
d35c681
@paulcbetts paulcbetts AsyncOneWayBind is unnecessary, use BindTo
52e1f44
@paulcbetts paulcbetts Add more unit tests to ReactiveCollection
f35bb1c
@paulcbetts paulcbetts Ignore packages folder
e4c8ea7
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/rxui5-master' into IAppliedBindi…
…ngInfo

Conflicts:
	ReactiveUI/PropertyBinding.cs
d1eb852
@paulcbetts
Owner

Alright friends, we are now in...

Ship It Mode

Which means, less adding features, more finishing things up so we can :shipit: ReactiveUI 5.0. If you've got a PR outstanding, please work on wrapping it up.

What else needs to be done?

Check out the PR above, the description is (or will!) change to the plan for getting this out the door. For posterity, here's what was in the PR description


This branch is the Master branch for tracking all of the stuff that will eventually become ReactiveUI 5.0

What's (Going To / Possibly Be) New?

New Features

  • Replace Service Locator with something not terrible (tracked in #235)
  • Observable Mixins for common frameworks (tracking in #240)
  • Automatic persistence of changed objects (tracking in #268)
  • Scaffolding framework via Roslyn / NRefactory - Prototype Here
  • Readonly reactive collections (tracked in #267)

Maintenance / Cleanup

  • Move to Portable Libraries / .NET 4.5 only (tracked in #217)
  • Remove the cruft and compatibility shims that have built up over time from old platforms (tracked in #233)
  • Kill RxApp with :fire:, replace with a more granular solution (tracked in #235)
  • Rename DeferredScheduler and clean up initialization (tracked in #275)
  • Rewrite ReactiveAsyncCommand to be more like ReactiveCocoa's RACCommand (tracked in #288)
  • Document everything that's left
  • Move Xamarin.* to new unified profile that they're going to release soon
  • Clean up the collection interfaces and classes (tracked in #266)

Punted to v5.(>= 0)

  • Port of ReactiveCocoaLayout, especially important on Android
  • CSS Selector framework (tracking in #220)
  • Project and File Templates for Xamarin Studio and VS2012 (Perhaps via Xamarin Addin system?)

Notes

  • Preferably, don't commit to this branch directly unless it's something small, do it via a PR
  • Maintenance / Cleanup is definitely more important than New Features right now, since none of the uncompleted New Features require breaking changes. We can always ship them later. Maintenance will involve breaking changes.
  • Don't merge this to master yet until ReactiveUI 5.0 ships
@jlaanstra

Shouldn't this be .Finally(() => { lock(inflight) { inflight.OnNext(false); } }) ?

Yep, took me a lot of debugging time to find that out too :-/

jlaanstra and others added some commits
@jlaanstra jlaanstra Add Changed observable to expose binding changes on IReactiveBinding.
d0f6386
@jlaanstra jlaanstra Returning null seems like a reasonable solution.
9ef4269
@jlaanstra jlaanstra Rename RealUnitTestDetector to PlatformUnitTestDetector.
Added some comments.
Changed the static constructor to a static Initialize method.
ba904ba
@jlaanstra jlaanstra Add clear exception message when RxUI is not properly initialized.
a2206f0
@paulcbetts paulcbetts Add tests for AllowConcurrentExecution
31c253c
@paulcbetts paulcbetts DistinctUntilChanged + First = kablooey
5824a64
Paul Betts Merge pull request #288 from reactiveui/rewrite-reactiveasynccommand
Rewrite ReactiveCommand
0969cb6
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/rxui5-master' into IAppliedBindi…
…ngInfo
1c67ecc
@Haacked Haacked Add read only interfaces for reactive collections
fixes #267
580af48
@paulcbetts paulcbetts Shuffle some stuff around, make default view locator not static
2a56ea4
@paulcbetts paulcbetts Add a static class that just proxies to service location
40df2c8
@paulcbetts paulcbetts Always take the newest one when GetService is called and there are mu…
…ltiple options
741e044
@paulcbetts paulcbetts Warn people if their IoC is jacked
6bb4b9a
@paulcbetts paulcbetts Update RxUI.Xaml to use new routing
8857dc6
@paulcbetts paulcbetts Register the default IViewLocator
70a366e
@paulcbetts paulcbetts Allow passing a contract name into view resolution
f52daa0
@paulcbetts paulcbetts Add a new property to ViewModelViewHost and RoutedViewHost to represe…
…nt the contract
41e6f87
@paulcbetts paulcbetts Fix the one lame test for the default view resolver
b49893d
@paulcbetts paulcbetts Add a default for WinRT that follows around the snapped/unsnapped state
6a8df45
@paulcbetts paulcbetts Refactor Interfaces.cs since it's getting too gigantic
02c6ef4
@paulcbetts paulcbetts Add Platform operations interface
0d054a1
@paulcbetts paulcbetts Nuke this WinRT-only nonsense
6068291
Paul Betts Merge pull request #290 from reactiveui/readonly-collections
Add read only interfaces for reactive collections
bb39ea3
@paulcbetts paulcbetts Update the csproj files
0ac68aa
@paulcbetts paulcbetts Get Cocoa compiling again
795f9cb
@paulcbetts paulcbetts Get Android building
ac1b238
Paul Betts Merge pull request #293 from reactiveui/fix-xamarin
Update the Xamarin build for recent changes
26404a2
@paulcbetts paulcbetts Merge branch 'the-great-collection-rename' into rxui5-master
Conflicts:
	ReactiveUI.Tests/ReactiveCommandTest.cs
c68eeab
@paulcbetts paulcbetts Merge branch 'rxui5-master' of https://github.com/reactiveui/ReactiveUI
… into rxui5-master
b22b5f6
Paul Betts Merge pull request #246 from reactiveui/IAppliedBindingInfo
Return rich IAppliedBindingInfo object when using View Bindings.
cd95ff8
@paulcbetts paulcbetts Always Be Xamarining @jlaanstra
eda9b70
@paulcbetts paulcbetts Overzealous Merging
38009f0
@paulcbetts paulcbetts Fix the Android build
a592a0e
@paulcbetts paulcbetts Revert "Add read only interfaces for reactive collections"
This reverts commit 580af48, adding Read-only
Collection interfaces adds 100000000x ambiguous method errors /cc @haacked
4ded0d2
@paulcbetts paulcbetts Update the build paths for Xamarin.Mac
21557b8
@Haacked
Owner

@Haacked I misspoke, these were "You can't build" errors

@jlaanstra
Owner

Hmm I don't see the ReactiveUI_Mono project in any of the solutions. Am I doing something wrong? I work in ReactiveUI.sln, but also in ReactiveUI_VSAll.sln there is no ReactiveUI_Mono project.

@jlaanstra So, XS_All is anything that Xamarin Studio on the Mac can build, whereas _VSAll is anything that Visual Studio can build. _XSOnly is things that only Xamarin Studio for Mac can build (currently, this means Xamarin.Mac stuff).

Don't worry too much about this, the current licensing stuff for Xamarin.* make getting everything loaded somewhat problematic for contributors, I don't mind doing the grunt work on this.

@xpaulbettsx So I tried adding the ReactiveUI_Mono project to the solution and I can succesfully build it. It is just not part of any of the VS solutions.

So, what I do to make a full everything build is (I use Parallels so I can access the same folder from Mac and Windows):

  1. git clean -xdf to nuke everything in the ReactiveUI folder that's not checked in
  2. Open the ReactiveUI_XSOnly.sln folder on the Mac, build it
  3. .\MakeRelease.ps1 on Windows (You have to have Xamarin.iOS and Xamarin.Android installed on Windows for this to work)

If you don't have the Xamarin tools, I'm still going to maintain ReactiveUI.sln as "Everything that you can build on a Windows box without Xamarin"

I'm still going to maintain ReactiveUI.sln as "Everything that you can build on a Windows box without Xamarin"

In that case the ReactiveUI_Mono project should be part of ReactiveUI.sln right?

@jlaanstra No, because Mono doesn't produce PDBs, it produces MDBs (since PDBs are proprietary and undocumented)

jlaanstra and others added some commits
@jlaanstra jlaanstra Add comments about initializing once.
18116ac
@Haacked Haacked Remove unused parameters
These underscores are unnecessary and cause warnings.
a45403f
@Haacked Haacked Change property setter to private on sealed class
A protected member does not make sense on a sealed class.
c6fd892
@Haacked Haacked Add new keyword to interface members
These properties already exist on an interface that these interfaces
implement. The _new_ keyword is needed.
aa55294
@Haacked Haacked Properyly implement the interface
The autogenerated fields of these event properties were never used which
caused warnings.
5027e81
Paul Betts Merge pull request #295 from reactiveui/warnings-fixes
Properyly implement the interface
55ab59b
@Haacked Haacked Remove the JSON.NET NuGet package
Until JSON.NET supports the Monotouch and Monodroid profiles, we need to
reference JSON.NET from the ext folder.
a658094
@Haacked Haacked Remove Microsoft.Bcl.* build targets
According to paul, Microsoft.Bcl.* is no longer needed in RxUI 5
7a01651
@Haacked Haacked Remove the Microsoft.Bcl.* packages
According to paul, these are no longer needed for RxUI 5.0
92835bb
@Haacked Haacked Remove this source control bindings bullshit
It's Git's world y'all!
c3e1ce6
@Haacked Haacked Remove Microsoft.Bcl.* from packages.config
These packages should not be referenced any longer.
cd96949
@Haacked Haacked Add project configuration sections to WP8 projs
These projects seemed to be missing the various configuration sections
which prevented them from building properly. I compared these projects
to a vanilla Windows Phone Class Library project and added in the
missing sections and now the WP8 projects build.
5edb9f2
@paulcbetts paulcbetts Rewrite this train wreck of a class so that it's way easier to unders…
…tand
3915a31
@paulcbetts paulcbetts What in the world was I thinking
796fe18
@paulcbetts paulcbetts Don't end up creating 2x the views on initial load of RoutedViewHost
72d38a3
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/init-improvements' into rxui5-ma…
…ster
c948458
@oliverw oliverw - Added non KVO dependent iOS specific, extendable ICreatesObservable…
…ForProperty implementation supporting some core UIKit controls

- Added MonoTouch Linker XML definition file that should be added to MonoTouch projects in release configuration. Otherwise the Monotouch Linker might optimize away properties referenced soley through ReactiveUI (reflection-driven) data-binding
e4590ab
@oliverw oliverw - Initial Enabled state was not propagated from Command to bound UI E…
…lement
faa65dd
@paulcbetts paulcbetts Include the property name in ICreatesObservableForProperty.GetAffinit…
…yForObject

Some implementations can only observe certain property names on types,
such as DependencyObjects
709bf21
@paulcbetts paulcbetts Fix built-in implementations
27db7e5
@paulcbetts paulcbetts Actually use the property name in ObservableForProperty
9a02dfc
@paulcbetts paulcbetts Fix up KVO-based ICreatesObservableForProperty
d16faff
@paulcbetts paulcbetts Make DependencyObjectObservableForProperty ignore properties that are…
… simple POCO properties
f94ed50
@paulcbetts paulcbetts Not sure how this happened
4632f23
Paul Betts Merge pull request #304 from reactiveui/per-prop-affinity
Supply the Property Name to ICreatesObservableForProperty
759fcb3
@oliverw oliverw Merge remote-tracking branch 'upstream/rxui5-master' into rxui5-master
9ebb36c
@oliverw oliverw Adapted to upstream changes
b8f54cf
@oliverw oliverw - Extended Linker.xml to make sure System.ComponentModel Core Convert…
…ers are available at runtime
3e7e76c
@oliverw oliverw - Two-Way Bindings initially push an update from the View to the Mode…
…l instead of the other way around
2f27ccc
@paulcbetts paulcbetts Tabs => Spaces
50650bb
@paulcbetts paulcbetts UIKitObservableForProperty is iOS-only
fb854b8
@paulcbetts paulcbetts Refactor EventBuilder event-specific code
752893c
@paulcbetts paulcbetts How did this end up being hard tabs
6fdbde4
@paulcbetts paulcbetts Initial hack at a Delegate template
4f83fe2
@paulcbetts paulcbetts Handle zero-parameter methods, namespace a bit better to be less anno…
…ying
bf69e3b
@paulcbetts paulcbetts Initial implementation of delegates
db0a55a
@paulcbetts paulcbetts I don't even know
727653f
@paulcbetts paulcbetts Actually expose IObservables
4e4dd3c
@paulcbetts paulcbetts Ignore IDisposable methods
4a8d8c5
@paulcbetts paulcbetts Handle abstract classes and method overloads
a7b7555
@paulcbetts paulcbetts Ignore methods with ref/out parameters and property setters
edc01ef
@paulcbetts paulcbetts This and that template fixups
5ab69ca
Paul Betts Merge pull request #307 from reactiveui/reflect-delegates
Create Rx versions of Cocoa Delegates
ae04c9c
@paulcbetts paulcbetts Unbreaking builds and hearts
0e0b0da
@paulcbetts paulcbetts Add XS versions of ReactiveUI.Events
4d7ff40
@paulcbetts paulcbetts Fix assembly resolution for Xamarin.Mac
8cca89a
@paulcbetts paulcbetts Update solution files
1b0aa5a
@paulcbetts paulcbetts Add MonoMac version of ReactiveUI.Events to NuGet
fff69e4
@paulcbetts paulcbetts Fix up template override help description
1bcae5a
@paulcbetts paulcbetts Start to clean up all of the statics in logging
662e74d
@paulcbetts paulcbetts Fix up template override help description
33a716a
@paulcbetts paulcbetts Register the default log manager
4838a3d
@paulcbetts paulcbetts Wire up NLog
0db0ba4
@paulcbetts paulcbetts Create a Func-based ILogManager
daac3b8
@paulcbetts paulcbetts Fix up the tests
52632e3
@paulcbetts paulcbetts Grumble style grumble
cb3643c
@paulcbetts paulcbetts Fix up a stack overflow during startup
9f58bb1
@paulcbetts paulcbetts Merge branch 'rxui5-master' into logging-to-dependency-resolver
Conflicts:
	RxUIViewModelGenerator/Program.cs
dc5e563
@paulcbetts paulcbetts Add a dumb way to get the default resolver
e201233
Paul Betts Merge pull request #308 from reactiveui/logging-to-dependency-resolver
Death to Logging static methods
6dc2265
@paulcbetts paulcbetts Version bump to 5.0.0.20130527
8bcd527
@paulcbetts paulcbetts Fix the GUID on ReactiveUI.Events_Monomac
2510915
@paulcbetts paulcbetts Don't rely on +x in the MonoMac build
a09b862
@paulcbetts paulcbetts Grumble style grumble
7b94efb
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/master' into rxui5-master
Conflicts:
	ReactiveUI.Tests/ReactiveUI.Tests_SL5.csproj
	ReactiveUI.Tests/RxAppTest.cs
	ReactiveUI/RxApp.cs
e821cfa
@paulcbetts paulcbetts hwhoops
407b022
@casnap casnap added PS script to ReactiveUI-Core\tools for scaffolding
The init.ps1 should be called on install and subsequent
solution loads by NuGet Package Manager in Visual Studio, per
their documentation. This script loads a PowerShell script module
that sets up the generator command (Generate-RxUIObjects) and
tab expansion for the template type argument of the same.

The generator searches subdirectories for the RxUIModelGenerator
executable and errors if it cannot be found.

A small change was necessary to the Program.cs of the CLI generator
as I could not find a way to prevent PowerShell from sending the
name of the invoked executable as the first argument to the exe
itself.  I'm not a PS expert, so there may be a way.  In any event
the change required was minimal; hopefully it passes muster.

All testing was done manually.  I did not create a nuget package
and install it to ensure that the init was called as their docs
state, but I did invoke it from the Package Manager Console and
ensure that the generator worked as expected.
bfc1ccd
@oliverw oliverw Made IBindingTypeConverter usable standalone (without registration wi…
…th the DepdencyResolver) by outsourcing GetAffinityForObjects into derived interface IImplicitBindingTypeConverter

Extended Bind, BindTo and OneWayBind to take an optional parameter that allows the developer to pass in an ad-hoc IBindingTypeConverter which overrides any otherwise implicitly selected converter

Minor improvement to Logging Output generated by PropertyBinding
c4a9c5a
@oliverw oliverw Made sure that MonoTouch Linker.xml preserves the full type for UIKit…
… Controls and not just properties.
8789868
@oliverw oliverw Tightened WrappingFullLogger code contract
a4d4762
@oliverw oliverw Singleton via Lazy<T> for UIKitObservableForProperty to save memory
eae4ba3
@oliverw oliverw Implemented DateTimeNSDateConverter which converts between System.Dat…
…eTime and NSDate to aid developers reusing existing view models
7dd7cc3
@casnap casnap changed ps module to utf8
4bbdbc0
@casnap casnap encoding ps module as ansi
7ffbfa4
@oliverw oliverw Refactored out IImplicitBindingTypeConverter
9aefd04
@oliverw oliverw Added command action support for UIBarButtonItem
1e2cdb2
@oliverw oliverw Fixed indenting
6904fbb
@oliverw oliverw Changed RxApp._TaskpoolScheduler for IOS
0e2dac8
@paulcbetts paulcbetts Merge branch 'per-binding-converter-override' into rxui5-master
8af71a6
@paulcbetts paulcbetts Fix this bug over and over again
6001f33
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/master' into rxui5-master
Conflicts:
	ReactiveUI.Tests/ReactiveCollectionTest.cs
9fbb9ef
@paulcbetts paulcbetts Fix failing unit tests
4a0e4a6
@oliverw oliverw Added iOS only solution since XSAll fails to load if Xamarin.Mac is n…
…ot installed
0885434
@paulcbetts paulcbetts Register a logger so we always have one
fef8077
@paulcbetts paulcbetts Get upset if we can't find an ILogger. Fixes #312, #310
3a13f45
@oliverw
Owner

Ok Paul, but then we should probably register at least one logger :)

Owner

Nevermind :tm:

@oliverw The previous commit does this :)

@paulcbetts
Owner

This is :+1:, but in the future, Always Be Pull Requesting :)

Owner

@xpaulbettsx Don't worry Paul. I wouldn't have done this for anything other than simple solution addition.

paulcbetts and others added some commits
@paulcbetts paulcbetts Document all the methods in ReactiveUI.dll
691f21f
@oliverw oliverw Fixed crash when a KVOObservableForProperty based binding was disposed
f3ce8fd
@oliverw oliverw Implement event based command bindings in a data-driven fashion
17ba9d7
@oliverw oliverw - Consolidated TargetActionComandBinder functionality into UIKitComma…
…ndBinders

- FlexibleCommandBinder and UIKitObservableForPropertyBase now support derived types as well (Bug)
f33907c
@oliverw oliverw Affinity handling improvements for FlexibleCommandBinder and UIKitObs…
…ervableForPropertyBase
0eae0fe
@jlaanstra jlaanstra Fix design mode detection on Windows Phone, where DependencyObject is…
… an abstract type.
1cb439a
@oliverw oliverw Fixed crash caused by unnecessary cast in FlexibleCommandBinder
55dbd70
Paul Betts Merge pull request #318 from reactiveui/designmodedetector-fixes
Fix design mode detection on Windows Phone, where DependencyObject is an...
a78a4b9
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/binding-enhancements' into rxui5…
…-master
9a2d6b7
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/rxui5-master' into doc-all-the-t…
…hings
0065845
@paulcbetts paulcbetts Document all of ReactiveUI.Cocoa
18ef513
@paulcbetts paulcbetts Add docs for XAML-specific stuff
cc67e67
@paulcbetts paulcbetts Doc all of RxUI.Mobile on Cocoa
55b9eb0
Paul Betts Merge pull request #316 from reactiveui/doc-all-the-things
Document all the methods with missing VSDocs
3619659
@paulcbetts paulcbetts Fixups to get app initially working
dfe8d02
@paulcbetts paulcbetts hwhoops
38cc62d
@paulcbetts paulcbetts Fix creating the Page from resume
783cbe9
@paulcbetts paulcbetts If during resolution, we add to the resolver, we die
4c948fa
@paulcbetts paulcbetts Remove the rxObjectsSetup now that JSON.NET is fixed
70ad357
@paulcbetts paulcbetts Update to RxUI 5.0
a34684b
@paulcbetts paulcbetts Initialize ViewContractObservable on startup like we do in Xaml
4307f54
@paulcbetts paulcbetts We must guarantee that CanExecute always comes back on the UI
899fcdc
@paulcbetts paulcbetts Merge remote-tracking branch 'mac/fix-xamarin-mac-sample' into rxui5-…
…master
ec3f30d
@paulcbetts paulcbetts Fix up tests that used the INPCHelper test fixture
692c296
@paulcbetts paulcbetts Make 'CanExecute always on UI thread' work in unit tests too
eb2c164
@paulcbetts paulcbetts Nuke dead test code
3b7c804
@paulcbetts paulcbetts Remove Scheduler from ReactiveList
ef49cca
@paulcbetts paulcbetts Move Windows-specific tests to Xaml folder
8b393f4
@paulcbetts paulcbetts Add iOS unit test project
412bf10
@paulcbetts paulcbetts Add an iOS version of Microsoft.Reactive.Testing
5b19b5f
@paulcbetts paulcbetts Get tests mostly running on iOS
450e7b2
@paulcbetts paulcbetts Clean up EventBuilder build products after we're done with them
7717767
@paulcbetts paulcbetts Nuke Contains<T>
bcaf087
@paulcbetts paulcbetts We don't *actually* use XUnit in this test on
8ec2051
@paulcbetts paulcbetts Remove some redundant properties before we start hacking stuff
3c9494f
@paulcbetts paulcbetts Create ReactiveObject clones for NSView and NSViewController. Grumble…
… Grumble Need Real Mixins Grumble
0fc48f3
@paulcbetts paulcbetts Clean up ReactiveObject a bit
81ce888
@paulcbetts paulcbetts Fix PropertyBindingTests for iOS
712fd7c
@paulcbetts paulcbetts Fix incorrect default property values for UIKit
635027d
@paulcbetts paulcbetts Compile ReactiveUI.Testing for Monodroid
bc407e9
@paulcbetts paulcbetts Fix build for device
63338fc
@paulcbetts paulcbetts Reimplement Throws because Android's NUnit doesn't do it the same
89c0b04
@paulcbetts paulcbetts Update to a non-busted version of Mono.Reactive.Testing for Android
db4d407
@paulcbetts paulcbetts Add MonoDroid test project
bd4a941
@paulcbetts paulcbetts Create ReactiveActivity and ReactiveFragment classes
7ab172f
@paulcbetts paulcbetts Enable the Android version of the Prop binding tests
c849402
@paulcbetts paulcbetts Add a Default Property binder for Android
7cc5cf0
@paulcbetts paulcbetts Add a hacky hack to make WhenAny work with certain Android controls
5d0c4da
@paulcbetts paulcbetts Fix the Windows build
f6121b3
@paulcbetts paulcbetts Merge remote-tracking branch 'mac/rxui5-master' into rxui5-master
bdec610
@slodge slodge Plural of Assembly is Assemblies
Sorry - couldn't resist practising during your talk.
990dbbf
@Haacked Haacked Merge pull request #322 from slodge/patch-1
Plural of Assembly is Assemblies
214ee15
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/master' into rxui5-master
ae8cc77
@paulcbetts paulcbetts Remove Playground projects 9a65948
@paulcbetts paulcbetts git keeps stomping on +x for generate_events.rb ca6fba6
@paulcbetts paulcbetts Fix the build on Release 612b2b2
@jlaanstra jlaanstra Reference the correct versions of System.Windows.Interactivity. b6fa2a3
@paulcbetts

Would it be better to just nuke the Version altogether?

Not sure what will happen in that case. SO to be on the safe side, I think it's fine to keep the version since these things are only updated for newer platforms.

paulcbetts and others added some commits
@paulcbetts paulcbetts Why would anyone not want to generate debug symbols. AM I TAKING CRAZ…
…Y PILLS OR SOMETHING
36bda14
@paulcbetts paulcbetts Version bump to 5.0.0.20130620 d2c5412
@paulcbetts paulcbetts Why does this keep getting renamed
e2f93e1
@paulcbetts paulcbetts Package Testing + some PDBs
4dfe719
@paulcbetts paulcbetts Rename ReactiveNSView* to ReactiveView* to save iOS developers' sanity
d6aa4f1
@paulcbetts paulcbetts Grumble Monotouch grumble 660b9af
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/rxui5-master' into rxui5-master 0ef6a77
@paulcbetts paulcbetts Merge branch 'master' into rxui5-master
Conflicts:
	ReactiveUI/ReactiveList.cs
ca08cde
@paulcbetts paulcbetts Merge branch 'master' into rxui5-master cb7bb22
@jlaanstra jlaanstra Fix for #278.
Adds protected virtual void methods to raise events and comply with .NET best practices around events through all of ReactiveUI.
b016e94
@jlaanstra jlaanstra Rename some namespace references, so we build succesfully. 073267a
@paulcbetts paulcbetts Merge remote-tracking branch 'origin/rxui5-master' into events-virtua…
…l-methods
cc61b6a
@paulcbetts paulcbetts Style Fixups 0afa770
@paulcbetts paulcbetts Clean up the View Locator code a bit
04a723e
@paulcbetts paulcbetts Fall back to the view that doesn't specify an orientation
If the developer doesn't want to use orientation-specifc views, try to
resolve the non-orientation specific view
e9f8930
Paul Betts Merge pull request #335 from reactiveui/view-locator-fallback
Fall back to non orientation-specific views
11bb11f
@niik niik Reintroduce read-only interfaces
Have CreateDerivedCollection return interface for maximum
flexibility going forward in RxUI5.

Makes IObservedChange and IReactiveNotifyPropertyChanged
covariant.
113cd14
@niik niik Add xml docs for new interfaces
8980396
@niik niik Including move notifications in interfaces
25842a6
@niik niik Make RDC implementation internal 5cb784d
@paulcbetts paulcbetts merged commit a475965 into from
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.