eShopModernizing

eShopModernizing

Windows容器化助力ASP.NET应用和N层架构现代化

eShopModernizing项目展示了如何利用Windows容器和Azure云技术对传统ASP.NET Web应用和N层应用进行现代化改造。该项目提供了多种部署方案,涵盖本地开发环境、Azure容器实例、Windows Server虚拟机、AKS Kubernetes集群和Azure Web App for Containers。通过容器化技术,项目实现了DevOps部署流程的优化,而无需修改原有应用架构或代码。此外,项目还配备了详细的指南和电子书,为开发者提供了应用程序'提升和转移'现代化的实施参考。

Windows ContainersAzureASP.NET现代化DockerGithub开源项目

eShopModernizing - 使用Windows容器和Azure现代化ASP.NET Web应用(MVC和WebForms)和N层应用(WCF + WinForms)

本仓库提供了三个假设的传统eShop Web应用示例(基于.NET Framework的传统ASP.NET WebForms和MVC,以及基于WCF服务和WinForms桌面客户端应用的N层应用),并展示了如何使用Windows容器和Azure云将它们现代化(提升和转移场景),部署选项包括:

  • 在开发PC上使用Visual Studio和Docker for Windows进行本地构建和部署
  • Azure容器实例(ACI)
  • 普通Windows Server 2016虚拟机(VM)
  • AKS Kubernetes编排集群
  • 用于容器的Azure Web应用(Windows容器)

所有这些环境都可以部署到Azure云(如Wiki中所述),但您也可以将它们部署到本地服务器甚至其他公共云中。

相关指南/电子书

您可以下载相关的免费指南/电子书(第2版):

<img src="https://github.com/dotnet/docs/raw/master/docs/architecture/modernize-with-azure-containers/media/index/web-application-guide-cover-image.png" width="300">

PDF下载:https://aka.ms/liftandshiftwithcontainersebook

使用Windows容器进行现代化显著改善了DevOps部署,无需更改应用程序的架构或C#代码。

示例应用是用于eShop内部后台的简单Web应用,供员工更新产品目录。 这两个应用都是简单的CRUD Web应用,用于更新SQL Server数据库中的数据。

请参见下面两个应用的截图。

现有ASP.NET Web应用的初始版本

图片

开发环境中的容器化版本

图片

UI和业务功能

WebForms和MVC应用在UI和业务功能方面非常相似。我们创建了两个版本,以便您可以根据现有应用使用的技术(ASP.NET MVC或Web Forms)进行比较。

图片

Winforms + WCF应用

Winforms应用是一个目录管理工具,使用WCF作为后端。在这里阅读更多关于Winforms + WCF示例的信息。

部署到AZURE容器实例

图片

部署到AZURE WINDOWS SERVER 2016虚拟机

图片

部署到AKS(Azure Kubernetes服务)的KUBERNETES集群

图片

部署到用于容器的AZURE WEB应用

图片

快速入门:在本地Windows 10 PC上使用"Docker for Windows"运行所有应用

Wiki中有更详细的流程,但最快的入门方式是使用Docker for Windows在本地运行所有示例。打开"VS 2017(或2019)的开发人员命令提示符"(确保PATH中有正确的msbuild),进入eShopModernizing根文件夹并运行build.cmd脚本。

注意:当前版本使用netcoreapp3.0。您需要安装预览版SDK并将Visual Studio设置为"使用.NET Core SDK的预览版"(在选项 - 项目和解决方案 - .NET Core下)。

此脚本将:

  • 构建MVC项目
  • 构建Webforms项目
  • 构建WCF后端项目
  • 创建三个Docker镜像(Windows容器镜像):
    • eshop/modernizedwebforms
    • eshop/modernizedmvc
    • eshop/wcfservice

您可以通过在命令行运行docker images来检查刚刚创建的Docker镜像:

图片

最后,只需在仓库根目录运行docker-compose up即可启动所有三个项目和一个SQL Server容器。容器启动后:

  • MVC Web应用监听:
    • Docker主机(PC)网卡IP的5115端口
    • 容器内部IP的80端口
  • Webforms Web应用监听:
    • Docker主机(PC)网卡IP的5114端口
    • 容器内部IP的80端口
  • WCF服务监听:
    • Docker主机(PC)网卡IP的5113端口
    • 容器内部IP的80端口

注意 您应该能够使用http://localhost:<端口>访问所需的应用程序。

要从Docker主机本身(开发Windows PC)测试应用/容器,您需要使用内部IP(容器的IP)来访问应用程序。要查找内部IP,只需输入docker ps即可找到容器ID:

docker ps输出

然后使用命令docker inspect <容器ID> -f {{.NetworkSettings.Networks.nat.IPAddress}}查找容器的IP,并使用该IP和80端口访问容器:

访问容器

Windows容器Docker主机中的localhost回环限制

由于当前Windows版本中的默认NAT限制(参见https://blog.sixeyed.com/published-ports-on-windows-containers-dont-do-loopback/),您无法使用主机计算机上的localhost访问容器。 这里也有更多信息:https://blogs.technet.microsoft.com/virtualization/2016/05/25/windows-nat-winnat-capabilities-and-limitations/

尽管从Build 17025开始已移除此限制(截至2018年初,仍仅适用于Windows Insider,非公开/稳定版本)。使用该版本(Windows 10 Build 17025或更高版本),应可通过"localhost"/127.0.0.1访问已发布的容器端口。

查看Wiki以获取如何设置和部署到多个环境的详细说明

Wiki:https://github.com/dotnet-architecture/eShopModernizing/wiki

选择内存中模拟数据或与SQL Server数据库的真实连接

MVC和WebForms Web应用允许连接到真实数据库以获取/更新产品目录,或者在数据库由于某种原因尚不可用而您需要测试/演示应用时使用模拟数据。

对于每个应用,可以在使用Windows容器时在docker-compose.override.yml文件中配置选择一种或另一种模式的选项,或者在尚未使用容器(原始版本)时在Web.config文件中配置。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多