How To Build A Personal Website In Blazor: An ASP.NET Core Tutorial

How To Build A Personal Website In Blazor: An ASP.NET Core Tutorial

Creating a personal website is a great project for beginners and experienced software engineers alike. Whether you want to showcase your skills, share your projects, or enhance your professional opportunities, having a personal website can be immensely beneficial. In this ASP.NET Core tutorial, we will explore how to build a personal website in Blazor, a powerful framework for creating web applications with the C# programming language.

Blazor combines the power of ASP.NET Core with the flexibility of web development, allowing you to create dynamic and interactive websites. Throughout this article, we will cover the basics of Blazor, demonstrate how to design and customize your website, add functionality with C# code, and deploy it to a hosting platform.

Let’s get started with building your own personal website in Blazor!

Why Create a Personal Website?

Creating a personal website offers numerous advantages for individuals in the software development field, whether they are beginners or experienced professionals. Building your own personal website allows you to showcase your skills, projects, and accomplishments. It serves as a platform to highlight your expertise and attract potential employers or clients.

By having a personal website, you can establish an online presence and build your brand. You can share your knowledge through blog posts, tutorials, or demos, positioning yourself as an authority in the software engineering community. This visibility can lead to networking opportunities and collaborations with like-minded professionals. Moreover, a personal website offers a centralized hub where you can present your resume, portfolio, and contact information, making it easier for others to connect with you.

Overall, creating a personal website using ASP.NET Core Blazor not only allows you to demonstrate your technical skills but also provides a platform to showcase your creativity and professional accomplishments. Now let’s see how to build a personal website in Blazor!

Sign up for Dev Leader Weekly!

Getting Started with ASP.NET Core Blazor

To embark on the journey of building your personal website, ASP.NET Core Blazor is an excellent framework to choose. Blazor is a modern web framework that utilizes C# and .NET to build interactive web applications. It combines the power of .NET with the flexibility of web development, enabling you to create dynamic and responsive websites.

Before diving into the development process, you need to set up your development environment. This involves installing the necessary tools, such as Visual Studio or Visual Studio Code, and the .NET Core SDK. Once your environment is prepared, you can create a new Blazor project.

Creating the Basic Structure

When starting with ASP.NET Core Blazor, it’s important to understand the project structure. A Blazor project contains various folders and files that organize the application’s components, pages, and shared resources.

To create a basic structure for your personal website, you’ll need to add pages and components. Pages represent individual sections or views of your website, while components provide reusable functionality and UI elements. Additionally, you’ll create the main layout, which defines the overall structure and design of your website.

Working with Data in Blazor

To make your personal website more dynamic, you can leverage data binding in Blazor. Data binding allows you to connect your website’s UI elements to data sources, such as APIs or databases. This enables you to fetch data and display it dynamically on your website. You can showcase your projects, blog posts, or any other relevant information by fetching and presenting the data in a user-friendly manner.

In Blazor, data binding is a technique that allows you to synchronize the properties of a component with the data model. This means that any changes made to the data model will be reflected in the component and vice versa. Here’s a simple example to illustrate the basics of data binding in Blazor:

1. Create a Data Model

First, let’s create a simple data model. In this example, we’ll create a model for a blog post:

public class BlogPost
    public string Title { get; set; }
    public string Content { get; set; }

2. Initialize the Data Model in a Component

Next, initialize the data model in a Blazor component. Here, we create an instance of BlogPost and initialize it with some data:

@page "/blog"

@code {
    private BlogPost post = new BlogPost
        Title = "Exploring Blazor",
        Content = "Blazor is a framework for building interactive web UIs using C# instead of JavaScript."

3. Bind the Data Model to the UI

Now, bind the properties of the BlogPost model to the UI elements in the component’s markup:


With these steps, you’ve created a simple example of data binding in Blazor. When you navigate to the /blog route in your Blazor app, you will see the blog post title and content displayed on the page.

Navigation and Routing

Navigation and routing are crucial aspects of any website, and Blazor provides robust capabilities in this area. Configuring routing in your Blazor application allows you to define the URLs and corresponding components for different pages or sections of your website. This enables users to navigate through your website seamlessly. You can create navigation menus, links, and handle routing events to enhance the user experience and provide smooth navigation between pages.

In Blazor, navigation and routing are facilitated through the Router component, which maps the requested URL to the corresponding Blazor component. Here’s a simple example to illustrate the basics of navigation and routing in Blazor:

1. Define the Route in a Component

First, define the route for a Blazor component using the @page directive. In this example, we’ll create a component for a Contact page:

@page "/contact"

<h3>Contact Me About My Portfolio</h3>
<p>Feel free to reach out to me at</p>

2. Configure the Router

Next, configure the Router component in the App.razor file. The Router component will map the requested URLs to the corresponding Blazor components:

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="typeof(MainLayout)" />
        <LayoutView Layout="typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>

Now, create a navigation link to the Contact page in the NavMenu.razor component using the NavLink component:

<li class="nav-item px-3">
    <NavLink class="nav-link" href="contact">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Contact

With these steps, you’ve set up basic navigation and routing in Blazor. When users click on the “Contact” link in the navigation menu, they will be navigated to the /contact route and see the page we created.

Designing Your Personal Website

When creating a personal website, design plays a crucial role in capturing the attention of visitors and providing a pleasant user experience. A visually appealing website can leave a lasting impression on your audience.

When designing your personal website using ASP.NET Core Blazor, it’s important to choose a responsive and user-friendly design that adapts well to different screen sizes and devices. This ensures that your website looks great on desktops, tablets, and mobile devices, providing a seamless browsing experience for your visitors.

To enhance the user interface (UI) of your Blazor website, you can utilize frameworks like Bootstrap. Bootstrap provides a collection of CSS classes and JavaScript components that aid in creating a professional and visually consistent design. You can easily integrate Bootstrap into your Blazor project to style your components and layout.

Customizing the UI with CSS and Blazor styles

To give your personal website a unique look, you can customize the UI by adding custom CSS styles to your Blazor components. This allows you to modify the appearance and layout of specific elements or create custom styles that align with your branding.

Additionally, Blazor provides its own styling mechanism called Blazor styles. With Blazor styles, you can define styles directly within your components using C# and HTML markup. This allows for a more modular approach to styling, making it easier to manage and maintain your website’s visual consistency.

Incorporating Images and Media

Incorporating images and multimedia content can greatly enhance the visual appeal and engagement of your personal website. Blazor provides various ways to work with images and media.

You can display images within your Blazor components using HTML’s <img> tag or the built-in img Blazor component. Blazor also supports optimizing images for web performance by allowing you to specify different sizes and formats based on the device accessing your website.

Additionally, Blazor provides media components, such as the <video> and <audio> tags, which allow you to embed and play multimedia content directly on your website. This is useful for showcasing videos, audio clips, or any other media that adds value to your personal website.

Remember, a well-designed personal website with appealing visuals and multimedia content can make a significant impact on your audience’s overall experience.

Deploying Your Personal Website

If you’ve enjoyed this article excerpt so far, you can read more about deploying your Blazor application in the full article! I share some of my preferred hosting options that are low-cost that you can consider as well.

If you want to be notified once per week about my full-length articles as well as my videos, consider subscribing to my weekly newsletter! My readers also periodically get exclusive newsletter-only articles as well as potential early access to my YouTube videos. And… It’s totally free!

Sign up for Dev Leader Weekly!