I would like to know all the `types` i should avoid when i am creating my `WCF DataContract`.

I would like my `Service` to be completely compatible with any `Client` platform.

This is my `interface`:

```
public interface IShopriteService
{
    [OperationContract]
    ChangePasswordResponse ChangePassword(ChangePasswordRequest changePasswordRequest);

    [OperationContract]
    GetCampaignSchedulePlacementsResponse GetCampaignSchedulePlacements(GetCampaignSchedulePlacementsRequest getCampaignSchedulePlacementsRequest);

    [OperationContract]
    ConfirmDownloadResponce ConfirmDownload(ConfirmDownloadRequest confirmDownloadRequest);

    [OperationContract]
    UploadCampaignSchedulePlacementsResponse UploadCampaignSchedulePlacements(UploadCampaignSchedulePlacementsRequest uploadCampaignSchedulePlacementsRequest);
}

[DataContract]
public class ChangePasswordRequest
{
    [DataMember]
    public Guid ServiceProviderGuid
    {
        get;
        set;
    }

    [DataMember]
    public string OldPassword
    {
        get;
        set;
    }

    [DataMember]
    public string NewPassword
    {
        get;
        set;
    }
}

[DataContract]
public class ChangePasswordResponse
{
    [DataMember]
    public string Message
    {
        get;
        set;
    }
}

[DataContract]
public class GetCampaignSchedulePlacementsRequest
{
    [DataMember]
    public Guid ServiceProviderGuid
    {
        get;
        set;
    }

    [DataMember]
    public string Password
    {
        get;
        set;
    }
}

[DataContract]
public class GetCampaignSchedulePlacementsResponse
{

    [DataMember]
    public string Message
    {
        get;
        set;
    }

    [DataMember]
    public DateTime DateOfLatestUpdate
    {
        get;
        set;
    }

    [DataMember]
    public List<CampaignSchedulePlacement> CampaignSchedulePlacementList
    {
        get;
        set;
    }
}

[DataContract]
public class ConfirmDownloadRequest
{
    [DataMember]
    public Guid ServiceProviderGuid
    {
        get;
        set;
    }

    [DataMember]
    public string Password
    {
        get;
        set;
    }

    [DataMember]
    public DateTime DateOfLatestRecordRecieved
    {
        get;
        set;
    }
}

[DataContract]
public class ConfirmDownloadResponce
{
    [DataMember]
    public string Message
    {
        get;
        set;
    }
}

[DataContract]
public class UploadCampaignSchedulePlacementsRequest
{
    [DataMember]
    public Guid ServiceProviderGuid
    {
        get;
        set;
    }

    [DataMember]
    public string Password
    {
        get;
        set;
    }

    [DataMember]
    public List<CampaignSchedulePlacement> CampaignSchedulePlacementList
    {
        get;
        set;
    }
}

[DataContract]
public class UploadCampaignSchedulePlacementsResponse
{

    [DataMember]
    public string Message
    {
        get;
        set;
    }
}

[DataContract]
public class CampaignSchedulePlacement
{
    [DataMember]
    public Guid CampaignSchedulePlacementUID
    {
        get;
        set;
    }

    [DataMember]
    public string CampaignSchedulePlacementNo
    {
        get;
        set;
    }

    [DataMember]
    public string ClientNo
    {
        get;
        set;
    }

    [DataMember]
    public string ClientName
    {
        get;
        set;
    }

    [DataMember]
    public string ClientProductNo
    {
        get;
        set;
    }

    [DataMember]
    public string ClientProductName
    {
        get;
        set;
    }

    [DataMember]
    public string ClientProductRegion
    {
        get;
        set;
    }

    [DataMember]
    public string CampaignNo
    {
        get;
        set;
    }

    [DataMember]
    public string CampaignTitle
    {
        get;
        set;
    }

    [DataMember]
    public string CampaignScheduleNo
    {
        get;
        set;
    }

    [DataMember]
    public string CampaignScheduleTitle
    {
        get;
        set;
    }

    [DataMember]
    public string SupplierName
    {
        get;
        set;
    }

    [DataMember]
    public string SupplierProductName
    {
        get;
        set;
    }

    [DataMember]
    public DateTime PlacementDate
    {
        get;
        set;
    }

    [DataMember]
    public string Size
    {
        get;
        set;
    }

    [DataMember]
    public short Columns
    {
        get;
        set;
    }

    [DataMember]
    public int Quantity
    {
        get;
        set;
    }

    [DataMember]
    public string CombinedSize
    {
        get;
        set;
    }

    [DataMember]
    public string Colour
    {
        get;
        set;
    }

    [DataMember]
    public string Position
    {
        get;
        set;
    }

    [DataMember]
    public string PositionNo
    {
        get;
        set;
    }

    [DataMember]
    public string FromTime
    {
        get;
        set;
    }

    [DataMember]
    public string ToTime
    {
        get;
        set;
    }

    [DataMember]
    public decimal GrossUnitRateAmount
    {
        get;
        set;
    }

    [DataMember]
    public decimal GrossRateAmount
    {
        get;
        set;
    }

    [DataMember]
    public decimal DiscountAmount
    {
        get;
        set;
    }

    [DataMember]
    public decimal CommissionAmount
    {
        get;
        set;
    }

    [DataMember]
    public decimal NettCostAmount
    {
        get;
        set;
    }

    [DataMember]
    public string AdvertNo
    {
        get;
        set;
    }

    [DataMember]
    public string AdvertTitle
    {
        get;
        set;
    }

    [DataMember]
    public string AdvertLanguage
    {
        get;
        set;
    }

    [DataMember]
    public string OrderNo
    {
        get;
        set;
    }

    [DataMember]
    public DateTime OrderDate
    {
        get;
        set;
    }

    [DataMember]
    public string OrderStatus
    {
        get;
        set;
    }

    [DataMember]
    public string ContractNo
    {
        get;
        set;
    }

    [DataMember]
    public bool IsCancelledInChase
    {
        get;
        set;
    }

    [DataMember]
    public string ClientInvoiceNo
    {
        get;
        set;
    }

    [DataMember]
    public DateTime ClientInvoiceDate
    {
        get;
        set;
    }

    [DataMember]
    public decimal ClientInvoiceAmount
    {
        get;
        set;
    }

    [DataMember]
    public DateTime MaterialDeadlineDate
    {
        get;
        set;
    }

    [DataMember]
    public string ExtraInfo
    {
        get;
        set;
    }

    [DataMember]
    public string ChaseStatus
    {
        get;
        set;
    }

    [DataMember]
    public string ExternalStatus
    {
        get;
        set;
    }

    [DataMember]
    public DateTime ChaseModifiedDate
    {
        get;
        set;
    }

    [DataMember]
    public DateTime ShopriteModifiedDate
    {
        get;
        set;
    }
}

```

**Will my service be compatible with all platforms?**