views:

682

answers:

6

Hi all,

I have been working on winforms using C# in my company for quite a long time, and I have a fair experience implementing those. However, I need to change my job and work somewhere else. The market in here is mostly in need for web applications developer which I never worked with before. How difficult is it to move to using ASP.NET ? and what's the best way to start my self-learning given that I don't like to bear a book and read from it?

Thanks

+1  A: 

A lot of people seem to be moving to web applications these days; the good news is that it isn't as hard as you might think. ASP.NET takes advantage of a lot of the same design patterns for the UI framework as WinForms, so it should be pretty straightforward.

Also, moving to ASP.NET, you can still leverage all your knowledge about C#, since it's one of the supported languages for the technology. You'll be up and running in no time.

There are a couple ways you can build user interfaces with ASP.NET, but the most common is ASP.NET WebForms. You can also use frameworks that provide some abstraction like ASP.NET MVC (similar to Ruby on Rails) if you want to separate your business logic and your interface a bit more.

I'd suggest taking a look at http://www.asp.net, which has a ton of great resources for getting off the ground as well as videos, samples, and walkthroughs. Best of luck; I'm sure you'll be fine!

Ed Altorfer
By contrast, a lot of people don't like ASP.NET (regular) for exactly the reasons you state; the web is *not* really the same as winforms, and using a framework that pretends it is is asking for trouble...
Marc Gravell
A: 

As stated already it's not a very hard transition to make, in terms of code. But do not let the apparent similarities deceive you; a web UI is a completely different thing than a Window Forms UI. Put some energy into understanding the differencies between the stateful UI of a windows forms application and the request based UI in a web application. This is where I have seen most strange constructs in ASP.NET applications through the years.

Fredrik Mörk
+1  A: 

The hardest thing about that transition is that many of the examples you will see have most if not all of the code in the aspx.cs code-behind page.

If you have been following good design and coding methods in the WinForms world you know that the more you can separate the presentation from the classes and objects you design the easier your design is to test. It's the same in the web world.

It will take a bit to get used to the page and control lifecycle, and a few objects are more different than you might first think - but it should be a fairly smooth transition.

Gary.Ray
+1  A: 

You guessed right! Web applications are vastly different from rich client Windows applications. More than anything they require a change in thinking.

The most basic and primary difference arises from the fact that the "Web is stateless". IMO, the second most important difference is that web applications are rendered on the user's browser and are therefore the level of interactivity you can provide is inherently limited by the browser's capabilities.

My suggestion would be start slowly and accustom yourself with the ASP.NET page lifecycle, the code-behind and code-beside models of creating webforms, understanding how ASP.NET compiles and executes pages on the server, state management, client script features (such as Javascript), etc.

Get a good beginner level book on ASP.NET and don't forget to check out all the fabulous videos on the ASP.NET site.

Cerebrus
+4  A: 

Some of the stumbling blocks you'll run into that aren't covered under WinForms development are:

  • The ASP.NET Page Life Cycle
  • IIS Configuration
  • Security
  • Performance
  • Search Engine Optimization
  • The HTTP protocol
  • HTML/XML/CSS/Javascript
  • Databases (most web sites anyways)
  • Web Services
  • Browser differences (this one really blows)

See What should a developer know before building a public web site? for a good start on what you'll be getting into.

Todd Smith
A: 

first you should buy some basic asp.net books to understand the core concepts of asp.net application. Then crate some basic simple application and play with basic controls like textbox,button,radio button,dropdownlist,gridview etc. Then you should start professional programming.

It is very easy for you just need to see the asp.net application and pages lifecyle. You are fimiliar with programming in c# and vb.net as you are doing winforms programming.

ASP.NET Webforms are also event driven. So its will work for you.

jalpesh