dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.21k stars 9.95k forks source link

Where will this Microsoft.AspNet.WebApi.HelpPage go in Mvc 6 ? #464

Closed Tazer closed 6 years ago

Tazer commented 9 years ago

Hello,

Is there any plans to integrate the HelpPage / get it working in mvc 6?

RehanSaeed commented 9 years ago

Use Swagger using Swashbuckle. It is much better.

Darkonekt commented 8 years ago

Can some one answer this question? It is a very specific question.

Swagger is not part of Microsoft MVC. And it might NOT be allowed in many scenarios in which THIRD PARTY tools are not allowed.

It has been MORE than ONE YEAR! Can you please answer if this is ever going to be implemented.

It is a shame what has happened to the API in MVC 6 so much functionality has been just cut off.....

It seems like MVC 6 still is far from finished. And telling people to go "looking for a third party" is NOT a valid answer.

Is this what open source means?? Creating a COLLAGE of third party tools?

cwe1ss commented 8 years ago

is it just company policies that prevent you from using third-party libraries? Where do you draw the line between allowed packages and unallowed packages? Is it the fact that Microsoft must be the vendor of the package? How about Newtonsoft.Json? A lot of packages in ASP.NET Core have a dependency on it and it is not from Microsoft.

Is this what open source means?? Creating a COLLAGE of third party tools?

I think so, yes. That's actually what I really like about it. The whole community is trying to use the best tools instead of continuously reinventing the wheel. I'm convinced that this will be a huge win for .NET

MaximRouiller commented 8 years ago

Microsoft is, in my opinion, trying to reuse instead of reinventing the wheel.

The new templates ship with Gulp/grunt/node.js, auto-install packages that were not built or vetted by Microsoft, make use of open source library at the core of their framework.

The policy your company is adopting will need to be updated. I'm not saying this to be mean.

A non-Microsoft shop would have encountered those problems years ago. With the new direction that Microsoft has taken, those kinds of policies will become harder and harder to enforce. Microsoft shop are now faced with those kind of choices.

Will you approve jQuery? Angular? JSON.NET? NUnit? Ninject? jshint? less? jasmine? etc. so many of them... and that's just on the project I'm on.

My opinion is that using just Microsoft technologies will take you a good way in. But if you want to build a SPA or do some more serious front-end development, you might need to have your company approve at least 10-20 libraries/frameworks.

Darkonekt commented 8 years ago

All I hear are excuses. cwe1ss many companies have STRICT rules into what can and cannot be used. Financial institucions, government related etc.... they will NOT change the rules to accept any third party just because.

MaximRouiller you are not being realistic. Software companies have many departments. You cannot just barge in and change the way things are done.

You say"Will you approve jQuery? Angular? JSON.NET? NUnit? Ninject? jshint? less? jasmine?" The answer is maybe jQuery as for the other ones the answer is NO.

Even worst anything that fails penetration testing, architectural design principal enforcing etc will not be accepted. I have been developing .NET solutions since 2002......

Then you say "if you want to build a SPA or do some more serious front-end development," which is FALSE! Plain and simple.... Microsoft has taken the easy way out and is no longer a good MVC API product.

You can make things pretty if you want but for serious companies all those "pretty frameworks" and "control suites" are out of the question.......

Creating a collage of third party tools is not professional. It is HACKING! The less youdepend on third party stuff the cleaner your software.

Microsoft is walking a thin line in the boom of this "new" ( feels like the 90's ) stuff. Microsoft now want to be so "Store apps" like that they are forgetting that 90% of the programmers using .NET are NOT making "pretty store apps" but BL heavy lifting internal coorporate applications.

Same NAIVE roadmap is being followed by the EntityFramework Team.

I will be proven right with time and Microsoft will have no choice but to satisfy the majority.

cwe1ss commented 8 years ago

I think that's one of the main reasons why it's good that this framework has been renamed to ASP.NET Core 1 - it is a different product with different goals. You can just continue to use MVC 5 if it works for you. It probably won't get much more innovation but meh - it probably supports most of what you will need and works pretty well.

If you want to use ASP.NET Core and you really need this feature, you can also just create it yourself. Have a look at the ApiExplorer classes. It should give you everything you need (Swashbuckle/Swagger uses them as well). Maybe you can even take the code from MVC 5 and port it without too many changes. I ported a similar thing from MVC 5 to Core 1 and it wasn't too hard.

My opinion is that we don't need this feature in the framework because swagger is better.

Darkonekt commented 8 years ago

cwe1ss you say "to use the best tools instead of continuously reinventing the wheel" FALSE!

ASP.NET is being re-written from the ground up! So much for re-inventing the wheel and reusability speech!

You asked me "How about Newtonsoft.Json?..... ASP.NET Core have a dependency on it "

BIG MISSTAKE from Microsoft.... what if Newtonsoft goes out of business; what if they stop developing it?

Why would microsoft want to depende on it?

Third party stuff should be OPTIONAL!

MaximRouiller why would you want to use NUnit when you can just use PEX? Why would want to use Ninject when a correctly architected application does NOT need Ninject to do DI?

The reality of the software development industry is not being taken into account.

I am not sure where you work or where you have worked. But I have worked for companies with hundreds of developers. Well estabilshed rules and processes. Endless departmens. QA, Security Testers etc... Things like JQuery UI DO NOT pass penetration testing for example. So forcing third party tools it is not going to work.

What is going to happen is that Microsoft is going to have the majority of companies stuck on .NET 4.6 and MVC 5 for ever and ever..........

In most companies you cannot just "choose" what pretty frameworks to use. They will tell you what is allowed and thats it. There is no argument about it; you either comply or get bad code reviews and have to start over.

Even worst I have heard nothing from the Microsoft team regarding Load, Performance, Security testing results for ASP.NET 5.................. Have you? What is actually happening?

Too much effort to put this into linux servers which are like what? 5% of all servers?

Makes no sense.

MaximRouiller commented 8 years ago

I was not being aggressive.

What I'm saying is that unless you are in a Microsoft environment, you are using open source whether you like it or not. The only real "production ready" framework that was handling everything without open source was .NET. Otherwise? Ruby, node, python, Java, javascript... they are all depending on open source. Microsoft was an outlier in that environment.

Microsoft had to develop their own Ajax framework, their own DOM manipulation, their own serializers all while getting requests to be able to swap them out. Why spend time on something that is going to be replaced anyway?

JSON.NET is the serializer that everyone is using. It's faster, tested and used by everyone.

In the end what I'm saying is that... even if companies have "strict rules" for not using Open Source, you can always "reinvent it" but it's going to cost you. I would sit with my client and do a Cost Analysis between accepting a library or just rebuilding it.

Darkonekt commented 8 years ago

MaximRouiller I understand what you are saying. But simply it is not about sittng with a client....

When you have to lead 5 or 6 teams of developers and production applications that deal with money; you cant just make "leaps of faith". You have to follow rules and standards that are in place.

For example if any vulnerability is found in a component; no matter how cool that component is; it will be out the door faster than it came in.

Even further when you have 25-30 developers you cant just allow them to use what ever they want. It would be chaos and unmanageable, unmainteinable code.

Third party tools should be OPTIONAL period.

Saying that because some one else built a better this or that then Microsoft should just drop it's equivalent it is no realistic. Many people will use microsoft stuff not because it is better or prettier; but because it is part of the .NET Framework.

The more third party stuff your app has the more breaking points it has; and the more vulnerable it is. The esier your app will become outdated and obsolote.

I have been writing code for 15 years and have seen these frameworks come and go, Trendy stuff come and go..... At the end the only thing you can rely on is clean code (sort of.. because the .NET changes too).

Bottom line is. Microsoft should offer the basics for each functional area; if people want to go nuts with trendy stuff then they can use third party stuff.

Plus the HelpPage is not new functionality; it was part of MVC all along....

I guess I could just write my own........ I just wish Microsoft took off the slippers, cutoff its hair and took a shower.....

Business apps are not a college discussion about open source and linux maniacs. It is serious stuff and CEO, CTO etc are not buyinig all of this "rainbow open source boat" stuff.

MaximRouiller commented 8 years ago

Estimated cost provided by Ohloh.net

AngularJS - $ 4,476,853 JSON.NET - $ 1,525,160

Even if we estimate way down (like 50% down), we still get 700K to just rebuild JSON.NET and that is assuming that you have the skillset in-house to do the same job.

Darkonekt commented 8 years ago

And your estimates you got them the same hat where the bunny came from?

4 million dolars to create Angular JS hahaha sorry but now you are just not making any sense.

Any can can say what ever they want I guess...

Further more. From a library like JSON.NET you probably use what? 10%? The rest of the functionality is just bagage....

Same with AngularJS....

The truth is the smaller the footprint the better in your app. Any functionality not needed by your app should not be there. Another reason to keep things to a minimum with 3rd parties.

It is called SURFACE AREA and it is tested in security testing for example.

No matter how much you argue. It is not going to change the software development industry.

And it is not the same making "projects" as a consultant as working in large teams in companies with fortune 500 clients. Simply it is not the same.

cwe1ss commented 8 years ago

There's no point in arguing about this because this is a religious topic that can't have a winner.

MaximRouiller commented 8 years ago

JSON.NET has been around since 2007. It is now ubiquitous.

That library should have been approved years ago. They event sell support in case that's needed in the approval process. Everything else? Optional.

You can write your own JavaScript code if you don't want to use frameworks.

As for performance? https://github.com/aspnet/benchmarks

The team is getting there.

Asking question politely and without dropping wall of texts and all caps helps you get answer much quicker. I'm not working for the team. Just a GitHub user.

@cwe1ss agreed. I'm done commenting anyway.

Darkonekt commented 8 years ago

cwe1ss it is called Computer Science.... nothing religious about it. There is a correct answer for this.

MaximRouiller thats the point 3rd party tools should be optional. Not forced by Microsoft or any one else.

I have modified jQuery UI for example many times to make it pass penetration testing.

The point is everyone can use whatever they want... except when microsoft forces you to use third party tools.

cwe1ss commented 8 years ago

Algorithms are science. Software Architecture is purely opinion-based. There are best practices (design patterns, ...) but there are no scientific laws.

Making best practices a law isn't possible. It's like saying every house must be blue because that's the favorite color of most people.

cwe1ss commented 8 years ago

@Darkonekt regarding ApiExplorer: this should get you started: https://github.com/aspnet/Mvc/tree/dev/test/WebSites/ApiExplorerWebSite

wichur commented 8 years ago

@Darkonekt I want to support what you said about 3rd party libs in general.

Besides other reasons .NET was stack of my choice because it had all basics in one package. If what it offered was not enough then I could develop my own or pick 3rd party library. Not other way around. Some customers (Banks, Govt., Military ) I've worked for last 15 years which were interested in security were not even considering using 3rd party open-source stuff until someone was ready to put his career on the line by saying "Yeah, its safe to use..." Never saw that happening when personal responsibility came into play. For some 'businesses' paying lots of $ is way to mitigate a risk that at some point they will have to explain to their customers how a "jay-queruuh" 0-day exploit led to them to that big disaster. It might cost a lot, it might be ugly, it might not be trendy but it must be solid and with reasonable purpose behind every line of code.

Of course there are 'businesses' which don't care about any of what I've mentioned above. But until now .NET satisfied both types and did it splendidly.

When I write my code then I know it by heart. When I use 3rd party lib to do my work for me... Who checks every line of code of all 3rd party libs they use? I look into AngularJS or jQuery libraries only when debugger takes me there. I've tried to do that in the past or even go through disassembled code of commercial libs... What I sometimes saw got me a nightmares so I've stopped.

Now I am having great fun with ASP.NET Core, Angular2, SQLite on Raspberry Pi 3. I love how all things go together in a simple way. But... It is still unknown for me if I will do my next project in it. Too many unknowns.

aspnet-hello commented 6 years ago

This issue is being closed because it has not been updated in 3 months.

We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.