Hello Ryan,
From your description, I understand you've changed one .net application
(originaly one-Tier) to a N-tier distributed application. And the client
front will use .net remoting to request data from backend server-side.
Currently you're transfering the data as DataSet, however, you found that
the performance (time consumed) through dataset transfering in .net
remoting is far from directly connect to remote database server to query
data, correct?
As for this problem, I'd like to confirm the following things first:
** Are you developing the application upon .net framework 1.x or .net
framework 2.0?
**what's the code you used to detect the time consume of the two
methods(.net remoting and directly db query)
Based on my experience, DataSet in .net 1.x only support XML Serizaliation,
therefore, no matter we transfer it through XML or binary channel, it will
always be serialized as XML format which is quite large for large
recordset. In .NET 2.0, the DataSet is improved to support binary
serialziation which can significantly reduce the size when we transfer
dataset through binary serizlation channel.
#Improving DataSet Serialization and Remoting Performance
http://support.microsoft.com/kb/829740/en-us
If you're using .net framework 2.0, we need to perform further
investigation on this. I suggest you try manually use BinaryFormatter to
serizalize the DataSet into binary stream(byte array) and use the following
two means to transfer the dataset accross two machines:
1. Use .net remoting TCP/binary channel
2. Use TCP socket class to directly transfer the byte array(serialize d
dataset)
You can compare the different time consumed (or compare to your directly
database query access) to see whether it still vary very much. If even TCP
socket transmitting also behave much faster than .net remoting, it should
be the .net remoting's internal process that add the performance overhead.
Please feel free to let me know your test result or if you have any further
questions.
BTW, for .net remoting issue, the following newsgroup is the best one:
public.dotnet.f ramework.remoti ng
Or you can also post in some .net general newsgroups like
public.dotnet.f ramework or public.dotnet.g eneral
Sincerely,
Steven Cheng
Microsoft MSDN Online Support Lead
=============== =============== =============== =====
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
=============== =============== =============== =====
This posting is provided "AS IS" with no warranties, and confers no rights.