Contents tagged with .NET

  • Call a Function With Retry Using Generics


    What if you like to call a web service and retry the call again until response? let me show you a nice way to call a function with retry until you retrieve what ever is needed from the function. This could be achieved by using generics especially by extending the Func<T> delegate; check the code below;

       1: public static class MyExtensions
       2:     {
       3:         public static T WithRetry<T>(this Func<T> action)
       4:         {
       5:             var result = default(T);
       6:             int retryCount = 0;
       7:             var succesful = false;
       8:             do
       9:             {
      10:                 try
      11:                 {
      12:                     result = action();
      13:                     succesful = true;
      14:                 }
      15:                 catch (Exception ex)
      16:                 {
      17:                     retryCount++;
      18:                 }
      19:             } while (retryCount < 3 && !succesful);
      20:             return result;
      21:         }
      22:     }

    In the code you can see that we extended the Func that will return an object with type T. This function will keep trying for 3 times but you might change it to keep it trying until it achieve the goal. and here is how to use it


       1: MyService ser = new MyService();
       2: Func<MyService.contentSetList> fCon = () => ser.get(testlist.ToArray<string>());
       3: var con = fCon.WithRetry();
       4: return con;


    hope this helps.

    References: the original code belongs to Scott Allen at his course C# Fundamentals - Part 2 @ http://www.pluralsight-training.net. thanks Scott.

  • Using 2 Tables Joined with LINQ as data source without anonymous cast error in databond method

    Yesterday one of our project team member faced a challenge of using an anonymous data that is returned from joining 2 typed data tables with LINQ. The problem is not how to use the data, the problem was how to be able to cast and use the data in Repeater ItemDataBond method without having “<>f__AnonymousType0….” cast error. below is the join query (tables used are typed) :-

  • When TO SOA

      In the last few years developer start to use SOA in many applications, because of that many new developers are too much excited to use SOA and apply the architecture of it to their applications. I found out that many applications start to be more complicated (while the application is too much simple without SOA). So, when to use SOA.
    First we must know what is the meaning of SOA (not as Service-oriented architecture); it’s a kind of architecture to be used over software and web applications to increase the applications flexibility according to business requirements. SOA gives the ability to software and applications to exchange data and functionality by using xml services over the network.