Currently Learning to create a simple AngularJs App.
This is my first MVC app, so my questions may be very basic.
I understand that we require nodejs t
I understand that we require nodejs to run the Angularjs App, so will the hosting provider have the node.js installed with their server?
No, AngularJS doesnot require Node.js to run. It is just that tutorial you are using to learn AngularJS might be using Node.js for their examples.
AngularJS is a client side technology, so it does not need any specific server to run. And since you are using ASP.Net MVC as your development platform, you'll need an ASP.Net hosting for deploying your app.
You can take a look at my recent ASP.Net MVC / AngularJS development here: http://bipolarapp.bitsstech.com and this app is hosted at Windows Azure.
AngularJS doesn't require node.js to work, you can even use it from the google CDN without having the script hosted on your server. Node.js is used mostly for the testing, like if you want to do e2e test with Karma for example. It's a good point if you have it, but you can host an app on a simple server without node.js, and test it locally for example
Actually, any server on the internet (a good old apache for example) will be able to host an angular app, as all the work will be done on the client side
Node.js, however, is required for the question 3. Yeoman (the Yo command), grunt and bower are part of the workflow sometimes used to build an angular app. But, these are not required either. It allows you to create quickly a skeleton for a new app, test it an deploy it. It's explained on their website, http://yeoman.io/
Those tools require node.js to work, but they're not a requirement for an angular app to work. It can be useful to have them somewhere if you plan on building many angular app in the future, but you will be able to host thoses apps even without any of these tools.
How to host your angular app ? Like any other HTML page. You can even copy this code and save it to your hard drive :
<html ng-app>
<head>
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js'></script>
</head>
<body>
{{"hello"+" world"}}
</body>
</html>
then open it, it will work !
NodeJS isn't a requirement for AngularJS. Angular is a client-side library.
Angular's team uses NodeJS to help you do things like test your javascript, or pull down files and set up everything you need to run a little web server.
So all you really need for an "AngularJS app" is 2 files: angular.js and some HTML file.
<html ng-app>
<head>
<script src="angular.js"></script>
</head>
<body ng-init="what = 'gas'">
Now you're cooking with {{what}}!
</body>
</html>
Beyond that, any web server that will host static files will do for the most part.
If you're deploying a client-side only Angular application (ie. you don't have custom server code), then you might want to check out Firebase Hosting. It's specifically designed for hosting client-side applications that use Angular, Ember, React, etc.
Firebase's Hosting will let you deploy from command line without managing your own servers (no NodeJS), and it handles SSL, CDN, and other best practices for you.
(Disclaimer: I work for Firebase)