我要开始设计&构建一个相当大的数据库业务应用程序(数据输入,通知,报告,数据导出和数据的通常安全限制)。多个客户 - 移动应用程序和将有多个网站。计划使用Asp.net MVC5&用于开发的SQL Server。 Phonegap将用于创建移动应用程序。
我计划创建一个API。与数据库的所有交互都将通过API(REST API)进行。将使用Asp.Net MVC5创建此REST API。前端将开发为HTML5应用程序,使用AJAX调用此API。与API的所有交互都将通过AJAX调用。需要向第三方公开其中一些服务(5%)。
例如对于供应商管理功能,API中将提供SupplierAdd,SupplierEdit,SupplierDelete,SupplierList等服务。 HTML5应用程序将通过AJAX调用它们并执行所需。使用基于登录和令牌的安全系统将对这些服务施加必要的安全性。
计划在前端使用一些像Angular JS这样的Javascript框架。
整个应用程序是一个包含大约200个DB表和DB表之间的大量关系的应用程序。业务逻辑只是中等复杂。这主要是数据存储和数据存储。报告申请。
这种基于API的完整方法有问题吗?
建议的另一种方法是避免使用AJAX和Javascript并使用ASP.Net MVC本身。每个操作都不会有单独的API。 .cshtml将提交给控制器方法,此方法将调用业务层并执行操作。移动应用程序和第三方所需的服务仅作为API公开。这是一个更好的解决方案吗?
我在第二种方法中看到的问题是,当未来越来越多的移动应用程序或网站出现时,它无法提供所需的灵活性。此外,将一些服务暴露给第三方将是困难的。
我请经验丰富的建筑师发表评论。