When is the mono implementation of mvc 5 expected to come out ? - asp.net-mvc

Currently I am trying to figure out the architecture for a product revamp. The current project is in Asp.Net Webforms 4.0 but I am leaning heavily towards MVC 5 now. Problem is that a few customers (around 10%) do not want to get stuck with Windows Server licensing but our dev team/environment is .Net/Windows based. I was wondering if I could build it in MVC 5 leveraging the latest features like scaffolding, filtering, etc and also be able to port it to Linux based platform through Mono.
Does it sound realistic ?
I wanted to know about the timelines for a stable implementation of MVC 5 in Mono so that I can know whether I can depend on Mono when my team would be working on portability 2-4 months down the line. Otherwise MVC 5 may be a dealbraker for us.
I went through the Mono site and it links to StackOverflow for any questions ... so here I am

MVC 5 will likely never be 100% stable/supported on Mono, as it builds upon System.Web which Microsoft never open-sourced and is difficult to recreate in Mono. edit this may change now that the sources for System.Web have been made open source.
MVC 6 (and all the other stuff from ASP.NET "vNext") is a complete rewrite to get rid of System.Web and will support Mono out of the box, as Microsoft actively tests on it.
See http://www.asp.net/vnext, https://github.com/aspnet/Home and https://github.com/aspnet/Mvc.
My advice would be to keep an eye an ASP.NET "vNext" (it is in development stage right now, but will be the future of ASP.NET for the next decade) if you want to have proper Mono support. You can also start with MVC 5 now, but be aware that there will be breaking changes by the time you upgrade to MVC6.

You could also try Nancyfx, which is a MVC framework that has been built from the start to work with .net and mono.
I currently use it on a project. I develop on windows and .net and then publish(copy files) to Unbuntu and mono. Its very seamless.
Nancy's hosting support is very broad also.
Hosting Nancy with ASP.NET
Hosting Nancy with WCF
Hosting Nancy with Azure
Hosting Nancy with OWIN
Hosting Nancy with Umbraco
Hosting Nancy with Nginx on Ubuntu
Hosting Nancy with FastCgi
Self Hosting Nancy

Related

Upgrading ASP.NET MVC1 project to ASP.NET MVC4

I need to upgrade an application that runs on ASP.NET MVC 1 to ASP.NET MVC 4.
The new application still uses the Webforms Viewengine. It uses StructureMap for Dependency Injection.
If possible I would like to upgrade manually.
For upgrading from ASP.NET 1 to ASP.NET 2 I found the white paper
http://www.asp.net/whitepapers/aspnet-mvc2-upgrade-notes
The steps described in the document seem to be of little risk:
Fiddle with web.csproj
Replace Version=1.0.0.0 in web.config by Version=2.0.0.0
Reference System.Web.Mvc (v2.0.0.0) in the project
chnange bindingRedirect in web.config
update css and js files
What about upgrading to MVC 4: Will there be different steps involved?
You would follow a similar set of steps to upgrade to MVC 4. Microsoft has a whitepaper that outlines the steps required to manually upgrade a project from MVC 3 to MVC 4.
I have upgraded from 3 to 4 following these steps and it was a pretty simple and smooth process. Going from 1 to 4 is a bigger jump of course, so to minimize headaches you might want to individually upgrade 1->2, 2->3, 3->4: if you run into any breaking code changes it will be easier to identify how to resolve them. But fundamentally, all you're really doing is changing project GUIDs and referencing newer DLLs and such. It's not brain surgery.
To answer Ashok's question, MVC 4 is certainly deployable if you wish to use it today - my public blog is running it (on my own server). Use preview software at your own risk, of course.
My understanding is that MVC 4 is still in developer preview so a lot of features may and likely will change when the RC version is release. Since it is in dev preview is it even deployable as a live site?

Odd Things of ASP.NET MVC Deployment on IIS 6

Recently, I am a bit interested in the deployment of ASP.NET MVC application on IIS6 because Phil Haack posted an easier way to deploy ASP.NET MVC application on ASP.NET 4. So I decided to see how different version of ASP.NET MVC works on different version of ASP.NET.
First off, I created an ASP.NET MVC 2 project in Visual Studio 2010 and deploy it to IIS 6 on Windows Server 2003 (only .NET framework 3.5 installed). I set the application to run in ASP.NET 2.0 and no extra stuff. Because I just wanted to see what sort of error would occur. And as expected, some error was reported as following.
Then, I set the Copy Local attribute of System.Web.Mvc assembly to true as following and deploy again.
As a result, the application ran smoothly.
I had read tons of materials talked about the mess of deploying MVC application on IIS 6. And I did fight to tackle the deploying issues in my previous project. At least, if had used Extensionless Url in your application, you should have configured wildcard mapping in IIS. But in this case, I even didn’t have chance to do so.
What the heck was going on exactly? Did I discover a new continent?
Perhaps your IIS is configured with a wildcard module mapping. With other words, the request path ".*" is being send to the asp.net ISAPI module.

Is it possible to run an ASP.NET 3.5 MVC 1.0 app on a server that supports ASP.NET 2.0 only?

My host supports
ASP
ASP.NET v1.0/2.0
ASP.NET Ajax
Access Database Support
MS Server Database Support (SQL Server)
I know by copying some of the files it's possible to run a .NET 3.5 Windows Forms application without .NET 3.5 installed on the client. Does the same hold for ASP.NET 3.5 MVC 1.0? Does MVC 1.0 support .NET 2.0?
My host is Go Daddy in case it helps or matters.
Mostly. Scott Hanselman has an article describing exactly how to do this. He notes:
This workaround is offered with exactly zero warranty or support. It's as-is, just an FYI on the blog. If this hack deletes files or kills your cat, you have been warned. No whining.
In practice, no one really knows what might break. Microsoft didn't test this.
This just flat might not work for you. Sorry.
The trick:
You can copy System.Core from your .NET 3.5 development machine (this is the machine running VS2008 that you're developing on) to the /bin folder on your .NET 2.0 SP1 machine. It's gotta be running .NET Framework 2.0 SP1 or this won't work. System.Core is probably somewhere around "C:\windows\assembly\GAC_MSIL\System.Core\3.5.0.0__b77a5c561934e089" on your machine, but you're a bad person for even asking.

Is it possible to create a asp.net mvc web application compatible with ms .net & mono?

I am thinking about creating my new asp.net mvc web application compatible with native ms .net as well as mono (ms server licensing cost compared to linux server licensing cost).
DB access was handled by NHibernate.
Is it possible? What are the limitations of mono regarding asp.net web applications?
Would like to hear about asp.net mvc on mono too.
Thanks
I have built a "sandbox" site in ASP.NET MVC compatible with MS/Mono.
Routing was my main concern and it seemed to be just fine under Mono.
I have not used NHibernate undr mono so no answer for you there unfortunately.
If you get the latest version of MonoDevelop (just ported to windows recently.) you can fire it up really quickly and see if your existing app is compatible.
Kindness,
Dan
You can use NHibernate on mono, it wokrs without any problems in my experience.

I want to use ASP.Net MVC. My server is Win 2003 and it uses IIS 6, will all this work together?

ASP.Net MVC is finally available as version 1. I have been waiting for an official release before I try to start using it. At the moment I have a dedicated web server which I have complete access to via remote desktop. It is running Win 2003 Server with IIS6 (I think it is IIS6, they don't print the version in the Help -> About but a bit of research says that IIS6 is the standard on Win 2003 Server) and .Net 2.0.
Obviously I will need to upgrade the framework to .Net 3.0. But after that, should everything else work? I thought I saw somewhere that .Net 3.0 insists on IIS7. If that is true is IIS7 compatible with Windows 2003 Server?
Also any literature you can point me to or any tips on making the upgrade/transition?
EDIT:
Sorry too excited guys. Yes I meant .Net 3.5. :D
EDIT: LAST QUESTION:
Someone mentioned a routing problem. I remember reading that somewhere but can't quite remember. My project relies heavily on a good Google Ranking and I don't want to sacrifice page rank because of a routing problem. Will I still be able to get around it with IIS6? Thanks again. :D
You'll need .NET Framework 3.5, not 3.0. Better be SP1. There'll be no problems with that setup. Make sure your read http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx
By the way, IIS7 cannot be installed on Windows Server 2003. ASP.NET MVC and .NET Framework 3.5 SP1 do not rely on any IIS7 specific features.
As per the link mentioned by Andrew (above), you have two choices with IIS6:
Add the mvc prefix to the routes (eg. {controller}.mvc/{action}/{id} )
Use the wildcard mapping (only IIS6/Win2k3 and not win XP/iis 5.1)
The drawback of number 2 is that it can cause performance problems if you have a lot of traffic. However, there is workaround to this that involves creating a separate subdirectory for static files like gifs/jpegs/scripts etc. See Steve Sanderson’s blog post for details
Yes, it's possible to run an ASP.Net MVC site on Windows 2003 server running IIS 6.0, though there's a little more configuration to do in IIS 6.0 because of the routing. Oh, and you'll need .Net Framework 3.5 SP1.
The documentation and steps you'll need to take are on the ASP.Net MVC deployment page :o)
On Windows 2003/XP, we use IIS7 Express to host our ASP.NET 4 MVC 3 web applications.

Resources