Skip to content
This repository was archived by the owner on Apr 8, 2020. It is now read-only.
This repository was archived by the owner on Apr 8, 2020. It is now read-only.

[QUESTION] ReactRedux Questions #339

Closed
@antmdvs

Description

@antmdvs

@SteveSandersonMS @DamianEdwards @jongalloway

Dear Steve et al.,

I've been watching this repo for a while, with a focus on the ReactRedux template. My .NET team is planning to convert a large mission-critical Silverlight app with a complex UI supporting many user interactions. That said, I felt React+Redux would afford us:

  1. An enhanced developer experience (uni-directional data flow is "easier to reason about")
  2. A better debugging experience (thanks to Redux's single store and time traveling)

Here's where I need clarification:

BUSINESS LOGIC

What lives server-side vs. client-side? Is the idea for this template to keep business logic in server-side .NET models and only run data fetching through the Redux flow, (calling the API to invoke any non-trivial business logic)?

GETTING THE MOST OUT OF REDUX

The more I learn about Redux, the more I learn how it contrasts with OOP. Business logic lives in FUNCTIONS (or sagas, epics...), not classes. See (https://medium.com/@jeffbski/where-do-i-put-my-business-logic-in-a-react-redux-application-9253ef91ce1#.v8onhcyjn)

If we only have reducers that slice up the API responses and update the state (I've seen the term "dumb reducers" somewhere but not sure if that applies here), I'm concerned we may be depriving ourselves of some of the "easier to reason about" goodness. (IOW, not using Redux to its fullest extent.)

If we're to build out more logic using Redux constructs to really reap its benefits, then I'm not sure what the value prop of a .NET backend would be..? We certainly don't want to write our business logic twice, much less once in OOP and then again in a functional approach.

Any input would be greatly appreciated!

Thanks,
Tony

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions