Maybe this is an obvious question, maybe it isn't. Imagine a GUI control application where every button push calls a different function on a remote WCF service. Button usage is frequent at approximately every few seconds. In general is it best to open and close the WCF channel every function call or hold the channel open for the lifetime of the application? Assuming of course that there is only ever a few instantiations of this application.
NB. This question is not really about the example, but in helping me get my head around the best practice here.