用于部署和运行时依赖性管理的 NuGet/OpenWrap

发布于 2024-11-05 03:55:49 字数 466 浏览 3 评论 0 原文

我完全理解 NuGet/OpenWrap 的主要制作和设计目的,以及自从它不久前发布以来它是如何被采用和应用的。

不过,我可以看到其他案例以另一种方式使用它。我正在考虑的一件事引起了人们对运行时依赖性的关注。

我正在开发的企业产品套件基本上带有一个由各种服务和可选模块组成的核心。这些模块可直接插入以提供特定功能,从而根据要求形成独特的解决方案。这些独特的解决方案正在部署到内部远程服务器、数据中心、云、您的庭院......几乎任何地方。

不用说,错误修复和维护的更新部署非常复杂,并且必须手动执行,这已被证明容易出错且笨拙。特别是因为接口修订和其他组件必须匹配,并且主要部署通常需要对每个模块进行部署。

就我个人而言,我不太热衷于为每个独特的解决方案创建安装程序包(MSI、Web 安装程序等),因为这很快就会失控并且无法很好地扩展。

我想知道包管理器和自定义提要是否可以帮助我们简化这个过程。也许我的想法是错误的,希望得到评论和想法。

I fully understand what NuGet/OpenWrap were primarily made and design for and how it has been adopted and applied since it was released a while ago.

I can however see other cases to use it in yet another way. One of the things that I was thinking of draws attention to the run time dependencies.

The enterprise product suite that I'm working on basically comes with a core that consists of various services and optional modules. These modules plug right in to make specific functionality available to form unique solutions as per requirements. These unique solutions are getting deployed to remote servers inhouse, data centers, the cloud, your patio... pretty much anywhere.

Needles to say deployments of updates for bugfixes + maintenance are complicated and have to be carried out manually which have proven to be error-prone and clumsy. Especially since interface revisions and other components have to match and major deployments usually require a depolyment of each and every module.

Personally I'm not a big fan of creating installer packages (MSI, Web Installer, etc.) for every unique solution as this would get out of hand soon and doesn't scale very well.

I was wondering whether or not a package manager and custom feeds could help us streamlining this process. Maybe I'm thinking in the wrong direction and would appreciate comments and thoughts.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

_畞蕅 2024-11-12 03:55:49

我们已经成功地做到了这一点。可以简单地调用 OpenWrap 将软件包更新到特定目录中。部署应用程序只需添加一个新的描述符以及您想要部署的包,然后让 openwrap 为您解决问题。

这尤其有效,因为 OpenWrap 具有系统存储库(针对每个用户)的概念,也可以重定向(如果您想要对多个存储库进行分区,每个应用程序一个存储库,或者用于测试......)。

部署新应用程序只需添加具有关联描述符的新文件夹,或将应用程序直接添加到系统存储库中即可。只需在批处理作业中运行 openwrap 命令行工具即可实现自动更新。

如果您想更上一层楼,您可以利用 OpenWrap API 并动态添加/删除包来组合应用程序。我们有可用的运行时程序集解析。

We've done that successfully. OpenWrap can simply be called to update packages into specific directories. Deploying an app is then jsut a matter of adding a new descriptor with the packages you want to see deployed, and letting openwrap do the resolve for you.

This works well especially because OpenWrap has the concept of a system repository (which is per user), which can also be redirected (in case you want to partition multiple repositories, one per application, or for testing...).

Deploying a new app is then only a matter of either adding a new folder with an associated descriptor, or adding the application straight into the system repository. Auto-update can be implemented by simply running the openwrap command-line tools in a batch job.

If you want to go one level up, you can make your application composite by leveraging the OpenWrap API, and adding / removing packages dynamically. We have runtime assembly resolving available.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文