Visual Studio Express 产品真的只适合“爱好者、学生和新手”吗?
我使用过Visual Studio Professional 2008,最近一直在测试免费的C# Express 2010版本。总的来说,我对它的免费功能以及它拥有的 VS 完整功能感到惊讶。我正在考虑将其用于商业程序,并且我知道许可证允许这样做,这只是它的描述 “非专业开发人员,如业余爱好者、学生和新手开发人员” 让我有点担心。
我有兴趣知道是什么阻止了它的“专业”,即:
- 您是否评估过 Express 版本,并发现缺少一个特定的有用功能,从而阻止您使用它?或者您最初使用的是 Express 版本,但由于缺少功能而升级到完整 VS?如果有,那是什么功能?
我搜索了类似问题并找到了列表完整版本 VS 和快速版本之间的差异,但我更感兴趣的是了解人们的个人体验。 VS 的许多额外功能似乎是在大型团队中工作的目标开发人员,因此我主要感兴趣的是来自单独或小型团队开发人员的意见,他们似乎没有那么令人信服的升级理由。
我个人遇到的限制是:
- 不支持扩展,尽管我仍然可以在 VS 集成之外使用 DotTrace、NUnit 和混淆器,尽管它有点不太方便。
- 有限的重构,尽管“重命名”和“提取方法”仍然存在并且我认为它们是最有用的。编辑:虽然我认为 Express 中没有“封装字段”曾经很烦人,但自动 getter 和 setter 的引入几乎消除了这一点。
- 多线程应用程序的调试更加有限。
- 编辑:另一个是你无法像在 VS 中那样在 Express 中轻松切换目标“任何 CPU/x86/x64”。这是可能的,但需要手动编辑项目文件才能做到这一点。
但到目前为止,优点似乎大于缺点。您发现有什么事情会破坏您的交易吗?
更新:几个月后,在发布了使用 Express 版本构建的产品后,确实可以使用 Express 版本进行专业编程。程序本身的限制非常小,可以解决,但我越来越意识到,“不支持扩展”确实是(唯一的)主要缺点。 VS 本身没有 Resharper、CodeRush 等,也没有源代码控制、分析、数据库浏览器或单元测试等。这更多的是对生产力的拖累,而不是破坏交易,但遇到一个看起来很酷的 VS 扩展却看到“Express 版本不支持”的通知,这很烦人。
如果其他人遇到同样的情况,我会首先评估您使用(或可能计划使用)的扩展程序,看看它们对您有多重要。如果您不使用任何扩展或可以在没有扩展的情况下工作而不会显着降低工作效率,那么 Express 就可以了,否则请坚持使用 Professional 版本。
I have used Visual Studio Professional 2008, and have been testing the free C# Express 2010 version recently. In general I'm amazed at how good it is for free, and how many of the full VS features it has. I'm thinking of using it for a commercial program and I know the license allows for that, it's just the description of it being for "non-professional developers like hobbyists, students and novice developers" concerns me a bit.
What I'm interested in knowing is what is stopping it being 'professional', that is:
- Have you evaluated the express edition, and found a specific useful feature lacking that stopped you from using it ? Or did you initially use the express versions, but upgraded to full VS because of a feature lacking ? If so, what was that feature ?
I've searched for similar questions and found lists of differences between the full VS and express versions, but I'm more interested in knowing peoples personal experiences with it. It seems like many of the extra features in VS target developers working in large teams, so I'm mainly interested in hearing from either solo or small team developers where it seems like there's less compelling reasons to upgrade.
The limitations I've personally encountered are:
- Extensions not being supported, though I can still use DotTrace, NUnit and an obfuscator outside of the VS integration, albeit it's a bit less convenient.
- Limited refactoring, although the "Rename" and "Extract Method" are still there and I think they're the most useful. Edit: Not having 'Encapsulate Field' in Express used to be annoying though, though the introduction of automatic getters and setters has pretty much canceled that out I think.
- More limited debugging for multi-threaded apps.
- Edit: Another is that you can't easily switch between targeting "Any CPU/x86/x64" in Express like you can in VS. It is possible, but needs manually editing your project file to do so.
But the pluses seem to outweigh the minuses so far. Is there anything you found was a deal-breaker for you ?
Update: To come back to this a couple of months later, and after releasing a product built with the Express version, it is indeed possible to program professionally with the Express versions. The limitations within the program itself are pretty minor and can be worked around, but I've increasingly come to realise it's really the "extensions not supported" one that's the (only) major drawback. No Resharper, CodeRush or the like, and no source control, profiling, database explorer or unit testing and the like within VS itself. It's more of a productivity drag than a deal breaker, but it is annoying to come across a cool looking VS extension only to see that "Not supported in Express versions" notice.
If anyone else is in the same situation, I'd evaluate the extensions you use (or might be planning to use) first and see how important they are to you. Express is fine if you don't use any extensions or could live without them without a significant drop in productivity, otherwise stick with the Professional version.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
我已经使用express 5年了,它拥有制作专业项目所需的一切。缺少一个重要功能,即可扩展的数据库资源管理器,例如,如果您需要从 MySQL 数据库生成实体框架模型。但为此我使用 Visual Studio Shell(也是免费的)。对于单元测试和源代码控制等其他内容,我使用其他工具。您确实不需要 Visual Studio 来拥有管理软件项目所需的一切。
I've used express for 5 years, it has everything you need to produce professional projects. There's one important feature that's missing, which is the extensible Database Explorer, e.g. if you need to generate an Entity Framework model from a MySQL database. But for that I use Visual Studio Shell (also free). For other stuff such as unit testing and source control I use other tools. You really don't need Visual Studio to have everything you need to manage a software project.
没有加载项=>没有 ReSharper =>没有骰子。
No add-ins => No ReSharper => No dice.
Express 版本的最大问题是没有任何源代码控制。没有它你就无法专业地工作,即使你是一个孤独的自由职业者。当您搞砸了某些事情并想要转到以前的版本或只是想比较不同的修订版本时,保留项目的更改历史记录至关重要。
另外,我认为在 Express 中,您不能在同一解决方案中拥有 Web 和桌面应用程序,也不能进行其他类型的项目组合。我对此不太确定,因为我不使用 Express(出于第一个原因:))
The biggest problem with the Express version is you don't have any source control. You can't professionally work without it, even if you are a lone freelancer. Keeping a change history on a project is vital when you mess something up and want to go to a previous version or simply want to compare different revisions.
Also I think in Express you can't have web and desktop applications in the same solution, or do other types of combination of projects. I'm not really sure about this one, because I don't use Express (for the first reason :))
其他答案已经掩盖了这样一个事实:它很可能就足够了,但如果您不仅仅是爱好者、学生或新手,只需注册Microsoft BizSpark 计划。
您可以免费获得所有工具(Visual Studio Ultimate、Team Foundation Server、所有 Windows 版本等),而且您甚至不需要是一家公司。注册非常简单且不复杂。
唯一的要求是(取自主页):
这不是广告。我们对该计划非常满意,并获得了我们需要的一切。只是想让人们知道它的存在。
附加信息:
Other answers have covert the fact that it can very well be enough, but if you are more than a hobbyists, students or novices, just get enrolled into the Microsoft BizSpark program.
You get all the tools for free (Visual Studio Ultimate, Team Foundation Server, All Windows Versions etc.) and you don't even need to be a company. Enrollment is super easy and uncomplicated.
The only requirements are (taken from the homepage):
This is not an ad. We have been very happy with the program and got access to everything we needed. Just wanted to let people know it existed.
Additional info:
我已经使用 VS Express 好几年了,但最近升级到了 VS Ultimate。在 Express 中没有什么是您做不到的,但完整产品中的功能集成使一切变得更加方便。
当您在同一个解决方案中拥有源代码控制、单元测试、性能/代码分析、安装程序时,它可以节省大量时间并避免在不同程序之间跳转的麻烦。对我来说,另一个大问题是无法混合分布在不同 Express 版本中的功能,例如将 ASP.NET 与 WinForms 混合,甚至将 VB.NET 与 C# 混合。
我经常使用 Express,它是一款很棒的产品,但是当我卸载十个程序并用一个程序替换它们的那一天,我感到非常高兴。
I had been using VS Express for several years but I recently upgraded to VS Ultimate. There is nothing that you cannot do in Express, but the integration of features in the full product makes everything more convenient.
When you have source control, unit tests, performance/code analysis, installers all in the same solution, it saves a lot of time and hassle jumping between different programs. Also one big issue for me was not being able to mix features that are spread across the different Express editions, such as mixing ASP.NET with WinForms, or even VB.NET with C#.
I got a lot of use out of Express, it's a great product, but I was very happy the day I got to uninstall ten programs and replace them with one.
优点:
缺点:
The pros:
The cons:
专业并不是这里的一大进步 - 终极才是。例如,VS2010 Ultimate 附带了大量分析器之类的东西。例如,他们将 Professional 赠送给任何老学生。
Professional is not the big step up here - Ultimate is. VS2010 Ultimate, for example, comes with bunches of profilers and that kind of thing. They give Professional away to any old student, for example.
只有一个优点:成本。其他所有差异都是减号(或者至多降低了最小有用系统的成本)。这意味着,如果额外的功能物有所值,请购买更高端的版本。
免费的低端版本非常适合(正如他们所说)学生、业余爱好者和新手。学生通常没有多少钱,而业余爱好者和新手往往不想在他们的爱好和介绍上花那么多钱。
然而,软件专业人员通过编写软件来赚钱,如果他或她变得更有效率,想必会赚更多的钱。假设我们的专业人士赚了可观的钱,那么与收入相比,VS 的高端版本的成本并不大,如果它能带来哪怕是适度的生产力提高,那也是值得的。
当你为了钱而做某事时,不要试图以便宜的方式做太多事情。在这种情况下,花费更多的时间和不便做事将花费真金白银,而避免这种情况是值得的。
There's only one plus: the cost. Every other difference is a minus (or at best reduces the cost of the minimum useful system). That means that, if the extra features are worth the money, buy the higher-end version.
The free lower-end version is great for (as they say) students, hobbyists, and novices. Students often don't have much money, and hobbyists and novices often don't want to spend all that much money on their hobbies and introductions.
However, a software professional is making money writing software, and presumably will make more money if he or she becomes more efficient. Assuming our professional is making decent money, the cost of an upper-end version of VS isn't large compared to revenues, and if it leads to even modest productivity increases it's worth it.
When you're doing something for money, don't try to do things too much on the cheap. Taking more time and inconvenience to do things will cost real money in that case, and avoiding it is worth real money.
Microsoft 对这些 Express 版本的营销方式可能是向用户(任何用户)引入 Visual Studio 风格。稍后,让他们加入更强大的版本。此外,Express 版本允许您在任何地方编写代码,而不必担心许可部分。您可以使用它们来尝试您的测试台项目、社区项目等。我必须再次重申,免费许可是 Express 版本的最大吸引力
Microsoft's marketing approach to these Express editions may be is to introduce Visual studio flavors to users (any user). Later, bring them on board with more powerful versions. Also, Express editions allows you to write code anywhere without getting worried about licensing part. You can use them to try out your test bed projects, community projects etc. I must re-iterate again that free licensing is the biggest draw towards Express editions
我发现的唯一实质性差异是代码控制的集成和创建异构项目的能力。如果您是唯一的开发人员,那么第一个问题并不是主要问题。对于 Express 版本,您可以使用您喜欢的任何代码控制机制,只是没有内置。
如果您想在同一项目中使用 C++、C# 或 VB 的某种组合进行开发,第二个问题只是一个问题。您至少需要 VS2010 Professional 才能执行此操作。鉴于 C# 的广泛功能,绝对需要在同一项目中使用 C++ 或 VB 的可能性极小。但是,如果您在 C# 项目中需要使用 C++ 来实现某些低级 API,或者拥有旧版 VB 系统,并且需要 C# 或 C++ 中的某些功能,而这些功能在 VB 中很难管理,那么就会存在这些情况。
正如一位制造赛车发动机的朋友曾经观察到的那样:速度需要花钱。你想开多快? Express 是免费的,其他的可能会很贵,尽管 VS2010 Professional 的价格随着 VS2012 的出现而大幅下降。
The only substantive differences I've found are the integration of code control and the ability to create heterogeneous projects. The first is not a major issue if you are the only developer. With the Express versions, You can use whatever code control mechanism you like, just not built in.
The second is only an issue if you want to develop using some combination of C++, C# or VB in the same project. You need at least VS2010 Professional to do that. Given the extensive features in C#, the absolute need to use C++ or VB with it in the same project is highly unlikely. However, those situations exist if you need C++ in a C# project for some low level API or have a legacy VB system and need some feature from C# or C++ that is just too difficult to manage in VB.
As a friend who built racing engines once observed: Speed costs money. How fast do you want to go? Express is free, the others can be pricey, although the price for VS2010 Professional just plummeted with the advent of VS2012.