How feasible is it to use Eclipse to develop .NET applications? Is it best just to go with Visual Studio?
Update: I am not especially concerned with the cost and I am using Windows, not linux. I am mostly trying to avoid having to use two different IDEs.
Another way of asking this question is "are there any good Eclipse plu开发者_运维问答gins for doing .NET development". Unfortunately, the answer appears to be "no".
You can get a free version of Visual Studio (Express); that's probably a better way to go than Eclipse.
I've only used Eclipse once, for a few minutes, back when a 900MHz CPU was top-of-the-line. So I don't claim to know what it does or how well it does it.
That said, I see no problem at all with using a non-VS dev environment. Almost every C# developer at my company uses Emacs (there's also a VIM minority). We've got C# modes, we've got jump to definition, block folding, compilation modes, etc., all from our "editors". (I hesitate to use that word since I can't see a clear distinction between "editor" and "IDE".) There's not much special that VS can do that other environments can't, and 10+ years of experience and configuration easily trumps that.
The one thing special I can think of is the debugger: VS2005 had a standalone debugger, and VS2010 it's only available as part of the IDE (with a few new features), but that's it. But you can still launch VS2010 and connect to a running process just fine, even if you aren't otherwise using VS2010 for anything. The net effect of the slightly awkward debugger situation is mostly that I write more unit tests, and nobody seems to be complaining about that.
One thing that people like to bring up is "Intellisense". I've used VS in the past, and used Intellisense, and it's neat, but then I missed dynamic-abbrevs. Today I use Emacs and use dynamic-abbrevs and rarely miss Intellisense. I think dynamic-abbrevs are more useful once you know the language/stdlib you're working with. But I certainly don't think anybody has a monopoly on a One True Way to do code completion. Both are useful.
VS seems to do best the more you live only in Microsoft's world: .NET, TFS, etc. If you're using Microsoft-everything all the way down, it's probably pretty good, but the further you step away from that, the worse it gets. A more general environment like Emacs provides very good support for all kinds of things. (e.g., Do you want to learn a new UI when your next project uses a different VCS, or scripting language? The cost of that is only zero if your knowledge is worthless.)
So use whatever makes you productive, and don't let anyone tell you that you need Visual Studio Express to write a C# program.
It's very feasible. All the .NET compilers are standard stdin/stdout console apps that can easily be plugged in to most modern IDEs like Eclipse. You can even use the console app msbuild.exe if you want to use MSBuild (*.sln, *.csproj, etc.) as your build/make system. So if you're most comfortable working in Eclipse, I wouldn't hesitate to give it a shot.
A few Visual Studio features you may miss are:
- Integrated debugging.
- Excellent Intellisense support.
- GUI designers. (For WPF, Silverlight, web apps, and WinForms.)
So if any of those are of high importance to you, then it may be worth using Visual Studio.
And there's nothing wrong with splitting time between Visual Studio and Eclipse. For example, you may decide to prototype and debug in Visual Studio, but do your core development work in Eclipse.
You might find this thread interesting and useful:
http://forums.whirlpool.net.au/forum-replies-archive.cfm/425594.html
If you are looking for a free IDE, you might look at the Express versions of Visual Studio, or the open source SharpDevelop project.
To answer you question, take a look at the Improve plugin for Eclipse.
This topic covers your question as well.
It's important to remember that .Net and Visual Studio are very much developed together to work best together. If you can go with the express edition of visual studio, you should. Anything else doesn't really give you what you need to accurately evaluate just .Net as a platform.
That said, I can understand a developer used to Eclipse not wanting to install a separate IDE just to try out .Net. You might even normally run linux. With that in mind, a quick google search for mono eclipse
turned up several promising results. You could also try Monodevelop directly.
Imagine that when you were doing work in Unix and you were using Visual Studio to do your coding. You have to upload your files to Unix to get it compiled and linked. If there is any error, you have to fix it in your PC and then repeat the process. How productive would you be? I know this is the reverse extreme comparison but one has to think of using the most appropriate tool for your team. :p
The other consideration you should make is that when you go to a client or your colleague, do you expect that he or she has Eclipse installed in his/her environment?
Does this help you make a decision? My 2 cents.
Cheers
精彩评论