.NET Setup for Mac front end



  • I am trying to setup a VM for front end developers to work on. Most of the front end developers my client has spoken to so far are Mac users and haven't touched .NET ever. This is an ASP.NET MVC site btw.

    The project doesn't work on Mono as of yet (it will) but I need to have something working in the next two weeks. So for now I have decided to create a VM in the cloud and have them work from there until I have everything building cross platform.

    I am going to setup a Windows VM in the cloud. Probably Windows 2015 community.

    I am thinking of making sure they have the following sorted.

    • Node
    • SCSS / LESS and Grunt / Gulp installed
    • Sublime
    • CMDER
    • GIT

    I don't use Mac OS a lot so I don't really know how devs work on these platforms. I think with these setup they will have some tools that are like what they are used to.

    Any suggestions on how



  • @lucas1 If you put the VM on their own machines, and set up the networking right, they should be able to write code on OS X against the MVC app in the VM. I'd think that'd be more agreeable to Mac developers.

    We thought about doing that here, but we ended up just buying like 17 new dev servers, so now we have enough dev servers for each back end dev to push their own branch to for FE to test against.


  • Discourse touched me in a no-no place

    I just run any VMs needed on the local machine.
    I don't use any of those tools though so I'm maybe not the sort of OSX-using developer you're catering for.



  • @blakeyrat

    Yes that would be ideal. But the build only works properly in a Win 7 VM with VS2010 and some other "magic". I can't expect them to go through this trauma (hell I don't want to).

    The other reason why I want it in a VM in the cloud is that I can clone the machine when I am done, so if the front end dev isn't working with us anymore I can just reload the VM for a new dev and then they can run a git pull and be up-to-date.

    As I said once I get it working on Mono, they should be able to git clone and go from there.



  • My first advice would be not to assume anything about favourite or familiar tools, but ask them about how they work (or better watch them work) and setup the VM together with them so they know from the start how things are done, and why it is done that way.

    Of course, you still want to prepare, so having Windows installed and and a list of useful tools with download links ready is useful.

    If you use VMware or Parallels you can setup the system to share the user directory, that might be a useful way to seamlessly integrate the Windows toolchain with the Mac desktop.



  • @lucas1 said in .NET Setup for Mac front end:

    @blakeyrat
    Yes that would be ideal. But the build only works properly in a Win 7 VM with VS2010.

    How do you even do that?

    @lucas1 said in .NET Setup for Mac front end:

    The other reason why I want it in a VM in the cloud is that I can clone the machine when I am done, so if the front end dev isn't working with us anymore I can just reload the VM for a new dev and then they can run a git pull and be up-to-date.

    You can clone normal VM disk images also.

    @lucas1 said in .NET Setup for Mac front end:

    As I said once I get it working on Mono, they should be able to git clone and go from there.

    I honestly don't think that's worth your time. VMs are pretty cheap.



  • @loopback0

    I was hoping there would be the hipster ruby / node / frontend dev that hung around.


  • Discourse touched me in a no-no place

    @lucas1 said in .NET Setup for Mac front end:

    The other reason why I want it in a VM in the cloud is that I can clone the machine when I am done

    You don't need the cloud for that.

    @lucas1 said in .NET Setup for Mac front end:

    I was hoping there would be the hipster ruby / node / frontend dev that hung around.

    *shrug*



  • @blakeyrat 
    

    How do you even do that?

    Well I got the build working about 10 minutes ago with .NET 4.6. But I have runtime exceptions everywhere.



  • No I don't. What I want is a VM image in the cloud, I tell them where it is, the RDP creds, they RDP in and I don't have to worry about it beyond that.

    Everything is already in Azure anyway, so I might as well keep it



  • @solitario

    I will just have to provide them something decent and see what happens.



  • @lucas1 said in .NET Setup for Mac front end:

    only works properly in a Win 7 VM with VS2010

    What kind of special ❄ website might that be then?



  • @AlexMedia The one I am working on. The problem is that there a library that uses reflection on private methods on some of the .NET core objects. I've run into this problem before, it isn't a huge deal but the guy only pays for 3 days of my time a month and I spent 4 of those this month trying to find out why the thing doesn't build and I haven't got anything I promised working yet, so for now I have just followed the path of least resistance.

    Also the other WTF is that the guys who setup the code repos uses spaces in the repo names, when you do a git clone from TFS online, it puts %20 in the file name.

    D:\My%20Proj\
    

    Nuget when installing the dependencies, does a urldecode on the path and then puts that in as the dll reference in your csproj.

    D:\My Proj\
    

    Now this is where things get interesting. VS solution explorer sees them and you can view them in references, but the compiler can't and starts looking in the GAC for references. Took me a good hour to work that one out.


  • Discourse touched me in a no-no place

    @lucas1 said in .NET Setup for Mac front end:

    No I don't. What I want is a VM image in the cloud, I tell them where it is, the RDP creds, they RDP in and I don't have to worry about it beyond that.

    You can give them a file to import into Virtualbox (or whatever) and tell them the password and get the same result. RDP over the internet can be painful, and the Microsoft RDP client for OSX isn't the greatest.

    @lucas1 said in .NET Setup for Mac front end:

    Everything is already in Azure anyway, so I might as well keep it

    Might be beneficial for you but might not be the best for some your client is paying to get shit done.



  • @lucas1 said in .NET Setup for Mac front end:

    The problem is that there a library that uses reflection on private methods on some of the .NET core objects.

    Jesus. What a dick.

    @lucas1 said in .NET Setup for Mac front end:

    Also the other WTF is that the guys who setup the code repos uses spaces in the repo names, when you do a git clone from TFS online, it puts %20 in the file name.

    Since you're in VS anyway, why not use TFS to talk to TFS? I mean half this WTF is your client's fault, but you could make things way easier on yourself as well.



  • @loopback0

    Might be beneficial for you but might not be the best for some your client is paying to get shit done.

    That is really rude, because that is exactly what I am trying to do.

    Also the guy is eligible to Dream spark so things are cheaper if Azure is


  • Discourse touched me in a no-no place

    @lucas1 said in .NET Setup for Mac front end:

    You know what mate, forget it.

    I'm just saying. I spend a fair bit of time using RDP to connect to Windows boxes on OSX. It's not perfect, and if it was the only way to get work done it'd be pretty irritating. Doubly so over the Internet.


  • Discourse touched me in a no-no place

    @lucas1 said in .NET Setup for Mac front end:

    Also the guy is eligible to Dream spark

    Which guy? Dreamspark isn't eligible for commercial use.



  • @loopback0

    I'm just saying. I spend a fair bit of time using RDP to connect to Windows boxes on OSX. It's not perfect, and if it was the only way to get work done it'd be pretty irritating. Doubly so over the Internet.

    I am trying to make the best of what I was left with until I get a chance to sort it out properly.

    I don't want some front end dev constantly asking me questions on how to get some basic shit working and I don't want to have to host 20GB+ VMs. Azure seems the best solution so far.


  • Discourse touched me in a no-no place

    @lucas1 Fair enough then, I guess.



  • @lucas1 said in .NET Setup for Mac front end:

    I am trying to setup a VM for front end developers to work on. Most of the front end developers my client has spoken to so far are Mac users and haven't touched .NET ever. This is an ASP.NET MVC site btw.

    Here's the part I don't understand.

    Is this a SPA site? Will your frontend guys be working on some angular-ish code base away from your MVC backend? Or are you doing backend rendering (using eg. razor views), and your mactard frontend guys will try to handle those?



  • @loopback0

    For startups it



  • @cartman82

    No it is not an SPA site. There is an API, I will be dealing with it.



  • Just throwing this out there:

    When you create a VM, with an install of windows [whatever], and visualstudio [whatever] you have to pay the licensing costs associated with the [whatever]. VMs don't entitle you to a free license. Even if you have a laptop with the OS installed, and then VM with the same OS installed, you have to pay for TWO licenses (or have a multi license.... license).

    Mono 4.x supports MVC5, or MVC3 with razor. It takes some work, but it will run on a linux based environment with the mono-complete + (nginx/Apache mod mono) setup.



  • @Matches Microsoft offer these VMs and they are charged for accordingly.

    Look guys I am not asking you for an alternative, I spent a lot of time researching this shit already.

    I am asking you for suggestions about the original question I posted. I will set-up a machine as originally posted and they will have to deal with it. If there is anything other than written instructions to make it less painful for them I am all ears.



  • @Matches said in .NET Setup for Mac front end:

    Just throwing this out there:
    When you create a VM, with an install of windows [whatever], and visualstudio [whatever] you have to pay the licensing costs associated with the [whatever].

    The fraudulent use of DreamSpark would cover that. It provides those licenses.



  • This post is deleted!


  • @lucas1 Well I'm sorry for going off-topic, but the only real answer is: "ask the guys who will actually be using these machines instead of random people on the Internet". And you got that answer already.



  • @blakeyrat

    I was just trying to pre-empt obvious things I wouldn't know about.



  • @lucas1 We did that too, already: your front-end guys are going to bitch that they can't work on their Macs. Be prepared for that.



  • @blakeyrat
    Well if I have a VM ready for dev they can't say that can they?



  • @lucas1 Depends on whether the VM is on their local machine or a cloud service.


  • Discourse touched me in a no-no place

    @lucas1 said in .NET Setup for Mac front end:

    Well if I have a VM ready for dev they can't say that can they?

    If they have to connect via RDP to a VM in the cloud, yes, they can.

    edit: :hanzo:



  • Ok, to answer the original question, the big thing missing in this setup is some graphic program support. Most frontend guys always have Photoshop and Illustrator open.

    So (unless you have a bunch of Adobe CC licenses at hand) a major thing you'll need to provide is some way for them to painlessly transfer files accross. Remote desktop can do that, not sure about the Mac interop though. A good alternative most frontend guys will know how to use is FTP, so you might set that up as well.

    And once you set that up, you KNOW they'll just edit everything locally and then upload it to the VM to build and execute, so you might as well focus at that.

    Set everything up so they can easily sync files from their local Macs to the VM and run the build. Any editor and other stuff is secondary IMO.



  • @cartman82 said in [.NET Setup for Mac front end]

    Set everything up so they can easily sync files from their local Macs to the VM and run the build. Any editor and other stuff is secondary IMO.

    VirtualBox does this automatically, for what it's worth. I keep the source tree on my real machine, and set up virtualbox to mount it as a directory on my virtual machines. Local changes are automatically propagated (and, in principle, changes in the VM are propagated back, but I hardly ever do that).

    I have to rsync to production though. Easy peasy.

    vagrant is a front-end for a bunch of virtual machine providers, including things like VPSes, and knows to rsync to the virtual machine on launch when appropriate. I don't like that workflow for development, but it's nice for production.



  • @loopback0

    Sorry just because you have some sort of fucking problem with it .. doesn't mean it is broken.

    I have used it fine. I use a Mac Mini quite often as a machine for iOS apps and I don't have the problems you do.

    The RDP itself works fine .. .unlees you are some sort fo special flower.

    So fuck off saying it doest work when it blatantly does.



  • @Captain said in .NET Setup for Mac front end:

    VirtualBox does this automatically, for what it's worth. I keep the source tree on my real machine, and set up virtualbox to mount it as a directory on my virtual machines. Local changes are automatically propagated (and, in principle, changes in the VM are propagated back, but I hardly ever do that).
    I have to rsync to production though. Easy peasy.

    I'm a bit leery of that. I've had problems with NTFS screwing up linuxy access rights and shitting itself at the site of symlinks. Mac <> Linux would work really nice though.



  • @Captain

    You can't just magically do this stuff in .NET.



  • Um, that's nice. It's a filesystem/kernel feature. .NET has nothing to do with it.



  • @Captain

    .Net has everything to do with my question you fucking moron.



  • PLONK



  • @Captain Your nob is the Plonk



  • My nob is enormous and in your momma.



  • @lucas1 When you talk about VMs, .NET is not the only thing to consider any more. Period. You're bringing in an entire operating system into your development environment, so using shared folders which are equivalent to network shares are absolutely within scope.


  • Discourse touched me in a no-no place

    @lucas1 I didn't say it was broken. In fact, I said it was irritating if it was the only way to get work done.

    I've got a Windows desktop at work and I used to have to do work on it for at least half of any given day - which is tolerable via RDP when I'm in the office and it's literally next to my Macbook. From another site, it's irritating and over the internet it's frustrating as hell.

    Being able to do this on the Mac locally and just chuck the files to Windows to build or run or whatever makes a massive difference, so fine, do the cloud thing but make it possible for them to do it that way.

    That said, I assume you're actually just after opinions that agree with what you want to do, so... whatevs.



  • @loopback0 said in .NET Setup for Mac front end:

    @lucas1 I didn't say it was broken. In fact, I said it was irritating if it was the only way to get work done.

    I've got a Windows desktop at work and I used to have to do work on it for at least half of any given day - which is tolerable via RDP when I'm in the office and it's literally next to my Macbook. From another site, it's irritating and over the internet it's frustrating as hell.

    Being able to do this on the Mac locally and just chuck the files to Windows to build or run or whatever makes a massive difference, so fine, do the cloud thing but make it possible for them to do it that way.

    That said, I assume you're actually just after opinions that agree with what you want to do, so... whatevs.

    I should have taken my own advice and not paid any attention.


  • Discourse touched me in a no-no place

    :wambulance:



  • @loopback0 said in .NET Setup for Mac front end:

    :wambulance:

    Get bent. You don't want to talk about stuff.


Log in to reply