You are designing a Windows Presentation Foundation (WPF) application. The WPF application displays indicators to compare your company’s past performance to the current day’s operations data. The WPF application accesses historic data from your company’s data warehouse through a Web service, and accesses current data directly from a Microsoft SQL Server 2008 database.
The WPF application must meet the following requirements:
Retrieve historic data from the data warehouse at application startup and then once per day. Retrieve current data from the database every five minutes, and then update the indicators.
Cache all retrieved data.
Target the .NET Framework 4 Client Profile.
You need to recommend an approach to data caching.
What should you recommend?
A.
Use System.Web.Caching with a sliding expiration.
B.
Use System.Runtime.Caching with an absolute expiration.
C.
Use System.Runtime.Caching with a sliding expiration.
D.
Use System.Web.Caching with are absolute expiration.
Explanation:
Runtime.Caching is the critical here since it is updated every five minites=> A, D out.The main thing about the sliding window is that it’s reset every time
the cache is accessed. So if you add something to the cache with a
sliding timescale of 5 minutes and someone browses to the page every
4 minutes, the cache will never be expired. Sliding expiration doesn’t
instruct the system to remove the object at a certain time – to do
that, use an Absolute Expiration set in the future:
Cache.Insert (“bigDataset”, ds, null, DateTime.Now.AddMinutes (10),
Cache.NoSlidingExpiration);C out => B is best answer
The requirement has .NET Framework 4 Client Profile, however, System.Runtime.Caching does not exist in client profile (ditto for System.Web.Caching). Either the answers are wrong or someone in MS messed up.
This is a weird question as both System.Web and System.Runtime.Caching are NOT available in the client profile