Hi
I have a .NET desktop application, which is used by 5000 users who are distributed across Canada. One of the functionality is to communicate with some modems using some parameters that we get from the database.
The unique thing about this functionality is:
1 - it should be extremely fast because it is communicating with modem tools and there is a time out on those modem, and we cannot control that.
2 - Those information that we are reading from the database are very large in size, they have parameters for all modem types, which are like 2000 of them.
3 - those information are not changing very frequently. They change only once per month maybe.
What is the best approach to handle that?
I was thinking to request all these info on the application startup, and keep it in memory, but I am hesitant to do that because it might take time, because there are tons of info.
Our standard at work is to have WCF services whenever we want to communicate to database , but I can get exception for that rule, but at the same time, it is nice to stick to that rule if possible.
My question, is can we do WCF service cache on the server side? so if one client request data for one modem type, it will be in the cache for all later requests? Consider that we have multi-servers for WCF services, so the cache will have more complexity with this setting.
is WCF cache (if possible) is the best answer?
can we gain any advantage if we bypass WCF and access the database directly?
Please advice, because it is very critical issue