我被要求在ASP.NET中开发一些用户控件,以后稍后将其作为Web部件拉入SharePoint站点。我是SharePoint新手,在我需要对这些部件进行原型设计时无法访问SharePoint服务器。
有没有人知道这种方法不起作用的原因? 如果不推荐这种方法,其他选择会是什么? 关于在使用SharePoint开发ASP.NET Web部件时要考虑什么的资源/教程的任何建议?
由于
编辑:2008年12月31日 我终于给这个答案做了回答。我花了一段时间才意识到,立即开始使用SharePoint路由虽然一开始很痛苦,但却是最好的方法。免费的VPC图像使得设置开发相对无痛。
虽然你可以像我一样,在没有SharePoint的情况下在ASP.NET中开发Web部件,但在开发和部署SharePoint应用程序时,你还没有学到什么,只是把学习曲线推到了你想到的时候。你已经完成了,(并且可能已经通知了利益相关者)。延迟SharePoint学习曲线对您或您的项目没有任何好处,您的最终产品将更好地获得您在此过程中获得的专业知识。
答案 0 :(得分:3)
ASP.NET Web部件在SharePoint中的工作方式与它们在ASP.NET中的工作方式相同。这就是我要采用的路线(来自ASP.NET Web Part类的自定义控制)。这将减轻在SharePoint服务器上实际开发的任何要求。
您将遇到的唯一问题是您将无法利用SharePoint框架。如果您在SharePoint中执行任何高级操作,这是一个大问题。但是,SharePoint是ASP.NET加上一些附加功能,因此使用System.Web.UI.WebControls.WebPart类开发的任何内容都应该在SharePoint中运行良好。
从纯ASP.NET到SharePoint时,一些有助于减轻痛苦的注意事项:
答案 1 :(得分:2)
我想最简单的方法是使用CodePlex中的SmartPart for SharePoint。项目描述显示“SharePoint web部分可以托管任何ASP.NET Web用户控件。创建Web部件而无需编写代码!”,我想这正是您想要做的。
答案 2 :(得分:2)
设置我的机器为Sharepoint开发花了我几天。
请参阅http://weblogs.asp.net/erobillard/archive/2007/02/23/build-a-sharepoint-development-machine.aspx
答案 3 :(得分:2)
如果这是一个非常短期的事情,微软有一个有时间限制的WSS评估VPC图像:
WSS3 SP1 Developer Evaluation VPC image
如果您现在没有时间/资源来设置自己的VPC图像,那么这将帮助您入门。
答案 4 :(得分:0)
您需要访问sharepoint服务器,因为如果没有它就无法模拟您的webpart,您必须将其部署到您的sharepoint站点以测试它是否正常工作。调试也会很痛苦。或者您可以使用SmartPart,它是一个webpart,就像用户控件的包装一样,可以在sharepoint站点中显示。
答案 5 :(得分:0)
像对典型的.net网站一样构建和测试控件。 解决方案1 =控件 解决方案2 =托管控件的虚拟网站。
在Sharepoint上部署:
您需要签署控件。
将已签名的DLL放入sharepoint服务器上的GAC(Windows /程序集)
在sharepoint站点上的虚拟服务器根目录web.config中将控件标记为安全。
即
<SafeControl Assembly="MyControl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=975cc42deafbee31" Namespace="MyNamespace" TypeName="*" Safe="True" AllowRemoteDesigner="True" />
在sharepoint页面中注册该组件:
<%@ Register Namespace="MyNamespace" Assembly="MyControl, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=975cc42deafbee31" TagPrefix="XXXX" %>
使用控件:
<XXXX:ClassName runat="server" Field1="Value1" Field2="Value2" ....></XXXX:Classname>
如果您需要使用相同的版本号替换控件,则需要回收应用程序池以重新加载。
答案 6 :(得分:0)
如果您不需要执行任何特定于SharePoint的操作(即访问列表,其他Web部件等),那么您可以像常规webpart一样构建webpart(派生自System.Web.UI.WebControls.WebParts.WebPart ()),它将在添加到SharePoint站点时起作用。
答案 7 :(得分:0)
您不需要SharePoint来开发WebParts。您可以通过继承System.Web.UI.WebControls.WebParts来开发webpart。这是创建Web部件的首选方法,除非您需要以下功能,如
* Connections between web parts that are outside of a Web Part zone
* Cross page connections
* A data caching infrastructure that allows caching to the content database
* Client-side connections (Web Part Page Services Component)
在这种情况下,您需要通过继承Microsoft.SharePoint.WebPartpages.WebPart来开发webpart。您可以找到更有用的信息here
答案 8 :(得分:0)
为什么必须将用户控件部署为Web部件,有什么特别的原因吗?通过12个配置单元中的CONTROLTEMPLATES文件夹或Web应用程序虚拟目录中的某个位置将用户控件直接部署到Sharepoint站点是完全可行的,然后您可以使用Sharepoint Designer从网页中引用它们。
但是,如果Web部件要求至关重要,那么我建议使用Smartpart for Sharepoint。
答案 9 :(得分:0)
实际上,Web部件应始终部署到sharepoint的bin文件夹,因为它们具有“滥用”性质。如果可能,始终将Web部件部署到bin中,并编写自己的CAS并将其包含在清单中。