0
votes

I need advise on the architecture of my new application. In the environment I work in, we normally create Win based apps and these compose a UI layer, Business Layer, WCF Service Layer, and Data Access Layer. These are on a 3 tier architecture with Services Server, Database Server and clients machines accessing the application via Citrix on an Application Server. I just created a web aplpication and my admin has suggested this should be hosted on a separate web server, my question is, is there a need for my web application to use a WCF Service Layer, since it can be hosted on the same application server? Basically, do websites need to use wcf/service layers and what are the benefits?

2

2 Answers

1
votes

1. Read this: http://www.codeproject.com/Articles/10746/Dude-where-s-my-business-logic

My advice: At the least, you should use WCF, and use "named pipes". You can deploy both the Host (WCF) and the Client (Asp.Net website) on the same machine. The Asp.Net website will be the "client" and access the service.

Then, if you ever want to horizontally scale, all you have to do is change the .config settings to use a different protocol besides named-pipes. Aka, you'll have the "logical separation", even if you deploy both on the same physical machine(s).

They (websites, any project) don't "need" to do anything.

You can write inline sql code behind buttons on webforms if you want. But its not maintainable. And its not scalable. And it is probably foolish. But putting in the time to SOA a mid to large sized application is worth the effort in the beginning, IMHO.

0
votes

This is a question without a concrete possible answer, do you need a wcf? well that depends on the requirements and the architecture you want to put in place.

based on the small context you provide maybe you can get some the following benefits

  • WCF Provide state for operations
  • Fast processing (binary serialization)
  • WCF are more likely 'to be testable' than legacy asmx web services
  • You can access the same backend you built for your desktop applications

regarding if than can be accessed from the same server, the short answer is yes (obviously you need to measure your server capabilities)

I've done some app's that doesn't use a wcf at all, and other that use it for certain operations you can take a look to this SO answer to get a good example where a wcf could be a good candidate in an app.