1

I've been a .NET guy from the get go in my career, but within my work experience I have yet to venture out into the world of WCF or MVC. I think the difference is more framework / convention based with respect to WCF and MFC, correct me if I'm wrong.

But, what I'm really wondering is this: Is it correct to say that WCF is to MVC as the regular ASP.NET WebServices are to the regular ASP.NET Web Apps? As in, WCF and MVC should be used together and regular ASP.NET WebServices and regular ASP.NET Web Apps should be used together? Or is it ok to intermix any combination of the 4?

Also, why would one not want to upgrade to WCF and / or MVC?

9
  • I think this question is bad because so much of the answer is based on the project you are developing and its requirements. I also think your individual questions are probably dupes such as diff between MVC and WCF and when you'd want to use them. Commented Apr 21, 2011 at 18:24
  • 3
    @jfar - Well, I disagree. Don't be an ass. It can be as general or as specific as one needs it to be. Who doesn't apply answers to their own situation. That's dumb logic in and of itself by you. Commented Apr 21, 2011 at 18:46
  • Sigh. There are question guidelines. Check them out. Your question fails several of them and in my opinion it should be closed. stackoverflow.com/faq Your question is also numerous dupes mushed together. If you broke apart this question I think 99% of what you asked would be covered. Commented Apr 21, 2011 at 20:05
  • 1
    @jfar - First of all, your examples were 3 years old. One can hardly rely on articles or questions that are even a year old. Secondly, I did look at a few questions before posting, but I still felt the need to interact with knowledgeable people in my own terms. I'm getting sick and tired of you SO elitists getting in the way of positive feedback. If you want to troll around and be negative, that's your prerogative. If you want to discourage people from asking questions, keep it up. Commented Apr 21, 2011 at 20:43
  • 1
    @jfar - Since I stated that I hadn't gotten into either WCF or MVC yet, how would I know that the question wouldn't have changed or altered slightly between MVC 1.0 and 3.0. My point is that it should be ok for me to re-visit a topic, based on the fact that it was introduced 3 years ago, and that there could be new or varying opinions out there regarding the subject. Not to mention, it allows me direct interaction with people in the know. Reading questions 3 years old doesn't help me do that. Commented Apr 21, 2011 at 21:16

5 Answers 5

2

MVC is a convention based approach to ASP.NET web apps. I think you are correct there.

That analogy does not hold between ASP.NET web services and WCF, IMO.

Both ASP.NET web services and WCF are convention based programming paradigms. For e.g. both frameworks will match your SOAP call to a method implementation based on the name. Both will serialize data in the payload to your object model based on structure and field names, etc.

WCF provides a unified programming model for different transport types - TCP, named pipes, MSMQ, HTTP etc. It gives you more control over how your service is hosted. It gives you more control over how the payload is encoded.

I think it would be more accurate to say that WCF is a unification of .NET Remoting and ASP.NET WebServices, with great improvements in extension points.

Hope this helps.

Sign up to request clarification or add additional context in comments.

2 Comments

@Nareen - That really explains it quite well for me. I'll upvote ya when I get my privileges back. =D
@Scott. Glad it helped. Good conceptual question BTW
2

That is wrong.

WCF is more than web services. ASP.NET MVC is primarily used for the web.

1 Comment

I agree with Brian here, that really doesn't help answer my specific questions.
2

No, that analogy isn't correct, and yes, you can mix and match the technologies.

WCF vs. Web Services

Windows Communication Foundation is a framework for building service oriented applications, that handles a lot of plumbing for you out of the box (security, transactions, reliability, interop, etc). It's much more than just web services, though it does web services very well. So there really is very little comparison to web services, WCF is far superior.

MVC vs. Webforms

Both are viable options, both have relative strengths and relative weaknesses. They also are not mutually exclusive. You would NOT want to "upgrade" (it's not upgrading, it's changing) to MVC if your application is working perfectly fine on webforms, and your development team is productive on that platform. In this case there isn't any real world benefit to changing.

If however you are starting a new project, then you have to look at your development team and make a decision based on their skill set. Personally, if my development team has MVC experience, I choose MVC, but that does not mean that there is anything wrong with webforms.

12 Comments

@Brandon - Great points. Kind of what I was thinking in terms of MVC. Not really upgrade more so than a lateral move that forces developers into a convention based methodology.
yep - MVC definitely has benefits over webforms, but RAD is not really one of them (yet anyways). Your team will likely be more productive on webforms, at least initially. Some other benefits of MVC are separation of concerns, TDD, no ViewState and no PostBack events.
MVC != RAD is a myth and completely un-true.
@jfar - So you are saying MVC is a RAD methodology?
Also, not really sure I grasp what the downvote was for on this answer? Does the down-voter want to leave a comment as to why?
|
1

I don't really think there is an analogical relationship between the respective pairs of technologies.

Windows Communication Foundation is a framework for sending and receiving data across a network channel that supports multiple transport and application protocols. Contrast this to ASP.NET Web Services, which really only supports RPC over HTTP(S).

ASP.NET MVC is a web application framework that represents Microsoft's implementation of the Model-View-Controller design pattern. So, really, it's sort of a specialized type of ASP.NET Web Application, and not a replacement for (or analog to) ASP.NET Web Apps.

5 Comments

So basically, there's no benefit to use MVC other than the design/convention pattern that forces you into a tiered system?
@Scott That's one way of putting it. I'd say that like any technology, you should use ASP.NET MVC when it's appropriate and don't use it when it isn't, and just leave it there. MS developed the framework because the vast majority of n-tier web-based information systems could/should follow that pattern.
I'm just thinking in terms of my company, if it would be wise to move to MVC. We currently use a n-tiered system of sorts. We use CodeSmith to generate our Data objects from SQL 2008 into a Data project. We have a Business project that houses all of our organizational rules/logic/workflows. For the most part our presentation layer is as it should be, just for presenting data, although it's really hard to keep it that way. We have more layers, but you get the point.
@Scott - Saying that using MVC because you get tiers is the only reason is a bad answer. Here are some more reasons. MVC is easily customizable to handle new conventions, the various RAD DisplayFor and EditorFor templates, the inherent testability, the ease at which you can support XML/JSON alongside HTML, the improved Razor view engine, the DI friendlyness and the lack of ViewState... etc...
Agree MVC is a specialised framework for ASP.NET webapps but I think it is publicly perceived as the next step or a "step up". As jfar says, the inherent testability (separation of view and view controller logic) is a really important improvement from plain ASP.NET. I would also point out that for newcomers to ASP.NET, being able to work primarily with plain HTML/JS instead of ASPX markup is also an advantage.
0

No not really, only in the sense that WCF and MVC are newer technologies.

WCF is a comprehensive communication framework that includes and supersedes old ASP.NET web services. It has no direct relationship with MVC. If you're building a service application from scratch tomorrow, you'd use WCF.

ASP.NET MVC and ASP.NET Web Forms are two different approaches to building web applications. MVC "goes with the grain" of the web, being URI oriented, whilst Web Forms attempts to hide the nature of the web by creating a stateful, WinForms like, programming model. Which you choose to use will come down to the nature of your application and the skills of your developers.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.