C# 是否可以使用Visual Studio/C为SharePoint 2007开发,而不将DLL部署到配置单元

C# 是否可以使用Visual Studio/C为SharePoint 2007开发,而不将DLL部署到配置单元,c#,sharepoint,sharepoint-2007,moss,C#,Sharepoint,Sharepoint 2007,Moss,如果客户不允许在其SharePoint 2007配置单元(或GAC)中安装.dll,是否有任何方法可以使用Visual Studio创建不需要在配置单元(或GAC)中部署.dll的Web部件等?如果没有,是否有其他方法可以以类似的方式使用Visual Studio和/或C#与SharePoint命名空间功能,即使不是以标准方式?该客户不允许我们在盒子上安装页面以外的任何内容,如果没有安装到GAC或配置单元中,也不允许安装我们开发的与SharePoint相关的.dll 注:文章末尾有一些具体的项目

如果客户不允许在其SharePoint 2007配置单元(或GAC)中安装.dll,是否有任何方法可以使用Visual Studio创建不需要在配置单元(或GAC)中部署.dll的Web部件等?如果没有,是否有其他方法可以以类似的方式使用Visual Studio和/或C#与SharePoint命名空间功能,即使不是以标准方式?该客户不允许我们在盒子上安装页面以外的任何内容,如果没有安装到GAC或配置单元中,也不允许安装我们开发的与SharePoint相关的.dll

注:文章末尾有一些具体的项目细节


接受答案的最终摘要:

  • 对于部署自定义SharePoint程序集的替代方法(例如,非GAC和非配置单元),没有给出答案
  • 但是,可以在页面中使用嵌入的C#,您可以引用SharePoint程序集并在代码中使用它。(有关详细信息,请参阅接受的答案)
  • 我所期望的许多需要定制代码的事情似乎并不需要,在许多情况下,这样做似乎也不可能/有益

我对它的工作原理有一些基本的想法(“神奇的事情发生”),但是,现在我坚定地处于“不知道我不知道什么”的象限中,我不知道它是否可以实现,我不知道除了直接在SharePoint Designer sans C#/Visual Studio中开发之外,是否还有其他可能的替代方法可以获得任何好处

想法:

  • 正常使用Visual Studio进行开发,使用WSPBuilder或库存SharePoint项目,但不是正常部署,而是在计算机上的非配置单元位置安装.dll,然后以某种方式将这些项作为外部资源包含

  • 创建一个自托管web服务,以某种方式可以称之为服务组件,该组件可以合并到SharePoint网站中

  • 在非SharePoint web项目中开发单独的网页/web控件,然后以某种方式将其包含到SharePoint网站中;或者,以某种方式在IIS目录中创建对它们的引用

  • 在web应用程序中开发单独的web页面/web控件,并使用可承载的WebCore交付所需内容,当然,还要以某种方式将提供的页面包含到SharePoint中

而且,我最后担心的是,即使我弄清楚“神奇发生”步骤的细节,我仍然无法得到我想要的,即能够以有用的方式使用SharePoint命名空间的功能,例如连接到我们正在开发的网站,而且,无论是从开发人员的角度(例如,难以使用或维护的代码),还是从糟糕的用户体验(例如,用户反复收到登录提示),我们都有足够的访问权限来完成我们需要的工作,而不必经历太多的麻烦

(如果答案显而易见,我深表歉意;我对SharePoint开发是全新的,而且我只对高级Web开发有经验(例如,相当简单的.ascx/.aspx,并且主要使用designer进行页面设计),所以我必须快速了解自己的方位。当我用“明显的”搜索词搜索帮助时,我得到了大量正常情况下的信息,但还没有找到答案。)


根据要求,以下是我可以提供的关于特定项目的详细信息。我目前只掌握了其中的一部分信息,这是一个长期的项目,其中有许多信息将建立在彼此的基础上。因此,不幸的是,如果解决方案不太通用,我可能不得不采用SharePoint Designer的方法来避免与依赖一种方法相关的风险,这种方法可能与将来出现的问题不兼容。此外,我很抱歉这些是多么普通;我试图提供所需的功能列表,而不是详细说明实际项目

  • 能够拥有单独的用户站点主页,允许他们查看关于他们拥有的项目和参与的项目的各种信息
  • 能够使用站点模板存储用户要遵循的向导类型步骤
  • 能够将向导模板链接到各种文档以及可能与各种步骤相关的其他内容
  • 能够使用模板中的项目存储各种关联的角色和属性(例如任务完成所需的时间)
  • 用户能够使用向导创建站点项的实例,并允许或强制基于模板属性分配其他用户
  • 与项目关联的某些角色能够编辑文档并将其保存回去,以及限制其他角色编辑文档
  • 项目创建者以外的用户(可能基于用户指定的项目角色)查看所有信息(时间表等)和编辑项目中的所有文档的能力
  • 关联用户在完成其部分任务时分配角色进行标记的能力
  • 能够根据项目中不同项目属性的信息计算时间线
  • 能够通知用户(通过电子邮件和网站主页通知)必须采取行动或标记为需要接收一个或多个项目项更新的角色
  • 一旦完成一个步骤,就能够锁定项目项,防止其被修改;并可能解锁和/或收回步骤
  • 能够自动创建报告并将其发送到适当的位置(可能是电子邮件,也可能是站点上的管理页面,或者完全发送到另一个站点。)
  • 能够标记已完成的项目并将其归档到单独的部分中,该部分仅可由某些windows组或现场定义的组查看
<%@ Page Language="C#" %>
<script runat="server">
  public void Page_Load(object sender, EventArgs e){
    Response.Write("<h1>Hello World!</h1>");
  }
</script>