views:

844

answers:

12

I've just had an interesting thought.

It has been a while already since some of us have enjoyed the new MVC framework for ASP.NET. We have talked about it, compared them, liked or disliked one or the other at a different point of time, argued about them each protecting his own point of view. Now it is somewhat silent. He who wanted to give it a try has already done so.

I believe that this MVC approach (though it is not new I know, bear with me) has been quite an eye-opening for those of us who had been hacking WebForms and windows-like event handling. I must admit I have come to realize how wrong WebForms really were, though I didn't want to believe it until the last moment.

Two main differences that going with MVC can bring:

1) Developer will finally (if he hasn't done so already) get his hands dirty with learning HTML, CSS design, JavaScript techniques, HTTP and how web applications really work underneath

2) During the painful (probably) adoption of this MVC approach the guy will probably give a lot of thoughts to the architecture issues, concern separation, n-tier architecture etc. which on its own is good already because many coders just hack it the cowboy way without thinking first

After some time the guy will probably form an opinion about what he prefers and considers the right way and most especially why. At this point don't start kicking me about good old WebForms - I know they are good and actually much better for certain scenarios, but it is also an opinion.

So, I suppose asking a guy which of the two he personally prefers and asking him to describe the advantages of his choice could be a good test of where he stands. Could be an interesting talk-initiator at the job interview. Though I may not be right about it. Have you also had such an idea?

A: 

Yes, Mouse-Driven-Developers (I.E. Drag and Drop) will be very uncomfortable in MVC. Developers that value SoC and Testing should love MVC.

So a conversation about MVC preference during an interview should enlighten the interviewer to the applicants feelings on good software development practices.

devSolo
Mouse-Driven-Developer is a good one. Will remember it. Many thanks.
User
What's SoC? Google did not return anything useful.
MiseryIndex
Seperation of Concerns
Nathan Koop
@devSolo: I guess you must be one of those people who gave a bad name to web forms. Nothing about web forms requires or encourages mixing UI and Business Logic and Data Access. Some of us don't need the crutch of MVC in order to program correctly. Even some of us old-timers can manage to separate concerns, unit test, and even TDD, all while using web forms. "Separation of concerns in ASP.NET: Since .NET 1.0".
John Saunders
@John Saunders Nope, not encouraged at all. <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=SERVER;Initial Catalog=DATABASE;UserID=USER;Pwd=PASS" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [PartNumber], [PartDesc], [Price] * 1.1 as [Markup] FROM [Parts]" />I do agree with you though that you don't need MVC to program correctly.
devSolo
+32  A: 

It might also be a good indicator of your own bias.

Gabe
+3  A: 

With the newness of asp.net-mvc, it might be unfair to ask an interviewee about it (unless that is part of the job description). The interviewee might also just feel more comfortable with Webforms and thus select that one. Asking about the MVC pattern is valid, but dont know if the selection of one framework over the other is a good indicator of how proficient a programmer the person is.

CSharpAtl
+10  A: 

I don't know. There are advantages to using web-forms in some scenarios and there are advantages to using MVC in other scenarios.

If you're writing a simple CRUD web-application, then the WebForms model will get the job done and it'll get it done quickly. There are a number of handy features in there like the validation controls, forms authentication etc that make developing these sorts of apps very easy. I'd wager that 85% of the apps written in ASP.NET are the CRUD style apps that Webforms excels at.

If you're writing an application like Stackoverflow, then it's complete madness to use Webforms. For a sophisticated application you're going to need to very precise control over the markup, the Javascript and the whole experience in general.

So it's horses for courses really. It depends on the goal of the project. Of course, it's probably a good sign if they understand the why you might pick one set of technologies over an another. However, to go as far as saying ASP.NET MVC is a superior in every way to WebForms is probably a step too far.

Simon Johnson
A: 

Well, I definitely agree with the "talk tech" approach during interviews. I conduct a lot of interviews and I find the question-and-answer-barrage to be boring and provide less insight that a good, in-depth discussion of a particular technology or the trade-offs between two technologies. This is especially useful if weighing technology choices and making those type of decisions will be part of the applicant's job. But, I would not hold a person's opinion on one technology versus another against them. There are generally lots of pros and cons of different approaches.

JP Alioto
A: 

I prefer MVC myself, but I don't think it's the one and only true way, there are places where WebForms is better (for example, if you are developing simple forms).

Asking for a preference is a way to hire people with the same bias as you - not a way to find the best person for the job.

Nir
Well, at least it is the way to find out if the person has his opinion or will just perform as told without giving it a second though. Good as a code monkey, not good as an active part of a team.
User
Mastermind, good point
Nir
+2  A: 

Would it be a good indicator of his proficiency? It could be, but maybe not in the way you mean. Awareness of MVC and the differences between it and WebForms may be a useful indicator of how closely the developer follows new technologies within the ASP.NET field. It could also be a possible indicator of how much self-learning the developer does, assuming their current and past jobs have been exclusively WebForms.

On the other hand, the developer's actual preference for one over the other is not a reliable indicator of proficiency or experience. It could simply be a matter of never having had to build a site where MVC would be a better choice than WebForms. As a result, they may have a preference for WebForms over MVC for a valid reason. Or maybe they're sold on the idea of MVC, but they don't like the implementation.

Jeromy Irvine
A: 

Keep in mind that being familiar or preferring to use WebForms over ASP.NET Brand (TM) MVC doesn't necessarily preclude other forms of Model-View-Controller architectures. Frankly, I would ask a more general question. ASP.NET MVC is IMHO a foul leviathan and pretty kludgey anyway.

Why not ask him instead about his familiarity with open standards such as jQuery, NUnit, etc? I know, I know, you aren't going to switch, but in my opinion familiarity with open source solutions is going to tell you a lot more about a developer than whether or not they are familiar with the "latest-and-greatest" Microsoft solutions. (Don't get me wrong I am a C# developer by trade, I have nothing personal against Microsoft.)

SoloBold
jQuery is actually promoted together with MVC. I absolutely give it a try after I'm through with the basic stuff with my project. I have nothing against what you call open source and check out with curiosity whatever can bring me benefits.
User
+11  A: 

If anyone answered that one is "better" than the other, you know you have a highly limited programmer on your hands. Now, asking WHERE one is better than the other is a much better interview question. People that insist one tech is simply better than a different technology is normally an indicator of a very "inside the box" or group think, um, thinker.

That said, if I was interviewing for a position and was asked "Which is better, MVC or WinForms" or didn't get the job after being asked "Which do you prefer, WinForms or MVC?" because of my answer, well I suppose my thanks are in order, as this is definitely not a place I want to work. Thats the thing so many people forget, a job interview is as much for the candidate as the company interviewing. Well, that is if the candidate isn't currently starving.

Serapth
+4  A: 

I think any question that is well worded will elicit a good indication of proficiency. Asking about the differences between MVC and the WebForms models and the advantages and drawbacks of each would give you a good idea of their level of understanding of the two paradigms. Asking about a single technology however would only give you an understanding of their proficiency with that technology. For instance, someone could be an ADO wiz, but ask them about writing HTTP handlers and they could have no idea - but someone who writes HTTP handlers every day might not have the first clue about ADO. You can't assume any general level of proficiency from someone's understanding of a single technology.

It might be a good idea to give a few hypothetical scenarios and ask which paradigm might provide the best solution.

Of course, someone who has years of experience with WebForms and n-tier architecture might surprise you at how agile WebForms can be in the right hands, of course, someone that's an MVC guru might suggest solutions using MVC that you would never have previously considered using MVC for.

The trick is to look for someone who can apply the technology wisely using grounded reasoning rather than apply the technology for the sake of using it. The best developer will pick the right tool for the job, they won't pick the tool and make it fit the problem - that's like trying to bang a square peg into a round hole.

BenAlabaster
+1 => great answer!
Scott Ivey
+2  A: 

So, I suppose asking a guy which of the two he personally prefers and asking him to describe the advantages of his choice could be a good test of where he stands. Could be an interesting talk-initiator at the job interview. Though I may not be right about it. Have you also had such an idea?

And who said you are right? Or better yet: Who said there is a right or wrong here?

One may be better suited for certain things over the other. One may be deprecated as the other is the new way of doing things.

What you have to remember is that they are only tools and that whichever one he/she uses is not a direct relation to 'How good that developer is'.

Granted that his/her ability to discuss this and voice an opinion on this might be a subject for a great talk. In no way is it a way to determine whether he/she is a good developer. Your company may require that he/she uses MVC. In that case a Webform developer may be discarded, but that doesn't mean he/she is not a great developer.

Therefore, asking whether he/she knows MVC and can develop using it may be a good question for an interview. I believe that your question, "asking a guy which of the two he personally prefers and asking him to describe the advantages of his choice", is not relevant to the job interview. Once he's hired, talk about it over lunch, but not for a job interview. Not in this particular form anyways. Use it to confirm how much he/she knows about MVC and then you might have a question of value to the interview.

Dewm Solo
Then we have to define "good developer".
User
@Mastermind: Well the author of the questions says he wants to use this question to judge how good the developer is. In other words he wants to determine how good a developer is based on the tools(libraries) he uses. There are still plenty of webforms projects out there you know and a GOOD developer that knows them will be very welcome there. So you don't want to define "good developer" but "good developer for your environment". He may not fit in your environment, but that far from means he/she is not good. Lets say I like to code in C++ and you in C#...does that I mean I'm not good?
Dewm Solo
A: 

Meh, why beat around the bush. Yes, it probably IS a good way of sorting the what from the chaff. That's certainly been my experience hiring contractors this year. You might even want to up the ante, by ascertaining if the developer likes MVP or MVC as a preference. ha.

boymc