毫无疑问,站点定义很复杂,但如果您需要部署到不相关的环境,它们非常有用。如果您停留在同一个服务器场上,则站点定义可能是多余的。如果您在域之间进行(即测试和产品,那么也许它们值得研究)。
站点定义的另一个优点,尤其是。如果交付给客户感觉更像是传统的交付物。他们将有一堆文件(希望在源代码控制中)是他们的自定义站点。我认为这给 IT 部门带来了比从 SharePoint UI 创建的 XML 文件更温暖的感觉。
站点定义的另一个好处是您可以更好地控制构成站点的页面。恕我直言,通过该站点模板的站点定义添加母版页和自定义 CSS 更容易。
我很好奇您要交付的网站的“移动部分”是什么?我认为回答这个问题将决定如何定义项目的结构。
一般来说,我认为你是在正确的轨道上。功能和解决方案是必须的。如果您尝试做任何复杂的事情,我会远离 VSeWSS,它的越野车和笨重而且通常很糟糕。它试图变得如此聪明,以至于你无法控制。
也就是说,这实际上取决于您要做什么。如果您打算使用一个程序集构建一个部署到 GAC 的解决方案,并且只构建 vsewss 支持的功能,您可能会很好。
但是,如果您想开发,比如说将计时器作业连接到 VSeWSS 功能框架中会变得很困难。此外,如果您在解决方案中需要多个程序集。YMMV,但我不得不放弃它并找到更灵活的解决方案(你好NANT)。
您最终要做的很多工作是构建、检查和重新检查 XML 配置文件。将 MSDN 上的Feature Schema参考页面添加为书签,您将花费大量时间来浏览它。
最后,是的,如果您将所有部件打包为功能部件,您应该能够开发一个不错的安装脚本。最终,脚本将需要调用创建站点结构、添加和部署解决方案以及激活功能所必需的STSADM (这里有一些非常好的 STSADM 扩展)命令。你可以从一个批处理文件开始,然后变得像你想要的那样复杂。