Click here to Skip to main content
15,921,959 members
Home / Discussions / C#
   

C#

 
Generalpopulate .csv from datagridview Pin
arkiboys17-Jan-08 22:16
arkiboys17-Jan-08 22:16 
GeneralRe: populate .csv from datagridview Pin
Adeel Chaudhry17-Jan-08 22:30
Adeel Chaudhry17-Jan-08 22:30 
GeneralRe: populate .csv from datagridview Pin
arkiboys17-Jan-08 22:41
arkiboys17-Jan-08 22:41 
GeneralRe: populate .csv from datagridview Pin
Adeel Chaudhry17-Jan-08 23:19
Adeel Chaudhry17-Jan-08 23:19 
QuestionHow to scale a remoting application? Pin
mav.northwind17-Jan-08 21:35
mav.northwind17-Jan-08 21:35 
AnswerRe: How to scale a remoting application? Pin
martin_hughes18-Jan-08 2:41
martin_hughes18-Jan-08 2:41 
GeneralRe: How to scale a remoting application? Pin
mav.northwind18-Jan-08 19:37
mav.northwind18-Jan-08 19:37 
GeneralRe: How to scale a remoting application? Pin
martin_hughes19-Jan-08 1:58
martin_hughes19-Jan-08 1:58 
mav.northwind wrote:
How would you "hand off" a request to a different server when the initial request is a method call to a server object?


Hmmm. Here's how I think it would work: when the client calls a method on the server object it's only aware of the data (if any) required by the method and the result (if any) returned by the method, but it doesn't know how the method is implemented.

In this case, then as long as the contract between the client and the server is honoured, then you can change the implementation as much as you want. For example given a server method like List<user> GetAllUsers() you could have this method contact a database directly and return a result, or it could asynchronously call a method on another server (the hand off) and when it gets the result back return that to the client.

mav.northwind wrote:
And, the initial server would stay the bottleneck unless there's a way to hand off the request in a way so that the result doesn't have to pass through the initial server, wouldn't it?


In a way yes I guess it is, but in another way no I guess it isn't. I've been doing a fair bit of research/implementation on web services lately (not that this makes me an expert), and by far the biggest win for me is having this well defined single point of contact for clients to connect to*, which means I can make changes at the server and never need touch the clients. If at some point in the future I introduce a webmethod that taxes the current hardware, I can do what I described above and have the actual meat of that method execute on another machine. The clients won't be aware that this is what's happening, so I can make this switch pretty much seamlessly.

There is another consideration in that I needed to guarantee that the web service box could handle all the requests and traffic. I set up a little test with a webmethod that simply returned about 10Kb of text to the client. Overall I found that the server could easily deal with huge numbers of this type of request per minute - it didn't even break a sweat! But should the need ever arise I can add more bandwidth, more ram, a faster cpu, more cpu's etc etc. Along with the failover backup and the ability to hand intensive tasks off to another server without the client being aware of this I *think* what I've got is a fairly scalable, robust and predominantly "up" architecture (although time will tell).

From an architectural (software, hardware and infrastructure) point-of-view this sounds like a really interesting project you've got ahead of you. Like I say I'm not an expert - so take everything I say with a good pinch of salt and a shot of caution! - and my web services project was extremely well funded (and a good job too, as it was extremely expensive), but if I had any sage words of advice to offer at all it would be these: Budget, test and test again!

*this of course introduces some fragility if the server goes down - so what I did was to replicate completely the web service on another box as a failover. If the first server goes down, or for whatever reason the clients can't connect to it, the clients are configured to connect to the second server after a pre-determined amount of retries/time outs.
GeneralAdd a new Language to my program Pin
anderslundsgard17-Jan-08 21:14
anderslundsgard17-Jan-08 21:14 
GeneralRe: Add a new Language to my program Pin
imsathy17-Jan-08 22:22
imsathy17-Jan-08 22:22 
GeneralRe: Add a new Language to my program Pin
anderslundsgard17-Jan-08 22:36
anderslundsgard17-Jan-08 22:36 
GeneralRe: Add a new Language to my program Pin
imsathy17-Jan-08 22:53
imsathy17-Jan-08 22:53 
GeneralRe: Add a new Language to my program Pin
anderslundsgard17-Jan-08 23:27
anderslundsgard17-Jan-08 23:27 
GeneralRe: Add a new Language to my program Pin
Russell Jones18-Jan-08 2:51
Russell Jones18-Jan-08 2:51 
GeneralRe: Add a new Language to my program Pin
anderslundsgard18-Jan-08 2:56
anderslundsgard18-Jan-08 2:56 
GeneralRe: Add a new Language to my program Pin
Russell Jones18-Jan-08 3:16
Russell Jones18-Jan-08 3:16 
QuestionRemoting ? Pin
Eike Mueller17-Jan-08 20:46
Eike Mueller17-Jan-08 20:46 
AnswerRe: Remoting ? Pin
led mike18-Jan-08 6:43
led mike18-Jan-08 6:43 
GeneralRe: Remoting ? Pin
Eike Mueller20-Jan-08 0:06
Eike Mueller20-Jan-08 0:06 
GeneralRe: Remoting ? Pin
led mike22-Jan-08 5:03
led mike22-Jan-08 5:03 
GeneralRe: Remoting ? Pin
Eike Mueller22-Jan-08 21:16
Eike Mueller22-Jan-08 21:16 
GeneralRe: Remoting ? Pin
led mike23-Jan-08 5:46
led mike23-Jan-08 5:46 
Generalstartup a WinForm program by code Pin
jason_mf17-Jan-08 19:58
jason_mf17-Jan-08 19:58 
GeneralRe: startup a WinForm program by code Pin
Adeel Chaudhry17-Jan-08 20:01
Adeel Chaudhry17-Jan-08 20:01 
GeneralRe: startup a WinForm program by code Pin
jason_mf17-Jan-08 20:09
jason_mf17-Jan-08 20:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.