Showing posts with label Visual Studio. Show all posts
Showing posts with label Visual Studio. Show all posts

Thursday, 22 March 2012

Visual Studio 2010 & VS11 Side by Side on Windows 8 Consumer Preview

As part of my talks on VS11, I wanted to show some of the new templates that are shipped out of the box in Dev11 (VS11). As I detailed in my previous post, the new templates are only available when you are running on Windows 8.

This posed a bit of a dilemma because I was also doing a session on building a hybrid Windows Azure application. The Azure tooling story for VS11 is that it will be included at a later date but it didn’t ship with the beta. For the moment, Azure development is done in VS2010.

So I decided to bite the bullet and install a new copy of Windows 8 Consumer preview and see what happens when I install VS2010 and VS11 side by side. It was a lot less painful then I thought. Your mileage may vary depending on your installation.

The order of installation was

  1. Visual Studio 2010
  2. Visual Studio 2010 Service Pack 1
  3. Visual Studio 11 Beta
  4. Some Windows configuration voodoo
  5. Windows Azure SDK 1.6

I installed Visual Studio 2010 first and then updated to SP1. This also allows me to demo round tripping quite easily. After that, it was over to VS11 Beta and install that. VS11 Beta did its install thing quickly and I was good to go from a basic install standpoint. Both IDEs started as expected and no issues. Didn’t get any errors or collisions so I was happy at this point.

Taskbar

Now we get to the tricky side of the install. If you are used to working with the Azure SDK, you normally fire up the Web Platform Installer to install it. But Windows 8 doesn’t ship with .NET 3.5 activated. The install will fail even if you select to install .NET 3.5 for Windows 8. Of course, the error was a bit cryptic as they usually are so I tried configuring some stuff and manually enabling .NET 3.5 etc. Finally after some swearing and muttering I decided to read the manual! This limitation is detailed on the install notes.

WebPi

So I followed the details on installing the Azure tooling on the Windows Azure development site.

IISet

I configured the features as detailed in the install notes and added some of the additional ones that I use such as IIS6 compatibility. I also installed SQL Server 2008 R2 Express edition without the tools as I already have SQL Server 2012 running on the default instance with full tooling support.

Once I had configured it, I installed the Azure tooling in the following order

  1. WindowsAzureEmulator-x64.exe
  2. WindowsAzureSDK-x64.exe
  3. WindowsAzureLibsForNet-x64.msi
  4. WindowsAzureTools.VS100.exe

WorksOnMyMachineAzureProjectThe installation went smoothly and I opened up VS2010 and viola there was the Azure tooling and I could work away. The experience was ok, once I read the manual (honestly who reads the manual!).

As with all beta software there are a full caveats and not everything will be compatible with your installation such as installing the async CTP for VS2010. This has caused a few issues for people so be careful.

Tuesday, 20 March 2012

The best of VS11 (Talk from Dev11 Launch)

This evening I have just finished a talk on the best bits of the new VS11 beta entitled turned your Web Development up to 11 (thanks to Glenn Henriksen for the inspiration). Coincidently Scott Hanselman, also published a post today while I was speaking with some of the stuff that I was talking about.

Anyways, here is a quick recap of the session for those that missed it.

The new IDE

The new VS11 IDE has a slimmer new design with Metro styling all the way through it. It has a faster startup time in its Beta version as compared to its older brother VS2010 when both are in their out of the box just installed configuration. I currently have VS2010 SP1 and VS11 Beta running on Windows 8 Consumer Preview side by side without any problems. It makes it very easy to show the new project round tripping feature (discussed later) and removing some of the pressure of trying to run Windows 8 with your existing development environment tools.

New Templates

There are new templates available when running on Windows 8 which are not included in VS11 when running it on Windows 7. And this is because they are Metro specific. These include the new Metro style applications in C# and in JavaScript.

Templates

Search overhaul

One of the one of the biggest overhauls in VS11 is the search and specifically the new Quick Launch. In my talk, I asked how you would change the references for intellisense for JavaScript (which leads into another feature in VS11 .. again which I will say later!). In VS11 it meant, playing hide and seek with the menus and trying to figure out where in the extensive options pane this setting lived. In VS11 it’s a quick case of using the shortcut Ctrl + Q and typing javascript  which will show the different options including changing the references for JavaScript.

Javascript

You can also use this Quick Launch function to learn keyboard shortcuts as it shows you in the results the shortcut along with the description of the item where applicable.

LearnShortCuts

This search overhaul has continued into the Solution Explorer where you can type some text and get any files or classes containing that text. You can even use regular expressions in this search.

SearchSolutionExplorer

Search has been improved in the Add References dialog as well

SearchReferences

In the code view, find now works as expected. In VS2010, pressing Ctrl + F would bring up the Find and Replace dialog box which really didn’t make sense. Now it brings up the Find dialog and you can search across different scopes and again you can use regular expressions if you so wish

The new preview window

Ever get tired of opening files to just see what’s inside of them and those files hanging around cluttering up your tabs because you forgot to close them when you were finished looking in the file? Well that’s all changed now in VS11 with the new preview window. This window opens when you click on a file allowing to preview its contents without actually opening it. But wait there’s more! If you decide that you actually like what you see. And they have finally added the Close All Documents button!!! Before you had Close Document, Close all documents but this. Now you have that final part of the triad, Close All Documents. It’s the tiny things that make a difference

Preview CloseAll

Templates are now extensions

How often do templates that ship with Visual Studio get updated or refreshed. The answer is simple, when the next version of Visual Studio ships. Now they are extensions or VISXs meaning that templates can be updated and added out of band. Now for those of you thinking ahead you can see why this would be one of the excellent little things hidden inside of VS11

Project Round Tripping

One of the biggest problems when a new version of Visual Studio comes along be it in Beta or in its RTM edition is that it has updated the solution file making it impossible for you to work with it in the previous versions. This breaking of solutions meant that all developers had to upgrade at the same time or projects had to be built in only one version of Visual Studio meaning you kept previous versions installed so you could open them. Also if you had clients that you were developing for, who weren’t upgrading that project stayed in the old version.

Of course there were hacks such as two SLN files but this led to developer frustration when someone added a new project to the solution but didn’t upgrade both SLN files. Well this is no more. With the new Project Round Tripping feature in VS11, you can use *nearly all* of your existing VS2010 SP1 projects in VS11 without having to upgrade or break your SLN file. Not all projects are compatible though and there is an article on MSDN detailing which projects will work and which won’t work.

This feature works with Visual Studio 2010 and SP1 and you can’t use it with Visual Studio versions older than 2010. Additionally if you use any feature that is specific to the new version of Visual Studio such as changing the framework version to 4.5 then the project cannot be opened again in VS2010.

Page Inspector

Quite simply, if you use FireBug, you will love this. If haven’t used FireBug before prepare to be amazed. This is honestly one of the best new features for Web Developers in VS11.

Page Inspector allows you to view your page in a number of different ways such as Files Mode which shows you which files in your solution make up this page. Extremely handy if you are brand new to a well established project that combines multiple files into one view.

FileView

You also have inspect mode which shows what control or place in your file generated that piece of HTML. Genius! Forget adding silly text or test calls to find where in the code is generating the output, just hover over the piece in the HTML view that you are curious about and Page Inspector will show you the rest.

InspectMode

You can also play with the source and Page Inspector will see that it has changed and update accordingly once you refresh. It will also prompt you that it has changed.

Refresh

This feature gives you the tools to expertly find where and what is happening in the HTML of your application with more power in actually finding it than FireBug has. Don’t get me wrong, I love FireBug but it doesn’t have the ability to show where in the files is generating the HTML that you are looking at. I also see Page Inspector as a great training tool for anyone trying to learn a new aspect of ASP.NET from junior developers all the way up the food chain.

New HTML editor features

Some of the irritations that you ignored when you started development but grew as you became more and more proficient have been fixed. Such as smart indent. This is where you type a tag and press return and in VS2010 it would start at the same position as the tag rather than tabbing in. Now it does.

Another frustration was when you changed a tag, you had to go find the corresponding closing tag and change that. Now it does.

For those of your who used ReSharper or CodeRush or another IDE extension, you probably wont remember a time where you couldn’t generate a method stub of a control from the Code View. Now you can.

Create

The new Smart Task feature for controls gives you access to the same functionally that you had on a control when in Design view but from the Code view.

DataGrid

And finally the improved Intellisense reduces options and it shows you the bits as you type.

It’s the little things that just make life a bit easier for developers.

New CSS editor features

Do know what the shortcut command CTRL + K, C means? Its means to comment out the piece of code you have highlighted or the line you are on. You know where it never worked. In the CSS editor.. well it does now. It may not sound like a big thing, but when you expect that shortcut chord to work across the editor uniformly and it doesn’t in one spot it because an annoyance.

The new color picker is a simple yet very effective addition to the editor. Before if you didn’t know a hex value for a colour (yes I spell it the British English way!), you had to use something like Paint.NET to find the colour code. Now its built into the editor and it appears when you type color: in the CSS editor.

The Testing Framework

Unit testing is now a complete first class citizen in VS11. There has been a massive amount of investment in this area and Peter Provost has a great series of articles on his blog about this.

This is just a quick overview of some of the features that I like.

VS11 now has a test runner framework which allows test runner extensions to be installed into VS11 so that your unit tests will appear in the Unit Test Explorer window and all run as part of the series of tests regardless of the testing framework you use. So if you use MSTest, Nunit and xUnit.NET in the same solution, no problem. Just download the test runners for Nunit and xUnit and install them and off you go they will appear in the Unit Test explorer. And what is the most important information you want to see about your unit tests? It’s the one that fail and these come up first on the Unit Test explorer window.

UnitTests

Also you can set your unit tests to run automatically on build!

OnBuild

The Code Demos

I finished off with some code demos which I will do in the follow up post to this. I did this like a sprinting lap around VS11 and I hope people got a decent glimpse of the real new goodies in VS11.

If you haven’t already downloaded the beta, you can do get it from here

Sunday, 19 September 2010

Bing Maps Silverlight control weather mash-up with yr.no - Part 3

In this post, I will take a look at creating a web service that will feed weather data to our Silverlight application that we have created in the previous posts
yr.noFirstly a little about where we are going to get the weather data from. yr.no is the joint online weather service from the Norwegian Meteorological Institute (met.no) and the Norwegian Broadcasting Corporation (NRK) and it offers weather forecasts in English (in addition to Norwegian Nynorsk and Norwegian Bokmål) for more than 700,000 places in Norway and 6.3 million places worldwide.

Yr.no supplies its weather data in XML format and you can get this XML by adding forecast.xml to the URL that is generated when you look for a location. For example for my current location in Stavanger, the generated address is http://www.yr.no/place/Norway/Rogaland/Stavanger/Stavanger/ and the XML for this http://www.yr.no/place/Norway/Rogaland/Stavanger/Stavanger/forecast.xml. This will generate most of the information in English.

To get this information in Norwegian you change the place to sted and use varsel.xml instead.

There are additional services provided by eKlima which you can use instead of yr.no if you wish. You can find more information on eKlima here.What I am going to do in this post, is creating the web service. So firstly we will create a web blank web application and a new web service to it.

In my project I have created a common library that contains a business layer, data layer and some classes. I have created a BaseInformation class which contains the basic information that is used by the map to create pushpins. This allows us to create more different objects which can use this class and make a generic method for adding pushpins with different data types, images etc.
1: public class BaseInformation
2:    {
3:        public int ID { get; set; }
4:        public string Title { get; set; }
5:        public double Latitude { get; set; }
6:        public double Longitude { get; set; }
7:        public string ImageLocation { get; set; }
8:        public string Description { get; set; }
9:        public string ToolTipImage { get; set; }
10:    }
The WeatherInfo class contains information specific to weather data and we will use this in our custom tooltip that we will be adding to the pushpin when its created on the map.
1:     public class WeatherInfo : BaseInformation
2:     {
3:         public string TempC { get; set; }
4:         public string FromTime { get; set; }
5:         public string ToTime { get; set; }
6:         public string SymbolName { get; set; }
7:         public string SymbolNumber { get; set; }
8:         public string WindData { get; set; }
9:         public string WindImage { get; set; }
10:     }
We have a simple class with an even simpler method that returns a generic list of strings that contains the XML addresses to download the information from yr.no.
1:    public IEnumerable<string> GetData()
2:         {
3:             return new List<string>
4:                        {
5:                            "http://www.yr.no/place/Norway/Rogaland/Sandnes/Sandnes/varsel.xml",
6:                            "http://www.yr.no/sted/Norge/Rogaland/Stavanger/Stavanger/varsel.xml",
7:                            "http://www.yr.no/place/Norway/Rogaland/Stavanger/Forus/varsel.xml",
8:                        };
9:         }
In the data layer we will create a new method that we will use to download the XML and manipulate it to our needs. The method stub looks like the following
1:       public static WeatherInfo GetWeatherInfo(string feed)
2:         {
3:            
4:         }
So first we need to download the XML file from yr.no. We use the XmlDocument class and use the Load method to load the XML.
1:             var xDoc = new XmlDocument();
2:             xDoc.Load(feed);
Since the XML file is quite large and contains multiple different elements we will create some datasets from the different elements and then use LINQ to join these datasets together and create the objects that we need.

So first creating the datasets from XML. This is a quick method which takes the name of the tag you want to turn into a dataset and the XMLDocument.
1:        private static DataSet GetDataSet(XmlDocument xDoc, string tagName)
2:         {
3:             var forecast = xDoc.GetElementsByTagName(tagName);
4: 
5:             var ds = new DataSet();
6:             var readerStream = new StringReader(forecast[0].OuterXml);
7:             ds.ReadXml(readerStream);
8:             return ds;
9:         }
We will create datasets from the following XML elements tabular, location, and forecast and we will join these together using LINQ. The following LINQ query is not the best in the world due its level of complexity so I apologise in advance if your eyes burn out of your skull and you decide to run off screaming “Oh the humanity”
1: from time in ds.Tables["time"].AsEnumerable()
2:                     join temp in ds.Tables["temperature"].AsEnumerable()
3:                         on time.Field<int>("time_id") equals
4:                         temp.Field<int>("time_id")
5:                     join symbol in ds.Tables["symbol"].AsEnumerable()
6:                         on time.Field<int>("time_id") equals symbol.Field<int>("time_id")
7:                     join windDirection in ds.Tables["windDirection"].AsEnumerable()
8:                         on time.Field<int>("time_id") equals windDirection.Field<int>("time_id")
9:                     join windSpeed in ds.Tables["windSpeed"].AsEnumerable()
10:                        on time.Field<int>("time_id") equals windSpeed.Field<int>("time_id")
That is the basic LINQ query and we will use that as the basis to generate a WeatherInfo object using the second part of the query.
1:  select new WeatherInfo
2:                     {
3:                         ID = time.Field<int>("time_id"),
4:                         TempC = temp.Field<string>("value") +"C",
5:                         FromTime = time.Field<string>("from"),
6:                         ToTime = time.Field<string>("to"),
7:                         SymbolNumber = symbol.Field<string>("number"),
8:                         SymbolName = symbol.Field<string>("name"),
9:                         WindData = string.Format("{0} {1} {2} m/s", windDirection.Field<string>("name"), windSpeed.Field<string>("name"), windSpeed.Field<string>("mps"))
10:                     }).FirstOrDefault();
The handy thing here is the cast of the WeatherInfo at the start to create an object that we can populate. Also the helper method FirstOrDefault(). If there is no records, it will create a blank object and we will return that. The Full method looks like this
1:     private static WeatherInfo GetWeatherInfoFromDataSet(DataSet ds)
2:         {
3:             return (from time in ds.Tables["time"].AsEnumerable()
4:                     join temp in ds.Tables["temperature"].AsEnumerable()
5:                         on time.Field<int>("time_id") equals
6:                         temp.Field<int>("time_id")
7:                     join symbol in ds.Tables["symbol"].AsEnumerable()
8:                         on time.Field<int>("time_id") equals symbol.Field<int>("time_id")
9:                     join windDirection in ds.Tables["windDirection"].AsEnumerable()
10:                         on time.Field<int>("time_id") equals windDirection.Field<int>("time_id")
11:                     join windSpeed in ds.Tables["windSpeed"].AsEnumerable()
12:                        on time.Field<int>("time_id") equals windSpeed.Field<int>("time_id")
13:                     select new WeatherInfo
14:                     {
15:                         ID = time.Field<int>("time_id"),
16:                         TempC = temp.Field<string>("value") +"C",
17:                         FromTime = time.Field<string>("from"),
18:                         ToTime = time.Field<string>("to"),
19:                         SymbolNumber = symbol.Field<string>("number"),
20:                         SymbolName = symbol.Field<string>("name"),
21:                         WindData = string.Format("{0} {1} {2} m/s", windDirection.Field<string>("name"), windSpeed.Field<string>("name"), windSpeed.Field<string>("mps"))
22:                     }).FirstOrDefault();
23:         }
In the GetWeatherInfo method we will finalise any properties in the object that we haven’t set before this. Such as the latitude and longitude. Now because in Norway the decimal separator is a comma (,) rather than the decimal point (.) this can cause some issues when doing conversions between strings and doubles. So we will use the NumberFormatInfo class to specify how the conversion should take place.
1: weatherInfo.Latitude = double.Parse(dr["latitude"].ToString(), NumberFormatInfo.InvariantInfo);
2: weatherInfo.Longitude = double.Parse(dr["longitude"].ToString(), NumberFormatInfo.InvariantInfo);
The full method for GetWeatherInfo is as follows
1: public static WeatherInfo GetWeatherInfo(string feed)
2:         {
3:             var xDoc = new XmlDocument();
4:             xDoc.Load(feed);
5: 
6:             var ds = GetDataSet(xDoc, "tabular");
7: 
8:             var weatherInfo = GetWeatherInfoFromDataSet(ds);
9: 
10:             var coDs = GetDataSet(xDoc, "location");
11:             var weatherDescDs = GetDataSet(xDoc, "forecast");
12: 
13:             weatherInfo.Description = weatherDescDs.Tables["time"].Rows[0]["body"].ToString();
14:             weatherInfo.Description = weatherInfo.Description.Replace(@"<strong>", "");
15:             weatherInfo.Description = weatherInfo.Description.Replace(@":</strong>", " -");
16: 
17:             weatherInfo.WindImage = "images/windsock.png";
18: 
19:             var dr = coDs.Tables["location"].Rows[1];
20: 
21:             weatherInfo.Latitude = double.Parse(dr["latitude"].ToString(), NumberFormatInfo.InvariantInfo);
22:             weatherInfo.Longitude = double.Parse(dr["longitude"].ToString(), NumberFormatInfo.InvariantInfo);
23: 
24:             weatherInfo.Title = coDs.Tables["location"].Rows[0]["name"].ToString();
25:             weatherInfo.ToolTipImage = "images/temp.png";
26:             weatherInfo.ImageLocation = string.Format("images/{0}.png", weatherInfo.SymbolNumber);
27: 
28:             return weatherInfo;
29:         }
In the Business layer we have a simple method that creates a list of these weatherInfo objects based on the list of feeds that I talked about earlier.
1:  public static List<WeatherInfo> GetAllWeatherInfo()
2:         {
3:             var allFeeds = new FakeWeatherFeeds().GetData();
4: 
5:             var weatherInfos = allFeeds.Select(WeatherInfoDl.GetWeatherInfo).ToList();
6: 
7:             return weatherInfos;
8:         }
Instead of a foreach loop I am using some LINQ to pass in the method and create the list. And finally the web service method looks like the following.
1: [WebMethod]
2:         public List<WeatherInfo> GetAllWeather()
3:         {
4:             return WeatherInfoBl.GetAllWeatherInfo();
5:         }
In the next post we will put this altogether with the Silverlight map application and binding the list of objects to the map.

Saturday, 20 March 2010

Fixing the Visual Studio 2010 RC designer bug

VisualStudio2010 If like me you have installed the Visual Studio 2010 RC, you may have discovered an interesting but quite irritating bug relating to the generation of designer files.

Designer files are those very handy little files that allow IntelliSense to work with your ASP.NET applications. For most people this manifested itself when trying to use the AJAX Control ToolKit TabContainer control and the CreateUserWizard control. Also if you tried to upgrade your existing Visual Studio 2008 project to Visual Studio 2010.

Microsoft have released a patch for this which you can download from here. Scott Gu’s blog post has more on the subject including details of other patches released for the RC.

Additional information on the bug can be found on the Visual Web Developer Team blog

Sunday, 21 February 2010

Fixing Error MSB4019 when trying to load a dbproj

I recently re-installed my Visual Studio 2008 including Visual Studio Database Edition. I opened a project from TFS that included some database project (.dbproj) files. As the solution loaded I got some errors relating to the dbproj

The imported project "C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v9.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets " was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

The issue in this case was that the version of my Visual Studio Database Edition was not the same as the one that had created the database projects. The fix for this was to install the GDR 2 for Visual Studio 2008 Database Edition. Thankfully quite simple.

MCTS .NET 2.0 Web-based Client Development – 70-528 – Objectives List Part 3

This is the third post (first, second) in another collection of posts that have links to the different objectives covered in the 70-528 exam. There is also a series on ASP.NET 3.5 exam 70-562 (here)

Creating custom Web controls

You can also find some information on preparing for your exams here and here, in the actual exam for 70-528. Also errata for the MS Press training kit

Sunday, 14 February 2010

Fixing Error 1402 Access denied on a registry key

While uninstalling Visual Studio 2010 Beta 2 today, I ran into this issue whereby the installer failed to uninstall due to be unable to access a particular registry key.

SetUp

To fix this issue, you need to click on the start button and type “regedit” without the quotes and then right click on the program and run as administrator. Accept the UAC prompt if it appears.

Press F3 to bring up the search box and search for the first five or six characters of the GUID so that you can find the registry key that’s causing all the problem

 

 

Error Opening Key dialog

 

Clicking on the key will cause the following error

 

 

 

Initial Permissions dialog

 

You can then right click on the click and click permissions. This will bring up a warning that you don’t have permissions to view the current ones, you can reset the permissions on the key.

As you can see you cannot see the current permissions on the key.

Clicking on the the advanced button will bring up a new dialog to allow you to reset or add new permissions to the key.

 

 

 

 

Owner

 

Click on the owner tab and you should notice the text that the current owner cannot be displayed. You can then click on one of the user groups or users to change the current owner. If there are many sub keys, you can also apply the owner to the those.

Once you have applied the new owner you can apply the correct permissions to the key and continue.

However you will need to finish the uninstall and then restart it to completely remove Visual Studio 2010 Beta 2

Thursday, 11 February 2010

.NET 4.0 Beta exams

aa496123.NET_logo(en-us,MSDN.10) As expected, the exams for Visual Studio 2010 / .NET 4.0 will be going into beta in the end of March, March 31st to be exact through to April 20th. This will mean that given previous exam schedules the exams should go live around 8 to 10 weeks from the end of the beta period so expect to mid to end of June 2010.

Beta exams allow you to take the exam for free in its raw unfinished state and help set the bar for the exams when the go live. As part of getting the exam for free, you should give feedback on the exam and item quality.

 

The exams currently slated for beta in this timeframe are

  • 70-511 TS: Windows Applications Development with Microsoft® .NET Framework 4
  • 70-513 TS: Windows Communication Foundation Development with Microsoft® .NET Framework 4
  • 70-515 TS: Web Applications Development with Microsoft® .NET Framework 4
  • 70-516 TS: Accessing Data with Microsoft® .NET Framework 4
  • 70-519 Pro: Designing and Developing Web Applications using Microsoft® .NET Framework 4

With 70-518 Pro: Designing and Developing Windows® Applications using Microsoft .NET Framework 4 being scheduled for sometime in April.

While all exams will go into beta, some may not be available in your country or territory. Beta exam codes will be posted on the Beta Exam blog and the Microsoft Learning Born To Learn blog

Wednesday, 10 February 2010

Visual Studio 2010 RC Released

Visual Studio 2010 Release Candidate has now been released to the general public. It has been available since Monday to MSDN subscribers. The road to final release is getting shorter and shorter. The main reason for the RC is to get broad customer feedback on performance and stability since the Beta 2 release. If you do find an issue put it on the Microsoft Connect site and also email Scott Guthrie (scottgu at microsoft.com)

For those upgrading from the Beta 2 there are some known issues (via Scott Gu’s blog)

  • You should remove previous versions of VS 2010 Beta 2 and .NET 4.0 Beta 2 before installing the RC. You can install VS2010 side by side with VS 2005 and VS 2008.
  • Silverlight 3 projects are supported in the RC but SL 4 projects are not (yet!). Silverlight 4 support will be added with the next Silverlight 4 release.
  • There is a crash bug with certain systems that have multi-touch and some screen readers enabled. They are working on a patch at the moment for that
  • Some project upgrades may take quite a long time to complete if the project contains XSD files. Again another patch forthcoming.

Looking forward to road testing this myself!

Wednesday, 28 October 2009

Speeding up the start up of Visual Studio 2010 Beta 2

I am really like the improvements in Visual Studio 2010 Beta 2. Its faster than Beta 1 but the start up time was crap. Just plain tortoise slow!

Vs2010

A quick glance around the web brought me to a post by Jaime Rodriguez about to speed up VS 2010 Beta 2

You need to add a new registry key to do this: WARNING DO NOT DO THIS IF YOU DON’T UNDERSTAND WHAT EDITING THE REGISTRY WILL DO IF YOU SCREW IT UP!!!!!!! <—Bold type and lots of exclamation marks mean you need to read this!

1. Close any open VS instances
2. Open RegEdit (as an administrator as needed)
3. Select the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0 key
4. Right click and add key, type ClrHost
5. In the newly created key, right click and add a DWORD32 with the name StartupFlags
6. Set its value to 5
7. Close RegEdit
8. Start up Visual Studio and use as normal

This decreases the start up time considerably. On my hardware it took 25 seconds to open now its down to 2 seconds.

Additional information can be found here