Loading user information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading user information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

Building Rich Apps with AngularJS on ASP.NET

1 hour, 15 minutes, 29 seconds


Right click “Save as…”

Slides (view online)
Come learn how to build end-to-end apps using AngularJS and BreezeJS on the ASP.NET platform. We explore how to manage multiple screens, maintain clean code with popular patterns, implement CRUD, perform robust HTML validation, and use local storage for saving work in progress.

Follow the discussion

  • Oops, something didn't work.

    Getting subscription
    Subscribe to this conversation
  • Leniel MacaferiLeniel Leniel Macaferi

    This is one of the BEST things I've seen in Software. FANTASTIC technologies. No doubt that WIP feature is the coolest.

    John Papa is such a skilled professional and has the mastery in presenting. The right person at the right place at the right time!

    Thanks Microsoft and John once more.

  • YazYaz

    Awesome stuff, is there a PRISM like for AngularJS?

  • John Papajopapa Evangelist on the Loose

    @Yaz:You could think of AngularJS as a "prism"-like framework.

  • Is the complete CC solution available as source? I only found the Durandal based version so far.


  • Awesome session John!

  • Is there an event bus to communicate between views or controllers?

    Is there a region manager?

    How can I tell Angular to create Singleton's or new instance each time.



  • alonalon

    It's time for a new course in Pluralsite >>
    HotTowel.Angular + Asp Web Api :)

  • John Papajopapa Evangelist on the Loose

    @alon: I have 2 courses on this now: Part 1 and Part 2  :)

  • John Papajopapa Evangelist on the Loose

    @Yazid: You can use services/factories to share data between controllers or you can use the eventing/broadcast features to send messages. Depends what you want to do.

    You can place you HTML/CSS where you want, so no need for regions. Or use bootstrap or some layout from a source like wrapbootstrap.

    Angular creates controllers per instance and services/factories as shared. Which is what you'd want for these. If you want to controller more, just create an object that you can do something custom with.


  • John Papajopapa Evangelist on the Loose

    @Obiwan007: I'm working on releasing the source for CC, but it may take some time. In the meantime, you can get it from a Pluralsight+ subscription

  • This was a great session. Thanks John.

  • Mark WheeldonMark Wheeldon

    Brilliant video John. I wish it was around when I first started with your Hot Towel template!

    I'd love to hear your thoughts on how best to test this code, what frameworks you use etc.

  • Fran MazanetFran Mazanet


    Any tutorials/sample code using AngularJS / Breeze and ASP.net Identity. I saw Code Camper but you do not use ASP.net Identity.

  • Great Job John P
    Just WIP it 



  • The links John mentioned in his talk:






    http://jpapa.me/1iVpwkp.  Angular App Structuring Guidelines

    http://jpapa.me/ngstructure.  Angular Structure: Refactoring for Growth

  • @George_Curelet_Balan: Thanks you very much.

  • ArnasArnas

    Great presentation. I have one question.
    Stay above the fold - 0:18:22
    How getData and save properties of service object which is returned gets their value? Since it is returning before function (getData/save) declaration it should be undefined right? Resulting object service = {getData: undefined, save: undefined} therefore datacontext methods undefined. Is this magical angularjs trick or I'm missing something?

  • John Papajopapa Evangelist on the Loose

    @Arnas:Good question. Those functions are defined below the return, but they are hoisted to the top since they are declared as a function declaration (e.g. a function without an explicit variable definition) .

  • Rahul MehtaRahul Mehta

    Amazing !! Fantastic Explaination

  • L AL A

    Have a question about security issue concerning using angular to display the items of a collection that might be used for an ecommerce site, seeing as J.P is one of the best to answer, was hoping not to draw heat from asking here...

    If back in the late 2000+ we had javascript issues (like on Amazon) of people that would manipulate client side js pages/code to change pricing of items, and get say a 20$ book for 2$, because pricing and calculations lived on client side, is there a way to leverage angular to avoid hosting that info client side as to avoid this same scenario repeating again, I have not seen this yet in the course material presented.

  • L AL A

    Meant to say early 2000s

  • Nice article :)

Remove this comment

Remove this thread


Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.