Integrating .NET with MuleSoft

Tirthankar Kundu
4 min readFeb 25, 2021

Often you will find lot of legacy code residing in .NET code in project ecosystem.

These codes can have some good business logics implemented and reinventing the wheel in Mule might sometime get messy and tiresome.

Mule has support for handling this scenario as well. We can use the MuleSoft Microsoft .NET Connector to use these legacy codes in a mule app.

Here, I will show an end to end method of integrating with .NET code.

So, let’s get started.

What is DLL ?

A DLL is a library that contains code and data that can be used by more than one program at the same time. This contains code which can be reused by many other programs thus adding a sense of reusability.

For Java folks : Consider this as JARs.👌

Creating the .NET DLL

You will need Visual Studio to create a DLL file. 💬

Let’s see the process:

2. Next we will name the solution and create the application

3. Finally we will create a simple calculator app and code in C# as below:

4. On building the project we can see that the DLL files gets created as \bin\Debug\netstandard2.0\CalculatorApp.dll

This completes our work needed for the .NET code. Now, we will use this in our Mule app.

We will create a new Mule App. I named it as netapp(you can name anything 😄)

Firstly, copy the generated DLL files to the src/resource directory of your mule app.

Copy the dll and pdb files as below:

This will be then referenced in the connector.

Once added we can see it in the Mule Pallette.

Select Connection as Resource since we have our DLL present in resource folder.

Scope can be singleton so that one instance is created for all application calls.

Next, add the file name in path as below:

On clicking Test Connection, we should get below response:

This completes out Connector configuration.

Create a simple HTTP Listener and add Execute from the .NET Connector

We will add the Connector configuration as the one created earlier and on click refresh button for Method Info Type, we will find the details populated as above.

All the functions we wrote using Visual Studio for the Library is available in method.

For this sum operation we will select

int sum(int a, int b) (CalculatorApp.Calculator, CalculatorApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | sum(System.Int32 a, System.Int32 b) -> System.Int32)

For input to the method we can use the Arguments and I am passing two query parameters as input namely number1 and number2.

These values will be then passed to our DLL and it will return the response.

Now, let’s run the app and pass two query params.

Thus, we can see the output coming as expected. This shows the capability of talking to a .NET DLL from a Mule app.

Similarly, we can complete all other calculator operations and the end to end application flow should look like below:

Point to note: The .NET Connector needs .NET framework in order to execute.

Hope you liked it. Cheers!

Originally published at https://bitmaskers.in on February 25, 2021.

--

--

Tirthankar Kundu

Software Engineer | Technical Enthusiast | Developer | Blows candle on December 17