Elp, Thanks very much for your suggestion.
Yup, Web Service is one on top of my head to enable my client accessing my application from the internet, but it's slow for a LAN application, so I decide to use it for outside access
You're right, my application directly connect to a database thru dataaccess layer which installed on every client pc. It's not flexible tough if there's any modification I have to redeployed. So I'm thinking about .NET Remoting, but some people said using remoting will make additional overhead for my application. I'm not really sure about this, so I need some advice from people here
Regards
Hendry
> Elp, Thanks very much for your suggestion.
>
> Yup, Web Service is one on top of my head to enable my client accessing my application from the internet, but it's slow for a LAN application, so I
decide to use it for outside access.
Have you tried it already? Web Services can indeed be slower than .NET
Remoting in certain situations; however, if it is used as a Data Layer, it
may be as fast or almost as fast as a .NET Remoting approach, espacially on
a LAN. It really depends on what you are trying to get from your database.
If you want to retrieve a single value, then .NET Remoting with binary
formatters will be faster (well, you also have to take into account the time
needed to connect to your database and retrieve this value. If it takes a
long time then you won't notice a big difference between the 2 approaches).
But if you are retrieving big DataSets, then you will probably have similar
performances with both as Datasets are not binary formatted even if you are
using .NET Remoting with binary formatters. They are always sent in their
XML form so overhead difference between a Web Service request and a .NET
remoting request will be hardly noticable.
> You're right, my application directly connect to a database thru dataaccess layer which installed on every client pc. It's not flexible tough if
there's any modification I have to redeployed. So I'm thinking about .NET
Remoting, but some people said using remoting will make additional overhead
for my application. I'm not really sure about this, so I need some advice
from people here.
In my opinion, having the Datalayer on each client computer is the worse
thing you can do if you are dealing with a consequent number of clients. Of
course, if you have only one or two client applications deployed, then
everything is fine. But if you have several dozens or hundred of clients,
you definitely have to go the .NET Remoting or Web Service way. Or you'll be
stucked each time you want to do even a minor modification in the way your
data is stored or accessed. I don't think that it would add overhead to your
application as your clients need to connect to the remote database anyway.
It won't do any arm doing it through a Web Service rather than directly.
And, if your Web Service or .NET remoting server has been properly built, it
will make the client application developement and maintenance much easier.
I would be interrested to see what other people here think of that. You
could also post your question on the
microsoft.public.dotnet.framework.remoting and the
microsoft.public.dotnet.framework.webservices newsgroups.
Hendry - 24 May 2004 10:46 GMT
Elp, I've read an article somewhere but I've forgetten. It said that .NET Remoting deals with InterMachine Communication (same as DCOM) so additional overhead exists.
I know there's a trade off here. If I copy my DataAccess Layer to each user machine, it'd be very hard to maintain it, but it can give optimal performance. On the other hand, .NET Remoting makes deployment easier, but it takes additional overhead. So, I'd go for performance, I'll stick with installing my DAL on each machine. The Deployment problem can be tackled with Smart Client deployment model. However, I still need some clarifications on .Net Remoting's overhead. If Remoting's overhead is nolonger an issue, I'll absolutely go for .NET Remoting (I may post this on another thread in Remoting subject
Anyway, Thanks a lot for telling me that Web Service can be as fast as Remoting for non binary data
Hendry
Elp - 24 May 2004 18:11 GMT
> Elp, I've read an article somewhere but I've forgetten. It said that .NET Remoting deals with InterMachine Communication (same as DCOM) so additional
overhead exists.
I'm using .NET Remoting in my application but not for the Data Access layer.
I'm using Web Services for that. However, i'm not aware enough of the inner
of .NET Remting to give you any advices about a possible overhead it may
have. What i would suggest you is to simply try it yourself. Building a .NET
remoting server that's 3 lines of code. Building a .NET Remoting client is 3
lines of code as well. Building and using a Web service is 3 clicks of mouse
with VS .NET. So why not creating a couple of test applications and see by
yourself if you notice a performance difference between various approaches?
It really depends on what your application is doing and how it has been
developped. There is no definite answer when it comes to choose between
direct access to the database, .NET Remoting or web services, it's all a
mater of compromise.
Yazid Arezki - 24 May 2004 22:30 GMT
Check
http://www.thinktecture.com/Resources/RemotingFAQ/default.html
Regards
Yazid
> > Elp, I've read an article somewhere but I've forgetten. It said that .NET
> Remoting deals with InterMachine Communication (same as DCOM) so additional
[quoted text clipped - 12 lines]
> direct access to the database, .NET Remoting or web services, it's all a
> mater of compromise.
Hendry - 25 May 2004 09:01 GMT
Yes, You're absolutely right, I'm better off giving it a try and see the result by myself.
Cheers
Hendry