Development of applications expected to run RDP; any tips?

Suppose that I am developing a rather graphically intensive application (C ++ or C #, the graphic API is not defined), for which most of the use will be performed by remote users through RDP (terminal server sessions or remote access to a single-user machine). Obviously, unnecessary eye candy and animation effects should be avoided. My questions:

  • What should I be careful / avoid doing in order to use the RDP protocol most effectively? (for example, I have an idea that RDP can remove some graphic drawing primitives directly to the client ... but is it just for GDI? Does using double buffering use such remote movement and forced bitmap? work "or it caches only such things, like fonts and icons?)

  • Is there any RDP protocol analyzer that will give some idea of ​​what the RDP stream actually transports (in particular, bitmaps and drawing primitives)? (I can imagine adding some tools to the rdesktop source for this, but maybe something already exists).

+3
source share
2 answers

In my experience, I would be careful when it comes to animations - especially up / down fade controls that can seriously kill RDP performance.

Double buffering can also cause some problems, but I personally did not have to do too much in the way of workarounds for this - article Raymond Chen explains the possible traps quite well.

In fact, it’s nice to check the code to see if it works on remote sessions (RDP, Citrix, etc.). Take a look at: GetSystemMetrics( SM_REMOTESESSION )- at run time, you can decide whether to enable or disable certain functions.

+3

, , RDP, 90% , , RDP, , , RDP, , , , , .

RDP, , , , RDP (Citrix ) , , 't , - RDP.

... - .

+2

Source: https://habr.com/ru/post/1710108/


All Articles