Open GeertvanHorrik opened 7 years ago
I see the benefit over ReSharper, that - as far as I know - ReSharper is not a free tool. In my company I have the benefits of ReSharper and would use them over my tool. But at home, where I rather use free stuff, I would need such a tool for conversion.
About VS analyzers - using a simple tool has as smaller learning curve, while it seems to me, VS analyzers (of which I haven't heard before) looks like it needs a little bit of time to get into it. It might be a better solution on long-term, but for a quick solution it's a little of an overload I think. (I might be mistaken at this, as I didn't know about that tool before and just did a quick google research without diving into that topic. It's s just my first impression, so if I'm mistaken about that, please correct me).
And about Fody - it looks pretty neat, but it seems to me, it can only convert to auto properties with the notifinyg method "OnNotifyPropertyChanged". So to people who are using other libs - for example DevExpress.Mvvm or MvvmLight (DX has the Methods "SetProperty" and MvvmLight has "RaisePropertyChanged") - Fody wouldn't be an option. Again, I just did a quick research, without diving deeper into it, so it's again just a first impression - correct me, if I'm wrong please. But I suppose for people, who primarily use Catel.Mvvm, Catel.Fody is definitely the better option. The conversion on compile time is a big advantage over a custom tool, no doubt about that.
Altogether, that custom tool aims to support different styles of mvvm, but for specific use cases - for example, when you know, you will only use that one specific mvvm library all the time - Fody would be the way to go. From my own experience, I got to use different libraries (DX, Mvvm.Light, Caliburn) in different projects (not all started by me, therefore I can't use only one library), so a tool where I can convert properties into the currently needed style is - at least to me - pretty useful. I will look up more information about VS analyzers, it might be actually more useful for my own cases as well, thank you for the hint.
Just noticed this via search for catel and although this is a good idea, what's the benefit of this over:
The advantage of option 3 is that the conversion is done at compile time, so your code will also be clean and be using auto-properties.
I think running a custom tool will eventually frustrate developers where the same logic implemented via 1 or 2 could be useful on the long run.