5 ms·
VirtualBox, Docker and Mono ... at one point you have to ask yourself isn't it too much virtualization ?
by jmnicolas 13y ago
VirtualBox, Docker and Mono ... at one point you have to ask yourself isn't it too much virtualization ?
- m_mueller 13y agoYou are missing the point I think: Running a setup like this allows developing and testing the environment only once for the first app you develop with these dependencies. You basically get deployment as well as the development environment for further projects based on this environment for 'free'. Having Docker between VirtualBox and Mono adds almost no overhead while giving you a nice clean slate with no environment properties from other projects that could somehow influence the runtime behavior. Now, the question for me is whether this is worth it for .Net - is Mono so good, that one would want to lock himself into a Linux-only environment like this?
- jimmcslim 13y agoVirtualBox: the author is using a Windows machine so needs to run Linux in order to experiment with Docker. Docker: well, this is the subject of the post. Mono: Mono is an application runtime (specifically an open-source implementation of the CLR) just like the JVM (yes, a 'Virtual Machine' but not virtualization, I would argue, in the sense that you are stating there is too much of). Obviously if you had .Net apps and a Windows server environment you would just deploy .Net apps to it. But there might be scenarios in which this is useful. Perhaps migrating away from Windows servers to Linux, but not wanting to rewrite the C#/.Net apps in a new platform. Although whether Mono would be able to run those apps satisfactorily (the coverage of the SDK is not complete) is of course up for debate.
- d0 13y agoThe answer to your latter question is: no. Only pretty trivial stuff is portable to Mono. I've tried it on every project I've worked on over the last 6 years to no avail. Show stopper every time.
- andyjohnson0 13y agoInterested in your experience. Were these projects desktop applications or server-side, or a mix of both?
- d0 13y agoMix of both. The killer on the server-side is always stuff like missing WCF features, odd bugs with DI containers, missing API calls, slight behavioural differences etc. Client-side. No WPF and WinForms is dreadfully incomplete. It's a no go. If you start on Mono and deploy to .Net I imagine it'd work but no-one realistically does that these days. If they were going to do that, Java would be a better choice for the product.
- danabramov 13y agoWell, client-side Microsoft has abandoned both (although of course they still run).
- d0 13y agoThey haven't abandoned any of them. We still have ATL, MFC, Win32, WPF, WinForms and now Metro. Not that I want to use any of them myself :)
- Guillaume86 13y agoYes it's a big disapointment for me, my predilection language is C# and I would love to be able to code on linux... I wish one day microsoft will be forced to port/support .NET (at least server components) to linux but I'm not holding my breath...
- d0 13y agoI really don't want them to port it. I want to see Java 8!
- 13y ago
- cincinnatus 13y agoIt is abstraction layers all the way down. We all find our level of comfort in the stack, somewhere between the most abstract thing currently achievable and CPU microcode. In this particular case it makes something otherwise tedious much simpler, which is what adding abstraction is always about.