.NET前后分离解决方案

1. .NET前后分离解决方案

前言:一篇介绍.net前后分离解决方案的文章

业界的共识一直都是前后端分离开发,就算是不懂技术的小白,最先理解的也是这样,但分离的同时就要考虑部署的问题。以及前后端工程师开发流程中的相互牵制问题,毕竟这些问题都会使得整体开发效率降低。而使用.NET进行客户端 Web 开发,就可以在服务器和客户端之间共享应用逻辑。算是一个很好的解决方案,但是具体一个框架怎么就成为了前后分离解决方案的呢?让我们展开来说:

1.1. 什么是Blazor?

说解决方案之前,要先说一个东西,Blazor,那什么是Blazor?又为什么要说Blazor呢?

微软文档给出的定义是:

Blazor是一个用.NET构建交互式客户端web UI的框架。

近两年,有越来越多的开发知道Blazor,去了解Blazor,一个用来构建客户端web UI的“框架”,和别的构建web UI的客户端框架有什么差异?了解之后,你会不会去选择使用?Blazor和.NET又有什么关系呢?

blazor是一个微软推出的基于webassembly和C#(面向对象) 以及F#(面向函数)的前端框架,是.NET最新的前端技术,类似vue 、react 、anglar的单页前端框架,只是他不再使用javascrip或typescript,而是使用血统更优的C#来编写页面逻辑,呈现交互的效果,因此我们可以使用静态类型检查、泛型、Linq、async/await、以及美味的语法糖等所有C#语言的优秀特性。根据以上的解释,Blazor和.NET的关系就是,Blazor是基于C#和.NET构建SPA的WebUI框架,而且Blazor是支持双向绑定的,也就是不需要页面刷新使服务端的重新渲染,而是实现了局部渲染,使Blazor能实现现代前端框架的效果。使.NET代码和Razor语法来实现组件。Blazor组件可以处理UI事件,绑定到用户输入并有效地呈现UI更新。如果你喜欢.NET和C#,我想你一定会爱上Blazor。

1.2. Blazor 的功能

blazor本身是自带了强大的功能的:

1.2.1. 依赖注入

下面的示例展示了如何使用 @inject,将实现 Services.IDataAccess 的服务注入组件的 DataRepository 属性中 :

@page "/customer-list"
@inject IDataAccess DataRepository

@if (customers != null)
{
    <ul>
        @foreach (var customer in customers)
        {
            <li>@customer.FirstName @customer.LastName</li>
        }
    </ul>
}

@code {
    private IReadOnlyList<Customer> customers;

    protected override async Task OnInitializedAsync()
    {
        customers = await DataRepository.GetAllCustomersAsync();
    }

    private class Customer
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

    private interface IDataAccess
    {
        public Task<IReadOnlyList<Customer>> GetAllCustomersAsync();
    }
}

1.2.2. 组件

Blazor应用基于组件。 Blazor 中的组件是指 UI 元素,例如页面、对话框或数据输入窗体。

组件类通常以 Razor 标记页(文件扩展名为 .razor)的形式编写。 Razor 是一种语法,用于将 HTML 标记与专为提高开发人员工作效率而设计的 C# 代码结合在一起。 借助 Razor,可使用 Visual Studio 中的 IntelliSense 编程支持在同一文件中的 HTML 标记与 C# 之间切换。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mMdC

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值