我们公司的我正在创造一个很大的外联网网站将采用一套子应用程序。我有点感到困惑什么应该是正确安装的方案和项目。

我有一个网应用程序,我们呼吁该门户网站。它包含认证/授权的课程,masterpages、导航/url路由选择课程和主题的定义。它还将包含一些基本的概述,为我们的客户得到快速的想法,他们的项目的状况。

在未来一年,我们将制定和纳入更多的应用程序门户网站。它认为作详细的概述和工具,称为特征A、B和C。多年来,我们将提高这些应用程序和释放的新版本。这些网络应用程序应适合航行的门户网站。我想他们再利用的masterpages和主题。

什么是适当的方式设置这个解决方案吗?
我怎么能配合应用程序结合在一起,重新使用的主页,并保持它维护?
我如何可以共享某些支持此(ASCX)在一个适当的方式?
我们正在使用TFS,也许任何一支化/合并的想法?

编辑:
我想创建它ASP.Net web表单,我们拥有最丰富的经验在这一领域。但基本上我们可以使用任何东西,我们已经得到了webserver下我们自己的控制(只要它是Microsoft为导向,不切换到php或类似的东西:))

有帮助吗?

解决方案

What is the proper way to setup this solution?

适当的方式...有这么多。我看到了很多的应用程序,并很多 不同的 设置(其中很多,我将认为"适当的").什么你真的要问的是最好的方式对于你的情况。

因为你是建立一个门户网站,只有豪华的功能分离,这将有助于你作为开发附加功能。

我想设置一个单一的网站有一个单独的文件夹中的每个要素。使它有一个单一的网站将允许所有功能共享相同的masterpages,usercontrols,配置文件没有做到什么特别的东西。(在这方面,我要把你所有的主页的文件夹中自由,并创建的另一个文件夹usercontrols).

How can I tie the applications together, re-use the master pages and keep it maintainable?

再次...文件夹是最好的选择在这里。文件夹将有助于独立的每个功能,使应用程序易于管理。

How can I share certain webcontrols (ASCX) in a proper way?

首先,ascx文件都不支持此.他们是usercontrols.三夏精的一类创建服务器的控制,居住在一个单独的组件。关于usercontrols,如我上面所说的,如果你把它们放在一个单独的文件夹中,他们总是在一个地方,并可在整个应用程序。

We are using TFS, perhaps any branching/merging ideas?

真的没什么特别的东西你需要做的。有很多不同的路径可以采取关于支:

  • 一个是创建一个分支对于每一个释放。
  • 另一个是创建一个分支对于每一个新的要素添加(在你的情况,这几乎是同样作为第一个选项)。
  • 又一是创建一个分支为每个开发商。

当我决定如何我要分我的代码,我想谈什么保护我的大多数。在你的情况,你需要计划的错误在修复之间的功能的版本,因此也许有一支后每释放最合理的(称它开发分支)。鉴于分离的特点,但是,一个特征可能不会影响其余的应用程序。你可能不需要这种支是安全的。

其他提示

由于布赖恩做一个公共的API,你应该遵守它,尽可能多地,这意味着它应该在最初发布后尽量少改变时说。然而,为了使一些稳定需要大量的努力,前场,所以如果你不准备提交到API,你应该代替它内在尽可能因为这个原因,你可能想的事情多分隔它们结合起来。

不过,我不会建议根据5段落描述适合您的应用程序的架构。你需要做的是重利弊有几个大项目与有一群松散耦合小项目的利弊。我的意思是,更多的规划你前面,你越会拥有它的路线,只要你坚持使用计划。

于是违背Brians答案,我不建议你让你的整个系统“松耦合地”,只是你把它作为,因为它必须是松耦合。 ;)松耦合代码可能导致尽可能多的麻烦作为紧密耦合的代码,如果滥用它

查看:结果  1. 更好的是,许多小组件,或者一个大型集会?结果  2. 具体下行侧以许多-'small'组件?

在最后,只有你知道你多么想专注于每一个“...... bilities”的,可维护性,可扩展性,可靠性等,因此,获得相应的优先级,目标直和计划。

关于分支策略,你可以阅读 TFS分支指南2.0 其中有一个很好的介绍,各种分支策略,从初级到高级。即使你不使用TFS这是一个很好的指导阅读(我使用SVN的时刻)。由于我目前在小团队开发者1-4的工作,我倾向于使用一种策略,是基本和标准间。我不能说我推荐这个给你,但什么最适合我们的团队。

作为用于项目之间共享代码。在SVN我们可以使用“的外部”,这意味着该共享文件就会出现在多个文件夹,所以当你改变一个复制和提交更改到SVN,所有其他副本将在下一次更新SVN更新。但是,我不记得,如果TFS有类似的东西。

注意:当心SVN的外部的......他们可能会导致...的问题。 ;)

我的建议是尽量避免共享ASPX,ASCX和母版页尽可能多地。它通常会伤害很多比它帮助。相反,尝试使用继承或其他办法,以实现自己的目标。

ASP.NET MVC 2.0有一个称为其中构建从其余部分隔离的应用程序的子部分“区域”的概念。据我所知,这些区域可以从“主”的应用程序单独的项目来维持。这听起来很像您要求什么,所以也许你应该考虑这样做。

希望它是有意义的。 ;)

我想看看让你的系统的松耦合的越好。正如/当你添加更多的应用程序,你的网站会变得越来越不可靠(因为没有组件将达到的100%的时间,结合这些会降低你的整体可靠性)。所以,你应该建立自己的系统,以应付非主要业务是下来(我相信亚马逊的主页,例如,有100个上下的服务奉献给它,这样它的建成是容错)

您服务之间的API应保持尽可能保持稳定,从而使实施方式可以改变而不会断裂的耦合。你也应该探讨自动化在网页级别(也许或相似?),因为测试各个服务的测试,这将给你的小范围再整体行为。

您可能会发现它有用看看如何实现自定义的的VirtualPathProvider 。在我的最后一个项目,我们有哪些需要共享主题文件的多个ASP.NET网站(母版页,用户控件,图像,样式表),所以我创建了一个的VirtualPathProvider这使我们能够虚拟文件夹(如/主题)映射到任何物理在硬盘驱动器上的文件夹(例如,C:\共享\ SiteThemes)。

这不是微不足道,但太没多久,没有引起任何问题。顺便说一下它竟然是克服维克斯的最大组成部分限制的好方法...请注意,您可以使用不预编译网站一个的VirtualPathProvider。

使用MVC从现在概念。他们更多的扩展性和灵活性一个强大的应用程序。

您可以看看使用SharePoint。它是ASP.NET应用交付一个相当不错的平台,尤其是当它们在Intranet环境中共存;它给你很多的东西是免费的。

当然,它具有非常粗糙的肘部,可以这么说,谨慎以便继续进行。

我不认为该应用程序作为单独的,但作为总体门户模块。

我建议你考虑MEF,因为这似乎是一个完美的结合。

HTTP ://blogs.msdn.com/hammett/archive/2009/04/23/mef-and-asp-net-mvc-sample.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top