Search:
Namespaces
Discussions
.NET v1.1
Feedback
Confusion with EnterpriseServices & .Net Classes
Messages
Related Types
This message was discovered on
microsoft.public.dotnet.distributed_apps
.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.
Post a new message to this list...
Denis (VIP)
I would like to have come clarification on these questions
Do using EnterpriseServices have a big issue on performance instead of
simple .Net classe?
What requirements is needed on class to be activated remotely via .Net
Remoting?
Does .Net class support Load Balancing & Clustering or only .Net class
inside COM+?
And the final question
For a large application (200-500 users), is it better to have my business
rules using EnterpriseServices or .Net class only?
It is very hard to see wich is the best solution.
Reply to this message...
Sam Santiago
[Original message clipped]
It has a performance impact since it uses a COM interop layer, but how "big"
probably depends on your application's characteristics - volume of calls,
number of transactions, etc. Some key reasons to user EnterpriseServices
are: 1) you must perform distributed transactions - atomic operations
across multiple data sources, 2) you want object pooling, 3) you want to use
the transactional attributes available to ease developing transactional
components, and 4) you want to use role based security provided by COM+
[Original message clipped]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconremotableobjects.asp
.
[Original message clipped]
SingleCall remote objects (stateless) without COM+:
http://support.microsoft.com/default.aspx?scid=kb
;en-us;830217
[Original message clipped]
it provides listed above.
Check out this check list from the patterns and practices group:
Improving .NET Application Performance and Scalability
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/scalenetcheck04.asp
Thanks,
Sam
--
_______________________________
Sam Santiago
Click here to reveal e-mail address
http://www.SoftiTechture.com
_______________________________
"Denis" <
Click here to reveal e-mail address
> wrote in message
news:
Click here to reveal e-mail address
...
[Original message clipped]
Reply to this message...
Denis (VIP)
Thanks for your quick response.
This clears out the EnterpriseServices issue. I do not need it in my
application. So I will use SingleCall remoting objects through HTTP. That way
I will be able to use NetworkLoadBalancing.
I've did some performance tests with 500 calls that retrieve a dataset.
These are my results :
COM+ (Server app.) with transactions : 54 sec.
COM+ (Server app.) without transactions : 44 sec.
COM+ (Library app.) with transaction : 37 sec.
COM+ (Library app.) without transactions : 27 sec.
..Net Remoting Only (Class MarshalByRef) : 25 sec.
..Net Remoting Only (Class only) : 2 sec.
My conclusion on this is that there is a slight performance gain between
COM+ (Library app.) without transactions and .Net Remoting only. But there is
a big gain to use a class that supports only marshalByValue.
I've read in "Applied remoting" in MSDN that a class to be available through
remoting and run on the server must have the
MarshalByRefObject
. Is it true?
Am I correct on my conclusions?
"Sam Santiago" wrote:
[Original message clipped]
Reply to this message...
Sam Santiago
> I've read in "Applied remoting" in MSDN that a class to be available
through
> remoting and run on the server must have the
MarshalByRefObject
. Is it
true?
Yes, your class must inherit the
MarshalByRefObject
class in order to be
marshaled-by-reference and "live" on the server.
> Am I correct on my conclusions?
I don't know how you performed your tests, so I'll accept it. I would just
add that the performance of the marshal-by-value approach will depend on the
size of your dataset. If your application generally retrieves small
datasets vs. datasets with hundreds or thousands of row then yes.
Thanks,
Sam
--
_______________________________
Sam Santiago
Click here to reveal e-mail address
http://www.SoftiTechture.com
_______________________________
"Denis" <
Click here to reveal e-mail address
> wrote in message
news:
Click here to reveal e-mail address
...
[Original message clipped]
Reply to this message...
Denis (VIP)
Thanks for your response.
There was a mistake in my tests. The remoting test with a simple class did
not work because it must inherits MarshalByRef. There was a mispelled uri in
my client. So the real test is :
COM+ (Server app.) with transactions : 54 sec.
COM+ (Server app.) without transactions : 44 sec.
COM+ (Library app.) with transaction : 37 sec.
COM+ (Library app.) without transactions : 27 sec.
..Net Remoting Only (Class MarshalByRef) : 25 sec.
So I think it's better to use .Net Remoting with a MarshalByRef class using
ADO.Net transactions instead of EnterpriseServices. As you have said earlier
if there is no nned to use Distributed Transactions (Multiple datasource),
Object pooling we should stay out of EnterpriseServices.
Thanks again for your help.
"Sam Santiago" wrote:
[Original message clipped]
Reply to this message...
System.MarshalByRefObject
Ad
MBR BootFX
Best-of-breed application framework for .NET projects, developed by Matthew Baxter-Reynolds and MBR IT
Copyright © Matthew Baxter-Reynolds 2001-2008. '.NET 247 Software Development Services' is a trading style of MBR IT Solutions Ltd.
Contact Us
-
Terms of Use
-
Privacy Policy
-
www.dotnet247.com