Enter Data Services
When it comes to building distributed applications, your mileage will vary with the array of data access technologies. Dealing with serialization and concurrency issues in those environments is beyond the scope of this article. However, it is important to mention what appears to be yet another data access technology available from Microsoft called ADO.NET Data Services, formerly code-named
“Astoria”. Astoria was made available with .NET 3.5 SP1.Astoria is an HTTP service layer built on top of WCF that provides a REST-style
API to your data, giving each of your elements of data a unique URI (for example, http://host/northwind.svc/Products(1) ). Out of the box, this service can be enabled for an Entity Framework model or any other IUpdateable/IQueryable data source in just a few lines of code. Data is queryable and updateable via pure
HTTP verbs (PUT, POST, DELETE, and GET) using query strings and HTTP payload. Data can be serialized in either AtomPub or JSON format. The net effect is that your data model is widely interoperable with a dizzying array of potential clients and technologies.
Although you are free to build up complex query strings and HTTP payloads for just about any type of operation, the Astoria team has created client libraries to assist in these endeavors. Firstly, an ASP.NET Ajax library is available on
CodePlex to allow JavaScript developers to easily work with Astoria Services.
Secondly, as part of the core installation, there is a .NET Client Library which provides a natural query model using LINQ and projecting data into client side
.NET objects for use by your .NET or Silverlight projects.
A new project, currently named “RIA Services” (code-named “Alexandria”), builds on top of ADO.NET Data Services by also providing rich validation and UI cues on top of your data model in a client/server model. This technology probably won’t be released until around the .NET 4.0 timeframe, but it is definitely something you should keep your eye on.
How to: Add a Failure Notification Callback (Velocity)
Similar to adding a callback for cache notifications, adding a callback for failure notifications involves two steps. First, create a method that should be invoked when a failure notification is triggered. The method you invoke with the failure notification must accept the same parameters as the DataCacheFailureNotificationCallback delegate. Second, add a callback for the failure notification using the AddFailureNotificationCallback method. Use the name of the method you created in the first step for the failureDelegate parameter.
Note
In order for your application to use notifications, you need to enable them on a named cache. Use the notificationsEnabled parameter with the New-Cache or Set-CacheConfig commands. For more information, see Cache Administration with PowerShell (Velocity).
How to add a failure notification callback
Create the method you want to be triggered by the failure notification. Make sure that the method you invoke with the failure notification accepts the same parameters as the DataCacheFailureNotificationCallback delegate.
Add a callback for the failure notification using the AddFailureNotificationCallback method. Use the name of the method that you want to invoke when the failure notification occurs in the failureDelegate parameter.
Example
The first step when adding a failure notification callback is to create a method that you want to be invoked by the notification. The method called by the notification must accept the same parameters as the DataCacheFailureNotificationCallback delegate. This example shows one example of a method that can be invoked by a failure notification.
Visual Basic Copy Code
'method invoked by failure notification "ndNotificationFailure"
Public Sub myNotificationFailureDelegate(ByVal myCacheName As String, _
ByVal nd As DataCacheNotificationDescriptor)
Console.WriteLine("===============================")
Console.WriteLine("Invoked by failure notification")
Console.WriteLine("===============================")
End Sub
C# Copy Code
//method invoked by failure notification "ndNotificationFailure"
public void myNotificationFailureDelegate(string myCacheName,
DataCacheNotificationDescriptor nd)
{
Console.WriteLine("===============================");
Console.WriteLine(" Invoked by failure notification");
Console.WriteLine("===============================");
}
The second step is to add a callback for the failure notification. In this example, a failure notification is created to invoke the method from the previous example.
Visual Basic Copy Code
'add failure notification callback
Dim ndNotificationFailure As DataCacheNotificationDescriptor
ndNotificationFailure = _
myTestCache.AddFailureNotificationCallback(AddressOf myNotificationFailureDelegate)
C# Copy Code
//add failure notification callback
DataCacheNotificationDescriptor ndNotificationFailure
= myTestCache.AddFailureNotificationCallback(myNotificationFailureDelegate);
How to: Remove a Cache Notification Callback (Velocity)
Use the RemoveCallback method to remove a cache notification callback. To identify the notification, this method requires the DataCacheNotificationDescriptor object that was returned when you added the callback. To facilitate this requirement, declare your DataCacheNotificationDescriptor object at a scope that is accessible to the code in your application and that adds the callback and the code in the application that removes the callback. The DataCacheNotificationDescriptor object returned to the method invoked by the cache notification can also be used to remove a callback.
Note
In order for your application to use notifications, you need to enable them on a named cache. Use the notificationsEnabled parameter with the New-Cache or Set-CacheConfig commands. For more information, see Cache Administration with PowerShell (Velocity).
How to remove a callback cache notification
Declare the DataCacheNotificationDescriptor object you use to add a callback at a scope that is accessible to the code that will remove the callback.
Use the RemoveCallback method to remove the cache notification callback. Use the appropriate DataCacheNotificationDescriptor object for the nd parameter.
Posted in: .Net Programming| Tags: .net 4.0 Application CTP CTP 3 Microsoft Velocity cache code use notification method callback remove datacachenotificationdescriptorHow to: Add a Cache Notification Callback (Velocity)
Adding a cache notification callback requires two steps. First, create a method that should be invoked when a cache notification is triggered by one or more cache operations. The method you invoke with the cache notifications must accept the same parameters as the DataCacheNotificationCallback delegate. Second, add a callback using one of the three available methods from the DataCache object: AddCacheLevelCallback, AddRegionLevelCallback, or AddItemLevelCallback. Use the filter parameter to define the types of cache operations you want to trigger cache notifications. Use the name of the method you created in the first step for the clientDelegate parameter.
Note
In order for your application to use notifications, you need to enable them on a named cache. Use the notificationsEnabled parameter with the New-Cache or Set-CacheConfig commands. For more information, see Cache Administration with PowerShell (Velocity).
How to add a callback for one or more cache operations
Create the method you want to be triggered by the cache notification. Make sure the method accepts the same parameters as the DataCacheNotificationCallback delegate.
Add a callback. Use one of the three available methods from the DataCache object to define the notification scope: AddCacheLevelCallback, AddRegionLevelCallback, or AddItemLevelCallback.
Use the DataCacheOperation enumeration in the filter parameter to specify what type of cache operations you want to trigger notifications. Select more than one enumeration by separating the enumerations with the binary OR operator to perform a bitwise OR. To do this, use the | character in C#, and the Or operator in Visual Basic.
Use the name of the method you want to invoke when these notifications occur in the clientDelegate parameter.
Set the add callback method equal to a DataCacheNotificationDescriptor object that you can use elsewhere in your program to remove the cache notification callback.
Posted in: .Net Programming| Tags: .net 4.0 parameter CTP CTP 3 Microsoft Velocity cache use delegate datacachenotificationcallback notification datacache method callback