Main problem I can see with ASP NET Core ecosystem is that we, the community, cannot search for third party extension methods when we type app.UseXyz. Only MS created middlewares are offered by intellisense. I have tried to understand what VS does in the background when I type app.UseMvc() but without luck. I have read nuget specs hopping to find some XML attribute that can mark package as middleware so intellisense can offer my package to be downloaded when I type app.UseLiteApi. The search was futile.
A solution I am proposing
Here is what I think can be done by the community:
Step 1: Use nuget tags. Creators of the third party middlewares can add following tags to the nuspec files: "anc10m" (short for ASP NET Core 1.0 Middleware) and "UseYourMiddleware" as in the name of the extension method that will be available. In case of LiteApi tags would be "anc10m" and "UseLiteApi".
Step 2: Create the index service. I am willing to create a service/website that will search and index nuget packages for "anc10m" tag and look for tags starting with "Use...". We can use that index in the next step to improve intellisense.
Step 3: Create VS extension. This is the trickiest part (at least IMHO). We need third party VS extension that will check when we type a method name on IApplicationBuilder and call the index in order to get the results. Results can be offered by VS intellisense or VS Code or whatever you use for the development.
Downsides of this proposed solution is that 1) we need third party VS extension, 2) developers needs to be informed to add tags to their nuget packages and 3) consumers needs to know to add the extension to their instance of VS. Upsides are 1) we don't need to alter nuget specs and 2) no changes needs to be introduced in VS or VS Code. Please let me know what do you think.
In comment section Nathan has offered a solution. He suggests to move app builder extension method to
Microsoft.AspNetCore.Builder namespace. While this is convenient (you don't need to add using statement in order for extension method to be offered by intellisense) it does not resolve a problem I am describing. What I would like to achieve is to be able to list nuget packages (that are middlewares) using intellisense autocomplete. For example if you type app.UseMvc VS will offer to add reference to MVC nuget package like in the screenshot below (you have to move the cursor over the method you have typed).
Problem here is that only MS created packages will be offered this way. If we had middleware index and VS extension, as described previously, we could offer all (indexed) middlewares to be references even without moving the cursor over the method name.