dot net core web api project templates are different












1














I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.



For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller



Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult



enter image description here



Why is that?



Which option is the "best"? And why are they different?










share|improve this question






















  • web api is best, for angular it's old style
    – Alexan
    Nov 20 at 15:24
















1














I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.



For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller



Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult



enter image description here



Why is that?



Which option is the "best"? And why are they different?










share|improve this question






















  • web api is best, for angular it's old style
    – Alexan
    Nov 20 at 15:24














1












1








1







I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.



For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller



Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult



enter image description here



Why is that?



Which option is the "best"? And why are they different?










share|improve this question













I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.



For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller



Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult



enter image description here



Why is that?



Which option is the "best"? And why are they different?







asp.net-core






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 20 at 15:01









monstro

1




1












  • web api is best, for angular it's old style
    – Alexan
    Nov 20 at 15:24


















  • web api is best, for angular it's old style
    – Alexan
    Nov 20 at 15:24
















web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24




web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24












2 Answers
2






active

oldest

votes


















1














Before .NET Core Web API and MVC controllers were similar.



But starting with 2.0/2.1 Web API was changed.



Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.



Old style will continue to work anyway.



Angualar use Web API, I suppose, so template should be updated.



See WEb API documentation.






share|improve this answer























  • But both projects created with the same version of dotnet core... just different templates
    – monstro
    Nov 20 at 15:38










  • this template will work anyway. If it used Web API, you can change manually.
    – Alexan
    Nov 20 at 16:01



















1














ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53395810%2fdot-net-core-web-api-project-templates-are-different%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    Before .NET Core Web API and MVC controllers were similar.



    But starting with 2.0/2.1 Web API was changed.



    Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.



    Old style will continue to work anyway.



    Angualar use Web API, I suppose, so template should be updated.



    See WEb API documentation.






    share|improve this answer























    • But both projects created with the same version of dotnet core... just different templates
      – monstro
      Nov 20 at 15:38










    • this template will work anyway. If it used Web API, you can change manually.
      – Alexan
      Nov 20 at 16:01
















    1














    Before .NET Core Web API and MVC controllers were similar.



    But starting with 2.0/2.1 Web API was changed.



    Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.



    Old style will continue to work anyway.



    Angualar use Web API, I suppose, so template should be updated.



    See WEb API documentation.






    share|improve this answer























    • But both projects created with the same version of dotnet core... just different templates
      – monstro
      Nov 20 at 15:38










    • this template will work anyway. If it used Web API, you can change manually.
      – Alexan
      Nov 20 at 16:01














    1












    1








    1






    Before .NET Core Web API and MVC controllers were similar.



    But starting with 2.0/2.1 Web API was changed.



    Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.



    Old style will continue to work anyway.



    Angualar use Web API, I suppose, so template should be updated.



    See WEb API documentation.






    share|improve this answer














    Before .NET Core Web API and MVC controllers were similar.



    But starting with 2.0/2.1 Web API was changed.



    Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.



    Old style will continue to work anyway.



    Angualar use Web API, I suppose, so template should be updated.



    See WEb API documentation.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 20 at 16:21

























    answered Nov 20 at 15:32









    Alexan

    4,25374874




    4,25374874












    • But both projects created with the same version of dotnet core... just different templates
      – monstro
      Nov 20 at 15:38










    • this template will work anyway. If it used Web API, you can change manually.
      – Alexan
      Nov 20 at 16:01


















    • But both projects created with the same version of dotnet core... just different templates
      – monstro
      Nov 20 at 15:38










    • this template will work anyway. If it used Web API, you can change manually.
      – Alexan
      Nov 20 at 16:01
















    But both projects created with the same version of dotnet core... just different templates
    – monstro
    Nov 20 at 15:38




    But both projects created with the same version of dotnet core... just different templates
    – monstro
    Nov 20 at 15:38












    this template will work anyway. If it used Web API, you can change manually.
    – Alexan
    Nov 20 at 16:01




    this template will work anyway. If it used Web API, you can change manually.
    – Alexan
    Nov 20 at 16:01













    1














    ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.






    share|improve this answer


























      1














      ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.






      share|improve this answer
























        1












        1








        1






        ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.






        share|improve this answer












        ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 20 at 15:37









        Daniel A. White

        147k36293372




        147k36293372






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53395810%2fdot-net-core-web-api-project-templates-are-different%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Ottavio Pratesi

            Tricia Helfer

            15 giugno