【发布时间】:2011-08-12 03:34:00
【问题描述】:
如果客户不允许将 .dll 安装到他们的 SharePoint 2007 配置单元(或 GAC)中,是否有任何方法可以使用不需要部署 .dll 的 Visual Studio 创建 Web 部件等进入蜂巢(或 GAC)?如果没有,是否有另一种方法可以以类似的方式将 Visual Studio 和/或 C# 与 SharePoint 命名空间功能一起使用,即使不是完全采用标准方式?该客户不允许我们在盒子上安装页面以外的任何内容,如果不安装到 GAC 或 hive 中,也不允许我们安装与 SharePoint 相关的 .dll。
注意:文末有一些具体的项目细节。
接受答案的最终总结:
- 对于部署自定义 SharePoint 程序集的替代方法(例如,非 GAC 和非 Hive)没有给出答案。
- 但是,可以使用嵌入在页面中的 C#,您可以引用 SharePoint 程序集并在代码中使用它。 (有关详细信息,请参阅已接受的答案)
- 许多我预期需要自定义代码的事情似乎不需要,而且在许多情况下,这样做甚至是可能/有益的。
我有一些关于它如何工作的基本想法(“神奇发生”),但是,我现在坚定地处于“不知道我不知道什么”象限,我不知道它是否可以做到,而且我不知道除了直接在 SharePoint Designer 中直接开发而完全没有 C#/Visual Studio 之外,是否有任何可能的替代路线。
想法:
像往常一样使用 Visual Studio 进行开发,使用 WSPBuilder 或股票 SharePoint 项目,但不是正常部署,而是在计算机上的非配置单元位置安装 .dll,然后以某种方式包含项目作为外部资源。
创建一个自托管 Web 服务,以某种方式调用该服务,提供可并入 SharePoint 网站的组件。
在非 SharePoint Web 项目中开发单独的网页/Web 控件,然后以某种方式将它们包含到 SharePoint 网站中;或者,以某种方式在 IIS 目录中创建对它们的引用
在 WebApplication 中开发单独的网页/Web 控件,并使用 Hostable WebCore 来提供所需的内容,当然,还可以通过某种方式将提供的页面包含到 SharePoint 中。
而且,我最后担心的是,即使我弄清楚“神奇发生”步骤的详细信息,我仍然无法得到我想要的,即能够使用 SharePoint 命名空间的功能一种有用的方法,例如连接到我们正在开发的站点,并且有足够的访问权限来做我们需要的事情,而不会从开发人员的角度(例如难以使用或维护的代码)或糟糕的用户体验(例如用户反复获取登录提示)。
(如果答案很明显,我深表歉意;我是 SharePoint 开发的新手,我只对高级 Web 开发有经验(例如,相当简单的 .ascx/.aspx,并且主要使用页面设计器),所以我必须快速掌握方位。当我使用“显而易见”的搜索词搜索帮助时,我会获得大量有关正常情况的信息,但还没有找到答案。)
根据要求,我可以提供有关特定项目的详细信息。我目前只有其中一部分的信息,这是一个长期项目,其中有很多部分将相互建立。因此,不幸的是,如果解决方案不是相当通用,我可能不得不采用 SharePoint Designer 路线,以避免依赖可能与未来出现的部分不兼容的方法相关的风险。另外,我很抱歉这些都是通用的;我试图提供所需的功能列表,而不是详细说明实际项目。
- 拥有个人用户网站主页的能力,允许他们查看有关他们拥有的项目和他们参与的项目的各种信息
- 能够拥有存储用户要遵循的向导类型步骤的站点模板
- 能够将向导模板链接到各种文档以及可能与各个步骤相关的其他内容
- 能够使用模板中的项目存储各种相关角色和属性(例如允许完成任务的时间)
- 用户能够使用向导创建站点项目的实例并允许或强制基于模板属性分配其他用户
- 与项目关联的某些角色能够编辑文档并将其保存回来,并限制其他人编辑它们
- 项目创建者以外的用户(可能基于用户分配的项目角色)查看所有信息(时间表等)和编辑项目中的所有文档的能力
- 具有分配角色的关联用户在完成其部分任务时标记的能力
- 能够根据项目中不同项目的属性信息计算时间线
- 能够通知用户(通过电子邮件和网站主页通知)必须采取行动或被标记为需要接收一个或多个项目项的更新的角色
- 一旦完成一个步骤,就可以锁定项目项的修改;并可能解锁和/或收回步骤
- 能够自动创建报告并将它们发送到适当的位置(可能是电子邮件,也可能是站点上的管理页面,或完全发送到另一个站点。)
- 能够标记已完成的项目并将其存档在一个单独的部分,只有某些 Windows 组或现场定义的组才能查看
我也知道,一旦我们完成第一部分以使客户满意,我们打算大大增加该项目的范围。我正在尝试查找更多信息,如果/何时可用,我会在此处发布。
我意识到其中的某些功能可能与 SharePoint 没有任何关系,其中某些功能可能无法提供足够的信息来告诉您它需要哪些功能或其他功能。我很乐意澄清任何没有意义的事情,但我想尝试提供一些细节,因为其他人可能比我更了解哪些 SharePoint 部分是必要或可能使用的。
【问题讨论】:
-
我假设如果客户端不允许部署配置单元,他们也会拒绝 GAC,但如果他们允许,这是一种选择。
-
您的假设是正确的。我们发现我们不允许通过向他们提供示例项目来尝试将 .dll 安装到配置单元,但即使在我们创建示例之前,我们就被告知不要使用 GAC。感谢您提及它,我将其添加到问题中。
标签: c# sharepoint sharepoint-2007 moss