2008-09-25 69 views
8

我被要求在ASP.NET中開發一些用戶控件,稍後將作爲Web部件拉入SharePoint網站。我是新手,無法在需要對這些部件進行原型設計的時候訪問SharePoint服務器。在ASP.NET中開發SharePoint Web部件

有誰知道任何原因,這種方法將無法正常工作? 如果不建議使用這種方法,其他選項會是什麼? 關於資源/教程的任何建議,關於在開發ASP.NET Web部件時需要考慮什麼?

感謝

編輯:12/31/2008 我終於打上一個答案之一。我花了一段時間才意識到,立即開始使用SharePoint路線,儘管一開始很痛苦,但卻是最好的方式。免費的VPC圖像使得開發相對無痛。

雖然您可以像我一樣,在沒有SharePoint的情況下在ASP.NET中開發Web部件,但在開發和部署SharePoint應用程序時,您還沒有學到什麼東西,只會將學習曲線推遲到您認爲你已經完成了(並且可能已經通知了利益相關者)。推遲SharePoint學習曲線並不會對您或您的項目產生任何好處,並且您的最終產品會更好地滿足您在此過程中獲得的專業知識。

回答

2

如果這是一個非常短期的事情,微軟有時間限制的WSS的評價VPC圖像:

WSS3 SP1 Developer Evaluation VPC image

這會得到,如果你沒有時間,你開始/資源設置立即創建自己的VPC圖像。

0

您需要訪問Sharepoint服務器,因爲您無法模擬您的web部件,您必須將其部署到您的SharePoint站點以測試其是否正常工作。調試也將是一個痛苦。或者您可以使用SmartPart,它是一個web界面,它可以像用戶控件的包裝一樣在SharePoint站點中顯示。

2

我想最簡單的方法是使用CodePlex中的SmartPart for SharePoint。該項目描述說:「SharePoint網站零件可以承載任何ASP.NET網絡用戶控制。創建您的Web部件,而無需編寫代碼!」,我想這正是你想要做的。

+0

我當然不會對編寫代碼過敏,只需要快速轉身即可。感謝提示 – TheZenker 2008-09-25 14:03:59

+0

我也可以推薦SmartPart工具包。我已經在許多WSS項目中成功地使用了它。 – 2008-09-25 14:05:53

+0

我也使用過SmartPart,效果很棒! – mattruma 2008-09-25 14:27:27

0

構建和您會爲典型的.NET網站測試控制。 解決方案1 ​​=控件 解決方案2 =承載控件的虛擬網站。

Sharepoint上的部署:

您需要簽署控件。

刪除該DLL簽署到GAC SharePoint服務器上(在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> 

如果需要使用相同的版本號來代替控制,那麼你會需要回收應用程序池以重新加載。

0

如果您不需要執行任何特定於SharePoint的任務(即訪問列表,其他webparts等),那麼您可以像生成常規webpart(從System.Web.UI.WebControls.WebParts派生)一樣構建Web部件。 WebPart類),它將在添加到SharePoint網站時起作用。

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:

  • 如果你可以把一個組件內的一切,部署將更加容易
    • 試把你需要的一切將在需要時被部署到SharePoint
    • 使用集資源嵌入JS,CSS和圖像文件DLL的
  • 強名稱要構建
    • 大多數SharePoint部署大會最終在GAC和強大的名字將被要求

這裏有一個相關的博客文章; Developing Basic Web Parts in SharePoint 2007

0

您不需要SharePoint來開發WebParts。您可以通過從System.Web.UI.WebControls.WebParts繼承來開發Web部件。這是創建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

0

是否有任何特別的原因,爲什麼你的用戶控件必須部署爲Web部件?將用戶控件直接部署到Sharepoint站點是非常可行的,可以通過12 hive中的CONTROLTEMPLATES文件夾或Web應用程序虛擬目錄中的某個位置,然後使用Sharepoint Designer從網頁引用。

但是,如果Web部件的要求非常重要,那麼我建議Smartpart for Sharepoint如前所述。

0

實際上,Web部件應該總是部署到共享點的bin文件夾,因爲它們的「濫用」性質。如果可能,請始終將Web部件部署到容器中,並編寫自己的CAS並將其包含在清單中。