WCF

  • WS-Eventing flaw

    Just doing some work on eventing and having a look at a number of implementations there is a pretty annoying feature / flaw . By default the only filter supported is Xpath and the specification specifically states that This specification does not constrain notifications because any message MAY be a notification. from http://www.w3.org/Submission/WS-Eventing/. I have no issues for this - sometimes you want any message , however this is a very expensive way to do this especially when you have a large amount of events with different topics all coming through a single  notification service ( load balanced) . All the implementations...

  • What is Azure Services ?

    Are Azure services a cloud or are they an ESB ? While Azure does not have this it has FAR more than most ESB in terms of connecting clients to services. Sure it has router support Azure >> ESB  (Internet hosted , with integrated  internet security , scalable) Azure >> Cloud computing  ( not just Client - Service routing and hosting but also it has sender-receiver relay , multicast , firewall pass through ,   and enterprise-cloud security integration) The big thing is people see it as a cloud .. however i think the biggest thing is it can redirect clients...

  • SO Analysis

    Lots of books and posts have been written but IMHO they fail miserably. - They involve a new language/diagram - They use propriatry tools - Focus heavily on BPEL and you need services to drive the BPEL (mmm) - They are overly complex. and hence violate the  most important rule KISS. I prefer a loose guideline like the following. Consider the large-grained logical services your systems represent (such as Accounting, Sales, Manufacturing, Design) Ignoring political / divisional boundaries, consider each large-grained logical service and conceptualize how it should be broken up into finer and finer...

  • Is SOA a Belief system and what does that mean for Team dynamics

    Best SOA posts on the net ( and the comments) http://blogs.msdn.com/richardt/archive/2005/12/13/503358.aspx This is what I believe SO is ... it truly is a belief system and a way of thinking. It is not a prescriptive architectural process or methodology. It's not a template that you can apply that results in a service oriented system. It's where art meets science. It's where aesthetics meets engineering. It's the thing adds a human touch to the things we create. It's inside of me and it's inside of you.... james governor said: i am with anil. a call for an epiphany is kind...

  • DTO pattern

    http://msdn.microsoft.com/en-us/library/ms978717.aspx http://martinfowler.com/eaaCatalog/dataTransferObject.html I still think Martin Fowlers description is best An object that carries data between processes in order to reduce the number of method calls. While DTOs were designed for the above they provide key benefits to distributed systems 1.Performance Typically Objects in OO have quite a chatty interface , this is good for design purposes as these communication mirror the relationships between the objects however the performance implications for distributed systems are significant and worse the worry about performance last mentality in software development makes a significant issue as these issues are VERY expensive to fix as the design from the start is...

  • LINQ for SQL thread affinity Data context

    From http://www.cnblogs.com/sunrack/articles/1130866.html , for services we use mainly Thread Context ( the original allows a static context as well ). Thread context is very usefull for services.                           {                     { TDataContext result = (TDataContext) SetOptions(result); }               { TDataContext result = (TDataContext) SetOptions(result); } { options.LoadWith<   context.LoadOptions = options; }                 { }                 { }                 { key = context = { context = GetDataContext();   context = GetDataContext(ConnectionString); { threadData = } } }                     {     }                 {     }                 {     }     } ///<summary>/// This class provides several static methods for loading DataContext objects /// in a variety of ways. You can load the data context as normal one new instance/// at a time, or you can choose to use one of the scoped factory methods that/// can scope the DataContext to a WebRequest or a Thread context (in...

  • OO with services

    Are OO code and SOA diametrically opposed ? In a lot of ways this is true services tend to produce very anemic object models however this merely reduces reuse which is a myth in OO for the majority anyway . However services have a unique but familiar problem . The contract of the service is critical it needs to be designed for  - The ease of use of the client  - For performance  ( ie chunky calls , many small calls can bring many services down to its needs) - To be upgradeable and allow backward compatibility. - Compatible with an...

  • How to write a good service contracts

    ... not hand craft wsdl   Custom messages reduce churn and change in the contract   Lets say you have this datacontract   [DataContract] public class WorkEntry { [DataMember] public DateTime StartTime; [DataMember] public TimeSpan Duration; [DataMember] public string User; [DataMember] public string CostCentre; [DataMember] string Comments; }   What can go wrong here ? Using public fields is good , its tight and if you need to do custom things you can refactor it easily.  I think there is nothing really wrong here however if this is a business object also i would be concerned.  The big gotcha maybe DateTime  , lets say you have some other systems in your company that use Java . Now Java systems...

  • LINQ for SQL and reattaching objects in nTier scenarios

    One of the issues that keeps cropping up is LINQ for SQLs support for nTier scenarios and having to reattach the object to the DataContext. However this problem is exhibited by all ORMs in nTier scenarios ( though not in web sites) and  you basically have 2 choices - refetch the object from cache/DB and replay all changes to see what has changed then you can craft a custom Update to just change the items changed. - update all fields in the DB. While the 2nd method is easier the first is more efficient especially when you consider that it...

  • Simple services and Linq for SQL - match made in heaven

    Im a pretty big fan of Linq for SQL and it works so well with services especially smaller ones ( especially when there are no updates) . The fact services are normally responsible for about 3 tables /conceptual domain classes mean you can quickly drag the 3 tables onto the designer and generate the code.   If the structure changes you just recreate the data. Lightweight data Light weight service Light weight testing Light weight procedural code. . These services are quick to write and easy to maintain,

Full WCF Archive