.Net Remoting - Use, Design & Architecture questions
Posted on 2004-10-04
I am caught in the middle of a development effort that I think is going in the wrong direction. However I have been wrong in the past, so I would like to get some additional input before I make a final determination.
The development involves a client/server application that processes bid quotes and requests as well as contact management. The data is served up on an older Unix box and is stored in indexed flat files. Roughly 20 year old technology. It's been a while since I've used flat files but the last time I used them I was under the understanding that they were always accessed sequencially and are opened and closed individually if accessing more than one file. Has this changed? Is there some new buffering or caching that I'm unaware of?
From what I've read about remoting it is best used between .net machines on the same or different application domains and that it should not be used across platforms. Am I right?
There are several servers that handle load distrabution between the calling clients and the single backend box. (This just seems wrong to me)
The application's performance is extremely slow, in some cases upwards of 15-20 seconds to display a single screen that has no more than 1 flex grid with around 20 rows and 20 cells.
The infrastructure has been updated to facilitate higher bandwidth but the app isn't running any faster.
This is a second version of this type of applicaton the first being a web services app. It was determined that it needed to go to .Net Remoting in order to gain speed and functionality that the web app didn't have. It is interesting to note that the first app, although missing a great amount of functionality, is running faster than before and is out performing the .Net Remoting app.
Is this the right development direction?
Should this be re-directed to a migration of the backend to newer technology?
How can this project be salvaged, if at all, and gain the performance necessary to make this the real time app that is required?
I know that this is more of a design and architecture question than a specific issue with a definitive resolution. However I am looking for opinions from people that have experience in .Net Remoting that may have run across this type of project before.