views:

120

answers:

3

Hi All

First question on Stack overflow...

I am a novice in C#, yet finding it quite straight forward in learning it.

I saw this tutorial just a few minutes ago.

Reading through the various c# technologies WCF, WPF, Silver light, c# with asp.net, that is quite a lot of technologies to take it in with c#.

I will be creating a web application c#. I think Silver Light seems the best option for me.

The application will have a database which will be hosted on one of the hosting servers in the UK. The programming language also has to be in C#. This project is for furthering my knowledge and skills in web application (within c#). My hope is to install the web application onto a test domain name.

I would also like the web application to be deployed onto other domains if possible. I gather from researching that I would possibly require a configuration file so the domain name, DB Name, Password etc can be configured on an individual basis.

Would it also be possible to make changes to the web application say after 3 months, and click a button and deploy the latest changes on the application ?

Looking at my needs to create an application that will have a hosted DB and will need to interact with the DB, i think silver light with c# seems to be on the right line.

Am i on the right line, am i considering the tools, technologies ? Any pointers will be greatly appreciated. Is what I what to do possible with Silver light or would an alternative technology with c# be a better choice ?

Thank you for your looking through my question. Sorry for the long essay style question, I thought it best to give as much information as I could.

**UPDATE: After a few generous replies/answers and advice I would like to update my question: For ASP.NET MVC, is it possible to connect up to a database such as mySQL ? I have read that using the ado.net it is possible to do this. Is it possible with other ORM's ?

Also Is it possible to package a web application up in APS.NET MVC so that I can then install it on say a second test domain/server ? **

I look forward to your replies and advice. If there is anything that needs clarifying please do let me know. Thank you.

+6  A: 

You should consider what the purpose of your application is. Silverlight is run on the client and is great for media, flash-like stuff, but requires the user to have silverlight on their machine. I would recommend you take a look at asp.net mvc as its a "pure" web development technology. I dont really class Silverlight as web development, even though its hosted in a web browser...

The main point of this is to consider the technology from the applications point of view.. and then make your decision based on the applications requirements.

Here is a link to some details about MVC with tutorials and videos which are great and I am sure will help you out...

When you just start out there is a danger of getting caught up in all the acronyms, Eg WPF, WCF etc etc. I would work my way through a good C# book and write some simple console applications to get a feel for the language. Good luck.

Matt
I agree with @Matt. Silverlight should be considered only if you are looking for RIA else you should go for ASP.NET
ajay_whiz
Thanks for the reply Matt and Ajay Whiz.Having looking through the asp.net mvc site which you so kindly linked to, it seems to me that asp.net mvc would be the right way for me to go.
Harry
Thanks for the suggestion of the C# book Matt. I think that is a great idea for me to actually sit down and start creating some simple console programs and then adventure from there.
Harry
+1  A: 

If you're building a website to learn about C# and programming in general, you might be able to get away with learning just Silverlight for now.

But if you're aiming to do good websites in the future, you should absolutely learn MVC and sprinkle a little bit of Silverlight or Flash or Ajax or whatever awesomeness you're interested in.

MVC will also teach you more about good application architecture as well, namely, well, the MVC pattern.

It's generally not a good idea to do entire websites in just Silverlight/Flash; mainly for reasons like the fact that you can't copy & paste text, as well as the fact that they confuse the heck out of search engines.

Also, communicating with databases and doing login is much easier in MVC than it is in Silverlight, since with the latter you also need to learn web services. With MVC, login practically works right out of the box.

Would it also be possible to make changes to the web application say after 3 months, and click a button and deploy the latest changes on the application ?

Yeah, in Visual Studio you can right click the project and click Publish. You need to set up IIS with FrontPage extensions or FTP or something first, but it's not too difficult.

(By the way I love Silverlight too, but Microsoft failed to market it properly.)

Rei Miyasaka
Hi Rei. Thanks for replying. I am familiar with the MVC pattern having used the Symfony Framework in PHP. Thanks for clarifying up some of my questions, much appreciated!
Harry
+1  A: 

I tend to agree that Silverlight may be overkill and just "another" thing to learn. Another option if you really are just starting out is to take a look at Web Matrix. Microsoft seem to be actively going after the kind of newcomers that would normally end up in something like the PHP camp. These tools seem to be a way of reducing the starting knowledge set needed to develop a solution. Maybe this would be a good starting point and then move on from there. Personally I would recommend trying to learn MVC from the outset, rather than looking at the original ASP.NET / WebForms approach

Paul Hadfield
Thanks for replying Paul. Looking at the Web Matrix it seems to be a very good alternative. Having read some more info about Silverlight I have realised that it is not entirely what i thought it was.
Harry
If you wanted to do "desktop" it might be worth looking at "LightSwitch" too. MS have also just announced "Microsoft.Data" which is cut down data access, it's getting a lot of negative press. But if you take note of things like SQL Injection Attacks (http://en.wikipedia.org/wiki/SQL_injection) then it could also be a good introduction.
Paul Hadfield
I was debating with myself whether to create a desktop app which could connect to the DB hosted on a server somewhere or create a web based app. In the end I decided if it was possible I would like to do both, if this was not possible then I would create a web based app. I think I need to do some more research and background reading :)
Harry