我们的企业应用程序是一个庞大的应用程序(超过1000页),主要是精美的数据输入应用程序。没有主要的业务流程。所有大多数页面都具有CRUD。我们正在尝试从旧代码库(C / C ++)的桌面应用程序到基于Web的应用程序重新架构整个应用程序。
我们从Angular开始,但是由于对Java的了解有限,这是一条陡峭的学习曲线。仅供参考:我们所有的开发人员都知道C#。我们发现很难将新开发人员带入Angular / Javascript世界。
所有这些,我正在研究ASP .Net Core + Razor Pages,发现与Angular相比,它更容易过渡。这些是我到目前为止看到的优势:
由于这是一个数据输入系统,客户端渲染与服务器渲染是否重要?
与ASP .Net Core 2 + Razor Pages相比,选择带有.Net Core Web API的Angular是否有更好的优势?
答案 0 :(得分:3)
这是一个很自以为是的问题,但是通常,单页面应用程序需要比服务器呈现的页面大几个数量级的工作。您将必须在C#后端和typescirpt前端上复制逻辑。当您使用具有可疑结构的非类型安全动态语言编写前端代码时,将不得不处理大量错误。最后,单页应用程序值得,因为如果操作正确,它们将为最终用户提供丰富而引人入胜的体验。但是到达那里是一场艰苦的战斗。
考虑到您的开发人员的经验,我建议您在Razor Pages或MVC中进行操作,并逐步将Angular / React代码引入需要增强的前端区域。
换句话说,在Razor Pages / MVC中完成整个工作,选择一个较小的区域,分支中间件管道并提供一个小的Angular应用。
答案 1 :(得分:2)
从头开始,我建议您使用Blazor服务器端SPA应用程序。
SPA的设计类似于桌面应用程序 最适合与数据输入表单一起使用 我猜您的团队是由桌面应用程序(WinForms,WPF)开发人员组成的,一旦他们理解了Blazor或任何其他SPA框架所基于的组件模型,他们将可以轻松地开始开发。
注意:这里必须要强调的是,即使您是经验丰富的Razor Pages或MVC开发人员,开发Blazor应用程序的能力也需要一定的学习投入,尽管不如Angular那样高。 另请注意:C#知识(语言)不反映(Asp).Net核心框架的知识。
Blazor服务器端最适合在专用网络中运行的企业应用程序。
您真的可以通过这种方式创建快速,强大且类似于桌面的应用程序
希望这对您有帮助...
注意:我还没有完成我的回答,我会不时更新它。请,不要犹豫,问您想要的任何问题。
答案 2 :(得分:2)
对于企业开发人员而言,我认为我们更关注业务逻辑层,而不是像UI那样由框架或库生成的SAP ABAP开发这样的UI设计。无论前端还是后端,我都喜欢使用强类型。这样可以节省大量时间,避免错别字错误,尤其是团队开发。
例如,如下图所示的“销售订单”输入屏幕,我们只需要创建具有属性的模型并进行配置即可。该库将生成输入和搜索屏幕。
答案 3 :(得分:1)
取决于您的需求。您的公司到处都是C#开发人员,因此要分头行事会增加项目的时间和复杂性。同样,由于这是一个Web应用程序,用于在企业环境中输入数据,因此您不像商业应用程序那样关心加载时间和优化。通常,尝试使用带有剃须刀的ASP.NET Core框架进行开发,并尝试使用较小的项目来适应各种情况。那是我的意见。您想提供适合公司需求并降低开发成本的技术解决方案,这应该是您选择的主轴。
答案 4 :(得分:1)
由于您的大多数应用程序都是简单的CRUD,请考虑仅使用razor / MVC。
使用Visual Studio + ASP.NET Core + EF Core自动将数据库反向工程为模型和数据库上下文。然后自动为所有CRUD操作生成(搭建)控制器和视图。在需要的地方添加其他数据注释。
在需要更高级的数据显示/交互(例如网格,日历等)的地方,请考虑使用第三方JavaScript小部件。他们不需要JavaScript专业知识。
答案 5 :(得分:0)
我正在使用Razor来构建Core 3.0 Web.App。效果很好,生产率很高。我是一位非常有Angular经验的Java开发人员。我最喜欢成熟的Razor环境。服务器上的身份验证易于实现。如果您不需要SPA但需要MPA,那么最好还是使用Razor。使用MVC时,视图的加载不是问题,是的,它的速度比Angular慢,但是只要保持视图紧凑即可。