2011-03-14 43 views
1

道歉,如果這已經回答了,但我無法找到一個類似的問題:開發ASP.Net用戶控件導入到SharePoint MOSS 2007

我開發MOSS 2007我使用WSPBuilder到web部件構建了一個可視化web部件(ascx),並且一切正常,但是開發/調試周期非常慢,所以我想知道是否可以(而不是太痛苦)使用.Net更快地開發用戶控件Web應用程序項目與所有漂亮的F5調試,然後將最終產品導入到我的SharePoint可視化Web部件中。

用戶控件與LOB系統(SQL)交互,根本不參考SharePoint API。 (我將它作爲webpart創建的原因是因爲我不需要另一個web應用程序來運行這個頁面,因此將它放到我現有站點上的新webpart頁面上的webpart是IMO的最佳解決方案。)我會顯然需要將我的數據訪問類導入(引用?)到我的「臨時」Web應用程序中,但認爲這不會太麻煩。

我意識到這將是額外的努力來獲得這個設置,但我認爲回報將減少實際用戶控制使用一個小的web應用程序的開發時間vs不得不使用編譯/構建WSP/deploy WSP /重置ISS /測試/進行MOSS要求的更改/重複循環。 (我猜SP2010/VS2010已經把我寵壞了可用的本地的SharePoint工具。)

更新:

我已經成功地建立了一個簡單的Web應用程序有一個頁面,並加載了我的UC的頁面上。 (當我創建webpart時,我必須註釋掉WSP Builder爲我添加的所有Sharepoint導入和註冊語句。)我添加了對我的實用類的引用(我將它們保留在原始文件夾的obj \ Debug文件夾中SharePoint項目)。我花了一段時間修改所有的東西以使其運行起來,但最終的步驟非常簡單,我想我可以快速複製這些步驟以便將來的項目。一旦建立起來,我就能夠使用典型的F5調試周期快速設計統一通信並構建統一通信功能。除非有人能告訴我爲什麼這不是一個好主意,我打算在未來的項目中重複這一點!感謝大家的投入。

更新2

好了,我不知道我做了什麼,但移動UC背到SharePoint證明是麻煩。我第一次做到這一點時,我花了幾個小時讓它在SharePoint中工作,這讓我質疑它是否值得。但是,我很固執,並再次嘗試。這一次,我只在ascx文件中複製並粘貼了「標題部分」(具有所有<%@ ...。%>語句的部分)下的標記,並且所有內容都完美無缺。我想我第一次肯定是在無意中改變了一些事情。我想我會繼續這種模式,因爲在ASP.NET Web應用程序中構建和測試UC的速度非常快。 (同樣,如果您沒有在UC中的任何地方引用Sharepoint API,這也是適用的。)

回答

3

這裏的答案是SmartPart。這對於你描述的場景來說是完美的。使用「vanilla」ASP.NET創建UserControl非常簡單,並且可以在SharePoint中作爲Web部件工作。我已經概述了從ASP.NET網頁遷移到靜態綁定SmartPart my blog的步驟。

+0

您在博客中概述的過程幾乎就是我想要實現的過程。我很喜歡構建使用UC的SP webparts,但我很好奇,如果在SharePoint開發週期之外構建UC並在稍後將其刪除,那麼它是有優勢的。具體來說,在ASP.NET開發環境中開發UC所節省的時間是否值得將UC放入SP Web部件所需的額外工作量。除非我錯過了某些東西,否則看起來這可能是縮短總體開發時間的好方法。謝謝你的幫助。 – 2011-03-14 17:04:35

1

你打算實現的是一個好主意。

只要記住強命名您的用戶控件,將其放到您的服務器的GAC中,更新SharePoint 80's web.config的SafeControls部分。

所有這些設置都是一次性的,每次連續編譯(您的Web控制)之後,您必須在GAC中部署控件(使用forcede deploy)並重置IIS。

您可以通過選擇「選擇項目」並選擇剛剛部署的組件,將此控件添加到VS中的工具箱。

此外,您可以創建一個測試ASP.NET頁面來測試控件的功能。

+0

謝謝,這個想法是,一旦usercontrol以我想要的方式工作,我將把它放入一個Visual Webpart項目中,該項目已經用同一項目的其他webparts構建。在調整了一些命名空間之後,我認爲WSPbuilder會處理您列出的其餘步驟。 (這是一個一次性的webpart,所以我不需要它在工具箱中,但很高興看到如何完成!)感謝您的幫助。 – 2011-03-14 16:53:55