vkhorikov / CSharpFunctionalExtensions

Functional extensions for C#
MIT License
2.45k stars 304 forks source link

Question - Version 2.0.0 #147

Open VaclavElias opened 5 years ago

VaclavElias commented 5 years ago

Hi,

I see that version 2.0.0 was published. Do you plan to write any blog post or update documentation to address what's new/changed? Can I just update my previous version?

Would it be possible to give some summaries what was changed/updated when you publish a new version or a change log or anything suggesting improvements/changes and why to use them?

Thank you :)

vkhorikov commented 5 years ago

Yeah, I need to come up with a better publishing process. Simply pushing a new version is not enough.

I'll write a blog post once we settle on #148. Regarding whether you can update the version -- you can, all changes should be backward compatible, though you'll get compilation warnings and be asked to switch from OnSuccess and OnBoth to Map, Tap, and Finally.

VaclavElias commented 5 years ago

Thank you Vladimir, looking forward your blog post and thanks for answering my other questions :)

feliperomero3 commented 5 years ago

Hi @vkhorikov I'm puzzled about the transition from OnSuccess to Tap naming. How is Tap a closely related word to Success? English is not my first language.

PS. Congratulations on your upcoming Book! I like your writing style, clear and focused.

vkhorikov commented 5 years ago

Thanks much :)

OnSuccess has gotten too many overloads, to the point that you may get obscure compiler errors or have a result of an unexpected type somewhere in the middle of a chain of extension methods. It's been essentially split into several extensions: Map, Tap, and Bind. The Tap naming is from typescript, the other two is from functional languages such as F#.

btull89 commented 4 years ago

Agreed I'm upgrading to 2.0 now and I don't know what a lot of these new methods are used for. I'm relying on the xml code documentation.

space-alien commented 4 years ago

Check out #152.

alexmaie commented 4 years ago

Hey, we also upgraded from 1.10 to the latest version, and we are struggling to refactor and learn the new API's. It's not very clear yet when to use tap or map or bind.

But still, this is a great library, keep up the good work :)

vkhorikov commented 4 years ago

@alexmaie Yeah, the documentation is lacking currently. You should be able to convert to the correct methods if you follow the [Obsolete] attributes' recommendations, though.

alexmaie commented 4 years ago

Well yes and no. After doing the initial migration it was easier to grasp, but still I didn't figure out what the best practices are. Like we should use tap when we want to perform an action. When to use Bind/Map etc. The documentation should be more of a guide line :). Again, this is not a complain, but a constructive feedback :D.

Great Work :)