Memoirs of a Bystander: Visual Studio.NET development on OS X w/ Parallels
A reader writes "There is an interesting blog piece entitled Memoirs of a Bystander: Visual Studio.NET development on OS X w/ Parallels. The piece does a good job talking about development for different environments then the one that you are programming in. " And with the continued rise of more and more heterogeneous environments, this will become more and more common.
Please stop linking to crappy blogs written by people who think they're important enough to even have "memoirs" and who think they're being oh-so-clever-and-ironic when they juxtapose the terms "memoirs" and "bystander" in their post titles.
Let me summarise TFA. I have a blog and a mac and I run XP on the mac and write in the blog.
Why virtualize .net development?
Just run monodevelop and do it natively on OS X
There are no atheists when recovering from tape backup.
The piece does a good job talking about development for different environments then the one that you are programming in.
.NET apps using Windows. His database is SQL Server. He doesn't want to use Mono. So he's almost definitely developing for Windows. Mac apps have far better native options for development.
No, he's developing
The only tip someone might find useful in this blog post is his informal test of memory settings in Parallels.
Developers: We can use your help.
The guy uses Visual Studio under an emulated or virtualized PC.
Whooo Big F'in Deal!
I guess it's special because he's on "a Mac" even though it's not really a trick because it's ALL PC HARDWARE ANYWAY.
I now work from home and I didn't have a company provided laptop anymore, so instead of upgrading an old desktop, I decided to splurge. The one hitch in my plan was the fact that I still did a fair amount of .NET development. Sure, there is Mono for OSX, but that's a far cry from Visual Studio.NET on Windows XP. Clearly, I would need a solution that allows me to run Windows XP on my MacBook Pro.
Too many tense changes in one paragraph. Somebody please teach this guy how to compose.
The fact that it works on Parallels fairly nicely means that you no longer need to buy two machines for the Mac guys (just make sure there's enough RAM in there), and that you can do porting in either direction w/o all the wasted time in transferring files...
Quo usque tandem abutere, Nimbus, patientia nostra?
Why not get a PC for $25 at your local thrift store and use a $100 copy of Windows? I mean really, it's like going around your ass to get to your elbow. This is just dumb. If you're developing for Windows, you have to be a real masochist to try to do it on another platform, especially when you can use any ol' PC that you find laying around. It's not like a Windows PC is exotic or hard to find or expensive.
A good job of talking about developing for different environments?? The guy ran Paralells. The article had almost nothing to do with developing anything. He just happened to be running VS.NET in virtualization. Big f'n deal. Lame and pointless.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
Let's take it apart
Interesting blog peice... Oxymoron?
Entitled: Memoirs of a Bystander: Visual Studio.NET development on OS X w/ Parallels. Well, perhaps this is meaningful to someone who is a programmer. Pretty much incoherent to everyone else.
The piece does a good job talking about development for different environments then the one that you are programming in.
I think this would start to make sense if the THEN replaced a THAN.
And with the continued rise of more and more heterogeneous environments, this will become more and more common.
I would like to see more and more "more and more"s in one sentence. Four "more"s. Let's try this for brevity and clarity: As heterogeneous environments become more prevalent so will this phenomenon
Right now, as I post this comment from my sexy black MacBook, I'm working from home using a Parallels VM with Windows 2000 (no activation issues) and all my job related applications. It's really nice as I wait for incoming help desk tickets to arrive while playing around with my typical Mac applications without having to reboot the system. As added job security, I'm considered to be a "Mac Guru (TM)" since I'm the only person who in my office who owns a Mac. Seriously, you can't go wrong with a Mac! :P
Applications in OSX tend to grab memory and NOT release until the app is quit. It then takes the OS itself a while to purge the memory used by said application, although IME it appears that this can be forced by simply re-starting the app. e.g. from web browsers after running for the better part of the day, I can recover c. 100M+ of disk space plus whatever amount of physical RAM is released(haven't tracked this too closely)
Secondly OSX itself does NOT like to release physical memory at all. It appears to have a significant preference to growing virtual memory. e.g. After running a day or so, I can reboot a mac, run the same apps and see several 100M to 1G more of disk space now available v. merely quitting every app and not re-starting after the same period of time. i.e. it appears that the virtual memory pagefile is NEVER reduced in size until the machine is re-started. I have notied this behavior first with 10.4(skipped 10.3), and it never appeared to behave this way under 10.2. Caveat I am neither so tight on RAM or disk space that I have tried killing processes that control Dashboard, expose, etc. but those could be possible candidates for AFAIK newly exhibited behavior of 10.4. i.e. it is not significant enough of a problem for me to investigate it more closely, and secondly I am not employed by Apple so wrt that I gain very little from further profiling.
- I too, decided to get trendy and buy a mac notebook. The catch is I really like the VS.NET IDE and don't want to use Mono. Therefore, I must run XP on my Mac on top of OS X
- No Virtual PC for Intel macs
- Now we have Parallels desktop instead. I am using it.
- I could have used Bootcamp, but I don't like to reboot...
- I have a smaller macbook, with lesser graphics power. I upgraded the ram to 2gb
- I like Paralells and use it everday. I essentially run all my programs in my virtual XP environment, like MS SQL server and even my Firefox web browser! But hey, I'm doing it on a mac!
- VB crashes sometimes, the rest of the apps just consumes memory.
- Caching could be improved
- Grapics rending speed is really slow. Notepad needs to refresh the whole screen when you type a character
- I would like to explain memory allocation
- I am a power user, therefore I dedicate half my ram to parallels. Oh! did I mention I actually use the following list of mac software???? Entourage (an MS product), Camino, iTunes, etc.
- My computer gets sluggish
- 512 megs of ram for parallel wasn't enough
- Why can't the virtual XP use OS X swapping instead of virtual virtual memory?
IANAW, but this is the worst article I've seen posted onNope, no meaning to programmers either. Especially since the article had nothing to do with programming. The fact that he was running VS.NET was actually inconsequential. It could have been any demaning Windows applications that he just had to run on his Mac...
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
Applications in OSX tend to grab memory and NOT release until the app is quit. It then takes the OS itself a while to purge the memory used by said application, although IME it appears that this can be forced by simply re-starting the app. e.g. from web browsers after running for the better part of the day, I can recover c. 100M+ of disk space plus whatever amount of physical RAM is released(haven't tracked this too closely)
Secondly OSX itself does NOT like to release physical memory at all. It appears to have a significant preference to growing virtual memory. e.g. After running a day or so, I can reboot a mac, run the same apps and see several 100M to 1G more of disk space now available v. merely quitting every app and not re-starting after the same period of time. i.e. it appears that the virtual memory pagefile is NEVER reduced in size until the machine is re-started. I have notied this behavior first with 10.4(skipped 10.3), and it never appeared to behave this way under 10.2. Caveat I am neither so tight on RAM or disk space that I have tried killing processes that control Dashboard, expose, etc. but those could be possible candidates for AFAIK newly exhibited behavior of 10.4. i.e. it is not significant enough of a problem for me to investigate it more closely, and secondly I am not employed by Apple so wrt that I gain very little from further profiling.
If even the breakdown is that drawn out and boring, then what chance do we have of even making it through the article?
I'm going out on a limb here and stating that I like the article and found it very useful and informative. There are plenty of .NET developers in this world and I am one of them. I also love Mac OSX and it is great to see a semi-detailed and informative account of someone who set up the very environment I have been researching as a possible development platform. A large part of the applications the author uses on OSX and Windows is exactly what I would be using in the same setup.
It will be very beneficial to me when I finally get this platform set up to test the memory allocation in the manner the author describes, and assuming I don't take the plunge and get a Mac Pro, 2GB RAM will be the amount of RAM I choose for the Macbook Pro. After reading the article I can now purchase a new Mac and know that I can do everything I'm wanting.
I am a meat popsicle.
Sleep is for the Weak
That's a bit harsh. I do the exact same thing as this guy does. I Prefer working with OS.X or failing that Linux as a Desktop OS to working with Windows and I sometimes develop for OS.X and Linux in my spare time using native tools. However at work I also have to use Windows for development purposes as well as for testing and for Windows only apps so I have solved the problem with Parallels and it suits me just fine for all sorts of reasons. For one thing I don't have to deal with the headache of having to juggle a Windows laptop for work as well as a the Mac because Parallels enables me to cram the whole lot, Windows, OS.X and all the devel tools onto my MacBook and a pint sized external drive for the Parallels image files I am not using at the moment. At home I have a more powerful development system built on the same concept but running VMWare for doing stuff my MBP and Parallels can't handle but unfortunately my employer is not that progressive and does everything via test systems managed by the IT department through an inflexible bureaucracy. Fortunately I am usually able to quickly set up a pre built Linux/Windows/Unix testing/development environment on my Mac and get a whole pile of work done in the time it takes the overworked guys in the IT department to find a machine and get a test environment up and running. Basically, thanks to Parallels, I can whip up a prebuilt instance of any operating system that runs on an Intel processor with in a matter of minutes without having to endure Windows as my primary Desktop OS and all this without ever rebooting anything other than a VM, which from my point of view is paradise. I'm not saying this is something every developer should do but this approach has it's advantages.
Only to idiots, are orders laws.
-- Henning von Tresckow
OK, the article is really stupid, so allow me to raise a better point for discussion. What is a reasonable development environment for a Macintosh (that is to say, doing Cocoa development, not Visual Studio .Net!) Can you get by with a Macbook with 512MB? Is the hardware discount from the ADC worth the cost of a Select membership?
Java is first class citizen for Apple and it has - IntelliJ IDEA - Eclipse - Netbeans all of them are way ahead VS.net big time. what is this stupidity trying to emulate windows on a mac to develop .Net to and deploy on windows?
Mono works pretty well on OSX, there are still more glitches on it than the Linux version, but the team has done a great job. Most of the windows forms UI won't work, you pretty much need to build a different .Net UI for Windows/Mac/Linux. Take a look at imeem.com - their client looks great on Windows and Mac by using a platform specific UI built on a common backend. No doubt any linux version they do will have another UI built just for the penguin lovers out there.
Then perhaps you haven't heard of my soon-to-be-released autobiography, entitled Memoirs of a Slashdot Bystander: The Search for +5 Funny. Basically, it's 237 pages of filler that detail my computer hardware and software configurations, followed by another 82 pages that give interested readers insights into what I was doing between the ages of one and four. I am conservatively estimating that I will sell between 35 and 65 million copies, with a Michael Bay film based on my life (working title is "Transformers: The Movie") to follow in '07.
that would take a lot more effort than ranting & raving on Slashdot. Maybe you should start by writing a blog. And maybe get it posted on Slashdot.
Ubuntu + VMWare Server + Windows2k3 Server running VS.NET 2k5 ... it works, but it's slow and annoying. easier just to run windows and deal with the crap as best I can. I tried, I really tried, but it's just not quite there yet.
So... talk about development for a bunch of programming environments then get specific about the one I'm programming in? How does he know which one I have?
Doesn't Parallels require administrator rights on Windows and root on Linux to use? If so, doesn't that restrict how easily you can use this solution on a arbitrary Windows machine?
My day job is as a Civil Engineer. However, I do a bit of programming on the side, mainly as a hobby.
.net Express during the evenings.
About a month ago I went ahead and purchased a 20" Imac for use in my home. My wife uses it during the day for email and web browsing, and in the evening, I run Parallels with windows XP to use Autocad and Visual Basic
Typically, when I am runing Parallels, I don't have a lot of apps open in OSX, so my XP runs quite well with just 512mb of my 2gbs of memory allicated to it. I am still pretty much a newbie to OSX, and setting up Parallels was pretty easy even for me.
--C. Alan
If you're the only one with a Mac, why do they give a shit about having a "guru?"
ove been using virtual pc and win 2k like this on my g4 a while now. It works reasonably well.
The war with islam is a war on the beast
The war on terror is a war for peace
Because the company develops software for the Mac but the entire infrastructure is PC-centric and all the Mac support is outsourced. So instead of telling the user to talk to the outside vendor (which frustrates Mac users to no end), I'll talk to them first to determine the best approach to the problem. Mac-centric customer service is a useful job skill.
Why not use Xdevelop. I actually use(prefer) this for my windows .net development, and it works on Mac & Linux too. Not to mention it use the same project files as Visual Studio .net.
I am conservatively estimating that I will sell between 35 and 65 million copies, with a Michael Bay film based on my life (working title is "Transformers: The Movie") to follow in '07.
I wouldn't have thought much of you just from looking at your user ID, but I guess you're more than meets the eye.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Just when it got a little interesting, describing how he would up first trying 768MB of memory for the VM but ending up at 800MB, it lacked explanation as to why.
I currently have Parallels set to 768MB, I would have liked to see his reasoning for the tweak to 800MB.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I was doing this back in 1998/99 on the VMware beta. I ran Linux as my primary OS (for utility and security) but my job required me to develop mostly Windows software which I did using the regular Microsoft tools (Visual Studio) in VMware/Windows.
And I still do that to this day. 99% of the applications I develop are cross platform Linux/Mac/Windows and VMware lets me do most of that on the same machine. I do still have to use my PPC Mac some but eventually I'll either be running OSX in VMware or similar on an Intel Mac.
The ratio of people to cake is too big
I'm just wondering how hard it would be to create an OOP-level framwork to utilise each platform (Windows, *Nix, Mac) which looks and feels like it belongs on the platform (Winforms on Windows, QT, or GTK on *Nix, and cocoa on Mac) without porting at all. I know that .Net can do this on a language side of things, but I really wish we could implement GUIs the same was as we can console applications. Once we get to that point, as well as a standardized interface to deal with hardware, it would be MUCH easier to create multi-platform apps with little trouble.
"Free software" is a matter of liberty, not price.
AAARRRRGGGGHHHHH!!!!
As the above poster mentioned, monodevelop is actually nowhere near being usable for .NET development. This goes doubly so on a mac.
.NET top to bottom, but at this point in the development of .NET that just isn't realistic. Right now we need a stable bootstrap solution that is better than makefiles.
Personally, I don't really understand why the community is spending so much effort on putting together another IDE for linux, when several already exist and could be easily extended to work for mono development.
The most obvious environment would be eclipse, which is highly extensible. A well written plugin for eclipse would do wonders for the mono community. I suspect that the primary reason for wanting to write a IDE from scratch had more to do with wanting to have the development environment be done in