基于功能的开发的部署规划

发布于 2024-08-22 04:05:56 字数 477 浏览 11 评论 0原文

产品是作为功能而不是发布来开发和交付的,这意味着功能完成后,它会被推向暂存阶段,然后进入生产阶段。可能有多个功能正在开发中并且交付时间线重叠。因此,在任何时候,开发数据库和源代码控制在开发中都具有多个功能。当某个功能完成后,我只想将功能特定的代码和数据库更改推送到暂存。事实证明,此过程容易出错且耗时,原因是:

  • 特定功能的数据库实体不是独立的,而是与其他功能相关且交织在一起。因此,分离出特定于该功能的实体非常耗时,有时甚至难以实现。有没有更好的办法呢?
  • 在服务器端代码中,类似地分离出特定于功能的代码与数据库同样麻烦。通过将 .NET 实体框架置于数据库之上并进行其他性能优化(例如预生成视图),是否有更好的方法来部署基于功能的开发?

开发环境包括 SQL Server 2008、.NET、带有用于源代码控制的 SVN 的实体框架。

这里的术语“特性”与FDD敏捷模型无关。

有人经历过类似的经历吗?

非常感谢!

A product is being developed and delivered as features rather than releases, meaning on completion of a feature, it's pushed to staging and then to production. There can be multiple features in development and overlapping the delivery timeline. So, at any point of time the dev database and source control has more than one feature in development. When a feature is completed, i would like to push only the feature specific code and db changes to staging. This process is proving to be error prone and time consuming for the reasons:

  • DB entities of a specific feature are not independant, but dependant and intertwined with other features. So, separating out the entities specific to the feature is time consuming and sometimes difficult to achieve. Is there any better way to do it?
  • On the server side code, similarly separating out the feature specific code is equally cumbersome as the db. With .NET Entity Framework layered on top of DB and other performance optimizations such as Pre-generated views in place, is there a better way to deploy feature based development?

The dev environment comprises of SQL Server 2008, .NET, Entity Framework with SVN for source control.

The term feature here is not related to FDD Agile Model.

Has anyone been through a similar experience?

Many thanks!

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

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

发布评论

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

评论(1

路弥 2024-08-29 04:05:56

我管理的项目与您刚才描述的非常相似。

尽快安装 SVN 和 CruiseControl.NET。这是一生的品味

我目前让我的团队在 SVN 的分支外工作,并合并到主干,然后在准备生产时进行标记。

将数据库置于版本控制之下,并将版本号与标签(版本)相关联

我根据这个很棒的文章,建议创建一些表/约束/触发器来帮助版本控制您的数据库。

对数据库进行版本控制是最困难的部分。在我们开发严格的数据库修改例程之前,一切都是一场噩梦

显然没有足够的空间来解释完整的细节,但我从花一整天的时间管理/合并代码到现在只检查自动构建以确保安全介意并有时间为该项目做出贡献。

I manage a project that works very similar to what you've just described.

Get SVN and CruiseControl.NET setup as soon as you can. It's a life/time savor

I currently have my team working out of branches in SVN and merge into trunk then tag when ready for production.

Keep your database under version control and associate verion numbers to tags (releases)

I derivded my own DB versioning methods based from this great article that suggests creating some tables/constraints/triggers to help version control your DB.

Versioning your database is the hardest part. Before we developed a strict routine for modifying the DB everything was a nightmare

obviously there isn't enough space to explain the full details but I went from spending my entire days managing/merging code to now just checking in on the automated builds for peace of mind and have time to contribute to the project.

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