开发要导入到 SharePoint MOSS 2007 的 ASP.Net 用户控件

Posted

技术标签:

【中文标题】开发要导入到 SharePoint MOSS 2007 的 ASP.Net 用户控件【英文标题】:Developing ASP.Net User Control to be imported to SharePoint MOSS 2007 【发布时间】:2011-07-15 02:50:53 【问题描述】:

抱歉,如果这个问题已经得到解答,但我找不到类似的问题:

我正在为 MOSS 2007 开发一个 webpart。我正在使用 WSPBuilder 构建一个可视化 webpart (ascx),一切正常,但是开发/调试周期非常缓慢,所以我想知道它是否是可以(不会太痛苦)使用 .Net Web 应用程序项目更快地开发用户控件,并进行所有漂亮的 F5 调试,然后将最终产品导入我的 SharePoint 可视化 webpart。

用户控件与 LOB 系统 (SQL) 交互,根本不引用 SharePoint API。 (我将其构建为 Web 部件的原因是因为我不需要另一个 Web 应用程序来运行此页面,因此将其放入现有站点上新 Web 部件页面上的 Web 部件中是 IMO 的最佳解决方案。)我会显然需要将我的数据访问类导入(引用?)我的“临时”网络应用程序,但认为这不会太麻烦。

我意识到这将是额外的努力来进行设置,但我认为回报将是使用一个小的 Web 应用程序来减少实际用户控件的开发时间,而不是必须使用编译/构建 WSP/部署 WSP/重置ISS/测试/进行 MOSS 要求的更改/重复循环。 (我猜 SP2010/VS2010 已经用可用的本机 SharePoint 工具宠坏了我。)

更新:

我已经成功构建了一个带有一个页面的简单 Web 应用程序,并在页面上加载了我的 UC。 (当我创建 Web 部件时,我必须注释掉 WSP Builder 为我添加到 UC 中的所有 Sharepoint Import 和 register 语句。)我添加了对我的实用程序类的引用(我将其留在原始文件的 obj\Debug 文件夹中SharePoint 项目)。我花了一些时间来修补一切以使其正常工作,但这些步骤最终变得非常简单,我认为我可以为未来的项目快速复制这些步骤。设置完成后,我能够使用典型的 F5 调试周期快速设计 UC 并构建 UC 功能。除非有人能告诉我为什么这不是一个好主意,否则我计划在未来的项目中重复这一点!感谢大家的意见。

.

更新 2

好吧,我不确定我做了什么,但将 UC 移回 SharePoint 被证明很麻烦。我第一次这样做时,我花了几个小时让它在 SharePoint 中工作,这让我怀疑它是否值得。然而,我很固执,又试了一次。这一次,我只复制并粘贴了 ascx 文件中“标题部分”(包含所有 语句的部分)下方的标记,一切顺利。我想我一定是第一次不经意间改变了一些东西。我想我会继续这种模式,因为在 ASP.NET Web 应用程序中构建和测试 UC 的速度要快得多。 (同样,这仅在您没有在 UC 中的任何地方引用 Sharepoint API 时才有效。)

【问题讨论】:

【参考方案1】:

这里的答案是SmartPart。它非常适合您所描述的场景。使用“vanilla” ASP.NET 创建用户控件并使其在 SharePoint 中作为 Web 部件工作非常容易。我已经概述了从 ASP.NET 网页迁移到 my blog 上的静态绑定 SmartPart 的步骤。

【讨论】:

您在博客中概述的过程几乎正是我想要实现的。我对构建使用 UC 的 SP webparts 感到满意,但我很好奇在 SharePoint 开发周期之外构建 UC 并稍后将其放入是否有优势。具体来说,在 ASP.NET 开发环境中开发 UC 所节省的时间是否值得将 UC 放入 SP webpart 所需的额外努力。除非我遗漏了什么,否则这看起来可能是减少总开发时间的好方法。感谢您的帮助。【参考方案2】:

您打算实现的目标肯定是个好主意。

只需记住为您的用户控件命名,将其放入服务器的 GAC,更新 SharePoint 80 的 web.config 的 SafeControls 部分。

所有这些设置都是一次性的,在每次连续构建(您的 Web 控件)之后,您只需在 GAC 中部署控件(使用强制部署)并重置 IIS。

您可以通过选择“选择项目”并选择您刚刚部署的程序集来将此控件添加到 VS 中的工具箱。

此外,您可以创建一个测试 ASP.NET 页面来测试您的控件的功能。

【讨论】:

谢谢,我们的想法是,一旦用户控件按我想要的方式工作,我会将其放入已经与其他 Webpart 为同一项目构建的 Visual Webpart 项目中。在调整了一些命名空间之后,我认为 WSPbuilder 将负责您列出的其余步骤。 (这是一次性 Web 部件,所以我不需要在工具箱中使用它,但很高兴看到如何做到这一点!)感谢您的帮助。

以上是关于开发要导入到 SharePoint MOSS 2007 的 ASP.Net 用户控件的主要内容,如果未能解决你的问题,请参考以下文章

在moss 服务器上访问自己的sharepoint 网站,输入用户名密码无效

将 Sharepoint 与 ASP.NET 作为开发平台进行评估

MOss213获得用户登录名

以编程方式在Sharepoint中实例化Web部件页面

通过 FTP 将文件上传到 Sharepoint 文档库

SharePoint PowerShell 从CSV文件导入数据到列表