Published:
19 Jul 2006
|
Abstract
In this article Ameet explains the various aspects of integrating an ASP.NET Page in SharePoint Portal. |
 |
by Ameet Phadnis
Feedback
|
Average Rating:  
Views (Total / Last 10 Days):
93207/
212
|
|
|
|
| Introduction |
SharePoint provides a few ASP.NET pages which allow you to
manage a Portal. However, business situations arise that require developers to
build their own ASP.NET pages. One situation that comes to mind is an employee
directory. In big organizations you might be tasked with displaying all
employees based on search criteria or displaying employees for a particular
department. Once the employees list is displayed, the user might have to get
more information on where that particular person is located, the bio
information or even the floor map for the employee's office floor. In this
scenario we have the following options:
·
Create a Web Part to display the Employee Directory and then have
another ASP.NET application that will have only one page that will display the
location of the person. This ASP.NET page will accept a querystring to get the
ID for the employee. This would be the easiest way accomplish this option, but
you would need to maintain a separate application for only one page.
·
The next option might be to develop two web parts. The first web
part has a list of all employees' names. This web part is a provider web part.
The second web part will contain the location information for the Person. The
second web part will be a consumer web part. The first Web Part provides the
second web part employeeID. The second web part consumes the employeeID. This
option is really good except if the second web part is a really huge display of
the floor map and pins where the person is exactly located, the user will have
to scroll through the page to find the exact employee location.
·
The last option is building a Web Part similar to option 1 and
then building a separate Web Page holding the location information or floor map
information. The Web Part will have a link and will open the floor map
information in a separate window. With this option the ASP.NET web page is
also hosted with the SharePoint Portal. This sounds very simple, but if you
try creating ASP.NET pages as they are usually done you will start getting
errors because SharePoint does not recognize the plain ASP.NET pages. So, we
will have to do some tweaking to make SharePoint understand that these are
SharePoint ASP.NET pages.
|
| Creating SharePoint Portal Page |
The developers might be surprised that the only difference
between an ASP.NET page and a SharePoint page is what it is being inherited
from. Normal ASP.NET pages are inherited from System.Web.UI.Page
while SharePoint Pages are inherited from Microsoft.SharePoint.WebPartPages.WebPartPage.
Developers may have noticed that while they are developing Web Parts they
normally inherit from Microsoft.SharePoint.WebPartPages.WebPart.
So, while developing anything specific for SharePoint, you would inherit from
objects provided under Microsoft.SharePoint.WebPartPages.
If you look at the inheritance hierarchy for WebPartPage, it is inherited from
System.Web.UI.Page (the one that is inherited from
for ASP.NET pages).
System.Object
System.Web.UI.Control
System.Web.UI.TemplateControl
System.Web.UI.Page
Microsoft.SharePoint.WebPartPages.WebPartPage
So, how do we create a SharePoint Portal Page and include it
in our Portal? The first step is to create the Page.
Steps to create SharePoint Portal Page
·
Normally, I just create a web site on my machine with an appropriate
name.
·
Add a reference to the Microsoft.SharePoint
Assembly.
·
Add a Web Page.
·
Change the inheritance from System.Web.UI.Page
to Microsoft.SharePoint.WebPartPages.WebPartPage.
·
From here on you can just design the page as you want and add
functionality to the page. The design of the page and functionality code is not
separate from normal ASP.NET pages.
·
Compile the project. This will create the assembly file you need
to use in SharePoint Portal.
The next major
task is how to include it in SharePoint Portal. The steps required to
incorporate the page in your Portal site are the following.
·
Copy the Page to one of the templates folder that will use the
Portal Page.
·
Add reference to the Onet.xml file.
·
Copy the assembly file to bin folder of the Portal.
|
| Templates Folder |
In order to understand where to copy the newly created Web
Page, we need to understand the SharePoint Folder structure.
All the portal pages are located under C:\Program
Files\Common Files\Microsoft Shared\web server extensions\60. The site pages
or sub areas are being displayed from the template from which they were
generated. For example, the Topics sub area uses the default.aspx page from C:\Program
Files\Common Files\Microsoft Shared\web server
extensions\60\TEMPLATE\1033\SPSTOPIC folders. Users can create their own
templates and store it under C:\Program Files\Common Files\Microsoft Shared\web
server extensions\60\TEMPLATE\1033\.
An explanation for creating SharePoint Portal Templates is
out of the scope of this article. You can refer to this article which goes
into depth of how to create the templates and the folder structure.
In order for SharePoint to recognize the ASP.NET page we
just created, it needs to be stored under some template folder. It would make
sense to store the page in a template folder from which the sub area (that uses
the Page) is created from. For example, if a developer is going to create a
template called Corporate, then most likely the folder structure will be C:\Program
Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\1033\SPSCORPORATE\.
So, the Web Page that is created needs to be stored under this folder. Please
note that you need to copy the ASPX page and nothing else.
|
| Add reference to the Onet.xml file |
Once the page is copied, then we need to let SharePoint know
about the presence of the page while creating sub areas. The article also explains
what the Onet.xml file is used for. In order to make SharePoint aware of the
presence of the new Page, we need to make some changes on the Onet.xml file.
Locate the following code under Onet.xml.
Listing 1
<Modules>
<Module Name="Default" />
<Module Name="WebPartPopulation" />
</Modules>
Add an entry to the Modules section. For this example I
will call it AmeetArticle.
Listing 2
<Modules>
<Module Name="Default" />
<Module Name="WebPartPopulation" />
<Module Name=" AmeetArticle" />
</Modules>
Now, we also need to reference the pages. Locate the
following code.
Listing 3
<Modules>
<Module Name="Default" Url="" Path="">
<File Url="default.aspx" Type="Ghostable"> </File>
</Module>
<Module Name="WebPartPopulation" List="113" Url="_catalogs/wp" Path="lists\wplib\dwp" RootWebOnly="TRUE">
<File Url="MSContentEditor.dwp" Type="GhostableInLibrary" />
<File Url="MSImage.dwp" Type="GhostableInLibrary" />
<File Url="MSPageViewer.dwp" Type="GhostableInLibrary" />
</Module>
</Modules>
In the above section we need to create another module
section which references AmeetArticle name declared earlier.
Listing 4
<Modules>
<Module Name="Default" Url="" Path="">
<File Url="default.aspx" Type="Ghostable"> </File>
</Module>
<Module Name="WebPartPopulation" List="113" Url="_catalogs/wp" Path="lists\wplib\dwp" RootWebOnly="TRUE">
<File Url="MSContentEditor.dwp" Type="GhostableInLibrary" />
<File Url="MSImage.dwp" Type="GhostableInLibrary" />
<File Url="MSPageViewer.dwp" Type="GhostableInLibrary" />
</Module>
<Module Name="AmeetArticle" URL="" Path="">
<File Url="AmeetArticle.aspx" />
</Module>
</Modules>
If the user has created multiple ASP.NET pages and has created
a folder, then the folder path can be provided to the Path attribute under
Module. Once the Path is provided, individual files can be referenced as shown
for the AmeetArticle.ASPX page. With this we can even store the created pages
in different templates and reference it through the Onet.xml file.
|
| Copy the assembly file to bin folder of the Portal |
With the above sections, we have made the SharePoint Portal
aware that some external pages are being used in the portal. But how do we run
the functionality behind the pages? We need to store the assembly file inside
the Portal. This is the easiest part of this whole procedure. Simply go to
the site where your portal is created. For example, if your portal is called
CorporatePortal, then your folder structure might be
c:\WebSites\CorporatePortal. You simply need to copy the assembly file in the
bin directory under c:\WebSites\CorporatePortal. In normal circumstances the
bin directory does not exist. If it does not, you can just create the bin
folder and drop the assembly file in it.
If your code needs to reference any sections from the
configuration file, you can always edit the Web.Config for your portal and add
the sections there. For example, you might be interested in adding database
connection information. You can add the following section in the Web.Config
file.
Listing 5
<appSettings>
<add key="AmeetArticle" value="Server=AAPW2003SHAREPO;Database=Employee;uid=Employee;pwd=EmployeeTest;" />
</appSettings>
The final step is to do iisreset.
|
| Summary |
In short, creating SharePoint Portal Pages is as easy as
creating normal ASP.NET pages. This article explained the basics of how to
create SharePoint Portal pages, but developers can enhance the functionality by
creating their own display pages for different listings or for custom
applications. The developer can even use the SharePoint portal controls such as
the navigation bar, PageHeader control, BreadCrumbTrail, ToolBar, etc. Finally,
options for customizing the SharePoint Portal are numerous, but finding the
best option that suites your needs requires some experimentation.
|
|
|
|
|
Article Feedback
User Comments
Title:
New to this
Name:
Johnlen
Date:
3/15/2011 5:05:00 AM
Comment:
Hai,
I am new to sharepoint can anyone explain with exmaple.
Thanks, Johnlen
|
Title:
Sample & screenshots
Name:
Deepak Karma
Date:
1/6/2011 1:24:31 AM
Comment:
Thanks for the needful article..Please add some sample application or screenshots with this article..
|
Title:
Sample
Name:
Deepan
Date:
9/17/2010 11:38:39 PM
Comment:
Reading this article simple to undersrand. please provide the sample application to download .
|
Title:
screenshots
Name:
Venkatesh
Date:
9/14/2010 10:48:25 PM
Comment:
Can u show me some screenshots?
|
Title:
Including Your Own ASP.NET Pages in Your SharePoint Portal
Name:
Drew
Date:
7/12/2009 9:57:03 PM
Comment:
I am so sick of sketchy cr$p knowledge assuming articles on asp.net -> sharepoint integration that dont provide proper explanation of steps, aRGH!
|
Title:
Asp.Net Web Application With SharePoint Portal
Name:
Ajith
Date:
7/1/2009 3:58:00 AM
Comment:
1) Please give a suggestion on how to include a Web Application into a SharePoint WebPortal.
|
Title:
on windows xp
Name:
Ahmad
Date:
6/30/2009 7:59:56 AM
Comment:
i am using visual studio under windows xp, how can i do that?
|
Title:
This assumes you have SDK's installed...
Name:
DEK
Date:
10/21/2008 9:40:04 AM
Comment:
I have a dedicated Sharepoint server but develop on my XP machine with VS2008. What should I have installed?
I don't see the Microsoft.Sharepoint component.
|
Title:
asp.net page in sp
Name:
d.ramakrishareddy
Date:
9/20/2008 12:20:01 PM
Comment:
verygood plese put source code for every thing in sp
|
Title:
Web Design
Name:
Lukei
Date:
5/1/2008 12:57:47 PM
Comment:
Why can't you just use ASP code on a web page to do the fuction you need.. Why do you have to publish to the GAC? I'm been trying to make a simple one step page to upload a file from a Form righ to a file library. Why can I find no examples online on just doing this in ASP? Why is everything handled with C#?
|
Title:
Good
Name:
vk
Date:
4/18/2008 5:43:55 AM
Comment:
An excellent article to start working with "Integrating ASP.NET Pages in SharePoint Portal"
|
Title:
Really Its good...
Name:
Samim Mondal
Date:
4/1/2008 2:23:53 AM
Comment:
Its nice article...I learn it.
|
Title:
Integrating ASP .Net pages with SharePoint server
Name:
Kalpana
Date:
12/28/2007 7:50:08 AM
Comment:
Hi, I couldnt find the folder '60' or Onet.xml file under the Web Services Extensions. Neither I could find the site name/pages under the folder. I have installed MOSS 2007 server on a PC, have some ASP .Net pages to be integrating. Have been following the steps you have mentioned in the article "Including Your Own ASP.NET Pages in Your SharePoint Portal". Stuck here not finding the folder and files you have mentioned. Tried searching, but cudnt find it. Require help from page 2 onwards. Thanks
|
Title:
Good information
Name:
santosh
Date:
10/19/2007 1:45:02 AM
Comment:
That was really helpful
|
Title:
asp.net page in sharepoint
Name:
Christine
Date:
10/5/2007 3:37:39 PM
Comment:
"Change the inheritance from System.Web.UI.Page to Microsoft.SharePoint.WebPartPages.WebPartPage"
With respect the above step in this process, is this line to be edited on the codebehind page? (.cs) Thank you for efforts! Much appreciated.
|
Title:
fine
Name:
ys
Date:
9/13/2007 12:13:30 AM
Comment:
Fine.
|
Title:
mr
Name:
nurul
Date:
8/27/2007 4:22:24 AM
Comment:
How can i access these pages. and also you have mentioned that we need to copy the dll under portal folder. what is this portal folder? is it in share point or is it a seperate folder?
|
Title:
Mr
Name:
Nurul
Date:
8/27/2007 4:20:50 AM
Comment:
\ \
|
Title:
CodeBehind
Name:
Emrah
Date:
7/5/2007 9:50:46 AM
Comment:
Is codebehind part of the ASP page i created working this way? I think this is the most important part of integrating ASP pages to SharePoint. This article is really good anyway.
|
Title:
Thanx for the Great Article
Name:
Jaya Borra
Date:
12/2/2006 12:28:58 AM
Comment:
Hi Ameet Phadnis Thanx for ur article, really you saved me. This is one of the best articles I ever found on SPS development
|
Title:
need help
Name:
hiral
Date:
11/22/2006 5:57:10 AM
Comment:
i m trying to do the same thing but cudnt.please help me out.
|
Title:
Page URL
Name:
AP
Date:
10/24/2006 2:12:00 PM
Comment:
The URL can be referenced based on the Area that was created using the template under which you have saved the ASP.NET page.
For example, if you created area called testing under your SharePoint Portal using SPSTOC template and the url is http://SPS/Testing. The in order to reference a page called test.aspx which is stored under SPSTOC then you can reference it using http://sps/testing/test.aspx
AP
|
Title:
Page URL
Name:
Bhargavi
Date:
10/24/2006 12:08:56 PM
Comment:
Hi,
Excellent article. But, i can't figure out how to browse to that page from the portal.
Did any one ever get to the page created following the article. I did everything and I'm lost now.
Thanks, Bhargavi.
|
Title:
nice one
Name:
bhagwan das
Date:
10/6/2006 3:02:25 AM
Comment:
this is what actually i am looking for . thankz
|
Title:
How do I reach my page?
Name:
JF
Date:
9/29/2006 11:33:14 AM
Comment:
I followed the steps. Copied the aspx under the TEMPLATE-1033 folder and the dll under the bin.
How do I reach my page?
I'm not using Portal .. just WSS2.0
Thanks
|
Title:
How do I get to my page?
Name:
Jeff
Date:
9/27/2006 10:45:34 AM
Comment:
I followed the steps. I created a folder named "SPSAdmin" under "SPSTOC". I registered both ASPX files and copied the assempbly to "BIN". What is the URL to get to my page?
|
Title:
Troubleshoot help
Name:
Adrian Crisan
Date:
9/21/2006 10:32:08 AM
Comment:
I followed the steps described in your article and I've changed the Topic template in order to include my very own ASP.NET page. But after I change the Onet.xml file, I cannot create anymore subareas in the Topics section, because an error occurs. Also, when I try to manage the content of an existing subarea from Topics (ex. Divisions) an error also ocurrs telling me that no area exists. Can you help me on this,
Thanks
|
Title:
Yes
Name:
AP
Date:
9/18/2006 8:19:51 AM
Comment:
Yes. It works.
|
Title:
Integration of .Net with Share Point Portal
Name:
Vaibhav
Date:
9/18/2006 2:46:44 AM
Comment:
does this code work with Windows SharePoint Services 2.0 installation?
|
Title:
Security Issue
Name:
Ricardo Casquete
Date:
9/5/2006 11:56:04 AM
Comment:
After implementing it....
I have had to sign the project, increasy the assembly trust and add the dll to the GAC. I am not sure if adding the assembly trust is necessary but I have been not able to do it without adding the dll to the GAC.
Regards and Thanks again ( 5 messages above ) for the Article
RicardoCasquete@hotmail.com
|
Title:
Hi Arshad
Name:
Parag
Date:
9/4/2006 8:53:32 AM
Comment:
Hi arshad
How r u satisfied with above artcile
can u convey me the details
itsdinesh123@gmail.com
|
Title:
Thanks..
Name:
Arshad
Date:
9/4/2006 1:43:08 AM
Comment:
This is the one am looking for!!!
|
Title:
B.
Name:
Bobby Habib
Date:
8/30/2006 4:54:01 AM
Comment:
Top Boy. Good Atriticle.
|
Title:
Mr
Name:
Girish
Date:
8/25/2006 11:50:27 AM
Comment:
This is interesting article , is there any way to put ATLAS UpdatePanel in sharepoint site
Thanks in advance
|
Title:
Integration of .Net with Share Point Portal
Name:
Dinesh
Date:
8/18/2006 6:00:12 AM
Comment:
This is better article I have ever found on Integration of .Net with Share Point Portal topic
|
|
Product Spotlight
|
|
|