-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Microsoft.AspNet.FileProviders split into Physical, Embedded, and Interfaces #8
Comments
Is there any consistency in naming of abstraction packages? There seems to be several variations, like |
I would have to agree with @khellang on this one |
The pattern should be |
In scriptcs we have |
Will it always be an interfaces-only package? |
.Contracts isn't bad but we'd have to do it across the board and contract is so overloaded already. |
I vote for |
+1 to |
Indeed. *.Abstractions can include Interfaces and abstract classes and enums, etc. Also, it might not be a contract between different systems (the abstract base classes, for example). |
+1 to Abstractions |
+1 to Abstractions |
1 similar comment
+1 to Abstractions |
@Samvrie Either that or they just introduced another naming inconsistency. Now there's You could argue that they all make sense, if the different packages contains different things, but it'd still be nice, IMO, to go with the "lowest common denominator" (something that covers all) and stick with a single name. |
Hi folks, I'm starting an internal discussion on resolving this. I agree that being consistent has a lot of value. |
@khellang As long as it makes sense and they keep it that way, devs will get used to it. What I'm a little worried about is that namespaces like *.Interfaces might cause a dependency hell as things get bigger. For example a new base class get's introduced which is elementary for a new feature and directly relates to some components in *.Interfaces - but wouldn't really fit in there. So they would need to create a *.Interfaces.Core to make things meaningful again and bam, 2 dependencies. @Tratcher What about just Microsoft.AspNet.FileProviders? Why not put abstractions, utilities etc., there? That won't hurt anybody as long as the package doesn't contain heavily infrastructure based stuff. |
@artganify BTW there's never a One reason we don't put these "abstractions" in the "short" (i.e. non- |
In my opinion, the short name of The "new project" wizard should refer to each specific implementation package where those "default" selections should be pulled in. A GOD (Global Organised Description) package if you will call it that? :) |
In this particular case, yes, but for a general pattern, I'd say *.Abstractions is a good fit. Even though, in this case, the implementation packages have their own distinguishing names since there are two of them, it wouldn't add much noise for the abstractions package to be named *.Abstractions. |
+1 for .Abstractions |
👍 for consistency and 👍 to @justin-lovell Am really very meh about |
@damianh it would be package + assembly name, but not namespace name. As such, you'll almost never see it - just in the project.json file. |
The use of reference assemblies merging into a root namespace to create a wider whole is something that, to me at least, makes perfect sense. As has been said, you won't really ever know it's there, unless you're specifically developing your own provider. —Reply to this email directly or view it on GitHub. |
OK after reviewing the discussion here and a long and healthy team discussion, we settled on using the The full details are below, and expect to see some of the changes start to roll in this week. There are generally two scenarios that we target:
(They’re often the same people, but the scenarios are different.) The solution is:
So the most common patterns are: Just one package to rule it all:
Package that has abstractions:
Package that has "core" features, plus optional features, plus a meta-package to bring everything in for convenience:
And finally a package that use all the patterns together:
|
Nice writeup, @Eilon! ❤️ that you landed a solution. Whether all people agree on the naming or not, at least you've settled on a consistent approach, and that's all we can ask for 😄 |
You're welcome! 😄 |
Just a small question regarding "one Package to rule it": |
@robertmuehsig yes, generally all |
👍 Good result |
The Microsoft.AspNet.FileProviders package has been removed and replaced with:
Microsoft.AspNet.FileProviders.Physical
Microsoft.AspNet.FileProviders.Embedded
Microsoft.AspNet.FileProviders.Interfaces
See aspnet/FileSystem#48
The text was updated successfully, but these errors were encountered: