Performance of ASP.NET Web Services, Enterprise Services, and .NET Remoting

Published Tue, Aug 16 2005 11:44 AM

Ingo Rammer and Richard Turner have published an article on msdn about the topic that comes up everytime when choosing a transport layer for distributed components or services.

the article Performance of ASP.NET Web Services, Enterprise Services, and .NET Remoting tells the facts about this and gives some tips about using them.

Comments

# Dennis van der Stelt said on Tuesday, August 16, 2005 2:50 AM

FINALLY!!!

They've been talking about this since TechEd 04! And I've been waiting as long.

# Dennis van der Stelt said on Tuesday, August 16, 2005 3:11 AM

After a quick read, I notice at the bottom some recommendations

- Use ASMX wherever possible
- Use ASMX for Web services
- Choose Web services for scalability
- Use Enterprise Services only inside your services
- Avoid passing DataSets between services

Now, I read

- Use webservices
- Don't use DataSets

I think this (unfortunatly still) means a total shift for a lot of people! :)

# Ramon Smits said on Tuesday, August 16, 2005 3:43 AM

Passing Datasets as parameters isn't really message oriented so this fails almost immediately when you choose for webservices.

B.t.w. it should read.. use soap, don't use datasets. You will really have to refactor alot when you want to migrate van asmx to soap which is transport neutral.

# Erwyn van der Meer said on Tuesday, August 16, 2005 4:09 AM

You should not read the guidance as "use web services", but really as "use ASMX". Your ASMX code will migrate cleanly to Indigo (aka WCF) with just a few namespace and attribute changes. Indigo uses the SOAP processing model in a transport independent way and does not rely on HTTP. You could switch to the much speedier (but proprietary) TCP protocol by just changing your Indigo configuration.

Don't expose DataSets from your service interface when you care for interoperability. The biggest problem is not that DataSets are not message oriented, but that they are just a royal pain in the ass to deserialize in a non .NET client.

# Dennis van der Stelt said on Tuesday, August 16, 2005 4:15 AM

You're right, webservices doesn't say asmx.

# Nathan Pledger said on Tuesday, August 16, 2005 5:25 AM

Don't know if you guys use it, but Rockford Lhotka's CSLA .NET Framework uses remoting wrapped in Enterprise Services.

We tried it and it was dog slow! So we binned it in preference for a CSLA-rich platform ocmmunicating with a web service with a similar set of CSLA-based DLL's. It's faster, but does require a "double deployment" if a Business object changes.

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Please add 6 and 8 and type the answer here: