5月5日,亚马逊云科技宣布推出一个新的开源示例应用程序,这是一个虚构的二手书电子商务商店,被称之为Bob’s Used Books,可供使用亚马逊云科技的.NET开发人员使用。“亚马逊云科技的.NET宣传和开发团队定期与客户交谈,在对话期间,他们经常会收到索要更深入示例的请求。客户告诉我们,虽然小代码片段可以很好地说明API的机制,但他们的开发团队也需要并希望利用更完整、更真实的示例,以便更好地了解如何为云构造现代应用程序。”而发布的示例应用程序是对这些请求的回应。
Bob’s Used Books是使用ASP.NET Core版本6构建的示例电子商务应用程序,代表了对典型本地自定义应用程序的初始现代化改造。该应用程序使用现代化的跨平台.NET,使其能够在云端的Windows和Linux系统上运行,这是现代化的第一阶段。这是许多.NET开发人员正在经历的典型情况,他们使用亚马逊云科技提供的免费工具(例如,Toolkit for .NET Refactoring和Porting Assistant for .NET),将自己的应用程序从.NET Framework移植到.NET。
示例应用程序功能
虚构书店的客户可以在商店中浏览和搜索二手书,并查看所选图书的详细信息,例如价格、状况、类型等:
就像真正的电子商务商店一样,客户可以将图书添加到购物车、等待后续结账或个人愿望清单。到了购买时,客户可以开始结账流程,如果他们是现有客户,这将鼓励他们登录,如果不是,在此过程中会鼓励他们注册。
在此示例应用程序中,书店的工作人员使用相同的Web应用程序来管理库存和客户订单。基于角色的身份验证用于确定是员工登录(在这种情况下,他们可以查看管理门户)还是普通商店客户。对于访问管理门户的员工,他们从控制面板视图开始,该视图汇总了待处理、处理中或已完成的订单以及商店的库存状态:
员工可以编辑库存以添加新图书、填写封面图片或调整库存量。在同一个控制面板上,员工还可以查看和处理待处理的订单。
客户可以通过商店转售他们的图书。整个流程包括客户提交申请,商店管理员评估并决定是否从客户那里购买,如果被接受,客户将该书“发布”到商店,最后管理员将图书添加到库存中并向客户退款。请记住,这都是虚构的,没有发生任何实际的金融交易!
应用程序架构
书店示例最初并不是基于.NET Framework的应用程序,需要移植到.NET,但确实使用了整体式MVC(模型-视图-控制器)应用程序设计,这是.NET Framework开发时代的典型特征(至今仍在使用)。还使用单个Microsoft SQL Server数据库来包含库存、购物车、用户数据等。
完全部署到亚马逊云科技后,该应用程序将使用多项服务。这些服务为托管应用程序提供资源,为正在运行的应用程序提供配置,还为正在运行的代码提供有用的功能,例如图片验证:
- Amazon Cognito——用于客户和书店员工的身份验证。该应用程序使用Cognito的托管用户界面提供登录和注册功能。
- Amazon Relational Database Service(RDS)——管理单个Microsoft SQL Server Express实例,其中包含电子商务应用程序的库存、客户和其他典型数据。
- Amazon Simple Storage Service(Amazon S3)——S3桶用于存储图书的封面图片。
- AWS Systems Manager Parameter Store——包含运行时系统配置数据,包括封面图片的S3桶的名称和Cognito用户群体的详细信息。
- AWS Secrets Manager——保存RDS中底层SQL Server数据库的用户和密码详细信息。
- Amazon CloudFront——提供一个用于访问S3桶中封面图片的域,这意味着该桶无需公开可用。
- Amazon Rekognition——用于验证为图书上传的封面图片不包含令人反感的内容。
该应用程序是展示未来进一步现代化机会的起点,例如采用专用数据库而不是使用单一的关系数据库,分解整体以使用微服务等等。亚马逊云科技的.NET开发、宣传和解决方案架构师团队对有机会发布新内容感到非常兴奋,他们使用此示例来说明未来几个月的这些现代化机遇。