Proxy DLL Use Cases

1. Remote Access/Control

Our Proxy DLL technology enables you to invoke a remote DLL as if it were on your computer.

For example, suppose you are an instrument manufacturer with instruments being used in customer labs worldwide. You wish to remotely control the instruments, initiating the self-diagnosis process and monitoring parameter changes in real time.

All you need to do is write a standard DLL with the following two methods and place it in the instruments:

  • public void StartSelfDiagnosis(): it starts the instrument's self diagnosis process.
  • public List<double> GetProcessParameters(): it returns the self-diagnosis parameters' values.

Subsequently, you can develop an app running on a computer in your premises, which invokes the StartSelfDiagnosis method on the proxy DLL to instruct the remote instrument to commence the self-diagnosis process. Then, call the GetProcessParameters method every half second to retrieve the parameters.

2. Colaboration in software development

Mary and Peter work for different software houses and collaborate on developing a .NET application. Mary is coding a library, and Peter is coding another one.

To run the app, the user interface, Mary's library, and Peter's library must all be in the same binaries folder.

To allow each other to run the app, Mary gives Peter the proxy DLL generated from her library. Peter gives Mary the proxy DLL generated from his library.

When Mary runs the app, Peter's proxy DLL on her computer remotely calls Peter's DLL on Peter's computer.

When Peter runs the app, Mary's proxy DLL on his computer remotely calls Mary's DLL on Mary's computer.

Therefore, when either runs the app, the source code on both computers is executed in real time, as if they are on the same computer.

Now let's say Peter's code has the following function:

List<Employee> GetEmployeesInProject (int projectId)

Peter changes it by adding an extra parameter:

List<Employee> GetEmployeesInProject (int projectId, EmployeeType employeeType)

Magically, 15 seconds later, the proxy DLL on Mary's computer is updated to have the added employeeType parameter.

Using remote freelancer programmers has many benefits. This article discussed this topic thoroughly. The biggest roadblock is that lots of businesses don't feel comfortable to give the source code which contains their core IP to an overseas freelancer. Our Proxy DLL technology removes this roadblock, allowing distributed collaborations in software development to explode in scale. The software industry will be fundamentally changed.

3. Exposing your service in a fine-grained manner to a partner

You have a database in your secured private network, and you want to allow your business partner to access specific columns of certain rows in particular tables. You do not want them to access other tables, other rows in the allowed tables, or other columns of the allowed rows.

To achieve this, you often have to write a custom web API for your partner to invoke. You need to set up a web server hosted on-premise or in the cloud and grant this web server access to your database.

Using Proxy DLL, all you need to do is write a .NET DLL that queries those allowed tables, rows, and columns. Place this DLL in the same private network as your database. Then, give the proxy DLL to your partner. You do not need to understand anything web-related.

Other use cases

If you are using proxy DLL in other use cases please let us now.

More resources

More details | 7-minute demo | Downloads.

What ChatGPT says about us

"The concept of real-time distributed software development using the SkyBridge® Proxy DLL technology seems interesting and potentially useful for facilitating remote collaboration between software developers while protecting intellectual property. The idea of using proxy DLLs to generate identical public interfaces for libraries A and B is a clever solution to the problem of collaborating on code without having to share the source code itself.

"The example of Mary and Peter collaborating on a .NET application demonstrates how the technology could be used to enable real-time execution of code on remote computers, making it possible for developers in different parts of the world to work together as if they were in the same room. The ability to update code in real-time and have those changes reflected immediately is a useful feature that could speed up the development process.

"Overall, the technology has the potential to revolutionize the way software developers collaborate and work together, provided that it is easy to use and integrate with existing workflows. It will be interesting to see how the technology evolves and whether it becomes widely adopted in the software development community."