Here's my 2 cents:
Develop an architecture first. From server layer down to app layer.
From what I can see, you would be well suited to having everything running from the cloud. I would use AWS:
- A number of Windows servers to run your C# code.
- I like json so I would create a restful api using MVC API 2. Scale using some async controllers. Use nodejs otherwise.
- Build your web app using ASP.Net MVC. However, if you have all your services up and running, use backbonejs/angularjs/knockout to hook into your services and build what is needed.
- When the mobile phase arises, make use of either native code or something like xamarin to develop your mobile app which will utilize the services.
- Regarding db, there are plenty out there. If you feel your schema is very fast changing, look into couchdb or mongodb. If you understand the business well and the schema doesn't suit document databases, use mysql/sqlserver/postgresql. Graph databases could be used if you really know what you're doing and want to try something new.
- Enhance + optimize as you need. You could add memcached/redis in. AWS does have their own branded caching service called ElastiCache.
- Cluster the servers and/or increase your EC2 instance as the need arises.
Don't over think things. Use what you know. Learn stuff along the way and apply your new found knowledge.
Develop an architecture first. From server layer down to app layer.
From what I can see, you would be well suited to having everything running from the cloud. I would use AWS:
- A number of Windows servers to run your C# code.
- I like json so I would create a restful api using MVC API 2. Scale using some async controllers. Use nodejs otherwise.
- Build your web app using ASP.Net MVC. However, if you have all your services up and running, use backbonejs/angularjs/knockout to hook into your services and build what is needed.
- When the mobile phase arises, make use of either native code or something like xamarin to develop your mobile app which will utilize the services.
- Regarding db, there are plenty out there. If you feel your schema is very fast changing, look into couchdb or mongodb. If you understand the business well and the schema doesn't suit document databases, use mysql/sqlserver/postgresql. Graph databases could be used if you really know what you're doing and want to try something new.
- Enhance + optimize as you need. You could add memcached/redis in. AWS does have their own branded caching service called ElastiCache.
- Cluster the servers and/or increase your EC2 instance as the need arises.
Don't over think things. Use what you know. Learn stuff along the way and apply your new found knowledge.