Kirk Evans is a Microsoft Architect for the Azure Center of Excellence.
Introduction to SharePoint and Azure IaaS
Building SharePoint Apps with Windows Azure Platform as a Service
SharePoint Solutions and Architectures on Windows Azure Infrastructure Services
Understanding Authentication and Permissions with Apps for SharePoint and Office
If you use the Microsoft Office SharePoint Designer to add a new page to your site, you will see that it looks just like any other ASP.NET page. Open up your site with the SharePoint Designer, and then go to the Pages folder. Right-click the Pages folder and choose New / ASPX. That will generate a new ASP.NET page with the following default template:
You can see this is the same ol' ASP.NET. There is a Page directive, and the familiar form element with the runat attribute set to "server". Yep, same ASP.NET code. The first thing I tried to do was to add some server-side code to my new page and see it actually work.
void Page_Load(object sender, EventArgs e)
form1.InnerHtml = "<h1>Hello</h1>";
When I hit F5, though, I got this error message:
"An error occurred during the processing of /Pages/test.aspx. Code blocks are not allowed in this file."
Hmm… yeah, code blocks are allowed in ASP.NET pages. What's going on? Oh yeah! SharePoint disables the ability to create server-side script by default, you have to turn it on. You do that in the web.config file, in the configuration/SharePoint/PageParserPaths configuration section:
<PageParserPath VirtualPath="/pages/test.aspx" CompilationMode="Always" AllowServerSideScript="true" />
Success! Now, when I view the page in the browser, the page shows the Hello message as an H1 element instead of that error message about "code blocks are not allowed in this file", because we explicitly enabled code blocks in the web.config file.
A word of caution, here. The VirtualPath attribute accepts wildcards. Be cautious about allowing any ol' page to have server side script, you can restrain to a single page (as I did above) or only a subset of pages or directories.
Holy crap that one helped. thx.
When I first started developing with SharePoint, I wanted to learn how to do the things that I did in
See the attachment to this post for the full source code. When I first started developing with SharePoint
Thanks for putting that caution in there Kirk!
A word of caution. This post was written in 2007. Since then, we have learned quite a lot about SharePoint customizations, scalability, and the lessons learned from introducing custom code in a platform that you do not control. The recommendation is to not introduce server-side code to SharePoint, but rather use the SharePoint 2013 app model. See http://dev.office.com for more information.