构建跨平台实时Web应用程序框架(支援React和Vue)
报价宝综合消息构建跨平台实时Web应用程序框架(支援React和Vue)

引言
我们传统开发方式,要么是基于MVC的后端引擎渲染,要么到现在各种restful api然后基于前端流行框架的MVVM前后端分离模式,但是无论哪种方式都不太适合对实时性要求较高的应用场景,虽然可以通过一些实时通讯框架来实现,但是都不够优雅,因此今天介绍一个开源的轻量级跨平台实时HTML+C#.NET Web应用程序开发框架——DotNetify,虽然是.Net平台实现,但是大多数优秀的框架其思想才是最重要的,因此希望大家不要局限于哪一种语言。官方网站
官网:https://dotnetify.net/github:https://github.com/dsuryd/dotnetify
简介
DotNetify是免费开放源代码的允许你在C#.NET后端上建立具有React、React Native、Vue或Knockout前端的实时、响应式、跨平台应用程序。我们有一个优雅的说法叫后端MVVM。他的特点是:简单且轻量响应式后端MVVM内建实时解决方案跨平台强大的基础设施下面对这几个特点进行一些说明,以便我们了解它的含义,后面会在本地进行例项演示。
简单轻量
不再需要编写冗长的RESTAPI,也不需要使用复杂的Javascript框架来实现您所追求的复杂的、高互动性的单页应用程序。学习起来还是很快,而且程式码量很少,不管是前端还是后端。
响应式后端MVVM
整合SignalR以及流行的前端使用者界面库,可以支援响应式后端驱动的mvvm体系结构,这样就避免前端的业务逻辑过多,保持瘦客户端。此体系结构允许大多数应用程序逻辑位于服务器端,通过.NET检视模型呼叫响应模型使资料进出检视。这种资料系结机制是内建的,不必按照开发人员使用服务和WebAPI的方式编写。而且dotNetify不来回穿梭整个检视模型状态,但是智慧的只发送被改变的东西。它有一种机制,可以将客户端Javascript或型别记录合并到处理UI逻辑的方式,从而使程式码更像是检视模型的自然扩充套件,并允许您完全控制何时将资料传送回服务器。
内建实时框架
应用程序通过非常强大的SignalR技术进行通讯,该技术允许服务器立即将内容推送给可用客户端。SignalR使用WebSocket,它的开销比HTTP小得多。当dotnetify的架构和SignalR结合在一起时,它们形成了一种几乎毫不费力的方式,可以通过网络实现实时通知,非常适合物联网使用者应用程序。
跨平台.NET
在ASP.NETCore、ASP.NETFramework、Nancy和Mono上执行。利用.NET平台提供的强大语言和工具支援。一些任务,如管理模组和名称空间、检视之间的通讯、抽象、服务注入等等,可以在服务器端快速而优雅地完成,而不需要花费大量的精力才能在Javascript中得到正确的处理。
强大的基础设施
基础设施包括动态路由可以在后端完全定义的机制,能够进行深度连结和巢状路由,基于令牌的认证, 依赖注入,WebSocket请求和响应管道。所有这些都可以模组化的方式实现,只需几行程式码即可实现。
本地演示
演示非常的简单,因为官网已经为我们构建好了模板,我们只需要输入以下几个命令就可以搞定dotnet new -i DotNetify.React.Template //模板安装
dotnet new dotnetify -o MyApp //构建应用
专案建立成功之后目录结构

cd MyApp
npm i
dotnet build
dotnet watch run
如果不出意外,应该构建成功(本地需要.Net core环境,目前应该是2.1),预设我们可以开启浏览器,输入http://localhost:5000即可检视演示
登陆页面
首页面板(这个页面是动态的,和文章第一张图是一样的)
表单页面
资料表格
整个专案使用了基于React的Material-UI元件构建的,页面风格比较现代化。非常适合当前大多数应用的开发。整个专案模板内建以下功能模组:
实时仪表板页面编辑表单+CRUD表页使用JWT承载令牌身份验证的登入页面。Material-UI元件有深链路的路由。Webpack热模组替换+DotNet监视器.OpenID连线/OAuth2认证服务器