Hi Krzysztof

I was thinking your proxy/interceptor would hide all the async details
(such as IAsyncResult) from the client.

It would set up the AsyncCallback internally and call EndFoo to get
the result, and then pass it on to the client.

Exceptions could be trapped and handled as:

proxy
    .BeginInvoke(p => p.GetSize(str))
    .EndInvoke(size => Write(size))
    .Except(x => Log(x))

Ajai

On May 11, 2:07 am, "Krzysztof Kozmic" <[email protected]> wrote:
> Ajai,
>
> Yeah, I've been thinking of doing something along the lines you
> proposed, but this approach has serious flaws.
> Who calls the actual EndFoo methods? What happends when it throws?
>
> Krzysztof
>
> >>> [email protected] 2009-05-09 16:06 >>>
>
> From your Prepare snippet, looks like the model for the client code is
> still callback based.
>
> How about using a BeginInvoke extension method?
>
> proxy
>     .BeginInvoke(p => p.GetSize(str))
>     .EndInvoke(size => Write(size));
>
> This calling pattern sets up some context for your proxy/interceptor
> directing it to call BeginGetSize instead of GetSize.
>
> The client then can control if the call is going to be synchronous or
> asynchronous based on its need.
>
> You might find a coroutine approach such as F# async or 
> myhttp://www.codeplex.com/EasyAsyncinteresting too.
>
> Cheers
>
> Ajai
>
> On May 6, 2:47 pm, Krzysztof Ko*mic <[email protected]>
> wrote:> I'm working on adding to WCF Facility support for async calls from
> > client side (similar to what can be done with SvcUtil-generated
> > proxies), when using channelfactory and intereface contract only.
> > Something like What Ayende wrote about
>
> here:http://ayende.com/Blog/archive/2008/03/29/WCF-Async-without-proxies.aspx
>
>
>
> > but without having to write IAsyncBus
>
> > I have very rough (but working) implementation.
>
> > But...
>
> > given we don't have an actual async methods to call, we have to have
> an
> > alternative syntax (well, at least until C# 4.0 and IDynamicObject,
> but
> > that's another story)http://paste2.org/p/198506here'swhat I came up
> with.
> > I encourage you to discussion about it. If you have alternative,
> better
> > ideas, you can show it here:http://paste2.org/followup/198506
>
> > Thanks,
>
> > Krzysztof
>
> CONFIDENTIALITY NOTICE
> This message is intended exclusively for the individual or entity to which it 
> is addressed. This communication may contain information that is proprietary, 
> privileged, confidential or otherwise legally exempt from disclosure. If you 
> are not the named addressee, you are not authorized to read, print, retain, 
> copy or disseminate this message or any part of it. If you have received this 
> message in error, please delete all copies of this message and notify the 
> sender immediately by return mail or fax ATSI S.A.(+4812) 285 36 04.
> Any email attachment may contain software viruses which could damage your own 
> computer system. Whilst reasonable precaution has been taken to minimise this 
> risk, we cannot accept liability for any damage which you sustain as a result 
> of software viruses. You should therefore carry out your own virus checks 
> before opening any attachments.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Development List" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/castle-project-devel?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to