Clarification, I wrote:

   1. especially without need to implement all the complex structures such
   as context, freerdp ... that each pull the need to implement few others,
   and without the long initialization steps that no need to RE IMPLEMENT each
   time in each project

*I mean do it only once in this wrapper module, and not in each project
that use it.*


On Wed, Aug 6, 2014 at 2:19 PM, Joseph Benraz <joseph.ben...@gmail.com>
wrote:

> Hi Guys,
> How are you? , please read all before start respond :)
>
> Again, I had some time to dig in FreeRDP to use it for one of my projects,
> BUT once again I frustrated due to leak of info and complex design :( .
>
>
>    - *What I planed to do:*
>
> Due to current FreeRDP & FreeRDP-WebConnect design and implementation
> (codeis too Mixed), I couldn't use it in my project (winservice) as it
> writing in C# (also Java could not work as well), so I have to separate the
> code in FreeRDP-WebConnect (and take ONLY the FreeRDP wrap) to be able to
> use it in my own existed win service. I have a win service written in C#,
> and already connected to website and implement its own websocket protocols
> and p2p.
>
>
>    - *Why I failed*
>
> Due to current FreeRDP & FreeRDP-WebConnect design and implementation, it
> is almost IMPOSSIBLE to use it easily but have to implement and/or connect
> to libraries and re implement the long and complicate initialization.
>
> So current FreeRDP-WebConnect is USELESS since it is not designed to be
> reused by other languages/implementations, the implementation is a one
> piece of code and almost impossible to take of only the FreeRDP wrapper and
> move it to my project.
>
> Lack of documentation, I could not find ANY thing that explain how to use
> FreeRDP, what is the initialize steps and be able to call connect and get
> updates to pass to client. The Windows wfreerdp project do some long steps
> and FreeRDP-WebConnect also do some initialize that are not fully same as
> wfreerdp.exe which a bit confuse.
>
> If I or any other developer have some todo or list of steps instructions,
> or API description for what each API do and what it required, it would
> help, but couldn't find any of such documentation, API names doesnot say
> anything.
>
> All code and example in windows which is my need to use freeRDP (the
> important part, the server side) in c/cpp, and if I need to implement my
> winservice in other language (C# or Java) I have to implement almost all
> the structures (freerdp,context....) and almost re write everything
> (structures), this is insane.
> This seems by the way the reason why C# freeRDP project not maintained
> since 2 years ago, TOO many changes to do, and TOO many structures to
> implement.
>
> I CAN'T compile webConnect yet in my windows, and NO instruction yet to
> explain how to do it, mean impossible also to debug :(
>
>    -
> *What I suggest *
>
> As I said, the current implementation demand me to rewrite the steps of
> initialization (without documentation, so impossible to understand, what
> steps is mandatory...)
>
> So, the correct way to design and implement the freeRDP-WebConnect, is to
> split it into 3 parts:
> 1. win service
> 2. Communication module (DLL) - Low priority, but will be great idea, so
> anyone can implement an interface for send/receive data throw their own
> implementation (WebSocket , P2P, WebRTC....)
> *3. FreeRDP wrapper (DLL): the most important part, that implement all
> need and provide very simple API:*
>
> HANDLE bellow can be int
>
> 3.1. HANDLE Init (setting) :
> Initialize the instance if need (may not need this API).
> return NULL if failed, otherwise the freeRDP handle or index of the
> instance in dictionary (handle the FreeRDP/Context instance) -> for multi
> session support
>
> 3.1. int InitAsync (setting) :
> Same as above but in this case do not wait until all done, it return
> action ID ,then need to add callback such as void OnNotify (ID, enum
> status) to inform the winservice or caller that the init action done.
>
> 3.2. int Login (HANDLE ,username,password,domain);
> maybe return sessionID or 0 if pass otherwise if failed
>
> 3.3. int logout(HANDLE and/or username or sessionID)
> 3.4. Destroy(HANDLE);
>
> 3.5. OnXXXXX(HANDLE,xxxxx)  : Callbacks for Update/events
>
> I can provide more info, but what I think is that since win service may
> run in server, and may need to connect to multi users, so need to implement
> a sessions dictionary inside this wrraper to be able to create multi
> instances, and each session will create new instance of freeRDP/Context...
> Do I miss anything?
>
>
>    -
> *What the benefit of my suggestion *
>
> 1. multi session support
> 2. modulearity -> maintanace -> reusable: can replace/maintain each module
> easily, in diff language, and easily compile separate parts/modules
> 3. Reuse
> 4. Add support: implement and improve network protocols, someone expert on
> WebRTC for example (or any other network protocol including maybe improving
> such as CRC, compression....), can help and implement the interface and add
> new support to Communication module *without NEED* to understand or know
> how freeRDP implemented/work.
>
>
>    -
> *Your opening / Suggestions / How you can help me to do that *
>
> Again, I can't and have no idea how to compile webConnect, I can't debug
> and use it, I even think as I saw it is NOT support multi session so
> basically if this is true, it is USELESS (and So bad, i would be huge use,
> especially during the mobile and web workforce need, this would be a killer
> open source)
>
>
>    1. Do I missed anything?
>    2. Anyone think I'm not correct?, why?
>    3. Anyone can help me to wrapper the freeRDP to create *A SEAMLESS
>    EASY TO USE* library (especially without need to implement all the
>    complex structures such as context, freerdp ... that each pull the need to
>    implement few others, and without the long initialization steps that no
>    need to RE IMPLEMENT each time in each project... *all we needed is
>    Login / Logout / OnUpdate / or maybe other OnEvent *
>    4. Instructions to compile only this wrapper using the freeRDP
>    dlls/libs binaries, so ANY one can easily help debug, fix and reuse it.
>    5. Then we can define the Communication module interface and implement
>    it separately I can implement Websocket and P2P (WebRTC)
>    6. And finally the general easy, clean, simple win service that anyone
>    can easily change or replace.
>
>
> I really appreciate your great and amazing work, but I deeply believe that
> making things easy and seamless, would take this useful project to the next
> level, especially on those days where visualization combining the mobile
> workforce is in growth.
>
>
> Cheers,
> Joseph
>
------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
FreeRDP-devel mailing list
FreeRDP-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to