Finally VS 2010 RC is out. It’s available to MSDN subscribers today, February 8th. Everybody else will be able to download it on February 10th.
Visual Studio 2010 RC is out.
Posted by Vadim on February 8, 2010
Posted in VS2010 CTP, Visual Studio | Tagged: VS2010 RC | Leave a Comment »
Live Writer syntax highlighting plug-in for WordPress.
Posted by Vadim on February 8, 2010
About a year ago I wrote a small article how to use syntax highlighting in WordPress using Windows Live Writer. Few months ago I discovered Rich Hewlett’s plug-in for Windows Live Writer that works perfectly with WordPress blogs. I’ve been using it since.
I’m very happy with this plug-in it works great, but it misses the WYSIWYG. It would be nice to see the code exactly like it appears on the published page during creation of the post. Also for XML you cannot see code at all. But it looks great on the published page.
<note> <to>Rich</to> <from>Vadim</from> <subject>Thanks</subject> <body>Rich, Thanks for the great plug-in.</body> </note>
Rich also recently published a new version of his plug-in. You can download it directly from this link.
I believe that you must have this plug-in if you host your blog on wordpress and publish snippets of code.
Posted in Windows Live Writer | Tagged: syntax highlighting, Windows Live Writer, WordPress | Leave a Comment »
Part 2: Configuration – Learning Azure with me.
Posted by Vadim on January 31, 2010
In Part 1 “Hello Azure” we briefly talked about the Service Configuration file (ServiceConfiguration.cscfg). In that article we didn’t modify this file, we just accepted all the values provided by Cloud Service Visual Studio template.
Let look at this file and take it apart.
<?xml version="1.0"?>
<ServiceConfiguration serviceName="LearnAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="LearnAzureWeb">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
The root element ServiceConfiguration has only one attribute which is serviceName. The serviceName attribute is required. If you omit this attribute, Visual Studio is going to complain about your XML during compilation. You can see that this attribute has the same value as our Cloud Project which is LearnAzure. The name of the service must match the name of the service in the service definition. If you look inside ServicDefinition.csdef file, you’ll see that value for the name attribute in ServiceDefinition element is also LeanAzure.
ServiceConfiguration element can have only Role elements as children. Because the only role we have is ASP.NET Web role, LearnAzureWeb, we can see only one Role element. In case our project contained another role the Service Configuration file would reflect this fact.
Role element also has a single name attribute which is required. The name attribute represents the name of the service and must match the name of the service in the service definition defined in the WebRole element. The Role element can have following children elements:
- Instances
- ConfigurationSettings
- Certificates
Looking at our ServiceConfiguration.cscfg file we can see that it contains ConfigurationSettings and Instances elements.
Instances Element
Before we start discussing the Instances element, let me tell you what I know about Microsoft datacenters that host Windows Azure applications. Microsoft has many strategically placed datacenters that have no physical roof. Inside each datacenter a lot of sealed shipping containers. Each containers has inside anywhere from 1,800 to 2,500 servers. One of these datacenters is located in Chicago.
Now back to our Instances element that has a required count attribute that represents number of instances of your application. In case our Learn Azure application becomes a hit, we will need more computing power to run it. We’ll request more power by increasing count value in the Instance element. Each instance will be run on different server and probably in different container. And I’m going to guess that it has a very good chance that each instance will be executed in different datacenter.
<Instances count="5" />
Instances element is required and you can have only one element in each Role.
If you are not friendly with XML, you can modify Instance count using GUI in Visual Studio. In your Cloud Project right click on the Role and select Properties or just press Alt+Enter.
In Configuration tab you can find Instance count and enter the desirable value.
ConfigurationSettings Element
If you’ve developed any .NET application, than ConfigurationSettings element concept should be very familiar to you. You used this technique many times in your web.config or app.config files. It serves the same purpose as appSettings element in .config file.
You can have only one ConfigurationSettings section in your Service Configuration file. This element is not required that means that you can completely omit this section if you don’t set any custom settings. ConfigurationSettings element can have any number of Setting elements. A Setting element is a mapping of a name to a string value. A setting name must be declared in a service definition file (ServiceDefinition.csdef).
For example, in our LearnAzure application we hard coded “Hello Azure!” text in the Default.aspx file (See Part1). We can easily make the hard coded text configurable.
First thing we’ll do is to add our setting name “myText” to the Service Definition file.
<Setting name="myText"/>
Below is complete ServiceDefinition.csdef file.
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="LearnAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="LearnAzureWeb">
<InputEndpoints>
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</InputEndpoints>
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" />
<Setting name="myText"/>
</ConfigurationSettings>
</WebRole>
</ServiceDefinition>
Next we need to add the Setting element with a name and value into ConfigurationSettings section of our Service Configuration file.
<Setting name="myText" value="Hello Azure from the Configuration!" />
Here’s the copy of the complete ServiceConfiguration.cscfg file:
<?xml version="1.0"?>
<ServiceConfiguration serviceName="LearnAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="LearnAzureWeb">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" />
<Setting name="myText" value="Hello Azure from the Configuration!" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
You don’t have to manually modify custom settings. Visual Studio provides us with GUI to add, remove, or modify our settings. Select property on our Role and on the left chose the Settings tab.
We are done with configuration. Now let use “myText” in our source code. In our Default.aspx file we need to replace
<div>
Hello Azure!
</div
with
<div> <asp:Label ID="mainTextLbl" runat="server" /> </div>
We just added a new Label control.
The only thing left is to read the value from the configuration file and assign it to our mainTextLbl Label control. We’ll do it on page Load event in Default.aspx.cs file.
protected void Page_Load(object sender, EventArgs e)
{
mainTextLbl.Text = RoleEnvironment.GetConfigurationSettingValue("myText");
}
Now we can compile and run our application on local computer.
Now you know how to set basic custom settings for an Azure application.
Certificates.
I believe that discussion of certificates deserves its own article. I’ll try to talk about it in the future posts.
Why another XML configuration file?
You are probably wondering why do we need another XML configuration file (in this case ServiceConfiguration.cscfg). We can perfectly set the setting in my Web.config or app.config files. That’s true but then you’ll have to repackage and redeploy the whole application again.
You can modify ServiceConfiguration.cscfg file from your Azure portal and no redeployment will be required.
To change configuration just login to your Windows Azure portal, select the service and click on Configure button.
From Service Tuning page you can modify the existing Service Configuration file or upload a new one.
Summary
Now we have basic knowledge how to configure our Azure application. We learn about Instances and custom settings. In future article we’ll learn about certificates.
Posted in Azure | Tagged: Azure configuration | Leave a Comment »
Invisible Task Manager menu bar and tabs.
Posted by Vadim on January 20, 2010
Today I was pair programming with one of my co-workers, and during the session he somehow made Task Manager tile, menu bar, tabs, and status bar disappear. At first, we had no clue how it happened and were forced to use Alt+F4 to close Windows Task Manager because close (x) button was gone with the title bar. However, in a little while he did it again. He was double clicking on the empty space in the top border.
You can try it yourself. Just start Windows Task Manager and double click anywhere in the empty space in the top border. Double click again to get the menu and tabs back. If you are not sure where the top border is, just double click in the same place the cursor is located on the image that you see on the right.
If you know of other weird behaviors in Windows, please let me know.
Posted in Tips And Tricks | Tagged: Task Manager, Tips And Tricks | 2 Comments »
Part 1: Hello Azure – Learn Azure with me.
Posted by Vadim on January 19, 2010
I want to learn Windows Azure. I already have done some reading on the subject and created some simple Windows Azure applications. However, I believe that writing articles about Cloud Services will help me to get stronger understanding of the platform.
I will not tell you what Windows Azure is. I hope that you’re reading this because you know what it is and ready to learn it. I also hope that you already downloaded and installed Windows Azure Platform on your computer. If you haven’t done it, you can download it from Microsoft Windows Azure site.
My goal for this article:
- Create LearnAzure Cloud Service that displays “Hello Azure!” message.
- Set up your service online.
- Deploy the application to Azure Fabric.
Create LearnAzure Cloud Service.
Start Visual Studio. I’m going to use VS 2010 Beta 2 but it should work just fine with VS 2008.
Press Ctrl+Shift+N to create a new project. You also can select File –> New –> Project… from Visual Studio menu. You should see New Project dialog.
From Installed Templates select Cloud Service (if you don’t see Cloud Service template, than you need to install Windows Azure SDK). For the project name I typed “LearnAzure”.
Click on the OK button and you will see a New Cloud Service Project dialog box. In this dialog box, from the Roles, select ASP.NET Web Role because we want to create an ASP.NET Windows Azure application. Click on the right arrow to make ASP.NET Web Role appear in Cloud Service Solution list. By default Visual Studio will give “WebRole1” to your ASP.NET Web Role. This name is too generic; let’s rename it to “LearnAzureWeb”. To rename, move your mouse over WebRole1 and click on the little pencil icon on the right of the role. Now you can rename it to LearnAzureWeb.
After Visual Studio is done, you should have LearnAzure solution that has two projects: LearnAzure and LearnAzureWeb. LearnAzureWeb looks almost like any other ASP.NET application but there few differences.
If you expend References in our ASP.NET Web projects, you’ll see three additional references to Windows Azure assemblies:
- Microsoft.WindowsAzure.Diagnostics
- Microsoft.WindowsAzure.ServiceRuntime
- Microsoft.WindowsAzure.StorageClient
Use Diagnostics namespace for your logging needs.
Use ServiceRuntime namespace when you need to interact with Windows Azure fabric.
Use StorageClient namespace when you need to work with storage services.
These assemblies are located in Program Files\Windows Azure SDK\v1.0\ref folder.
I know that right now this is not enough information for you to understand exactly what these names are for, and how to use them. But remember, this is just a “Hello Azure!” article. We’ll have plenty of time to discuss more advance subjects in the future posts.
You also can see WebRole.cs file in your LearnAzureWeb project. WebRole class provides callbacks to initialize, run, and stop instances of our ASP.NET role.
We have a working Azure application without writing a single line of code. However, if we start the application by pressing Ctrl+F5 or F5 in case you wanto to start it with debugger, you will see an empty web page.
In your system tray you can find a new blue window flag icon. It tells you that Windows Azure simulation environment is running. It also means that the Development Fabric and the Development Storage services were started. You can right click on this icon to see User Interfaces either for the Development Fabric or Development Storage services. You also can
shutdown any of these services using this icon.
We are done but I hate to look at an empty web page; therefore, I’m going to add “Hello Azure!” to the body of Default.aspx page.
<body>
<form id="form1" runat="server">
<div>
Hello Azure!
</div>
</form>
</body>
Here’s the output of our brand new Windows Azure application:
Setup your service online.
Now we know how to run our Hello Azure Cloud Service on Simulation Environment. Next we need to setup the service online. I assume that you already went to Microsoft Windows Azure site and have an Azure account setup.
In order to deploy our Hello Azure app. you need to log into your Azure portal with the Live ID you registered with. Below you can see my Windows Azure page. I have only one project: PDC08 CTP.
Next click on the project name. In my case I’m going to click on “PDC08 CTP” as it’s my project name. You should see the project page. On this page you can create a new hosted services and storage account. On my page you can see that a storage account “diagnosticsdata” that I created earlier.
I don’t have any hosted services yet. You and I are going to create “Learn Azure” hosted service. To create a new service, just click on New Service link; you have two these links on this page. One just above the left navigation bar and another on the right of the project name. You should see Create an new service page, similar to the image below.
On this page, we can create either a Storage Account or Hosted Service. We already decided that we want to create “Learn Azure” hosted service. Let’s click on Hosted Services link. You should see Create a Service page. Provide a service label and description for the service and then click the Next button.
You should go to the second part of Create a Service. On this page you need to enter a Public Service Name and choose an Affinity Group. The Public Service Name must be unique. I wanted to enter “LearnAzure” but it’s not available; therefore, I chose “LearnAzureWithMe”. The Public Service Name you’ll choose will be the first part of the URL for your service. Because it’s part of a URL, it must be unique and cannot have white spaces. Unfortunately, you have to come up with a different name because “LearnAzureWithMe” belongs to me now. You can click on the “Check Availability” button to see if the name you selected is still available.
The second part of the form is related to Hosted Service Affinity Group. Microsoft has many different datacenters around the world. You want to select a region that the best represents your audience / customers to get better performance. Also if you have services that are related you might want to deploy them to different datacenters for disaster recovery or geo-distribution purposes.
Press the Create button to create your hosted service.
Deploy the application to Azure Fabric.
Finally we have a cloud space where to deploy our “Hello Azure!” application. But before we do so, we need to create the Service Package (.cspkg). We could use CSPack.exe utility that you can find in Azure SDK folder but it’s much easier to create the Service Package from Visual Studio by right clicking on LearnAzure Cloud Service project and select “Publish”.
Visual Studio executes CSPack.exe to create the Service Package. After all is done, you should see the folder containing the Service Package (LearnAzure.cspkg) and Service Configuration file (ServiceConfiguration.cscfg). .cspkg is a glorified zip file, you should be able to open it with any zip utility if you want to see what inside the package.
The next step is to deploy the Service Package and Service Configuration file. You can deploy directly to production, but I would recommend that you deploy to staging environment first. In order to deploy the application you need to go back to your Azure Portal. If you don’t see a staging ice cube next to the production one, click on the little arrow that is right of production cube.
Click on Deploy button under the staging ice cube. On the next screen, browse for your Service Package and Service Configuration file. You also will need to give a label for this deployment, my label is “v. 0.1”.
Click on Deploy button in order to deploy “Hello Azure!” application to Staging environment. The deployment process can take couple of minutes. After all is done the gray cube should magically transform to nice ice blue cube. Your Azure application is deploy but to test it, you need to click on Run button under Staging cube. You will see that the status flipped to “Initializing”. It might take few minutes for the status to change to “Ready”. You can test your application by navigating to your staging Web Site URL.
Next logical step after you tested our application on staging is to promote it to production. It’s very easy done by clicking on a circle with two arrows inside. If you need more clues to find the circle, it’s between Production and Staging cubes. You don’t actually move the application to different place. After you click on the circle, Windows Azure just flips production and staging environments. The old staging environment becomes our new production one and vice versa.
It takes only few moments to promote from staging to production because Windows Azure makes only small configuration change.
Now I can point my browser to http://learnazurewithme.cloudapp.net/ to use my perfectly useless application.
Summary
In this article, we learned how to create a simple Azure application. We also talked about new files and references that need to be added in order to run our app. in the cloud. Now you can tell all of your friends how to setup and deploy the Windows Azure application.
Next, we’re going to learn how to use Azure Service Configuration.
Posted in Azure, Tutorial | Tagged: Azure tutorial | 1 Comment »
Cropper free alternative to Snagit.
Posted by Vadim on January 12, 2010
If you read my posts, you know that my writing skills can be improved by a lot. Therefore, I tried to put a lot of pictures in my posts to compensate my English. Until recently I was using Snagit application from TechSmith to capture my screens snapshots. Snagit is a very good application and I wish I still had it today. However, I had 128 days inactivity of posting. During this time I upgraded my computer to Windows 7. couldn’t find my old license of Snagit to install it on new system. Even Snagit is not that expensive, just $49.95, I looked for free alternative. I found it on CodePlex, it’s Cropper by Brian Scott.
Cropper is not as powerful as Snagit but it allows me very fast to get a screen capture an paste it to my post. You also can find a collection of plugins for Cropper on CodePlex. One feature I miss from Cropper is an ability to annotate the image I just captured.
May be I should stop wishing and get my hands dirty and contribute to Cropper or Cropper Plugins open source projects.
Posted in .Net | Tagged: Cropper | 2 Comments »
Learning Azure Local Storage with me.
Posted by Vadim on January 10, 2010
Azure has many different storages. If you start Azure fabric and look at Development Storage UI you can see Blob, Queue, and Table Storage. In addition to that Windows Azure also has SQL Azure.
There’s also Local Storage and that is what I want to talk about. Local Storage is a temporary file system storage area. If you didn’t get from previous sentence, it’s a temporary storage. Local Storage also available to a single role instance and cannot be shared across multiple role instances. What does it mean for you? It means that you should not store any data that you want to be persistent for a long time. If you upgrade a role instance or your instance dies, you will never see the data in the Local Storage again. All important data you should store in Blob, Table Storage or SQL Azure. Advantage of Local Storage is that it’s faster than other storage mechanisms mentioned earlier. Blobs, Table Storage and SQL Azure are located on different servers than your Azure VM. Local Storage is on the same VM where the role instance is running, therefore you’re going to have less latency. I read somewhere that the maximum size of Local Storage is 20GB for a single role instance. However, when I tried to create a Local Storage of 100GB, I was successful.
I think that now we have pretty good idea what Local Storage is.
Let’s set up Local Storage.
You can set up Local Storage by either modifying the definition file (.csdef) or by using GUI when modifying the role properties.
Set up by modifying .csdef file.
Let’s create a Local Storage named “lessonStorage” that is 20 MB.
We can place multiple LocaStorage elements inside LocalResources. As you can see it’s not hard to create Local Storage by hand but it’s even easier to create it using GUI.
Set up using GUI.
Just right click on the role in your Azure project (it’s inside the Roles folder) and select Properties… or press Alt+Enter. In the properties window select Local Storage tab.
As you can see you don’t need a Computer Science degree to change these values. There’s one extra property “Clean on Role Recycle”. By default it’s true. When you check “Clean on Role Recycle”, the temporary data will be deleted when the role is recycled. There are few conditions when a role can recycle:
- The application executes RoleEnvironment.RequestRecycle() method.
- A catastrophic failure on the server.
- Upgrade to the application.
When you modify it by hand in definition file, you need to add cleanOnRoleRecycle attribute.
<LocalStorage name="lessonStorage" sizeInMB="20" cleanOnRoleRecycle="true" />
How to use Local Storage?
In code to get access to Local Storage we just need to use static GetLocalResource method that takes only one parameter a name of our Local Storage.
This method returns a LocalResource object. LocalResource class has three properties:
| Property Name | Description |
| Name | The name of the local storage. We defined it in our definition file. In our case it’s “lessonStorage”. |
| MaximumSizeInMegabytes | The maximum size in megabytes allocated for the local storage. In our definition file we allocated 20 MB. |
| RootPath | The full directory path to the local storage. |
All of the properties above are read-only properties, we cannot set them at runtime.
We are going to create Lesson.txt file that will contain only one line “First Lesson”. Than using Local Storage we will print content of that file in the browser.
First let’s add a label that will be the content of Lesson.txt file to our Default.aspx file:
<body>
<form id="form1" runat="server">
<div>
Local Storage file content: <b><asp:Label ID="fileContent" runat="server" /></b>
</div>
</form>
</body>
Next we are going to put code in Page_Load method to create Lesson.txt file and than display it’s content using Local Storage.
using System;
using System.IO;
using System.Web.UI;
using Microsoft.WindowsAzure.ServiceRuntime;
namespace LocalStorageWeb
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
LocalResource myStorage = RoleEnvironment.GetLocalResource("lessonStorage");
string filePath = Path.Combine(myStorage.RootPath, "Lesson.txt");
File.WriteAllText(filePath, "First Lesson");
fileContent.Text = File.ReadAllText(filePath);
}
}
}
In order to have access to RoleEnvironment we added using statement on line #4.
The result after execution of this code:
I told you almost everything I know about Local Storage. If I missed anything or said something incorrect, please let me know so I can learn.
Posted in .Net, Azure | Tagged: Azure | 1 Comment »
Why Azure Web Role by default runs in the Full Trust?
Posted by Vadim on January 10, 2010
When I create an Azure ASP.NET application, by default .NET trust level is Full trust. I always change it to Windows Azure partial trust which is similar to ASP.NET’s medium trust level.
You can do it either by using GUI when you select Properties on the Role
or by setting enableNativeCodeExecution to false in the definition file (.csdef).
As a security conscious developer I want by default to run my application in partial trust mode that provides a higher level of security. If I need to use something like Reflection or P/Invoke, as a developer I want to make the decision to lower that trust level by myself.
I’m sure there’s a reason why Microsoft decided to use Full trust as a default .NET trust level, I just fail to see it. If you know the reason, or you think you know it, please let me know.
Because my blog is not the most popular site on internet yet, I also asked the same question on stackoverflow. If you want to answer it, I don’t care if you choose to reply here or on stackoverflow.
Posted in Azure | Tagged: Azure, Security | Leave a Comment »
Russian Phonetic Keyboard
Posted by Vadim on January 10, 2010
If you just want the keyboard layout and don’t want to bother to read this post, here’s the download link.
My dad finally is using Windows 7. He’s very happy with the new OS but he had a huge complain. He wasn’t able to type Russian.
Of course Windows 7 has standard Russian keyboard layouts that looks like this:
If you not familiar with this layout, you’ll need to put stickers on every key to know where each letter is. What my dad needed is a phonetic Russian keyboard where Russian letters correspond more or less to English ones. For some reason I couldn’t find a free phonetic Russian keyboard layout that will work nice on Windows 7.
In my search I got across the Microsoft Keyboard Layout Creator. I was surprised how easy to create your own layout with this tool. It’s a little bit tedious but very easy.
This is the keyboard that my dad and I are currently using:
If you are in need of free Phonetic Russian Keyboard, feel free to Download it.
Instruction to download and install Phonetic Russian Keyboard:
- Download Ru_PhoneticLayout.zip file from here.
- Unzip the file to any temporary directory of your choosing
- Double click on setup.exe. If your UAC is enable, you will need click on Yes button to allow the application to be installed.
Installation should be very fast. When it’s done, you should see following dialog:
It should work with any current version of your Windows OS. I tested it on Windows XP 32-bit, Vista 64-bit, Windows 7 32-bit and 64-bit.
Now you can start typing Russian. To switch between languages you can use Alt + Shift keys on your keyboard or click on the language letters in your task bar and select the language you want.
You need to realize when you change a language you change it only for application that currently is active. For example let assume that you have two application open: MS Word and FireFox. If you switch to Russian when FireFox has focus, you will be able to type Russian only in FireFox, in MS Word you still will type English.
In case you are not happy with this keyboard layout, you can easily remove it like you would uninstall any Windows application form Uninstall or change program window.
Posted in .Net | 4 Comments »
Bookmarking with Visual Studio and ReSharper 5.0
Posted by Vadim on January 8, 2010
When I code in my favorite IDE (these days it’s Visual Studio), I use bookmarks very heavily. It’s one of my favorite ways to navigate in my code.
I press Ctrl-K + Ctrl-K to set a mark in my code and a little blue rectangular appears on the left side of the line where the cursor is.
To remove the bookmark you need to press Ctrl-K + Ctrl-K again.
The reason you set a bookmark is to move fast to a specific line of code. To do that just press Ctrl-K + Ctrl-N and faster than you can say “bookmark” the IDE will display you the line of code you set the mark. When you set multiple bookmarks, Ctrl-K + Ctrl-N will move from one mark to another in the order you set them. The cursor will jump back to the first bookmark after the last one. To go in opposite direction just press Ctrl-K + Ctrl-P. It easy to remember because N means Next and P stands for Previous.
Your bookmarks will be saved when you close your Visual Studio. When you open your code file a week later, all your marks will decorate your source code and you probably will not even remember why did you set those bookmarks in the first place. What you want to do is to remove them before you set new ones. You don’t need to go to each bookmark and press Ctrl-K + Ctrl-K. All you need to do is to press Ctrl-K + Ctrl-L to remove all the old bookmarks. Visual Studio will present you with a Yes – No dialog for you to confirm that you didn’t make a mistake by pressing Ctrl-K + Ctrl-L combination and really want delete all the bookmarks.
You probably wondering but what if I have 20 bookmarks and want to delete only five of them. In this case I would recommend to press Ctrl-K+Ctrl-W to open a Bookmark Window.
You can explore this window on your own because the reason I’m writing this is not to teach you about bookmarks but to tell you about new feature in ReSharper 5 which is currently in Beta.
I’ve been using ReSharper in last few years and to be honest I got very depended on this tool. When I have to code on someone computer and they don’t have R#, I feel like I have to drive Toyota Yaris after driving CL-Class Mercedes for years.
I don’t know yet if I’m going to use bookmarking feature in R# or keep using bookmarks that provided by Visual Studio. But I want to give R# a chance and use it for a month to see how I like bookmarking with R#.
R# allows you to number your bookmarks between 0 and 9. For example to create bookmark 0 you press Ctrl-Shift-0 and of course to create bookmark 6 you press Ctrl-Shift-6. Then when you need fast access bookmark 0 you simple press Ctrl-0.
Another way to set a bookmark is by pressing Ctrl-Shift-`, you will be presented with the screen where you can set or remove a bookmark.
Using up and down error you can number the bookmark or choose the last item in the list to create an anonymous bookmark. To create bookmark press the Insert key on your keyboard or to remove one press the Delete key.
To view available bookmarks press Ctrl-`.
I just started using R# 5 Beta and so far I like bookmarking feature in Visual Studio better but as I promised I’m going to try to use bookmarks in R# for a month.
Posted in .Net | Tagged: ReSharper, Visual Studio | 1 Comment »


