Search code examples
.netweb-servicesdllcommunication

What is the best way to communicate between programs in .NET and why?


Our company keeps debating on whether we should be using custom API DLLs or creating a web service farm to have our programs to communicate data between themselves. To me web services make the most sense in regards to compatibility and flexibility of upgrading, but I have heard some good reasons to use DLLs as well.

Is there an emerging preference for .NET applications, or a choice that you have found that works best? And if so, why?


Solution

  • There's pros & cons of each - if you'll always be running .net apps then you could arguably get better performance from the dll approach. Remoting can work well too.

    For greater long term flexibility that will allow you to easily integrate with other platforms & internal/external clients should the need arise you could look at building RESTful web service APIs to your applications.

    In some circumstances I've worked at places that did intra-app communication in the data tier via some well crafted stored procedures which worked perfectly in that scenario.

    I always consider the tools that best fit the task at hand rather than trying to fit in with any specific trends, however, if your doing anything that could involve external client interaction I'd definitely look at whether there are published communications standards already in place that you can pick up - there's a lot of standards out there that you can employ to aid interoperability within your industry.