views:

498

answers:

11

How does one be called a ninja ASP.Net programmer?

What set of tools and immediate knowledge(Without having to open MSDN, SO, or Google) should be known to be considered a master?

Webforms or MVC...

+23  A: 

The Page Lifecycle feels like a solid place to start if you're doing Webforms.

Addendum:

And the Control Execution Lifecycle would be a good idea as well.

LeguRi
excellent answer. i know people who have done asp.net for a while who STILL get confused on the whole postback concept.
marduk
i love this chart http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg still hanging on my wall
Glennular
+1 I'd edit this slightly to the CONTROL lifecycle TOO... as people get confused when creating their own controls and getting the viewstate to work properly
andy
@andy - you mean like http://msdn.microsoft.com/en-us/library/aa719775%28VS.71%29.aspx ?
LeguRi
@richard: yep! I just meant it as an edit because the Page is a control too
andy
+1  A: 

I'd consider how easily are the following used:

  • Visual Studio - This is the IDE that may have add ons
  • nAnt/nUnit - for handling builds and tests
  • IIS - Which will be used for handling requests generally
  • SQL Server Management Studio - Assuming the ninja is doing database work outside of VS

While source control would be a bonus, different software can do things so differently that I'm not sure if there is a standard to apply here.

As for other technical knowledge:

  • SDLC should be known by heart
JB King
+5  A: 

Everyone should know that the only thing a browser can understand is HTML, CSS and Javascript, so you should know those three things very well. Sure, it's nice to have the abstraction of the ASP.NET controls in certain scenarios, but don't fool yourself, the browser has no idea what a GridView or an asp:TextBox is. I know this is dead obvious to most of us here, but for some it's not so.

wsanville
Definitely! Since Asp.NET rests on the shoulders of such a different paradigm from other web dev technologies, often the Asp.NET developers I've seen take for granted that they don't need to learn conventional web dev technologies like HTML and CSS. When I first started at my current job, most of my time was spent explaining to other devs that the site was broken because of things like `<div>` elementss nested in `<a>` elements...
LeguRi
Sometimes people who are new to web development, even those who are not new to programming often don't understand the distinction between what happens on the server side vs client side. There are quite a few questions asked here about developers expecting their C# code to work magic inside the browser.
wsanville
+1  A: 

Take a look at Hidden Features of ASP.NET - quite a variety of ASP.NET tidbits.

Grant Palin
+9  A: 

If they are using WebForms they better have a strong understanding of ViewState and how it is used and it's performance impact.

Lots of "green" WebForms developers have no idea of the impact that ViewState has on controls such as GridView and DropDownList when they bind 1000s of items to them or what the ViewState is actually doing for them which is not always good.

It's one of those features that seasoned developers would probably wish was off by default so that developers would need to choose to turn it on for each item and consider the impact.

It would be like everytime you need to use your car, you have to unload your trunk before using to ensure you are getting good gas mileage. I am sure we all prefer to drive around with an empty trunk by default and in those cases where we need to carry an extra bag we can just throw it in the trunk :)

Kelsey
I found this article helpful for understanding ViewState: http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx
Cory Grimster
@Cory Grimster great link :)
Kelsey
+1  A: 

One thing every ASP.NET developer should know all of the different state options and when to use each. HTTP is stateless, and ASP.NET gives a plethora of state management options.

MSDN has a good article I always recommend.

Aaron Daniels
A: 

This question has some good links in the answer.

Should developers be specialists or generalists?

A lot of people place value on the MS certifications. Whilst they're nice to have on the 'ol resume I don't think they really reflect a persons ability.

For my 2 cents worth I think industry knowledge is a key component. Having in-debth knowledge of the industry your employer works in is huge because it gives you insights and ideas.

I know that's not particuarly technical.

Then there's OO, SOA, SEO, CSS, Design Patterns, WCF, WPF, MVC Pattern in WebForms etc. These are the fundamentals that we all should know.

ASP.NET specific I think would be, Page LifeCycle, ViewState and the C#, or VB, language.

griegs
+3  A: 

How does the web works. What is the HTTP protocol. What is a request. Difference between client and server side. All that sounds obvious but there are a lot of people that don't even know that HTTP is stateless, because of the abstraction that webforms offers.

After understanding that, important things to know:

  • HTML
  • Javascript
  • CSS
  • .NET

And never forget about programming best practices, code documentation, and all the stuff that is not web or language specific.

Matias
+1  A: 

How naming containers work and relate to parsing of the control tree. For example calling myControl.ClientID in Page_Load will give you the wrong value.

fearofawhackplanet
+1  A: 

In my opinion, WebForms is the now, while MVC is the future. I've been concentrating mostly on MVC, and for that, there are very basic things you MUST know:

(X)HTML, CSS, JavaScript and/or jQuery.

Then you must have a solid grounding in Design Patterns, and SOLID design principles (Look up "Uncle Bob" Martin).

Of course, C# (or VB), WCF, WPF, Entity Framework, LINQ, etc. are also important, but the above topics are to build a solid foundation.

adimauro
+1  A: 

They should know never to go back to their wife WebForms after meeting their mistress MVC ...;)

Matt