Silverlight 2 Beta 1 Released
Microsoft Silverlight Tools Beta 1 for Visual Studio 2008 has been posted to the Microsoft Download Center.
This download will install the VS integration (new project templates, debugging, etc..) as well as Silverlight 2 Beta 1 and the Silverlight 2 SDK Beta 1.
Tags: visualstudio, dotnet, silverlight, beta
Visual Studio Links #2
I changed the idea of these posts from once a week to a few times a week because the list gets a little long if I wait a week.
.NET Mass Downloader 1.2 introduces the ability to work behind a proxy server. The post points to an article on CodePlex that shows how to get this working with VS.net Express as well.
Visual Studio Extensions for Windows Sharepoint Services 1.1 has been released. Currently for 2005 only but 2008 should be coming this summer.
Visual Studio Team System 2008 Database Edition Power Tools has been released.
As previously mentioned, JetBrains has started the EAP for ReSharper 4.0.
This is a good article on How to Submit Problems or Bugs to Microsoft about VS that discusses alternatives to opening a case with support.
John Robbins discussed the new version of SOSEX that has been released. SOSEX, written by Steve Johnson, provides useful extensions to WinDBG. Anyone who uses WinDBG quite a bit should look at this. John’s post also points to his prior description of SOSEX, which is a good read as well.
The Visual Web Developer team blog has an overview of the tooling that will be accompanying the next release of ASP.net MVC.
Nannette Thacker discusses the installation of the Ajax Control Toolkit in VS.
The Visual Web Developer team shows how to get Javascript Intellisense working with jQuery.
Maarten Balliauw shows how to use performance analysis tools in VS 2008.
ScottGu pointed out Charlie Calvert’s blog post on the Expression Tree Visualizer for LINQ. This is very cool and is actually one of the online samples for C# in VS 2008. I had missed this one.
Bart De Smet posted a good explanation of creating and debugging custom MSBuild tasks.
Pablo Galiano posted that a new version of the Guidance Automation Extensions has been released and now supports VS 2005 and 2008. Software Factory goodness for the masses.
Scott Guthrie speaks on the .Net 3.5 Client Product Roadmap here. Improved .Net Framework Setup integration with 3rd party setup products and improved cold start times are my favorites.
Not really VS specific but here is a good article on monitoring IIS application pool restarts.
If you are a college student, look here to find out how to get VS 2008 for free.
Quan To posted a few links to articles on migrating Visual Studio packages from 2005 to 2008.
Tags: visualstudio, .net, dotnet, visualstudiolinks
Getting Free Software From Microsoft
Microsoft wants developers to write applications for Windows. This is no secret. What is not publicized very well, in my opinion, are the various ways that developers can get the tools they need to develop these applications for free.
Yesterday, I received my absolutely free, no strings attached, completely legal version of Visual Studio 2008 Professional via DHL. I was given this because I showed up to the Visual Studio 2008 Installfest at the Houston .Net User’s Group just before Christmas. For the effort of showing up, Microsoft also compensated me with all the pizza I could eat, all the Halo 3 and Guitar Hero I could play, and a tshirt.
If you missed out on this, Microsoft is having the official Visual Studio 2008 launch in a city near you coming very soon. I know that 2008 has been out for a while now, but this is the official launch party that is combined with Server 2008 and SQLServer 2008. I am sure they will be giving out more free stuff. The Houston event is March 20 and I’ll be there. You can register here for any of the scheduled cities.
Come on, break free from your cubicle for a day. You know you want to.
Tags: visualstudio
ReSharper 4.0 Early Access Program
JetBrains has announced the EAP for ReSharper 4.0. The product supports most of the C# 3.0 features, but sadly still no LINQ support. They have added quite a bit to ReSharper, in addition to the new language features. I am looking forward to the final release.
Tags: resharper, jetbrains, visualstudio, visualstudiodotnet
This Week in VS #1
This is the first post in what I am hoping will be a weekly recurring theme to aggregate interesting topics I come across concerning Visual Studio.
Koen Verheyen created a macro for optionally attaching debugger to IIS or the web server that ships with Visual Studio. Quite handy.
Sara Ford does a VS tip of the day. Today’s tip was about type-ahead selection in Solution Explorer. My favorite tip so far is that ctrl+tab brings up the IDE Navigator. This works in 2005 and 2008 but the window is much better in 2008. If you keep the ctrl button pressed, you can navigate among the editor windows. The arrow keys bring you to the tool windows. Combine the IDE Navigator with today’s tip and keyboard enthusiasts can open new files in the solution without touching the mouse.
Keyvan Nayyeri is releasing a new book on Visual Studio Extensibility, a topic near and dear to my heart. This book covers 2008 and looks good from what I have seen so far. It looks like it will be out next month.
Shawn Burke posted a good explanation of setting up 2008 for debugging .Net framework source code.
Scott Guthrie explained the new hot-fix rollup for 2008 web development. BTW - congats to Scott on his promotion to VP.
Tags: VisualStudio, thisweekinvsdotnet
.Net Mass Downloader 1.1 Released
I forgot to include this in my post yesterday but John Robbins, from Wintellect, has announced version 1.1 of.Net Mass Downloader. This handy tool allows you to download all available source code for the .Net framework, all at once.
VS.net 2008 will download the code once it is configured, but only a little at a time. For those who want to peruse the code at their leisure, this would not be acceptable.
Tags: VisualStudioDotNet, VS.net, massdownloader, dotnetsource
Cool Visual Studio Things I’ve Run Across Lately
StickyNotes is a VS 2008 package that adds notes to solutions, projects, and project items. The information is stored in the solution and project files. This is functionality that I have always thought would be nice to have in Visual Studio. The coolest part of this is that the tool window is not WinForms, it is WPF. Written by Pablo Galiano and hosted on MSDN Code Gallery. Sadly, no source code is available yet but it is promised soon.
MSDN Code Gallery is a new site that was introduced by Microsoft. The site already has many good examples and pointers to good information. It looks strikingly similar to CodePlex, only not so green. I am not sure why these sites needed to be separate but I am sure someone has a good reason.
Scott Hanselman has put up a post with various VS themes. It has become very fashionable to show off your custom themes lately. I sort of like the Jedi Scheme. The name is certainly a can’t miss.
Microsoft has just released a CTP version of the new XSLT Profiler for VS 2008. My recent tribulations with debugging xslt have given me a huge appreciation for tools in this area.
Tags: VisualStudio, addins
ReSharper 3.1 Released
I am back, after a pause for the flu and the Christmas whirlwind tour.
Jetbrains has released ReSharper 3.1. Although it does not contain the C# 3.0 functionality, it does contain some speed increases. Release notes can be found here.
If you have recently purchased 3.0, this is a free upgrade. If you haven’t purchased 3.0, purchasing this release will give you a free upgrade to 4.0 when it is released.
I highly recommend this add-in for Visual Studio.
Tags: Visual Studio, ReSharper
Ease Versioning Multiple Assemblies by Splitting Up AssemblyInfo
Most .Net project deployments are made up of multiple assemblies and it is common to version all assemblies in a given release with the same version numbers. Since changing each AssemblyInfo.cs file can be time consuming and error prone, most projects take one of two approaches to solving the problem:
- Generate AssemblyInfo.cs files using an nant build scripts and setting properties.
- Use a single AssemblyInfo file and have all projects reference that file.
Both approaches have pluses and minuses. Generating AssemblyInfo.cs can be hard to setup and get correct but is more flexible. Using a single AssemblyInfo.cs and have each project reference it is easier but all projects will have the same information in the assembly properties.
A hybrid approach that many developers overlook is splitting AssemblyInfo.cs into an assembly specific version and a product wide version. Each Visual Studio project would contain the standard AssemblyInfo.cs file that is generated by the project templates. The difference would be that product wide attributes are removed. See the sample AssemblyInfo.cs file below for an assembly named ClassLibrary1.dll:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ClassLibrary1")]
[assembly: AssemblyDescription("Assembly for ClassLibrary1")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("e96237d4-2420-4dc7-aed2-43a121bd0221")]
Notice that several of the standard attributes have been removed. Those attributes are moved to a file in a central directory so that it can be changed once for several projects. The following is the contents of a sample file containing these attributes, named ProductAssemblyInfo.cs:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyCompany("My Company")]
[assembly: AssemblyProduct("My Product")]
[assembly: AssemblyCopyright("Copyright © 2007")]
[assembly: AssemblyTrademark("")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.1.0")]
After creating the product level AssemblyInfo, multiple VS.net projects can reference it and pull in those attributes. Below is a snapshot of my Solution Explorer within VS.net 2005. Each project has their own AssemblyInfo.cs but each also has a reference to ProductAssemblyInfo.cs. Once the solution is rebuilt, each assembly will have the combination of the attributes in ProductAssemblyInfo.cs and the specific AssemblyInfo.cs.
This approach allows each assembly to have a separate AssemblyTitle, AssemblyDescription, GUID, and ComVisible Setting, while maintaining the ability to change the version numbers and company information in one place and have all assembly builds pick up the updated attributes.
If you are using a continuous integration server like CruiseControl.net, a build dependency can be set on the directory containing ProductAssemblyInfo.cs for each individual build in your product deployment. That way, the entire product will rebuild automatically with new version numbers after ProductAssemblyInfo.cs has been modified.
Tags: cruisecontrol.net, .net, c#, versioning, builds, deployment
How Not to Respond to User Requests for Functionality
I love ReSharper. I am using Visual Studio 2008 and Jetbrains does not have a released version of ReSharper that completely works with the new language features in C# 3.0. This morning I was looking at the ReSharper newsgroup to see if there is any discussion about the upcoming 4.0 release and I did find an informative discussion. A user of ReSharper was met with an interesting reply when he asked when the product would support the C# 3.0 language features. I have removed names and links that would identify people because the purpose of this post is not to embarrass people.
Hello <potential user>,
It seems to me there are two parts in the topic.
First, current state of ReSharper in regards of VS2008 I tried to address
in my post here: <link to post at employee’s personal blog>Second, why do you need to use C# 3.0 right now? It is not mature enough,
it is not tested in industry, pitfalls and glitches are not known yet, there
are plenty of scepticism out there on the web and nobody really knows how
to work with it. Well, there are some marketing and other "it’s so cool"
stuff on the web, but do you believe that LINQ or extension methods will
do their job better than existing solutions like ActiveRecord (http://www.castleproject.org/activerecord/index.html)
and other alternative, non-microsoft tools? We really want to know this,
honestly. There is so much buzz about how cool "var" keyword or automatic
properties are, but with ReSharper you almost don’t need them :)
So, could you please tell us, why do you need to use VS2008 with C# 3.0 right
now?Sincerely,
<employee>JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
After a few users chimed in with WTF types of responses, <employee> realized that this was probably not the correct way to respond and attempted to rectify the situation with the following reply.
Hello <another potential user>,
My apologise, I didn’t mean to abuse anyone. I just expressed my own opinion,
it is community newsgroup after allMay be I was too much expressive…
Anyway, I’m really interested in the reasons people are so anxious about
VS2008 and C# 3.0. And more than that, I’m interested why people need it
*now*! It was out there for a while, in a CTP, then Beta. Release in not
something that significantly changes products like VS2008 or .NET 3.5.For me, I have to use VS2008 and C# 3.0, so that ReSharper 4 will be good
in terms of usability, feature set and language support. If I were developing
business application, I’d wait several months while constantly monitoring
the web to understand the problems I may have when I upgrade. That’s how
I would treat VS2008 release if I were on different project. On the other
hand, if I were on the hobby-project or something research-like, I’d be using
Orcas since any time it was usable to write code and do not crash too often.
For me, "RTM" mark doesn’t change much.Sincerely,
<employee>JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
First, I would like to say that ReSharper is an outstanding product and I have a great deal of admiration for the Jetbrains developers. As a Visual Studio addin developer, I realize how difficult the functionality is to develop that they have in their product.
That said, these were both terrible posts. I realize this employee was voicing his own personal feelings but it was on a newsgroup for the company’s product and the signature of the post makes it seem like an official company stance on the matter.
There are two major roles in software development: users and developers. I know there are actually many more than that, like QA staff, technical writers, project managers, etc. but I am lumping all of those roles into developers for this discussion. If you are in the developer category, people in the user category tell you the functionality they want. Your job, as a developer, is to evaluate those requests and to deliver that functionality if it is cost effective to do so. Obviously, you can’t spend a huge amount of money working on a feature that will never make back your investment in that feature.
However, in this case, users want the product to work with the latest C# language features and I do not think that is unreasonable for them to expect. There was a long beta period for VS.net 2008 and I know that the VS.net SDK documentation was not kept up to date with the beta releases, which makes it difficult for addin and package developers to release products simultaneously with the Visual Studio release.
Yes, Visual Studio betas are not always stable. Yes, supporting C# 3.0 was very difficult even for the Microsoft compiler developers. That is why people are paying for ReSharper. The product does amazing things that are difficult to develop. If it were easy, nobody would need to buy the product. Instead, they would develop it themselves. In fact, there is a value proposition that every potential customer of every development or support tool product weighs when they look at options to fill a need.
"Will it cost me more to develop the equivalent functionality than it will to buy it?"
In the case of ReSharper and Visual Studio addins specifically, the question is more like
"Will this product pay for itself by increasing my productivity to cover the cost of the initial expense?"
If you need to use C# 3.0 features, the answer currently for ReSharper is more questionable than it has been in the past.
Telling your users that the features they want are not important right now is a sure way to get them looking at your competitors.