<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://blogs.jetbrains.com/nocturne/">
<title>Oleg Stepanov&apos;s Weblog</title>
<link>http://blogs.jetbrains.com/nocturne/</link>
<description></description>
<dc:language>en-us</dc:language>
<dc:creator></dc:creator>
<dc:date>2005-12-23T11:33:37+03:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.2" />


<items>
<rdf:Seq><rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000070.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000069.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000065.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000039.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000038.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000036.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000032.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000031.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000030.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000029.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000028.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000027.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000026.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000025.html" />
<rdf:li rdf:resource="http://blogs.jetbrains.com/nocturne/archives/000023.html" />
</rdf:Seq>
</items>

</channel>

<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000070.html">
<title>JetBrains CEO Revives his Blog</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000070.html</link>
<description><![CDATA[<p>It seems like <a href="http://www.sergeydmitriev.com">Sergey Dmitriev</a> decided to continue <a href="http://www.sergeydmitriev.com/blog/">blogging</a> in English (Sergey also has a <a href="http://sergeydmitriev.livejournal.com/">russian blog</a>). Sergey is a very smart man with broad set of interests from programming to biology to cognitive science, so I'm sure his blog is going to be a very interesting reading. I'm looking forward to reading new interesting articles there.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-12-23T11:33:37+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000069.html">
<title>Context Actions</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000069.html</link>
<description><![CDATA[Apart from significantly improving existing features and adding support for .NET 2.0 and VS 2005 ReSharper 2.0 offers a good number of completely new features. One of them is context actions. <br>
This feature is available through lightbulb icon (similar to one used for QuickFixes, but it is yellow):<br><br>
<img alt="contextactions_bulb.png" src="http://blogs.jetbrains.com/nocturne/archives/contextactions/contextactions_bulb.png" width="481" height="20" border="0" /><br><br>
As with quickfixes, you can access the list of context actions by pressing Alt+Enter or clicking the bulb:<br><br>
<img alt="contextactions_list.png" src="http://blogs.jetbrains.com/nocturne/archives/contextactions/contextactions_list.png" width="479" height="52" border="0" /><br><br>
And, of course, any of available actions can be applied:<br><br>
<img alt="contextactions_applied.png" src="http://blogs.jetbrains.com/nocturne/archives/contextactions/contextactions_applied.png" width="295" height="42" border="0" /><br><br>
Available set of context actions is not very broad, but includes very useful ones: 
<ul>
<li>Split if (a && b) { ... } into if (a) { if(b) { ... } )</li>
<li>Transform "Hello, " + name + "!" to string.Format("Hello, {0}!", name)</li>
<li>Implement abstract or interface member</li>
<li>And others</li>
</ul>
Here I must confess that one of my greatest hopes is that extension capabilities we introduce in ReSharper 2.0 will be at least as <a href="http://plugins.intellij.net/plugins/">popular</a> as IDEA's; in particular I hope our users will implement their own context actions - general or specific for their project.]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-12-23T11:27:59+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000065.html">
<title>Approaching the stabilization phase</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000065.html</link>
<description><![CDATA[<p>Seems we're finally approaching the feature freeze: several last builds included final pieces of sweets from us: new generate features, some context actions and intellisense switches for VS.NET fans. So hopefully from now on each next build will be noticeably more stable than previous (well, actually the very next build might be not very stable because of planned transition to the new caches, but in return it will offer a significant improvement in startup time: warm startup for ReSharper on Resharper solution is now 67 seconds; previously I normally went to have some soda or tea while ReSharper starts up - just to give you a sense of ReSharper solution size).</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-12-22T13:07:01+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000039.html">
<title>Code Completion Illustrated, Part I : Basic Completion</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000039.html</link>
<description><![CDATA[<p>Time to time I find our that some users don't know about half of the features ReSharper code completion provides (that's what some call IntelliSense - the popup which suggests you what you probably would like to type here) and I really suffer it because so much code was written for all those little handy things and people don't know about them. So I decided to write several entries to my blog explaining how ReSharper completion works and why. The series will consist of four parts - one for each type of completion (Basic, SmartType and TypeName) plus one describing insert/replace modes. Here's the first part describing Basic completion.<br />
Basic completion is what you probably use most of the time - it is usually invoked with Ctrl+Space shortcut (Ctrl+J and F4 seem to work in pure VS.NET) and lists symbols available in the context:</p>

<p><img alt="basic1.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic1.png" width="298" height="137" border="0" /></p>

<p>It is pretty similar to what you get in VS.NET except several differences: blue highlighting for typed prefix, editor-styled font, green and red markers for properties showing if they're readable or writeable, bold fonts for members implemented to the type itself, etc. If you don't like our looks (icons and fonts) there's option to switch to Visual Studio ones. <br />
Basic completion also automatically pops up if you press dot:</p>

<p><img alt="basic2.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic2.png" width="282" height="136" border="0" /></p>

<p>where it lists available members. Not that by default it merges method overloads to single list entry. If you don't like it you can switch an option et voila:</p>

<p><img alt="basic3.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic3.png" width="624" height="134" border="0" /></p>

<p>- you've got all signatures plus return types.<br />
Really important differences come up when you choose an item - it not barely inserts its name, but, if needed, it adds parentheses, semicolon and places caret to the right place:</p>

<p><img alt="basic4.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic4.png" width="397" height="116" border="0" /></p>

<p>The last thing I would like to tell you about is name completion: once you press Ctrl+Space where a new name in declaration is expected, ReSharper comes up with names based on type name and your prefix preferences:</p>

<p><img alt="basic5.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic5.png" width="612" height="129" border="0" /></p>

<p>and</p>

<p><img alt="basic7.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic7.png" width="546" height="166" border="0" /></p>

<p>You can also add custom prefix for those names by typing it prior to calling code completion:</p>

<p><img alt="basic6.png" src="http://blogs.jetbrains.com/nocturne/archives/codecompletion1/basic6.png" width="262" height="95" border="0" />.</p>

<p>Naming conventions (prefixes and suffixes for different kind of symbols) can be configured (you see that we have pretty unusual prefixes for instance and static fields).</p>

<p>That's all for today - next entry will feature insert and replace modes in code completion. Hope this entry will make you more productive with ReSharper from this moment on.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-05-29T19:25:09+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000038.html">
<title>Virtual Earth</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000038.html</link>
<description><![CDATA[<p>I've just watched <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=71140">Virtual Earth video</a> at Channel 9 and really liked the way Microsoft advances the user experience side of their products. Usually I'm not satisfied at all by UI of almost all of Microsoft applications - from Visual Studio to Office to MapPoint, but now I must say shame on Google - almost ALL of the features the video showed are absolutely obvious. "Hybrid" view, double click for zoom-in, panning - they're so natural that I cannot understand why doesn't Google have it already. I'm pretty sure they they will catch up with Microsoft on feature set, especially remembering that Google Maps is publicly available while Virtual Earth not, but I should confess that I didn't expect that Microsoft will add all those little things because I didn't notice that they really pay attention to the user experience microdynamics when I used their products.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-05-29T18:33:03+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000036.html">
<title>Are You Feeling Lucky?</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000036.html</link>
<description><![CDATA[<p>In version 2.0 of the ReSharper we're going to extend the refactoring pipeline to add better conflict support and optional changes (for possible occurences in comments and string literals). Note that it mainly won't affect your usual refactoring  experience as long as you don't get any conflicts. <br />
But we sometimes also think about creating some shorthands for running refactorings with default options (like Google's I'm Feeling Lucky button) - for example, a method can be extracted with default options for return value, etc. with just a single shortcut. It will extract method and create live template over it to let user specify name of the method and its parameters. Somewhat similar approach we utilize in renaming locals and searching references. In the latter case we have one shortcut (Alt+F7) for running search with last specified options and another (Shift+Alf+F7) for specifying all options and then running the search. <br />
Of couse you won't be lucky all the time so the question is: which refactorings you feel match this scheme well and which options you think should be configurable even in such "quick" scenario?</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-02-22T13:39:46+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000032.html">
<title>Source Code Search Engines</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000032.html</link>
<description><![CDATA[<p>I've recently thought of adding additional feature to ReSharper: something like "Extended Help" : it would search the Web and some special sites like (MSDN Online, .NET 247, etc.) for information about that exact symbol which is currently selected in the IDE. One thing I would also like to implement there is searching any publicly available code repositories for usages of the symbol. The idea behind that is allowing users to see how the symbol is used by their peers what could help them to detect errors in their code and find useful API usage patterns. Several days ago I found a site which does almost what I said: <a href="http://www.koders.com">koders.com</a>. Unfortunately it only performs textual indexing of source code so it's difficult to find occurences of a specific method (or even indexer if we take C#). I also didn't like the results format much. Maybe anyone knows a search engine which also performs resolve on open source repositories and allows searching particular symbols. If not, it's another nice idea to work on in spare time when I get some. I never wrote search engines so it must be a very exciting experience ;)</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-02-09T13:51:44+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000031.html">
<title>JetBrains .NET profiler is out</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000031.html</link>
<description><![CDATA[<p>This Monday we started EAP (Early Access Program) for our new development tool - <a href="http://www.jetbrains.net/confluence/display/NetProf/Home">JetBrains .NET Profiler</a>. As follows from its name the purpose of this tool is to profile performance of your .NET applications. The tool is currently a bit raw as we wanted to atart the EAP as early as possible to collect maximum feedback from our potential customers at early stage of development. As usually we focus on making thing done easier what in this context means that you should be able to find bottlenecks in your code in minutes. Check it out now at <a href="http://www.jetbrains.net/confluence/display/NetProf/Download">http://www.jetbrains.net/confluence/display/NetProf/Download</a>.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-26T18:32:19+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000030.html">
<title>Decremental Programming</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000030.html</link>
<description><![CDATA[<p>While the whole software development world uses incremental development processes I seem to practive opposite approach which the team calls "Decremental Programming". One of the last refactorings for 1.5 was conversion from interface to abstract class. I started off with a great swiss army knife-like code which could also give new name to the converted class and had option to leave interface and just insert additional level of abstraction between it and its inheritors (I found it useful when a developer wants to share some code between all interface implementations). But after discussion we first cut the option and then the ability to change the name. This resulted in decremental changes in code: I removed the functionality from the actual refactoring code making is clearer. If you find you really need these features I strongly encourage you to post a request to the tracker to we could discuss it. Similar changes I do now for code completion and other subsystems (without reducing functionality, just some clean-up) before starting bugfixing race for 2.0.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-26T18:25:08+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000029.html">
<title>Code Cloverage</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000029.html</link>
<description><![CDATA[<p>Yesterday I finished writing refactorings planned for 1.5 and decided to diverse my activity by investigating possibility to add automated code coverage analysis to our build process. I chose <a href="http://www.cenqua.com/clover.net/">Clover .NET</a> as coverage tool mainly because there are not too many alternatives (NCover seems a bit raw) and that a team next door (Fabrique) successfully uses its big Java brother - Clover.<br />
Integrating it turned out to be a tricky task as our build process is fairy complicated: we use NAnt as general workflow engine, VS.NET for building and multiple custom tools for code generation, etc. So I ended up writing another tool which takes our solution file, goes through its projects and creates copies of the projects which contain instrumented sources. At the end we get copy of our original solution which references instrumented projects.<br />
But unfortunately Clover doesn't seem to handle projects of such size well: when I run unit tests on clovered binaries it starts allocating too much memory and fails with OutOfMemoryException when memory consumption reaches 1.5Gb. First I though we really have so much code and added another gig of RAM to my machine but this didn't help. I even added /3GB switch to the boot.ini file to extend address space for the process. No effect. I only could get results when I instrumented only one of our 40+ projects (medium sized one - about 42000 NCLOC). I got quite reasonable results (however, I have to confess that I wish the coverage was much better).<br />
Then I decided to read through the instrumented sources to learn what the instrumentation process does. It actually creates static array for each instrumented class (of course, it is covered in special reporter class, but details don't matter now). Then at each statement and condition it increments certain elements of array. Indexes are presented as numeric literals in code so it must keep some database which matches these numbers to particular lines in code. First I thought that the problem was with these indexes, but after carefully reading the code through Reflector (it was reallly simple - only three classes in the runtime) I changed my mind. Finally it turned out that the problem was that Clover instrumented a class which was used in COM interop and the changes added static constructor to it which caused TypeLoadException in our code deeps. The exception somehow got uncaught and resulted in maintaining many thousands copies of test data in memory. When I excluded that file from instrumentation everything went ok except one problem with instrumenting boolean expressions containing assignments (I know that Clover has special options for it, but it didn't seem to help).<br />
As a bottomline I don't regret that I spent so much time making it work as the test coverage report seems to be very helpful. We will try to make it run automatically and play with the results for a month or so before deciding whether we're going to use it in our development.</p>]]></description>
<dc:subject>.NET</dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-20T19:52:41+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000028.html">
<title>Build 153</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000028.html</link>
<description><![CDATA[<p>I've just put build 153 to our download storage. Ugh... It includes new refactoring called "Introduce Parameter" and I spent the whole last week implementing it. The idea is simple: you take a variable or an expression, invoke the refactoring and it adds new parameter to your method/constructor/indexer signature and initialises it with the selected expression or variable initializer at all call sites.<br />
But of course there are lot of details: dealing with params modifier, qualified calls, usages of other parameters, etc. Of couse there are quite a few tests on it, but if you find a bug, please report it to our <a href="http://www.intellij.net/tracker/resharper/browse">Tracker</a>.<br />
I also added slight modification to the "Extract Interface" refactoring to support so called "quasi supermembers" ;). This is our internal name for the case when an interface member is implemented using base class' public members. So now you can select such members for extraction.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-17T21:15:00+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000027.html">
<title>Raising The Bar</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000027.html</link>
<description><![CDATA[<p>Another thing which excites me in my working experience at JetBrains is that we're always raising the bar whatever we do. This is major difference from what is happening in technology-driven IT giants like Microsoft because their main efforts are put into driving technology forward. If we take, for example, their Visual Studio product, all major efforts are put to implementing that hot technologies which were just developed by peers in Microsoft campus - you know, ASP.NET 2.0, .NET Framework 2.0, SQL Server 2005). Instead of doing this (I'm not talking about Fabrique project) we're working on improving everyday end-user experience by polishing the tools and providing easy ways to do routine work. This might look not as significant (we don't post announcements in every programming magazine sayng that our smart completion now guesses what you're going to type after "case " keyword), but it's important in that we create a solid programming experience for everyone using our products. <br />
In its time Intellij IDEA rose bar in many aspects of Java IDEs and now it's our turn to do the same in .NET world although currently there are now not many players.</p>]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-12T18:33:11+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000026.html">
<title>ReSharper 1.5 goes into EAP</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000026.html</link>
<description><![CDATA[<p>Well, it seems like I'm not making any news in the blogsphere announcing start of ReSharper 1.5 Early Access Program. But since it seems like almost all new features of 1.5 are mine I think I'm the one who should write couple words about them. </p>
<p>This version's keyword is “refactorings” (it is even called so in our issue tracking system) which means that current and future ReSharper users will get more quality refactorings this month when 1.5 is released. Next I'll describe each of the new refactorings in a few words.</p>

<p><i>Extract Interface</i></p>
<p>A very simple refactoring which can be found in most refactoring add-ins and in VS2005. Our version, however, has interesting enchancement: you can extract not only type members (like methods, events, etc.), but also interface implementations. What I mean can be shown on a simple example:
</p>

<pre>
interface I
{
  void Foo();
}

class C : I
{
  public void Bar() {}

  public void Foo()
  {
    throw new NotImplementedException();
  }
}
</pre>

<p>If we try to extract interface from class C ReSharper will show the following dialog:</p>

<img alt="ExtractInterface.png" src="http://blogs.jetbrains.com/nocturne/archives/resharper15/ExtractInterface.png" width="449" height="465" border="0" />

<p>It gives us option not only to extract members of class C, but also implementation of interface I. If we choose to extract I and Bar, we get the following result:</p>

<pre>
interface I
{
  void Foo();
}

class C : IC
{
  public void Bar()
  {
  }

  public void Foo()
  {
    throw new NotImplementedException();
  }
}

interface IC : I
{
  void Bar();
}	
</pre>

<p><i>Extract Superclass</i></p>

<p>Extract superclass is like extract interface, but the difference is big enough: since it extracts members with bodies and also can extract constructors the logic is far more complicated than in extract interface. I won't, however, describe these “little details” that should have been taken into account and will only recommend you to try it out.</p>

<p><i>Copy Type</i></p>
<p>Copy type is copy type. Take a type declaration, choose Refactor -> Copy Type and you’ll get the same declaration copied under different name.</p>

<p><i>Introduce Field</i></p>
<p>Introduce field refactoring replaces usages of an expression or a variable with usages of new field or constant. To use it simply select an expression or place cursor at variable declaration and invoke the refactoring. You will see the following dialog:</p>

<img alt="IntroduceField.png" src="http://blogs.jetbrains.com/nocturne/archives/resharper15/IntroduceField.png" width="335" height="345" border="0" />

<p>The refactoring gives you option to choose where to initialize the new field, which visibility to use (the list misses "protected internal" access modifier since it’s rarely used), whether to introduce constant, declare the field readonly and whether to replace all occurences of the expression. After you decide on each option you can confirm your choice and the field will be created.</p>

<p><i>Encapsulate Field</i></p>
<p>This refactoring allows you to create proxy property for a field (like our "Generate Getter/Setter" feature) and replace some or all of its usages with usages of the created property. Simply choose a field and invoke the refactoring. It will give you lots of options including whether to replace reads and writes, external or all usages, new property visibility, etc.</p>

<p>The list is incomplete. This week I'll be working on introduce parameter and maybe some other refactoring(s)...</p>
]]></description>
<dc:subject></dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-10T19:03:35+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000025.html">
<title>New Year</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000025.html</link>
<description><![CDATA[<p>So, another year passed. Many things were done in 2004 the main of which was, of course, ReSharper 1.0. I developed many different subsystems in in from code completion to refactorings and this gave me a huge development experience boost. In 2005 I plan to finish ReSharper 1.5, improve ReSharper functionality for 2.0 (huge part of such improvement will be .NET 2.0 support) and spend more time designing rather than coding.</p>]]></description>
<dc:subject>Common stuff</dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2005-01-10T18:35:12+03:00</dc:date>
</item>
<item rdf:about="http://blogs.jetbrains.com/nocturne/archives/000023.html">
<title>ReSharper 1.0.5 is out</title>
<link>http://blogs.jetbrains.com/nocturne/archives/000023.html</link>
<description><![CDATA[<p>The fifth bugfix update for ReSharper is out. Take it at <a href="http://www.jetbrains.com/resharper/download/index.html">ReSharper download page</a>. We did a good work and fixed lots of issues came from our customers. It's probably last update for ReSharper 1.0, so the next bits we'll put to EAP will be of ReSharper 1.5.</p>]]></description>
<dc:subject>.NET</dc:subject>
<dc:creator>Oleg Stepanov</dc:creator>
<dc:date>2004-12-24T19:03:19+03:00</dc:date>
</item>


</rdf:RDF>