A few days ago, Microsoft released its ASP.NET Web Stack (of Love as called by Hanselman) to OSS.
Good news? Bad news?
I don’t know… I am still not convinced by the capacity of Microsoft to produce with a real OSS community a really pen source project. This time, and it’s quite new for them, they claims to accept pull requests from community.
I am not sure that it will make a big difference with the past, but I may be wrong (and I hope so!)
Just before continuing, I am not here to say that all this asp.net web stack and oss stories are a mess! I am still a big fan of the stack and I am only writing about some thoughts and experiments.
So, I git clone!
Obviously we can spend hours discussing philosophy about Microsoft misconception on open source, but to begin, the better way is to try it.
I don’t know if it is on purpose to be on the “OSS Move”, but CodePlex support since a few time Git. It’s another good news!
Oh wait…Perhaps we missed something?
- If you’re true open source now, why not choosing a neutral platform –like GitHub – instead of a Microsoft source showcase without any soul like Codeplex?
- Codeplex supporting git is good, but, after svn or mercurial some years ago because it was the trend of the moment, doesn’t it undermines the solutions based on TFS a little bit? Or finally they are now convinced that TFS is not good for distributed open source project? Must probably, it is to let the platform die silently and empower in the future a platform based on the Tfs Cloud solution – which can be most intelligent solution.
So I can clone without installing the 300Mo iso of TFS explorer and that’s nice
That’s pretty quick (due to git compression, yeah!) and I can navigate the sources now.
I don’t know if everyone is more serious than me but one thing I always do after getting some sources, is to type “build” in the shell and see what happened, don’t you? It’s just to see if it can work immediately on a simple way. Let’s call it a “Download and Run” pattern.
I was a little bit disappointed with all screaming in red…And I forgot to say that, like most people, I explicitly forgot to read the recommendations and “README” you should read after downloading something.
So that’s it. It’s not clear on the project home page, but if you go to Documentation, you have most of the solutions to your problems:
- Download SkipStrongNames, and unzip it. From an elevated command prompt, run “skipstrongnames -e" to allow you to run unit tests against the delay-signed binaries.
- Don’t try to open directly the Runtime.sln and “enable nuget restore” before launching a first build command. I will run a mess when you try to launch build.cmd later…
Additional Tip: You may need to manually add a specific Microsoft nuget development feed for some packages not yet officially distributed: In Visual Studio, open Tools/Library Package Manager/Settings Then in Packages Sources add new with this url:
So, after applying SkipStrongNames (did I already mention that I hate StrongNames?), just restore your nuget packages:
Then try to build it (without restore).
I said hope, because depending on your current configuration and state it may work or not:
- Having .Net 4.5 and/or aspnet mvc4 beta installed may cause troubles
- Having some data components may cause troubles (Maybe Sql 2012 is one…)
I finally get it working after removing .Net 4.5/mvc4 and removing the Microsoft.Web.Http.Data.Test project…
But, after uninstalling these components, msbuild 4 disappear too and mvc3 template projects just not work anymore.
A few words more
It’s is interesting to have the real sources of all the web stack but use it with caution.
It’s usually hard to compose with some beta versions from Microsoft that are not compatible with other tools but it’s also the case with these sources.
It’s far to be an independent project, and I can understand why it’s not, but it’s quite difficult to exploit and contribute to sources with these inter-dependencies.
I just hope that it will open some minds and bring real innovation. In the other hand, I hope it will help people usually using basically Microsoft products to have a new point of view on new ways of working.