views:

2274

answers:

32

At work I use Visual Studio 2005 and Resharper and I love them. However, I have an idea for an open source project that I want to work on from home and independently from my day job but I don’t want to have to shell out thousands of pounds for VS 2005 and resharper.

I've looked at the C# express edition products and Sharpdevelop. The express edition products don’t support unit testing so they’re out. Sharpdevelop looks like my best option but lacks the shine of VS 2005.

My question is; how do you guys do this? Do you (can you legally) reuse your work licenses at home? Or do people bite the bullet and pay for personal licenses or use the aforementioned free/open source products?

+3  A: 

Well, the "express" integration with testing is disabled. But you can still run your unit tests separately - for example, at the command line or via the NUnit GUI. As it happens, I am fully licensed, but if I wasn't, I'd happily use Express and NUnit. Or pay for VS Pro and use the personal edition of TestDriven.NET.

Marc Gravell
+30  A: 

Can't you go with the Visual C# express edition and use e.g. NUnit for unit testing?

Daniel Daranas
+1 - I use VSExpress + xunit myself
annakata
I've gone this route before, and it works for the most part. However, you're out of luck if you need to set a breakpoint in your unit tests, because VS Express doesn't have the option to attach a debugger to the NUnit process.
Juliet
+1 you can also use mbUnit
Miau
If you need to set a breakpoint in your unit test, just write a console app that calls the unit test and run it in the debugger. This is annoying the first time you do it and then generally trivial to reuse.
Robert Rossney
Thanks for your comments - great tip, Robert. As a sidenote, I think unit testing tools need to move one step forward in the integration into the development tools themselves, but then I think the same about contracts, performance measurement, code analysis etc.
Daniel Daranas
Can't you use NUnit + the TestDriven.NET addin in VSExpress ? Then, you can execute your nunit unit-tests from within your IDE.
Frederik Gheysels
@Frederik Gheysels, I haven't tried this add-in. If it works, I think this would deserve a separate answer which got more upvotes, since it would be the best alternative :)
Daniel Daranas
As far as I remember, TestDriven doesn't work with the express products. If I remember rightly, that was why Microsoft revoked Jamie Cansdale's MVP status - because he hacked it together so that it would work.
Carl
+14  A: 

I've found that actually paying for licenses is the way to go. I'm not rich but this is what I love to do at home so I'm happy with it. I bought Vista, VS2008 and R# licenses so I earned the right to someday develop something nice and useful and still get paid for it.

Trap
You know what... I'm tired of being downvoted without a reason.
Trap
I'm with you in the sense that I am a developer both on and off the job so I have strong preferences towards certain tools (MSTest being one of those tools). That said, if this is an open source project, I might reconsider using MSTest since not everybody has the funds to purchase VS 2008.
senfo
Sorry, ran out of space. NUnit is nice because it's free. Fortunately, it's also a nice product.By the way, I didn't vote you down and I see no reason to have done so.
senfo
+5  A: 

I can use VS2008 and ReSharper legally due to being an MVP, but even if you're restricted to the Express edition you can still unit test - just not in a way which is integrated into the IDE. It certainly makes it less slick, but I'd say it's doable.

I suspect if I didn't have an MVP licence I'd just cough up for ReSharper + VS Pro though. The difference in pleasure/pain when everything's integrated is pretty huge IMO.

Jon Skeet
You can use NUnit from inside VS 2008 Express, look here: http://thespoke.net/forums/923583/ShowPost.aspx
Peter
That post doesn't mention NUnit at all. I don't doubt that you can launch the NUnit GUI from Express, but it's still not really integrated.
Jon Skeet
+15  A: 

I got an MSDN subscription - excellent value.

kpollock
I don't think its 'allowed' to use MSDN software for production code tbh..
driAn
Er, yes it is (to **develop** software, which was the question); http://msdn.microsoft.com/en-us/subscriptions/subscriptionschart.aspx
Marc Gravell
Normally MSDN is sold as "Visual Studio x Edition with MSDN y Edition" so you get the normal Visual Studio licence as part of the package.
Martin Brown
MSDN subscription is the way to go. You get not only Visual Studio, but also lots of other MS products you probably need anyway.
Dan Herbert
Until you deploy/use the code, MSDN licenses for the various MS products are perfectly legit.
Toybuilder
+2  A: 

I don't think that there is a common law that would forbid you from 're-using' your 'company software' for your personal purposes. However, this is definitely the subject of a contract between you and the company you have been given the software from. Either ask your boss or invest in the software if you really need it.

Przemek
Common law maybe not, but check your EULAs - for example, is the program licensed "1 licence per user", "1 licence per computer", or something completely different?
Piskvor
+10  A: 

Beware, if you work as a developer you are possibly bound to a contract that all software you develop (even in your own time) belongs to your company. So you need to verify with your boss.

At home I use the same software as at work. My employer takes care of the licenses and in that case we can work from home. (Ideal if one of the kids is sick or the weather acts against the interst of the bikers).

In the past I bought my own licenses. They are the tools you have to work with. So they better be good.

Gamecat
someone here (can't find link) had exactly the same clause and pointed out that this meant the company accepted all liability as well which soon fixed it
annakata
Depends where you live. In California this isn't the case.
Chuck Conway
Is it even legal to have contracts like this. If you write code on tools other than the company how can this be their property, seems like you sold your soul to the company. In what other professions do you have similar contracts?
TT
Its not in the contract, it seems to be the law. But when my employer mentioned it he said, so if you want to earn money with it, let somebody else sell it for you ;-).
Gamecat
Gamecat: There is no law like that. There are places where it is explicitly against the law. In other places, a contract can stipulate it. But there is no place where local laws cause your private work to be owned by someone else.
jmucchiello
Software you develop at home, say during the weekend, belongs to the company you work for? That sounds rather.. questionable. Do you have any evidence of this?
dbr
I (in the UK) have an employer's contract which basically says: 1. I have to have permission to open-source/sell stuff I work on in my own time (doesn't seem to be any problem obtaining such permission provided there's clearly no compete with employer's business). 2. Employer has option to fairly license anything I produce. That's actually very generous compared to what I've heard people in other companies being asked to sign (ie "all your IP are belong to us").
timday
+2  A: 

I bought Visual Studio Standard (~350 EUR) and ReSharper (~180 EUR). In my eyes, this is not too much if you want all the extra efficiency gained by ReSharper. I tried both, the Express Edition and SharpDevelop, but they did not provide the amount of comfort I could get from the ReSharper setup.

Sebastian Dietz
I just want to say that this is what I do, and why I do it.
+3  A: 

Another option worth looking at is #Develop. It's open source and it has integrated NUnit support. It might not be as slick as Visual Studio in parts, but if cost is an issue then its worth a try.

KevB
I'll second that. It's definitely not as polished as VS but once I got used to the differences, the 3.0 betas are pretty nice and have some stuff that the VS Express editions don't. I've just noticed a new beta was released a few weeks ago. I'll have to check it out :]
Andrew Kennan
+1  A: 

I use Visual Studio C# 2008 Express to develop hobby programs and, recently, even a something or other my dad requests to automate stuff in the office. I don't do anything extremely complex though, and have not been "spoiled" by a Pro version of Visual Studio with ReSharper yet, so it may just be a case of "I don't know what I'm missing". =)

And yes, you can unit test with NUnit. You just can't integrate it into the IDE.

yuriks
A: 

If you develop at home software using tools like IDE lissenced to your company, the product of your work belongs entirely to your company. The only way out is to have an express written permission from your company that abandon such right.

+1  A: 

If you are a student you get loads of great MS software free with Dreamspark. Unfortunately, I don't have time to code now because I'm doing an Msc part-time.

John Nolan
A: 

Maybe the Microsoft Action pack is something for you! They now have a extra web kit with it with VS2k8 Std.

https://partner.microsoft.com/40016455

Henk
A: 

I don't believe you can legally use your company's licensed software at home (unless you are working on company projects). But I think the combination of the express editions of VS and SharpDevelop can work for home use.

Tundey
"""I don't believe you can legally use your company's licensed software at home""" --Why? What law forbids this?
foljs
Because most likely the software is licensed for company use.
Tundey
+17  A: 

A good way to get Microsoft tools for free is to attend Microsoft Events. In the past, I have gotten pro versions of VS 2005, VS 2008, SQL Server 2005 (standard), BizTalk. All for just attending pre-launch events.

Tundey
I did this too; got a free copy of VS 2008 Professional at one of these events.
Kyralessa
It doesn't have to even be a full-on Microsoft/MSDN Event. If you attend (or better yet, start) an INETA User Group in your area, I guarantee you'll have more free MS Stuff than you know what to do with. I run three meetings a month, and I STILL can't get rid of all of it.
John Dunagan
Definitely! At local users' group meetings I have frequently declined copies of MSDN-available applications during the "door prize" sessions so that others without subscriptions can get their own copies. +1
esabine
This is how I do it too. They only give out Standard versions of VS, not Professional, but it's still better than being restricted by Express versions.
Dinah
+8  A: 

If you want your project to be open source, you're probably interested in attracting collaborators and contributors. If the only way they can effectively participate in your project is with the same expensive toolset as you, you'll scare people off. You want a checkout of your codebase to be instantly open to tinkering by people with the free tools (Visual Studio Express, mono even).

Personally I use free software all the way at home. It may not have the polish and integration of visual studio, but in my opinion it's good to be exposed to something different from what you spend all your time at work using. (With that in mind, consider doing your project in something completely different to C#.)

timday
+5  A: 

I for one would never pay for development software at home. I use VS2008 with ReSharper at work and I love it for what we do there. However I have chosen to abandon .NET and microsoft altogether for my home projects. I'm not going to get into the whole linux/c/java/open source vs. microsoft discussion here, but I would not pay upwards of 500 EUR for development software, It's as easy as that.

If I did have to or wanted to do .NET code at home I would certainly go with one of the free alternatives such as VS Express and NUnit. I have colleagues that do, and are reasonably happy with it. I'm sure I would miss some of the functionality and full integration though...

As for the ownership of code, I'm aware of the practise with companies claiming ownership af all code written while employed, however I find this unacceptable, and luckily it is not the normal practise where I live and work.

EDIT: When I was a student I had the option of getting Microsoft software free or very cheap from the MSDN Accademic Alliance and took advantage of this several times. I don't remember them having vs2008 however and I can't check since I've lost (forgotten) my MSDNAA login. Often the software availlable there is an older version than the current availlable release. Still... it's a very good deal and a great initiative from Microsoft.

EDIT: For school kids and students the Microsoft Dreamspark program could provide Visual Studio 2008 SP1 (and other software: VS2005, SQL Server 2008 Developer, Win Server 2008) free of charge. You log on using your Windows Live ID and verify your student connection to see if you qualify for the service. I was not aware of this option but I just dowloaded it myself, completely free and legal :D

EDIT: As pc1oad1etter pointed out there may be restrictions on the Dreamspark license, non-commercial use etc. So if you plan to make monney on what you produce read the license greement carefully before you decide.

Sakkle
As of the last time I checked Microsoft had VS2008 and other latest software available through their DreamSpark program.
frgtn
You are quite right. Post updated...
Sakkle
There are restrictions on Dreamspark -- noncommercial use.
pc1oad1etter
See... I didn't know that. Commercial use really isn't that interesting to me personally so I'll stick with my Dreamspark license :)
Sakkle
"""I for one would never pay for development software at home."""More power to you.
foljs
A: 

Another option is go to microsoft events (im sure if you work with it you get invites now and then) they ususally give dvds with free stuff At least they did for Heroes when they release Visual studio 2008 :) Also as the other guy said, can you not use vs express and Nunit (or mbunit?) Cheers

Miau
A: 

Attend the INETA (www.ineta.org) User Group Meeting in your area. If you don't have one, find 5-10 other MS geeks and start one. Not only will it enhance your skill, but they draw among the attendees at the end of the meeting for stuff like that.

John Dunagan
A: 

Either just do it, I think MS would prefer you developing software for Windows than not.

Or use Qt + QtCreator: http://www.qtsoftware.com/

It's C++ but C# is similar enough that you'll be alright. And Qt makes C++ a lot less painful. And it's all free.

Max Howell
A: 

I use Remote Desktop over VPN and use my work computer for many personal projects (if VS Express doesn't have what I need).

j0rd4n
+1  A: 

For an open source project, stick with something that is freely available. NUnit is free for unit testing and works great. I have used it with c# .net express. A word of caution about the express editions: be prepared to stick with sql server compact or express. MySQL might be out of the question. You might be better of with sharpdevelop/NUnit

jle
+1  A: 

Form your own company and check out Microsoft's new program BizSpark!

Nice link :) thanks.
sirrocco
@sirrocco - you're welcome. My partner and I were looking at joining but our side business will be providing a service and that's a disqualifier - bummer!
+1  A: 

It really does depend both on the license that your company is using, and on what your company's policy is regarding using company-purchased licenses for non-company purposes.

One thing that you probably want to avoid is using a company-purchased license to do any paid work on the side. If you're doing that, purchasing your own software would be a good investment. You might even be able to take a tax deduction on the cost of the license, depending on where you live, at least in the US, which can make the prices sting a bit less.

I do just enough contract work on the side to make it worth my while to buy my own copy of Visual Studio and related tools.

Jeromy Irvine
At least in the US, business expenses are deductible on the income tax. How much of a discount this is depends on your tax bracket.
David Thornley
A: 

If you are only able to secure a license to use software such as Visual Studio on one machine, look into the possibility of using a work laptop. I have worked with several people who have a docking station, keyboard, large monitor, mouse, etc. set up at their desks, then just take the laptop home with them at the end of the day.

This approach has the added benefit of maintaining consistent local settings on your machine between your office and home environments.

tehblanx
And may fall afoul of agreements. I own non-work-related stuff I do on my own time with my own tools. Using a company laptop for my own stuff would require changing that agreement.
David Thornley
+4  A: 

Visual Studio has a per developer license. Microsoft is fine with you bringing a copy of VS home and using it however you see fit.

Your employer, however, may not be. It's their copy of Visual Studio. You'll have to get their okay to do it, like many others have said. And you'll have to remove the software if you leave the company, as you no longer own that license.

Darcy Casselman
A: 

The way I set up my projects, I can just build everything with a .bat file with only .NET 3.5 installed. Since you can build a solution file via MSbuild, I would just use emacs C# mode and build from the command line. I have my MSbuild files set up so it integrates with NUnit tests and generates an XML report. The MSbuild community tasks has pretty much all the stuff you'd need to get a good command line build process going.

Alex Fort
A: 

I may be totally off-base here, but here are what I see as the salient points of the original post:

  1. The nascent project will possibly be open source.
  2. The poster wants to legally use development tools without spending lots of loot.

The obvious answer to me is to use open source tools, but perhaps I missed the part where the poster said his project must be developed on VS, or .NET, or even Windows.

My first recommendation: when in Rome (open-source land), do as the Romans (er, other open source developers). First stop: a truly open language like Python, Ruby, PHP, or whatever floats your boat. Second stop: one of the outstanding free development environments out there. You'll love saving all the money, and expanding your horizons to more platforms is never a bad thing in our field. Plus, more experienced open source developers (who more often than not will not have any version of VS installed) can contribute to your project if they want.

My second recommendation: price out the premiere development tools not made by Microsoft. You'll find that they are free (as in the case of XCode for the Mac) or low-cost (as is the case with TextMate). This will reset your expectations, and hopefully motivate you to find a better solution. Microsoft tools may help you get the job done, but they are by no means the only way. It's even acceptable to mix and match: perhaps you buy your IDE but use a free database.

PS -- I primarily use TextMate on the Mac. I also use vi on my remote Linux systems.

runako
You seem to have missed the part where he states that he is a C# programmer. Also the part where he is asking specifically about VS and Sharp Develop.
foljs
I did miss the part where he said he is only a C# programmer, and doesn't care to learn in any other languages, and will only ever be a C# programmer. As to evaluating VS and SharpDevelop, I didn't get the sense that he had settled on a toolset (or else why ask the question?). So if one is still evaluating tools, why not cast a wide net?
runako
A: 

You can buy the "Academic/Student" editions secondhand. Legally, Microsoft's restriction on who the product is for only applies to the first sale, from Microsoft to the distributor or to the student. Who that distributor or student sells the product to is legally none of Microsoft's business, its called the "Right of First Sale". This gets you the full-featured product for a fairly affordable dollar value.

GWLlosa
A: 

I won a copy of VS2005 Standard by watching three webcasts and a copy of VS2008 from my users' group. I have purchased a copy of SQL Server 2008 Developers' Edition for my own research, which is the same as Enterprise edition except a slightly different license.

And I code it on this.

I do like the fact that ReSharper greys out usings and variables I'm not using. However, it also slows down the machine - and these are the only two things I've noticed it doing. So I happily live without it.

tsilb
A: 

Depending on your open source idea, how about giving Mono and Monodevelop on a Linux box or vm image a shot? It might actually help with cross-platform development.

Si
A: 

Why don't you try to convince your boss (or the guys at the IT department) that you need an extra license so you can also work at home when some projects call for it?

Or, you could bring your laptop to work, and ask for a license for it.

In both cases, you would be able to use the software to work on personal projects too.

(Except if you are wary that your boss will shove work to you to take at home).

foljs