56

Visual Studio Express is a set of freeware integrated development environments (IDE) developed by Microsoft that are lightweight versions of the Microsoft Visual Studio product line. A comparison is available here. If you are a student you may want to take a look at DreamSpark.


53

Roslyn also appears to have the ability to "script" code and compile/execute it on the fly (similar to the CodeDom) but I have only come across limited uses for that type of functionality in my experience. On-the-fly compilation and execution is the key benefit of Roslyn. I think you may be undervaluing the benefit of this feature because you have never ...


53

You don't need to tell them how to structure their projects. Instead, make it a hard requirement that you can build the system from source by running one single script, without getting any errors. If that scripts runs Visual Studio or Msbuild or some other tools, and if those are called once, 50 or 100 times should not matter. That way, you get the same "...


40

Because they did a good job at separating the user model from the programming model, that's why. The same reason why most apps don't ask you, for example, Please enter a varchar(200) representing your name. Take a lesson from that.


39

It looks like size of your client is important. From Visual Studio 2013 and MSDN Licensing Whitepaper - November-2014 page 10: "Example 2: A Fortune 500 firm has outsourced the development of its store-locator mobile application to a small agency. The application is not an open source project. The agency has 5 employees working on the project and would ...


37

The biggest difference is that Express editions do not support plugins (No ReSharper, no add-ons). Additionally, the non-express versions are all combined, meaning you don't have to switch back and forth to get features from individual express versions if you have a project that crosses web, desktop, etc. UPDATE 8/6/2015 - If you're looking for a free ...


37

There would have been a simple way which had kept your new development separate from the main branch without bringing you into this unfortunate situation: any change from the trunk should have been merged into your dev branch on a daily basis. (Was your client really so shortsighted that he could not anticipate that your branch needs to be remerged back ...


27

All arrays and data-structures are indexed based on zero, not just in .NET. Array indexes are numbered for the computer, text lines in a document are numbered for us. See screenshot :)


25

This is kind of a "have you stopped beating your wife?" question. While there are Microsoft products that cost thousands of dollars, there are plenty more (from Microsoft) that are free, always, to everyone (eg Express) and ways (legitimate, real, ways) to get the expensive products for free. See https://softwareengineering.stackexchange.com/questions/82785/...


25

TL;DR: no, Microsoft are not discouraging the use of 'var' in C#. The image is simply lacking context to explain why it's complaining. If you install VS2017 RC and open up the Options panel and go to Text Editor -> C#, you'll see a new section: Code Style. This is similar to what ReSharper has offered for a while: a set of configurable rules for coding ...


25

You can do time-consuming things like writing a wrapper around the external API that leaves out your undesired operations, but nothing beats training and code reviews, because whatever standards or technical measures you put in place, people will find creative ways to get around them. For example, we have several services written in Scala, and one of the ...


24

It doesn't have to be in its own file, but your team should decide on a standard and stick to it. Also, you're right that "Go to definition" takes you to the interface, but if you have Resharper installed, it's only one click to open a list of derived classes/interfaces from that interface, so it's not a big deal. That's why I keep the interface in a ...


24

Yes - I can think of two primary benefits: Beyond its primary functional purpose (i.e. to reduce code verbosity), the 'Using' statement list at the top of a code file can tell future readers (especially those without Resharper) which namespaces are (or at least were) relevant to that code file. If you actively prune this list, it can act as a better ...


23

It looks like you've fallen into some of the common pitfalls, but don't worry, they can be fixed :) First you need to look at your application a little differently and start breaking it down into chunks. We can split the chunks in two directions. First we can separate controlling logic (The business rules, data access code, user rights code,all that sort of ...


22

There aren't any performance benefits, if that's what you mean. All references in an assembly are fully qualified; the compiler merely uses the references you provide in your code to fully qualify identifiers, so the only impact of unused references in your source code is a slight decrease in readability (why is this reference here?), and a trivial ...


22

There are several methodologies that have evolved over the years to deal with these issues you've mentioned, which are, I agree, the two main issues that UI frameworks have had to address in recent years. Coming from a WPF background, these are approached as follows: Declarative design, rather than imperative When you describe painstakingly writing code to ...


21

There is a difference between counting and indexing. The index can start at any number (some languages support that), but for many reasons it is most often practical to have it start at zero. Counting also starts at zero, but as soon as one does count a set that is not empty, the first element is 1, and so on.


21

Recently, we migrated nearly all the source code in my company into a single solution. Why? Originally, we had dozens of solutions. Some projects from a solution reused projects from another one, and nobody cared about using a package manager. The day you substantially change a project which is used nearly everywhere, expect hours and hours of lost work ...


18

LightSwitch is for one kind of app and one kind only - a forms-over-data app. One where the ui is pretty much driven by the schema of the data, and you want to offer essentially CRUD to that data. It lets people without a lot of coding experience wire up forms to serve that purpose. Its big advantage is that when the app starts to grow organically and get a ...


17

There is a VERY long, yet very informative, post by Joel Spolsky on his blog that explains some of this... Basically it amounts to the notion that large corporations with tons of money will pay that hefty fee. The mid sized and smaller companies will go for something cheaper, and the tiny shops will use the free version (or the expensive version acquired ...


17

Process that people should be doing on a job as a new hire Initially look at the code Small bug fixes Bigger bug fixes Feature Requests - Adding something to an existing piece of the puzzle New things - Creating something from nothing Rushing a green developer with no domain experience too far too fast will cause way too many problems. You're going to get ...


17

There's no obvious option for it in the UI, but if you put ,b after your watch variable name, it will show the binary representation.


16

All that stuff on the View menu? Set them to collapse. Do this by clicking the push-pin/thumb tack and let the windows collapse back to the sidelines. This gives you a lot more screen space for the important stuff, and if you need it, mouse over the tab and it slides out. The visual cue that the tab will auto-expand/collapse, or stay out all the time is the ...


16

You don't have to, but I find that Visual Studio sometimes looses track of what assemblies were built when. When that happens, you end up with stale assemblies and a bad debugging experience (when the code and symbols don't match). As result, I simply do a re-build every time (this does a Clean + Build). This way, I don't rely on Visual Studio's hit and ...


16

Name the working directories differently. That is, if your project is titled "MY_PROJECT," create a different working directory for each branch. If there is one branch named "dev," then you'd need a directory for trunk and a directory for dev, like this: ~/henginy/projects/MY_PROJECT-trunk ~/henginy/projects/MY_PROJECT-dev


16

I am using this http://visualstudiogallery.msdn.microsoft.com/f3f23845-5b1e-4811-882f-60b7181fa6d6 Updates your title to for example: Development\myproject or Main\myproject or Release\myproject Hope it helps


16

Short answer: Your link is good, but you are looking in the wrong place. A good reference to compare Express with Standard is Comparing Visual Studio and Visual Studio Express 2012 for Web edition. In general, the Express edition is lacking all design tools that you may need for architecture. In prior VS Express versions, there was also lack of the NuGet ...


15

The Express versions The free versions of Visual Studio are "degraded" version of their big brother, each dedicated to a specific task (or language for 2010 versions). "Degraded" because Express versions do not support the whole Visual Studio plugin ecosystem. They are great if you are on your own, or even within a small team of developers. They are freely ...


15

I think you should keep them separate files. As you said, the idea is to remain testable and interchangeable. By placing the interface in the same file as your implementation, you are associating the interface with the specific implementation. Should you decide to create a mock object or another implementation, the interface will not be logically separate ...


15

First point of fact is that the solution file pretty much magically becomes a MSBuild file when MSBuild executes it -- which is what happens when you build the solution in visual studio. In addition, all those project files are just msbuild files managed by visual studio. In fact, the project files handle most of the real dirty work here no matter if you are ...


Only top voted, non community-wiki answers of a minimum length are eligible