Showing posts with label jetbrain. Show all posts
Showing posts with label jetbrain. Show all posts

Sunday, September 8, 2013

Local Repository for Resharper Extensions in an Enterprise

Resharper extensions are simply nuget packages. As we discussed before, we can host a local nuget repository [Hosting Nuget Feeds] within the organization boundaries. You might be wondering if that is also possible for Resharper Extensions.



Like Nuget, Resharper also maintains a local cache for the extensions. The local cache is maintained in %APPDATA% folder. We can use package extensions from this folder to build up our repository bearing the legal licensing issues.



Just to test how it works, let's copy the contents of this folder to a shared folder with a UNC path. It also totally works with local file system path. But don't directly share it from this folder. It wouldn't make sense to directly add this path as a repository. This is because the presence of this package means that the package is already installed. This is different than the argument when we shared local cache as a nuget repository as those packages are installed to projects and solutions. On the other hand, resharper extension is not specific to a project or solution. Once installed it is available to all visual studio sessions as long as you have them and resharper enabled.



After adding the repository, the repository becomes available as a source of resharper's extensions. Please notice an extra option under repository in the following image. As added above, the repository is titled Local Repository.



Sharing Resharper Extension Manager Settings
As an enterprise developer, we need to think about the whole team. We can't expect each developer to be adding this setting on his own as it is opening the system to human error. Additionally, what if we want to change the source of the repository to another location. Do you want another communication with the whole team. Best of luck if you do :). This should be seamless. Here layered settings for resharper can come for rescue. This is a universal storage mechanism for resharper's settings.



You can view and edit the layers from Resharper -> Manage Options menu in Visual Studio. Here is the interface to manage layers for settings.



For the resharper extensions we can use system wide settings layer. I don't see any issue with creating a group policy to copy the global system wide setting to copy the local repository location. The user specific settings are maintained in roaming profiles of the user under %APPDATA% folder. I don't know why they call it This Computer" when they are defined in user's APPDATA folder.



I think Nuget got it better as Nuget 2.7 also introduced a similar feature but those global settings are defined in %ProgramData%\NuGet\NuGetDefaults.config which is system wide.

Tuesday, May 7, 2013

dotPeek peeks Nuget packages now!

JetBrains has announced today a new plugin for dotPeek. This is to provide support for peeking into nuget packages without downloading them. This allows us to source packages from the chosen nuget repository. We can search for appropriate package and open them in Assembly Explorer.



It is also possible to peek all nuget packages as referenced in a packages.config file.



As we discussed in our previous post that assembly explorer has already been added to Resharper 8 EAP, there might be future support of the same feature in Resharper 8. After installation, the package should be available in installed plugins list. This can be enabled or disabled by using the options here:



You don't need to download the dotPeek 1.1 EAP as the plugin is also supported for RTM version of the tool. You can find further details about the plugin along with download instruction on JetBrain's blog here:

http://blogs.jetbrains.com/dotnet/2013/05/peeking-into-nuget-packages-with-dotpeek/

Sunday, March 18, 2012

JetBrain's dotPeek for Decompiling .net assemblies

Since RedGate's .net reflector is a commercial tool now (which is not free), there has been a need for a free tool for decompiling .net assembly. Well, JetBrain has impressed yet again with its own product for disassembling. Although not officially released yet, the current version of the build was pushed on December 29, 2011. This product is named as dotPeek. This is what they are saying:

dotPeek is a new free .NET decompiler from JetBrains, the makers of a wide array of developer productivity tools.

Browsing namespace hierarchies
All you need to do is drag and drop the assembly in the tool and just browse through the namespace hierarchies to find the required type.


Browsing Type Hierarchies
Type hierarchies can also be navigated using the same assembly explorer. You can not only see the decompiled version of the type but also its inheritors and base classes. It also displays the interfaces that the type is implementing.


The type hierarchies can also be viewed in Assembly explorer.


Find Usage of a symbol
We can find the usage of a symbol like we do in visual studio. But definitely it would be able to get the usages in just the assembly loaded.


This can be downloaded from here:

http://confluence.jetbrains.net/display/NETPEEK/dotPeek+Early+Access+Program