GithubHelp home page GithubHelp logo

Comments (12)

KrzysztofCwalina avatar KrzysztofCwalina commented on July 2, 2024

Good question. I have not thought about it. @terrajobst, @richlander, @joshfree, any opinions?

from corefxlab.

Petermarcu avatar Petermarcu commented on July 2, 2024

@ianhays

from corefxlab.

joshfree avatar joshfree commented on July 2, 2024

@ianhays is going to be open sourcing Microsoft.Expermiental.Collections to /dotnet/corefxlab very soon.

from corefxlab.

ianhays avatar ianhays commented on July 2, 2024

Heya @codekaizen, I wrote this last summer! Now that I'm back at Microsoft I'm planning on moving this along closer to the core repo but there's been some discussion as to where it should go. Our options are to put it either:

  • In the dotnet/corefxlab repo.
  • In a dev/MultiDictionary branch off of the main dotnet/corefx repo.

The home for the MultiDictionary ultimately depends on how out of the park it is; corefxlab was designed for ideas that were may not make it to the main repo and that are in the more distant future. @terrajobst and I discussed this and were leaning towards just branching it off of master as an addition to System.Collections.Generic, but that decision isn't set yet.

Regardless of where it will be, you can expect to see it somewhere soon :)

from corefxlab.

codekaizen avatar codekaizen commented on July 2, 2024

@ianhays - glad to see you back! I'd agree with the sentiment that MultiValueDictionary doesn't seem too far astride of core collection classes, and having it in core would be unremarkable. A branch seems reasonable, but then my question becomes - "what becomes of the branch"? Even if it is merged to master at some point, the current availability of it as a separate package, which has good value for users not running Core, will be lost.

from corefxlab.

ianhays avatar ianhays commented on July 2, 2024

@codekaizen Sorry for the delay; it's been real busy around here! I decided to put it into CoreFXLab for now and just pushed a PR #370 where we can continue iterating on it until it's ready for CoreFX. For now it is in it's own assembly: System.Collections.Generic.MultiValueDictionary. I tested it with some console apps running on the core framework and it works as expected.

Even if it is merged to master at some point, the current availability of it as a separate package, which has good value for users not running Core, will be lost.

It's been months but I'm honestly still not sure that I have a good answer to this. In it's current home in CoreFXLab it can easily be built as a desktop NuGet package since it is standalone, but once it is merged into CoreFX it will be jumbled together with the other Collections classes. We could always keep a desktop copy of the nupkg that only contains the MVD and push package updates that way. Although that would be the simplest solution it would require effort to maintain two copies of the same MVD code and subsequently be prone to error or stale versions. Another concern is if the CoreFX MVD evolves to depend on something that doesn't exist in the Desktop framework - what do we do then? How do we prioritize changes and updates to the MultiValueDictionary between Desktop and Core if they diverge and what does that look like?

To answer the original question: the members of CoreFXLab are primarily focused on eventual inclusion into .NET Core so for now I'm going to keep with that focus and consider the "graduation" to be merging it into CoreFX as a part of System.Collections.Generic.

from corefxlab.

akoeplinger avatar akoeplinger commented on July 2, 2024

We could always keep a desktop copy of the nupkg that only contains the MVD and push package updates that way

@ianhays Doesn't the same apply to System.Collections.Immutable? That one is in CoreFx and the nupkg works on Desktop.

from corefxlab.

ianhays avatar ianhays commented on July 2, 2024

Yes, but it is slightly different since Immutable is a standalone library whereas MultiValueDictionary would be built in to System.Collections.Generic. Of course I suppose I could just add a System.Collections.Generic.MultiValueDictionary.Desktop.csproj that only pulls in the MVD files from Open to build the Desktop version and nupkg that only contains the MVD.

from corefxlab.

michaldudak avatar michaldudak commented on July 2, 2024

Hi, are there any plans to include the MultiValueDictionary in the BCL or as a (non-prerelease) nuget?

from corefxlab.

YohDeadfall avatar YohDeadfall commented on July 2, 2024

There are no plans to do that. It's archived. See #2245 (comment).

@ahsonkhan @KrzysztofCwalina This issue probably should be closed.

from corefxlab.

michaldudak avatar michaldudak commented on July 2, 2024

Oh well, thanks.

from corefxlab.

joshfree avatar joshfree commented on July 2, 2024

Closing this old issue now that MVD has been archived.

https://github.com/dotnet/corefxlab/blob/master/README.md#archived-projects

https://github.com/dotnet/corefxlab/tree/master/archived_projects/src/System.Collections.Generic.MultiValueDictionary

from corefxlab.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.