ASP.NET 4.0 app mapped through virtual folder on SharePoint 2010 - asp.net-mvc-3

I'm considering publishing an an ASP.NET MVC 3 app under a SharePoint 2010 application on IIS (not inside SharePoint as a SPSite or whatnot, just a regular IIS application for SSO-integration w. SP).
The MVC app would then only inherit some configs. It has no reference to SharePoint and SharePoint does not have any reference to it other than it being an sub application under the SharePoint 2010 app in IIS.
3-fold question:
Is it possible?
Are there any obvious issues with SharePoint 2010 running on 3.5, and my new app running on 4.0 for instance? Sufficient to use different app-pools?
I'm concerned about the inheritance of web.configs between my MVC app to SharePoint's
web.config. Are there any issues regarding web.config inheritance between these two?

UPDATE (February 27, 2013): We no longer need to use <location> XML element to stop inheritance from SharePoint to the ASP.Net MVC 3 application. We need to give FullTrust to the ASP.Net application using the <trust level="Full" originUrl="" /> XML element in the Web.Config.
Some HTTP Modules / HTTP Handlers need to be disabled from the ASP.Net MVC 3 application.
For the SharePoint 2010 scenario, I also had to move the <sectionGroup name="system.web.extensions"> XML element from the SharePoint 2010 web.config file to C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config file because it conflicted with .NET 4.0. If you move it there, it will still be inherited by SharePoint web.config.
Anyway, I won't repeat all steps here.
Please see my blog post:
MVC 3 with SharePoint Server 2010:
http://samsonfr.wordpress.com/2013/02/26/recette-amliore-intgrer-une-application-asp-net-mvc-3-sous-un-site-web-iis-hbergeant-sharepoint-server-2010/
MVC 3 with WSS 3.0:
http://samsonfr.wordpress.com/2013/02/26/recette-amliore-intgrer-une-application-asp-net-mvc-sous-un-site-web-iis-hbergeant-wss-3-0-sharepoint-2007/
It's in french but I guess you can use Google translate.
Best regards,

I have tried and failed. Currently having to host the .Net 4 app on a seperate IP, which creates all kinds of cross scripting/security issues. I found some tips here: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes but couldn't get it working.

If your application will run only under Virtual folder (so it will have access to SPContext if it needs to) an not an actually under Application folder (hence not being integrated into Sharepoint at all) then I guess Asp.net MVC 3 is out of the question because of its .net 4 relation.
But. Asp.net MVC 2 is definitelly possible. I'm developing such an app and it works as expected. It took me a while to integrate it though... My integration makes it possible to only change root Sharepoint's site web.config (only add new things to it, nothing's been taken out or changed). I haven't changes even the Global.asax for routing definition.
My application is running as a virtual folder under Sharepoint Foundation 2010 Site and has access to SPContext and is also security controlled by Sharepoint (authentication is performed by the SP 2010 Site). So that's definitely possible.
But it has to be Asp.net MVC 2 since it runs on .net 3.5, the same as as Sharepoint 2010.

Related

Basic Project Template for Asp.net Web Api?

I am wondering if there is a "basic" asp.net web api template. I only see one "web api" project and it brings out of bit of stuff in and not sure if all of it I need.
You can either:
1) Create a new MVC4 project > choose Web API template - but that, as you point out, brings in a lot of stuff, including Modernizer, jQuery, Knockout and so on
2) Create a new ASP.NET empty Web application and install Web API web host from Nuget:
PM> Install-Package Microsoft.AspNet.WebApi
You then end up with a very clean, basic project, including only the necessary DLLs.
3) If you want to self host Web API (not do an ASP.NET MVC4 project), you can create a new console application and install Web API self host from Nuget:
PM> Install-Package Microsoft.AspNet.WebApi.SelfHost
which is perfect for lightweight services, but obviously you don't host inside IIS anymore so there are additional release/deployment considerations. You can read more about self host here -> http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api
For Mvc 5 in VS 2015, I select empty project template and check WebApi section. It give me clean project with just WebApi references installed.
My suggestion goes for Empty ASP.NET Web API Project Template, which is a VS extension.
There is a pretty good demonstration of it in this Code Project article.
I use it without any sort of problems and it really is lighter than default WebAPI template.

How to publish my MVC 3 web application onto IIS7

if possible I need total from the beginning utter beginner advice on how to get my ASP.Net MVC 3 Razor Visual Studio 10 web application live onto my IIS 7 webserver please?
I've never tried to publish this before, and wondering what I'm missing?
I've clicked "Publish" on Visual Studio Express 10, created a "published" version of the website. I've uploaded it to my webserver, however can't make it load on the net?
Appreciate some guidance please? (not sure how / what default documents work etc...?)
By far the easiest approach is to use Web Application Deployment.
This blog by Scott Gu gives a great intro
http://weblogs.asp.net/scottgu/archive/2010/07/29/vs-2010-web-deployment.aspx
The article talks about web.config transformations (ability to have a .Release and a .Debug version of your web.config). Later, that capability was generalized through an add-on package to work for any XML-structured file in your deployment (for example, I use it with NLog configuration files).
http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx

How to Deploy Asp.net MVC3 Application to the Hosting (Web hosting Providers)

I am trying deploy my asp.net mvc3 application,
here it is what i done
1. I registered a free domain for asp.net in (somee.com)
2. n i uploaded all project files to the server through (FTP FileZilla)
3. I added all Refernec also of Asp.net mvc3 (System.web.MVC, mvchelper, n all other assemblies also i added )
but when i run the application from internet http://imgur.com/OMoZT this error occurs (IIS 7.5 Error)
please can u tell me how to deploy , step by step, as i am beginner really need help to learn the beauty of this language also how to include EF4.1 codefirst thing . From basic step to end please tell me .
The error looks like it could be due to the wrong framework being set for IIS within somee.com. I've never used them but there is likely to be an option somewhere in their dashboard. Make sure this is set to use .Net Framework 4.
If you are still having problems, try following Phil Haack's blog post on bin deploying.
http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx
Then in Visual Studio, you can right click on the project and select Publish... From there you can select the FTP option.
When your hosting provider creates the website in IIS, he has to choose the .net framework target version.
If you publish the solution using a different framework version it will generate an error.

How to set up a Graphic Designer to work on Asp.Net MVC 3 Razor Views?

We have graphic designers that work on the "look & feel" of our web applications. They typically work with HTML, CSS & images. How can we set up a designer's development environment to work with TFS, Asp.Net MVC 3 Razor Views? What would be the best workflow for them?
We want them to be able to check out the views / css from TFS, edit them, view the results and then check back into TFS.
How can they see their changes to views & css if they don't have the full Visual Studio or IIS or IIS Express?
Should we periodically deploy a web application to a web server for them to work on?
I believe you can download Visual Web Developer Express for free. Once they get that, they can run the project locally (assuming they have access to the database if there is one).
I'm not sure if the TFS plugin is free, if it is then they can work with source control.

HttpHandler in IIS7 and Visual Studio 2010

I'm trying to run an httphandler (ashx) in a asp.net 4 website.
When I call it from Visual Studio integrated server, it returns a 404 error.
It works if I call it on the site configured into the local IIS.
Someone could help?
Are you using ASP.NET MVC, or System.Web.Routing?
Do you have something like
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
in your RegisterRoutes() function in your HttpApplication instance?
One thing to keep in mind is that the Visual Studio server thingie runs all requests through the managed pipeline.
Is the httpHandler added to the system.web section of the Web.config file? (In IIS7, this goes under the system.webServer section, but I am not sure if newer versions of Cassini will look there.)

Resources