On and off over the past year or so, I’ve been chipping away at getting WebForms reference source into Mono. I’ve made a lot of progress and am posting here to get advice on how to move forward, raise awareness, get help, etc.
BackgroundI bet you're asking why, huh? Well, to be honest, I was just trying to find something interesting to contribute open source wise. I stumbled upon Miguel's post and thought wow - that's a pretty cool thing that nobody is doing. And so I started....
What are the Benefits?
I have to imagine that there are a subset of people that do not want to upgrade, but desire a similar set of deployment options you get w/ Mono and Core. The main benefit, I guess, would be that these people aren’t left out. Additionally, I see the community could have an actual channel to get webforms features in and potentially adopted upstream.
What Has Been Ported?
Typically, a post like this may come much earlier in the process, but fortunately (or unfortunately) for me, that is not the case.
Following along at my repo github.com/steveisok/mono, I have the following functional:
*Note - This is all based on 4.6 of refsrc.
In addition, I also pointed System.Configuration at corefx (I think it’s on Mono’s to do list), aspnet_compiler, and a few other tools that escape me.
WCF was NOT part of the port btw.
To bookend this, the tests that were previously written in each of these assemblies pass. Thanks Alexander from the Mono team for pushing me !
What Is Experimental?
- Kestrel Integration (only have it local for now)
- Microsoft.VisualBasic refsrc working w/ Rosyln VBC.
With respect to Kestrel, I just got this working by tweaking some webforms app domain startup code and wrapping HttpContext. As for VB, I was trying to get DotNetNuke to compile, so I forked mono-basic and pulled in refsrc. It works, but it needs polishing.
What Apps Were Tested?I hosted WebForms using XSP. I found it easiest to put the XSP assemblies in the GAC to make it all work.
There are two main ones that I have on github. Being a new user, I can’t put too many links or images in the post :-(.
Kaliko WebForms Demo (https://github.com/steveisok/kaliko-webforms-demo)
What is Next?
I’m thinking we engage the Mono team and try to determine how this gets prioritized / reviewed / tested.
I’ve also found that there are missing refsrc classes (System.Web.Caching, RegularExpressions, etc). How do we contact the right people to fix this?
It would also be great if you all could give feedback. Does this seem like a worthwhile approach? Would it be useful? How does this proceed?
Everyone’s input is wanted and appreciated. This started as something neat to try and has become a little bit of a passion of mine. I’d love to see this come to light and I certainly do not have all the answers.