Integration of Angular, Vue.js and React with .NET: Creating a Modern Web Experience

Adrián Bailador - Apr 10 - - Dev Community

Introduction:

The amalgamation of front-end marvels with the robust backbone of .NET has revolutionized the landscape of modern web development. In this guide, we'll embark on a journey to seamlessly integrate three of the most beloved front-end frameworks – Angular, Vue.js, and React – with a .NET application. This fusion empowers us to construct web applications that are not only scalable but also exhibit top-tier performance. Throughout this tutorial, we'll walk you through setting up a .NET Core project and blending these powerful frameworks to fashion a dynamic and responsive user interface.

Step 1: Laying the Foundation with .NET Core:

Our journey commences with setting up a .NET Core project. Using the .NET CLI, let's initiate a new project. Open your command line interface and execute the following command:

dotnet new webapi -n MyDotNetAngularProject
cd MyDotNetAngularProject
Enter fullscreen mode Exit fullscreen mode

This command crafts a new .NET Core project furnished with a web API template.

Step 2: Crafting the Angular Environment:

Now, let's fashion Angular within our .NET ecosystem. Leveraging Angular CLI, we'll fashion this environment. If Angular CLI isn't installed yet, you can do so by executing:

npm install -g @angular/cli
Enter fullscreen mode Exit fullscreen mode

Within the directory of our .NET project, fire the following command to instill a fresh Angular setup:

ng new ClientApp --directory=./ClientApp --routing=true --style=scss
Enter fullscreen mode Exit fullscreen mode

This command births a new Angular application nestled within a directory named ClientApp within our .NET project.

Additional Insight:

Configuration Insights:

Deep within the package.json file of the freshly minted Angular application (residing at ClientApp/package.json), lies the dependencies and scripts essential for running, building, and testing the application. Ensure these dependencies align harmoniously with the versions of .NET and other frameworks you're embracing.

Step 3: Embracing Vue.js:

Next in our journey is embracing Vue.js within our .NET realm. We'll wield Vue CLI for this endeavour. If Vue CLI hasn't found its way into your toolkit yet, summon it forth by executing:

npm install -g @vue/cli
Enter fullscreen mode Exit fullscreen mode

Then, within our .NET project's confines, execute the following command to cultivate a fresh Vue project:

vue create ClientAppVue
Enter fullscreen mode Exit fullscreen mode

This command spawns a pristine Vue application within a directory christened ClientAppVue, nestled within our .NET sanctuary.

Additional Insight:

Configuration Insights:

Much akin to Angular, lurking within the package.json file of the freshly formed Vue application (dwelling at ClientAppVue/package.json), lies the dependencies and scripts requisite for running, building, and testing the application. Ensure these dependencies are aligned with the versions of .NET and other frameworks you're intertwining.

Step 4: Infusing the React Essence:

To infuse the essence of React into our .NET ecosystem, we'll employ Create React App. If Create React App hasn't graced your presence yet, summon it by executing:

npx create-react-app client-app-react
Enter fullscreen mode Exit fullscreen mode

This summons forth a new React application, ensconced within a directory christened client-app-react within our .NET sanctuary.

Additional Insight:

Configuration Insights:

Similar to Angular and Vue.js, ensconced within the package.json file of the nascent React application (residing at client-app-react/package.json), are the dependencies and scripts essential for running, building, and testing the application. Ensure these dependencies resonate harmoniously with the versions of .NET and other frameworks you're amalgamating.

Step 5: Crafting a Development Proxy:

To foster seamless communication between our Angular, Vue.js, and React applications and our .NET API during development, we shall craft a proxy. Nestled within the proxy.conf.json file within the confines of each application, append the following:

{
  "/api": {
    "target": "http://localhost:5000",
    "secure": false
  }
}
Enter fullscreen mode Exit fullscreen mode

This directive orchestrates the redirection of requests originating with /api to our .NET server perched on port 5000.

Step 6: Fusing Angular, Vue.js, and React with .NET:

With our projects set up, it's time to intertwine Angular, Vue.js, and React with our .NET application. Pry open the Startup.cs file in our .NET project and inject the following snippet into the ConfigureServices method:

services.AddSpaStaticFiles(configuration =>
{
    configuration.RootPath = "ClientApp/dist";
});
Enter fullscreen mode Exit fullscreen mode

Then, within the Configure method, infuse the following:

app.UseSpa(spa =>
{
    spa.Options.SourcePath = "

ClientApp";

    if (env.IsDevelopment())
    {
        spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
    }
});
Enter fullscreen mode Exit fullscreen mode

This manoeuvre configures our .NET application to serve the Angular application and facilitates seamless communication between the two during development.

Exemplary Code Snippet:

// ConfigureServices method in Startup.cs
services.AddSpaStaticFiles(configuration =>
{
    configuration.RootPath = "ClientApp/dist";
});
Enter fullscreen mode Exit fullscreen mode
// Configure method in Startup.cs
app.UseSpa(spa =>
{
    spa.Options.SourcePath = "ClientApp";

    if (env.IsDevelopment())
    {
        spa.UseProxyToSpaDevelopmentServer("http://localhost:4200");
    }
});
Enter fullscreen mode Exit fullscreen mode

Step 7: Crafting Your Magnum Opus!

With all pieces in place, it's time to embark on crafting our magnum opus. We can breathe life into our .NET project and the Angular, Vue.js, and React applications simultaneously using:

dotnet run
Enter fullscreen mode Exit fullscreen mode

This invocation ignites both servers, granting you access to your Angular application at http://localhost:4200, your Vue.js application at http://localhost:8080, your React application at http://localhost:3000, and your .NET API at http://localhost:5000/api.

Congratulations are in order! You've seamlessly integrated Angular, Vue.js, and React with your .NET application. Now, you're poised to commence the development of your modern web application, harnessing the best of both worlds.

Conclusion:

The harmonious fusion of Angular, Vue.js, and React with .NET furnishes us with the prowess to craft modern, scalable web applications. By adhering to the steps delineated in this article, you've acquired the prowess to configure and meld these frameworks with .NET, birthing a dynamic and responsive user experience. We trust this tutorial has served as a beacon, illuminating the path to crafting awe-inspiring web applications.

For deeper dives into each tool, we invite you to peruse the official documentation:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .