473,287 Members | 1,813 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,287 software developers and data experts.

Indigo/'.NET Framework' vs winsock and more...

Hi

I am writing some kind of a storage system that have to deal with large amounts of data passing over the net, Now, I Wonder... traditional programming would use win32 Winsock DLL as the means of data transportation... now, indigo is the new communication layer of the CLR,
- Does indigo uses Winsock internally?
- Is it possible to use indigo for such a task?
- I assume using indigo has it's performance penalty ( doesn't it ?
- Does Microsoft intend to keep supporting Winsock?
- Will indigo/’.NET Framework’ be a total replacement for Winsock
- Would modules that require high data transfer performance such as the media player internally use CLR technology for the actual data transfer or would it rather use Winsock
- Creating .NET defined an additional layer of programming above(?) win32, Winsock, ... does the win32/winsoc/... programming model would still be required/supported in future versions of windows ( e.g. longhorn ), would there be any need of using native C++ programming at application level?
- My guess is that in a few years all the application programming will be done using CLR*.* and all that is not CLR ( e.g. native C++ ) would only be done in the Kernel, does my assumption is true? Is this the direction that Microsoft is heading to

Nadav.
Nov 16 '05 #1
7 2829
Hi,

Indigo will be available with Longhorn, in 2006 or later , so right now
it's not an option.
- Does indigo uses Winsock internally? TCP/IP is the network protocol used in the internet, so yes, at the end of
the layers you will have a TCP/IP implementation.
- Is it possible to use indigo for such a task? As I said Indigo is not released yet ...
- I assume using indigo has it's performance penalty ( doesn't it ? ) - Does Microsoft intend to keep supporting Winsock? As long as MS machines are connected to the internet, it will.
- Will indigo/'.NET Framework' be a total replacement for Winsock?

As I said, TCP/IP will always be present :)
Cheers,

--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation
Nov 16 '05 #2
Ignacio and Nadav,

I feel I have to comment on one of the remarks:
- Does indigo uses Winsock internally? TCP/IP is the network protocol used in the internet, so yes, at the end of
the layers you will have a TCP/IP implementation.


This isn't completely correct. While ultimately, most transports will
require network connectivity which will ultimately rely on the Socket class
in the System.Net.Socket namespace, from what I can tell, Indigo can be
transport agnostic. Something besides sockets will be used when calls are
made in Indigo on the same machine, and there is nothing that says you can't
swap out the transport protocol for something else. You could concieve of a
machine writing a file to a network share to be picked up later, if you
wish.

As for the OPs questions:
I am writing some kind of a storage system that have to deal with large amounts of data passing over the net, Now, I Wonder... traditional
programming would use win32 Winsock DLL as the means of data
transportation... now, indigo is the new communication layer of the CLR,

TCP/IP is just a transport layer, it is not a protocol/communications
layer. Chances are that (if not most definitely) if the protocol works over
the network, then the Winsock libraries will be used to transport the bytes
that make up that message.
- Does indigo uses Winsock internally?
I would wager yes for protocols that require network connectivity.
- Is it possible to use indigo for such a task?
Indigo will be suited for this, I believe. It has a number of different
scenarios that it supports.
- I assume using indigo has it's performance penalty ( doesn't it ? )
It depends on what you want to do, and what serivces you require it to
give you. If you need persistant message storing, as well as distributed
transaction support, then this would have a hit on performance. However, if
you needed to code these things from scratch, you would be stuck doing
development for quite a long time.
- Does Microsoft intend to keep supporting Winsock?
Absolutely. It's not going anywhere.
- Will indigo/’.NET Framework’ be a total replacement for Winsock?
No, once again, Indigo is about the communication, not the transport.
While it does rely on Winsock for some protocols, it is meant to be protocol
agnostic, so you can use any transport that you wish. Winsock deals
strictly with the transporting, not the protocol itself.
- Would modules that require high data transfer performance such as the media player internally use CLR technology for the actual data transfer or
would it rather use Winsock?

At this point, it is unclear. I seriously doubt that media player would
use this. However, media player already has an existing codebase which will
process that kind of data very easily, so I doubt it will be changed for a
completely new protocol.

However, if you are looking to move large pieces of data, it depends on
what you are trying to move. If you are moving raw bytes, then this might
not be the best way. The attachement story for Indigo (and web services in
general) is not clearly defined yet. There was DIME, but now there is MTOM,
and that part of the WS namespace needs to be clearly defined before Indigo
can implement it.
- Creating .NET defined an additional layer of programming above(?) win32, Winsock, ... does the win32/winsoc/... programming model would still be
required/supported in future versions of windows ( e.g. longhorn ), would
there be any need of using native C++ programming at application level?

There are a ton of programs and APIs that depend on Winsock. I wouldn't
bet on it going anywhere. The .NET libraries (specifically
System.Net.Sockets) are one of those programs/applications which rely on it.
- My guess is that in a few years all the application programming will be

done using CLR*.* and all that is not CLR ( e.g. native C++ ) would only be
done in the Kernel, does my assumption is true? Is this the direction that
Microsoft is heading to?

While MS is pushing managed code development, unmanaged code will not be
restricted, nor will existing code bases be thrown out the window simply
because they are unmanaged. Expect unmanaged code to be around for a very
long time. However, new functionality that is presented might be presented
through a managed interface only, so if you are writing unmanaged code, you
have to prepare for that eventuality.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
Nov 16 '05 #3
Hi Ignacio

Thanks for your immediate responce, Concerning TCP/IP support, winsock is one way of using TCP/IP, kernel developers use TDI to achieve TCP/IP functionality, taking that in mind, does the .NET Framework ( including indigo ) use the standart Native winsock DLL OR it has a propriotary implementation ( that use TDI internally ): directly uses DeviceIoControl to comunicate with the kernel to achive TCP/IP functionality? ( this way winsock DLL is not mandatory....

Nadav.
Nov 16 '05 #4
Hi Nicholas

Thanks for your detailed responce, Taking in mind what you have just said, I would like verify the performance issue of using .NET Framework/Indigo, I am about to write an application that deals with massive amount of data being transffered over the net ( large raw data files ) so performabce is really importent, I Wonder... what would be the best way of implementing this kind of system: using unmanaged code ( Native C++ and winsock ) or using the managed CLR ( .NET Framework/Indigo/System.NET.Sockets )

Nadav.
Nov 16 '05 #5
TCP Socket would probably be the best for the big file transfers. Could
still use remoting for setup and message passing, etc.

--
William Stacey, MVP

"Nadav" <an*******@discussions.microsoft.com> wrote in message
news:67**********************************@microsof t.com...
Hi Nicholas,

Thanks for your detailed responce, Taking in mind what you have just said, I would like verify the performance issue of using .NET Framework/Indigo, I
am about to write an application that deals with massive amount of data
being transffered over the net ( large raw data files ) so performabce is
really importent, I Wonder... what would be the best way of implementing
this kind of system: using unmanaged code ( Native C++ and winsock ) or
using the managed CLR ( .NET Framework/Indigo/System.NET.Sockets )?
Nadav.


Nov 16 '05 #6
1. By using the term 'TCP Socket' do you refer to the standart win32 winsock DLL or to the System.NET.Sockets.Socket class
2. Are there any performance critical systems ( such as mass storage systems: EMC, TSM, ... Games: Unreal, ... ) written using the .NET framework and the CLR
3. Does the code being compiled by the JIT is optimal
4. Isn't there any perfomance penelty using the GC

P.S. I have created several business application using the .NET Framework/CLR, maybe I am ‘old fashioned’ BUT When dealing with performance critical systems I tend to better rely on the good old unmanaged C++ and win32 winsock DLL… ( any response would be appreciated )

Nadav.
Nov 16 '05 #7
> 1. By using the term 'TCP Socket' do you refer to the standart win32
winsock DLL or to the System.NET.Sockets.Socket class?

You could use either in .net, but I would use .Net.Sockets classes. They
call the win32 dlls same as if you wrapped them yourself.
2. Are there any performance critical systems ( such as mass storage systems: EMC, TSM, ... Games: Unreal, ... ) written using the .NET framework
and the CLR?

Perf is not an issue for socket classes from what I see. I did a netdig
client and found not perf issues. There is a game ported to .net. Not sure
about network gaming, but that should not be a speed issue imo.
3. Does the code being compiled by the JIT is optimal?
Calls the win32 socket stuff. You do have a thin wrapper which could be
measured, but have not done side by side.
4. Isn't there any perfomance penelty using the GC?
Depends. Some speed improve, some speed hit. Mostly productivity gain imo.
If you need that absolute speed, then assembly or c++ I would think.
P.S. I have created several business application using the .NET

Framework/CLR, maybe I am ‘old fashioned’ BUT When dealing with performance
critical systems I tend to better rely on the good old unmanaged C++ and
win32 winsock DLL… ( any response would be appreciated ).

If you need that last 20% speed, then yes.

Nov 16 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Chris Thompson | last post by:
I'm trying to mess around with creating a multi-user server but I'm really clueless as to how to start. I don't know what I'd need to do, and more than likely it's over my head, but I'd still like...
3
by: Jules | last post by:
So with MS looking towards Longhorn Indigo messaging, for Service based Applications Integration, its brief dalience with adoption of industry wide Web Service standards is over. This is a major...
1
by: Marc Falesse | last post by:
Hi ! I have a problem with « Indigo », it can’t deserialize methods having a System.Collections.Specialized.NameValueCollection I’ve tried the solution of an approching issue in the « Known...
2
by: John Bailo | last post by:
I just went to an Indigo Roadshow meeting at the University of Washington. It was a very clear, clean informative presentation. Indigo is really good stuff -- it's a new layer that lets people...
0
by: John Bailo | last post by:
Here's my points from the Indigo Roadshow at U. WA in Seattle last night: It’s not longer called Indigo; it’s WCF, Windows Communication Framework WFC is an amalgam of material that has...
6
by: Donald | last post by:
Hey, I want to start using winsock in VB.NET, but cannot find anygood books on it. No one has any. Did winsock get renamed, or does .NET now use something else for internet stuff? Thanks.
1
by: Vincent | last post by:
I do not have a strong grasp of the winsock library, but have started fiddling around with it a bit. My first impression is that using winsock in Access is a bit unwieldy. I was making a...
1
by: Nicolas Ghesquiere | last post by:
Hello I have a problem with my current program. The meaning of the program is to allow users to login to a server to allow them to access the internet. My program communicates with a MS isa...
3
AaronL
by: AaronL | last post by:
Hello, I am currently working on a project that has me in sort of a bind. What I want to do is retrieve web pages from the internet, and strip them down to just text. I'll get using Regular...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...
0
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: marcoviolo | last post by:
Dear all, I would like to implement on my worksheet an vlookup dynamic , that consider a change of pivot excel via win32com, from an external excel (without open it) and save the new file into a...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.