First, please no biased answers on your favorite tech/lang.
I'm a developer and confused which technology/programming language I should use for building this website.
1- The website will be much like an animated infographic for specific data.
2- The website’s main page (after login) will have like a panel which will contain several controls, these controls will have several animations:
a. Animations onMouseEnter for every control:
i. Fade-in: Opacity will be animated to fade in.
ii. Grow: Width and Height will be animated to grow the control.
iii. When grown, more controls should appear inside the caller’s control (Text containing more details about this object)
iv. Other controls related to this control, will grow and fade-in.
v. There could also be colors animations as well.
b. Animations onMouseLeave for every control will the opposite of onMouseEnter animations.
c. In some cases (for some users) there could be up to even 200 controls animated with these triggers, however; users will be advised to filter the results for better experience and performance.
3- The panel should allow children controls to be moved by mouse click and mouse drag. (Much like if they are on a canvas and the mouse re-positions the controls)
4- If a user doesn’t apply any filters, they could end up having even 40,000 different user controls. (Any suggestions?)
5- The panel itself should allow zoom in/out, and pan features.
6- There could be multi-threads working on extracting the information from stored data (sometimes at other remote servers), processing the UI controls and generating the panel’s children. (This takes several minutes on my laptop, including the generating of UI controls on a WPF prototype with a low graphics card)
My programming background:
1- I’m basically a C#/.NET developer, on WPF and WinForms.
2- I’m familiar with ASP.NET but still for this website I will need to do a lot of studying and practice.
3- I’ve also read before a little about AJAX within ASP.NET.
1- The website is a fun website, targeting normal customers the same as Facebook users, for example.
2- I have built a small prototype of this as a WPF application but I realized that this is better off as a web app for these reasons:
a. For this kind of app, I expect it to be more difficult to convince users to download the app to use it.
b. This is app will need an Internet connection.
c. I expect processing on my servers will be easier for customers.
d. I expect it to be easier/better to put advertisements on a website than a Windows application.
e. A website will be a better cross-platform solution.
3- Of course, Silverlight could be a good option but I’m worried about the performance of the app, do you think Silverlight can deal with this much UI controls, animations and background processing?
4- I’m also not sure how Silverlight works; will the code-behind work on the client’s computer?
5- Using XBAP will limit the functionality to Windows users. (People won’t use Mono for my application) and this just won’t seem professional.
6- I’m aware I’m going to learn new technologies but I don’t waste too much on learning very different technologies that I may lose my potential.
1- Use C# as the background code since I’m good with .NET already.
2- Use ASP.NET as the engine for the website.
1- What tech/lang do you think would be the best for me?
2- How should I manage the animations?
3- If I use ASP.NET, I’m aware that I might need to buy a professional Visual Studio (Optionally), and will have to buy Windows Sever for my servers, Are there other things I’m going to buy/pay for? A license to commercially use ASP.NET maybe? (Of course the severs themselves and the bandwidth)
4- When I’m done with application, should I consider the cloud services instead of having my own servers?
5- If I’m going to learn new technologies, I’m thinking about using the Metro-UI in my application, what do you suggest about that?
Thank you very much for reading this, and thanks for your suggestions! Your help are much appreciated!