Download alternate NDepend solution
Look at the free or trial alternatives and similar apps to NDepend software by the tags. It's possible also to find substitutes for the most popular titles in the Software Development category.
| Rank | Net Code | Nesting Depth | Ndepend | Lines Of Code | Cyclomatic Complexity | Cql | Coupling | Code Query Language |
History updates (Complete changelogs since the listing on this site)
4.1.0.6871 [12-13-12]
Features
Supports for WinRT (Windows Store) applications and .winmd files.
Introduce the notion of .NET Profiles (.NET Fx, Silverlight, WinRT...) concerning directories of a NDepend project, containing .NET framework assemblies.
The right .NET Profile of a new NDepend project is now infered automatically from application assemblies references.
Introduce the new enumeration NDepend.DotNet.DotNetProfile, that replaces NDepend.DotNet.DotNetFrameworkVersion.
The interface NDepend.DotNet.IDotNetManager has been enhanced to take account of .NET Profiles.
More VS2012 look and fell.
Bug Fixes
When NDepend was hosted in Visual Studio 2012, the Horizontal and Vertical scrollbars of the dependency matrix were not drawn properly.
A bug has been fixed in Mono.cecil, that made NDepend analysis crashes on some special assemblies.
When analyzing thousands of assemblies, an exception could popup because the analysis log relating assemblies resolving could be too large.
In the Queries Explorer panel, the queries DataGridView horizontal scroll bar, was shown even if it was not needed.
With high DPI Windows parameters, in the search panel, the query generated textbox size didn't have maximum width.
Version4.0.2.6750 Date11th of July 2012 Description
Default Code Rules set
New Code Rule: Collection properties should be read only
New Code Rule: Avoid publicly visible constant fields
Rules 'Potentially dead Types', 'Wrong usage of IsNotDeadCodeAttribute', 'Types that could have a lower visibility' and 'Wrong usage of CannotDecreaseVisibilityAttribute' have been adapted to avoid matching static types that have only literal (const) fields. Indeed, these types cannot be seen as used in IL code.
Take account of types and methods tagged with 'System.Diagnostics.DebuggerNonUserCodeAttribute' to define the set JustMyCode in default queries: 'Discard generated Types from JustMyCode' and 'Discard generated and designer Methods from JustMyCode'.
Bug Fixes
In VS 2012, 2010 context, when opening the panel 'Queries and Rules Explorer' from the main menu, and then docking it in another panel, the panel didn't maximize its size.
The methods from NDepend.CodeModel.ExtensionMethodsHelpers, To[Simple/Full]NameLikePredicate() don't require anymore the input contract that regexString must be not empty. In Certain situations this provoqued exceptions.
For a IType object that is a third-party interface, the types returned by IType.TypesThatImplementMe didn't contain third-party types that implement the interface.
In Report, the algorithm used to sort a numeric column was a textual sorting algorithm instead of a numeric sorting algorithm.
Hitting Ctrl-Space after a word at the start of a line just below a mono-line comment that ends up with a dot, could provoque an exception.
Right clicking a parent code element (type, namespace...) with a lot of direct child, now can tell instantly if there is a dependency cycle between the direct child of the code elements.
When installing the Reflector add-in through a code element right click -> Reflector menu, the Reflector add-in installation wasn't persisted when closing the process.
In VisualStudio NDepend addin light installation, when installing the Reflector add-in through a code element right click -> Reflector menu, clicking the browse file button provoked an exception.
When starting Reflector from NDepend, if the Reflector window was closed immediately after popup, a RemotingException occured on the NDepend side.
Very rarely, a NullReferenceException was thrown while the user was editing a code query.
Very rarely, for some obfuscated assembly a NullReferenceException could popup at analysis time.
Very rarely, while running a full analysis in the VisualNDepend process, a ThreadAbortException could popup.
Very rarely, a CannotUnloadAppDomainException could popup after loading a project.
Very rarely, a NullReferenceException could popup when opening a sub-result (in a row), in a CQLinq query result.
Version4.0.1.6475 Date30th of May 2012 Description
Bug Fixes
Methods UsingAny() IndirectlyUsingAny() UsedByAny() IndirectlyUsedByAny() defined in ExtensionMethodsSequenceUsage class didn't return any input code element, in the output sequence of code element, even for input code elements matching the usage condition.
On machine without .NET Fx v3.5 SP1 installed, a MissingMethodException could be thrown because of the usage of the method System.Threading.WaitHandle.WaitOne(Int32), that has been added to .NET Fx v3.5 SP1 release!
Version4.0.0.6345 Date23th of May 2012 Description
Features
CQLinq: Code Querying and Rule over LINQ
NDepend.API and open-source Power Tools implemented on top of NDepend.API
Possibility to define the code base view JustMyCode through CQLinq queries prefixed with "notmycode", to exclude generated and unwanted code elements from CQLinq rules and queries result.
Possibility to compare evolution, trending (Avoid making complex methods even more complex)
Possibility to create custom code metrics.
Advanced code completion and documentation browsing for CQLinq queries edition.
Time out available for CQLinq queries and Query execution duration displayed
Query conversion from CQL query to CQLinq query. Available in Queries panel edition, Queries and Rules Explorer panel, as a Power Tool, and as an NDepend API extension method: string ConvertToCQLinq(this IQueryCompiledSuccess queryCompiledSuccess)
Possibility to visualize sub-query result, made of a collection of code elements for each query match.
NDepend integration within Visual Studio 2012
Support for .NET v4.5 and Silverlight v5.0.
Project and Analysis Result files referenced from baseline for comparison, can now be defined through relative or absolute paths.
NDepend.Console.exe file path and directory path arguments can now be relative to the parent directory path of the NDepend project file specified as a first argument. The NDepend project file path cannot be a relative path.
Mouse hovering in various panel is now less reactive. Toolips only appears when the user position the mouse over a hot spot, and flashy tooltips on mouse move are discarded.
Facility to reset the dependency graph and matrix with assemblies, namespaces and namespaces dependency cycles.
Support to plug the Visual Studio 2012 Diff tool to NDepend.
New Power Tools
Query Code with CQLinq Detect Assemblies Versionning and Deployment Issues Public API Changes (including API Breaking Changes) Search for Duplicate Code Find potential Dead Code Code Base Evolution Code Review Methods Changed Search Types by Name AppWords Analyze Code on my Disk Analyze Assemblies in Folder Analyze all .NET Framework Assemblies Convert CQL queries/rules of a project to CQLinq queries/rules .NET Framework v3.5 and v4.X installed, Core Public API Changes
New Default Code Rules
Base class should not use derivatives Do not hide base class methods Types with disposable instance fields must be disposable Disposable types with unmanaged resources should declare finalizer Extension methods should not be used to extend System.Object Overrides of Method() should call base.Method() Methods should be declared static if possible Non-static classes should be instantiated Constructor should not call a virtual methods Don't assign static fields from instance methods Avoid types initialization cycles Avoid interfaces with too many methods and property getter Avoid the Singleton pattern Avoid custom delegates Avoid namespaces mutually dependent Avoid namespaces dependency cycles Avoid partitioning the code base through many small library Assemblies Avoid public methods not publicly visible Constructors of abstract classes should be declared as protected or private Equals() should be overridden by types implementing the '==' operator UI layer shouldn't use directly DB types UI layer shouldn't use directly DAL layer Avoid public methods not publicly visible Methods that could have a lower visibility Broken serializable types Heuristic to find types moved from one namespace or assembly to another C.R.A.P method code metric Avoid decreasing code coverage by tests of types Types that used to be 100% covered but not anymore Avoid making complex methods even more complex Avoid making large methods even larger Avoid transforming immutable types into mutable types Avoid adding methods to a type that already had many methods Avoid adding instance fields to a type that already had many instance fields Avoid transforming an immutable type into a mutable one Avoid transforming an immutable field into a mutable one Types tagged with ImmutableAttribute must be immutable Avoid static fields with a mutable field type A field must not be assigned from outside its parent hierarchy types Don't use obsolete types, methods or fields Don't use dangerous threading methods Don't tag instance fields with ThreadStaticAttribute Don't forget to implement methods that throw NotImplementedException Don't call your method Dispose Methods prefixed with 'Try' should return a boolean Avoid having different types with same name Avoid prefixing type name with parent namespace name Avoid naming types and namespaces with the same identifier Public methods returning a reference needs a contract to ensure that a non-null reference is returned Test Methods Methods directly called by test Methods Methods directly and indirectly called by test Methods Types directly using one or several types changed Types indirectly using one or several types changed Methods directly calling one or several methods changed Methods indirectly calling one or several methods changed Higher cohesion - lower coupling Avoid referencing source file out of Visual Studio project directory Avoid duplicating a type definition across assemblies Namespace name should correspond to file location Avoid defining multiple types in a source file Types with source files stored in the same directory, should be declared in the same namespace Types declared in the same namespace, should have their source files stored in the same directory
Enhanced Default Code Rules
Types with too many methods Types with too many fields Type should not have too many responsibilities A stateless class or structure might be turned into a static type Class shouldn't be too deep in inheritance tree All Code Diff Summary queries are API Breaking Changes: Methods API Breaking Changes: Types API Breaking Changes: Fields API Breaking Changes: Interfaces Potentially dead Types Potentially dead Methods Potentially dead Fields Types tagged with ImmutableAttribute must be immutable Methods tagged with PureAttribute must be pure Property Getters should be immutable Avoid methods with name too long Avoid types with name too long Avoid fields with name too long Interface name should begin with a 'I' All 30 .NET Framework Usage rules
Bug Fixes
All NDepend assemblies are now compiled in AnyCPU. This solves all incompatibility problem with Reflector and VisualStudio on machines with a x64 processor architecture.
Right-clicking an assembly in 'Project Properties > Code to Analyze' or in form 'Analyse a set of .NET Assemblies' didn't provoked the row selection.
Toolips are not flickering anymore.
From the menu Compare 2 versions of a code base, if the newer version was a set of assemblies and a report was generated, the report only displayed the newer version of the code base. It wasn't compared with the older version of the code base.
In the tree view showing code queries group, even with the vertical scrollbar down, the last item wasn't shown properly.
Types generated by the compiler, from an iterator method implemented as an explicit interface implementation method, were not seen as IsGeneratedByCompiler.
Some rare obfuscated assembly could provoke a NullReferenceException at analysis time.
Some memory leaks have been fixed.
Other versions :
4.0.2.6750
4.0.1.6475
3.9.0.5848
3.8.1.5706
3.8.0.5674
3.7.0.5526
3.6.0.5432
v4.0.2.6750 [07-31-12]
Default Code Rules set
New Code Rule: Collection properties should be read only New Code Rule: Avoid publicly visible constant fields Rules 'Potentially dead Types', 'Wrong usage of IsNotDeadCodeAttribute', 'Types that could have a lower visibility' and 'Wrong usage of CannotDecreaseVisibilityAttribute' have been adapted to avoid matching static types that have only literal (const) fields. Indeed, these types cannot be seen as used in IL code. Take account of types and methods tagged with 'System.Diagnostics.DebuggerNonUserCodeAttribute' to define the set JustMyCode in default queries: 'Discard generated Types from JustMyCode' and 'Discard generated and designer Methods from JustMyCode'. Bug Fixes In VS 2012, 2010 context, when opening the panel 'Queries and Rules Explorer' from the main menu, and then docking it in another panel, the panel didn't maximize its size. The methods from NDepend.CodeModel.ExtensionMethodsHelpers, To[Simple/Full]NameLikePredicate() don't require anymore the input contract that regexString must be not empty. In Certain situations this provoqued exceptions. For a IType object that is a third-party interface, the types returned by IType.TypesThatImplementMe didn't contain third-party types that implement the interface. In Report, the algorithm used to sort a numeric column was a textual sorting algorithm instead of a numeric sorting algorithm. Hitting Ctrl-Space after a word at the start of a line just below a mono-line comment that ends up with a dot, could provoque an exception. Right clicking a parent code element (type, namespace...) with a lot of direct child, now can tell instantly if there is a dependency cycle between the direct child of the code elements. When installing the Reflector add-in through a code element right click -> Reflector menu, the Reflector add-in installation wasn't persisted when closing the process. In VisualStudio NDepend addin light installation, when installing the Reflector add-in through a code element right click -> Reflector menu, clicking the browse file button provoked an exception. When starting Reflector from NDepend, if the Reflector window was closed immediately after popup, a RemotingException occured on the NDepend side. Very rarely, a NullReferenceException was thrown while the user was editing a code query. Very rarely, for some obfuscated assembly a NullReferenceException could popup at analysis time. Very rarely, while running a full analysis in the VisualNDepend process, a ThreadAbortException could popup. Very rarely, a CannotUnloadAppDomainException could popup after loading a project. Very rarely, a NullReferenceException could popup when opening a sub-result (in a row), in a CQLinq query result. Version4.0.1.6475 Date30th of May 2012 Description
Bug Fixes Methods UsingAny() IndirectlyUsingAny() UsedByAny() IndirectlyUsedByAny() defined in ExtensionMethodsSequenceUsage class didn't return any input code element, in the output sequence of code element, even for input code elements matching the usage condition. On machine without .NET Fx v3.5 SP1 installed, a MissingMethodException could be thrown because of the usage of the method System.Threading.WaitHandle.WaitOne(Int32), that has been added to .NET Fx v3.5 SP1 release! Version4.0.0.6345 Date23th of May 2012 Description
Features CQLinq: Code Querying and Rule over LINQ NDepend.API and open-source Power Tools implemented on top of NDepend.API Possibility to define the code base view JustMyCode through CQLinq queries prefixed with "notmycode", to exclude generated and unwanted code elements from CQLinq rules and queries result. Possibility to compare evolution, trending (Avoid making complex methods even more complex) Possibility to create custom code metrics. Advanced code completion and documentation browsing for CQLinq queries edition. Time out available for CQLinq queries and Query execution duration displayed Query conversion from CQL query to CQLinq query. Available in Queries panel edition, Queries and Rules Explorer panel, as a Power Tool, and as an NDepend API extension method: string ConvertToCQLinq(this IQueryCompiledSuccess queryCompiledSuccess) Possibility to visualize sub-query result, made of a collection of code elements for each query match. NDepend integration within Visual Studio 2012 Support for .NET v4.5 and Silverlight v5.0. Project and Analysis Result files referenced from baseline for comparison, can now be defined through relative or absolute paths. NDepend.Console.exe file path and directory path arguments can now be relative to the parent directory path of the NDepend project file specified as a first argument. The NDepend project file path cannot be a relative path. Mouse hovering in various panel is now less reactive. Toolips only appears when the user position the mouse over a hot spot, and flashy tooltips on mouse move are discarded. Facility to reset the dependency graph and matrix with assemblies, namespaces and namespaces dependency cycles. Support to plug the Visual Studio 2012 Diff tool to NDepend. New Power Tools Query Code with CQLinq Detect Assemblies Versionning and Deployment Issues Public API Changes (including API Breaking Changes) Search for Duplicate Code Find potential Dead Code Code Base Evolution Code Review Methods Changed Search Types by Name AppWords Analyze Code on my Disk Analyze Assemblies in Folder Analyze all .NET Framework Assemblies Convert CQL queries/rules of a project to CQLinq queries/rules .NET Framework v3.5 and v4.X installed, Core Public API Changes New Default Code Rules Base class should not use derivatives Do not hide base class methods Types with disposable instance fields must be disposable Disposable types with unmanaged resources should declare finalizer Extension methods should not be used to extend System.Object Overrides of Method() should call base.Method() Methods should be declared static if possible Non-static classes should be instantiated Constructor should not call a virtual methods Don't assign static fields from instance methods Avoid types initialization cycles Avoid interfaces with too many methods and property getter Avoid the Singleton pattern Avoid custom delegates Avoid namespaces mutually dependent Avoid namespaces dependency cycles Avoid partitioning the code base through many small library Assemblies Avoid public methods not publicly visible Constructors of abstract classes should be declared as protected or private Equals() should be overridden by types implementing the '==' operator UI layer shouldn't use directly DB types UI layer shouldn't use directly DAL layer Avoid public methods not publicly visible Methods that could have a lower visibility Broken serializable types Heuristic to find types moved from one namespace or assembly to another C.R.A.P method code metric Avoid decreasing code coverage by tests of types Types that used to be 100% covered but not anymore Avoid making complex methods even more complex Avoid making large methods even larger Avoid transforming immutable types into mutable types Avoid adding methods to a type that already had many methods Avoid adding instance fields to a type that already had many instance fields Avoid transforming an immutable type into a mutable one Avoid transforming an immutable field into a mutable one Types tagged with ImmutableAttribute must be immutable Avoid static fields with a mutable field type A field must not be assigned from outside its parent hierarchy types Don't use obsolete types, methods or fields Don't use dangerous threading methods Don't tag instance fields with ThreadStaticAttribute Don't forget to implement methods that throw NotImplementedException Don't call your method Dispose Methods prefixed with 'Try' should return a boolean Avoid having different types with same name Avoid prefixing type name with parent namespace name Avoid naming types and namespaces with the same identifier Public methods returning a reference needs a contract to ensure that a non-null reference is returned Test Methods Methods directly called by test Methods Methods directly and indirectly called by test Methods Types directly using one or several types changed Types indirectly using one or several types changed Methods directly calling one or several methods changed Methods indirectly calling one or several methods changed Higher cohesion - lower coupling Avoid referencing source file out of Visual Studio project directory Avoid duplicating a type definition across assemblies Namespace name should correspond to file location Avoid defining multiple types in a source file Types with source files stored in the same directory, should be declared in the same namespace Types declared in the same namespace, should have their source files stored in the same directory Enhanced Default Code Rules Types with too many methods Types with too many fields Type should not have too many responsibilities A stateless class or structure might be turned into a static type Class shouldn't be too deep in inheritance tree All Code Diff Summary queries are API Breaking Changes: Methods API Breaking Changes: Types API Breaking Changes: Fields API Breaking Changes: Interfaces Potentially dead Types Potentially dead Methods Potentially dead Fields Types tagged with ImmutableAttribute must be immutable Methods tagged with PureAttribute must be pure Property Getters should be immutable Avoid methods with name too long Avoid types with name too long Avoid fields with name too long Interface name should begin with a 'I' All 30 .NET Framework Usage rules Bug Fixes All NDepend assemblies are now compiled in AnyCPU. This solves all incompatibility problem with Reflector and VisualStudio on machines with a x64 processor architecture. Right-clicking an assembly in 'Project Properties > Code to Analyze' or in form 'Analyse a set of .NET Assemblies' didn't provoked the row selection. Toolips are not flickering anymore. From the menu Compare 2 versions of a code base, if the newer version was a set of assemblies and a report was generated, the report only displayed the newer version of the code base. It wasn't compared with the older version of the code base. In the tree view showing code queries group, even with the vertical scrollbar down, the last item wasn't shown properly. Types generated by the compiler, from an iterator method implemented as an explicit interface implementation method, were not seen as IsGeneratedByCompiler. Some rare obfuscated assembly could provoke a NullReferenceException at analysis time. Some memory leaks have been fixed.
v4.0.1.6475 [06-12-12]
Bug Fixes
Methods UsingAny() IndirectlyUsingAny() UsedByAny() IndirectlyUsedByAny() defined in ExtensionMethodsSequenceUsage class didn't return any input code element, in the output sequence of code element, even for input code elements matching the usage condition. On machine without .NET Fx v3.5 SP1 installed, a MissingMethodException could be thrown because of the usage of the method System.Threading.WaitHandle.WaitOne(Int32), that has been added to .NET Fx v3.5 SP1 release! Version4.0.0.6345 Date23th of May 2012 Description
Features CQLinq: Code Querying and Rule over LINQ NDepend.API and open-source Power Tools implemented on top of NDepend.API Possibility to define the code base view JustMyCode through CQLinq queries prefixed with "notmycode", to exclude generated and unwanted code elements from CQLinq rules and queries result. Possibility to compare evolution, trending (Avoid making complex methods even more complex) Possibility to create custom code metrics. Advanced code completion and documentation browsing for CQLinq queries edition. Time out available for CQLinq queries and Query execution duration displayed Query conversion from CQL query to CQLinq query. Available in Queries panel edition, Queries and Rules Explorer panel, as a Power Tool, and as an NDepend API extension method: string ConvertToCQLinq(this IQueryCompiledSuccess queryCompiledSuccess) Possibility to visualize sub-query result, made of a collection of code elements for each query match. NDepend integration within VS 11 Support for .NET v4.5 and Silverlight v5.0. Project and Analysis Result files referenced from baseline for comparison, can now be defined through relative or absolute paths. NDepend.Console.exe file path and directory path arguments can now be relative to the parent directory path of the NDepend project file specified as a first argument. The NDepend project file path cannot be a relative path. Mouse hovering in various panel is now less reactive. Toolips only appears when the user position the mouse over a hot spot, and flashy tooltips on mouse move are discarded. Facility to reset the dependency graph and matrix with assemblies, namespaces and namespaces dependency cycles. Support to plug the Visual Studio 11 Diff tool to NDepend. New Power Tools Query Code with CQLinq Detect Assemblies Versionning and Deployment Issues Public API Changes (including API Breaking Changes) Search for Duplicate Code Find potential Dead Code Code Base Evolution Code Review Methods Changed Search Types by Name AppWords Analyze Code on my Disk Analyze Assemblies in Folder Analyze all .NET Framework Assemblies Convert CQL queries/rules of a project to CQLinq queries/rules .NET Framework v3.5 and v4.X installed, Core Public API Changes New Default Code Rules Base class should not use derivatives Do not hide base class methods Types with disposable instance fields must be disposable Disposable types with unmanaged resources should declare finalizer Extension methods should not be used to extend System.Object Overrides of Method() should call base.Method() Methods should be declared static if possible Non-static classes should be instantiated Constructor should not call a virtual methods Don't assign static fields from instance methods Avoid types initialization cycles Avoid interfaces with too many methods and property getter Avoid the Singleton pattern Avoid custom delegates Avoid namespaces mutually dependent Avoid namespaces dependency cycles Avoid partitioning the code base through many small library Assemblies Avoid public methods not publicly visible Constructors of abstract classes should be declared as protected or private Equals() should be overridden by types implementing the '==' operator UI layer shouldn't use directly DB types UI layer shouldn't use directly DAL layer Avoid public methods not publicly visible Methods that could have a lower visibility Broken serializable types Heuristic to find types moved from one namespace or assembly to another C.R.A.P method code metric Avoid decreasing code coverage by tests of types Types that used to be 100% covered but not anymore Avoid making complex methods even more complex Avoid making large methods even larger Avoid transforming immutable types into mutable types Avoid adding methods to a type that already had many methods Avoid adding instance fields to a type that already had many instance fields Avoid transforming an immutable type into a mutable one Avoid transforming an immutable field into a mutable one Types tagged with ImmutableAttribute must be immutable Avoid static fields with a mutable field type A field must not be assigned from outside its parent hierarchy types Don't use obsolete types, methods or fields Don't use dangerous threading methods Don't tag instance fields with ThreadStaticAttribute Don't forget to implement methods that throw NotImplementedException Don't call your method Dispose Methods prefixed with 'Try' should return a boolean Avoid having different types with same name Avoid prefixing type name with parent namespace name Avoid naming types and namespaces with the same identifier Public methods returning a reference needs a contract to ensure that a non-null reference is returned Test Methods Methods directly called by test Methods Methods directly and indirectly called by test Methods Types directly using one or several types changed Types indirectly using one or several types changed Methods directly calling one or several methods changed Methods indirectly calling one or several methods changed Higher cohesion - lower coupling Avoid referencing source file out of Visual Studio project directory Avoid duplicating a type definition across assemblies Namespace name should correspond to file location Avoid defining multiple types in a source file Types with source files stored in the same directory, should be declared in the same namespace Types declared in the same namespace, should have their source files stored in the same directory Enhanced Default Code Rules Types with too many methods Types with too many fields Type should not have too many responsibilities A stateless class or structure might be turned into a static type Class shouldn't be too deep in inheritance tree All Code Diff Summary queries are API Breaking Changes: Methods API Breaking Changes: Types API Breaking Changes: Fields API Breaking Changes: Interfaces Potentially dead Types Potentially dead Methods Potentially dead Fields Types tagged with ImmutableAttribute must be immutable Methods tagged with PureAttribute must be pure Property Getters should be immutable Avoid methods with name too long Avoid types with name too long Avoid fields with name too long Interface name should begin with a 'I' All 30 .NET Framework Usage rules Bug Fixes All NDepend assemblies are now compiled in AnyCPU. This solves all incompatibility problem with Reflector and VisualStudio on machines with a x64 processor architecture. Right-clicking an assembly in 'Project Properties > Code to Analyze' or in form 'Analyse a set of .NET Assemblies' didn't provoked the row selection. Toolips are not flickering anymore. From the menu Compare 2 versions of a code base, if the newer version was a set of assemblies and a report was generated, the report only displayed the newer version of the code base. It wasn't compared with the older version of the code base. In the tree view showing code queries group, even with the vertical scrollbar down, the last item wasn't shown properly. Types generated by the compiler, from an iterator method implemented as an explicit interface implementation method, were not seen as IsGeneratedByCompiler. Some rare obfuscated assembly could provoke a NullReferenceException at analysis time. Some memory leaks have been fixed.
v3.9.0.5848 [10-23-11]
Features
Possibility to append to the code set to analyze, all .NET assemblies in a folder in a row (shallow or recursive). In the CQL Queries Explorer panel, new context menu possibility to paste any default group. Methods with too many overloads (NbOverloads) now doesn't match operator methods In NDepend project .ndproj file, code queries are now persisted in a friendly way for text edition, through some CDATA XML elements. Bug Fixes VS2010 crashes at shutdown when hosting NDepend (or another addin) appears to be a VS2010 bug solved by the VS2010 fix KB2275326: http://archive.msdn.microsoft.com/KB2275326 When VS2010 was hosting the NDepend addin on a machine with a DPI different than the default 96, hovering the mouse on progress circle didn't work properly. When installing or deinstalling a VS2010 extension, a NullReferenceException might popup provoked by the VS2010 NDepend Addin. If the font Arial Narrow wasn't installed on the machine, an exception could pops up when starting VisualStudio with NDepend addin. Some PDB files tagged with SRCSRV by the build server were seen as corrupted. On some VS coverage .coveragexml files, it might appears that some methods were not seen as having coverage data. In the dialog Choose VS solutions or projects, when double-clicking a DataGridView column header an exception was raised. In VisualNDepend.exe standalone UI, hovering with the mouse the right side of the progress circle icon in the bottom righ of the window, could provoque the associated panel to disappear. The query edition option Copy query to HTML might not transform correctly '$' character into "&". The metric NbVariables defined on method now doesn't take account of compiler generated variables anymore. Usage of methodof() and fieldof() operators is now taken account at analysis time to resolve dependencies. The case where an analysis result loaded has been done by a higher version of NDepend than the current NDepend version, was not properly indicated to the user. NDepend addin for Reflector v7 doesn't work by-design on a x64 machine. Basically NDepend has to be compiled x86 because of its VS integration, and on 64bits Reflector cannot load x86 assemblies. But one can open a Visual Studio command prompt and execute corflags /32bit+ /force C:UsersusernameXYZReflector.exe to make this work (make sure to replace the path to the file Reflector.exe). Selecting a type from NDepend to Reflector, when the Reflector process didn't exist yet, was buggy since Reflector 7.3. Decompiling a type from NDepend with Reflector was buggy since Reflector 7.3. Opening a dependency, from a dependency graph arrow to the dependency matrix, could result in an ArgumentOutOfRange exception if one of the 2 code elements involved was a type forward only assembly such as .NET 4.5 System.Runtime.dll The analysis was crashing if the current analysis result was compared with an older analysis result, for which no assembly were found. In Trial edition, in VisualNDepend.exe context, in the Dialog explaining the Trial edition usage that is shown when loading the project for the first time, when cliking the Exit button a NullReferenceException could be send. In Trial edition, the fact that it is not possible to running NDepend.Console.exe Trial in a Windows services process, is now more clearly explained to the user. After a large refactoring involving several types moving accross namespaces, incremental analysis could throw a KeyNotFoundException or a NullReferenceExeption.
v3.8.1.5706 [06-02-11]
Ergonomy and Responsiveness
NDepend addin loads 40% faster in Visual Studio (any version) at startup time. From the VS Solutions chooser form, when chosing VS solutions with hundreds of assemblies to analyze, the time to fill the next dialog with .NET assemblies provoked an UI responsivness issue. In NDepend Visual Studio addin, limit the number of NDepend projects listed in the NDepend global menu to 30. In the Info Panel > Global Summary, an analysis result description now shows the NDepend version that produced the analysis result. In the dependency graph, if the user removed some nodes and then click a graph laying out button (Horizontally or Vertically), it now reformats the graph layout only with nodes not removed. Bug Fixes When a new VS solution is created, the NDepend menus to attach a new NDepend project to the freshly created solution are now available. When attaching a new NDepend project to a VS solution, if the NDepend project file wasn't in the same directory than the VS solution file, this situation could lead to problem.
v3.8.0.5674 [05-13-11]
New Features
New menu in Start Page 'Select VS Solution(s) to Analyze' Ergonomy of 'New NDepend Project' dialog enhanced. In Build Comparison Setting form, there is a new button 'Browse VS solutions' to fill easily the assemblies list. On multi-monitor machines, all NDepend dialogs and forms shown, now appear on the screen that currently contains the mouse cursor The Dependency Matrix and Graph now support the mouse extra-buttons back/forward. Support for Reflector v7.X The default rule 'Fields should be marked as ReadOnly when possible' now discards fields generated for events (i.e fields where 'IsEventDelegateObject'). The flag Concurrent is now implemented by the MSBuild and NAnt tasks. In CQL Explorer panel, it is now possible to export a group of queries to XML. Bug Fixes Regression bug: Importing coverage file live in NDepend interactive UI was not working. Regression bug: Loading or re-loading NDepend addin in VS while VS was already running, provoked an exception. Some rare obfuscated assemblies could provoke an exception at analysis time. Attempt to create a new project with a file path equals to 'D:' could lead to an exception. When re-loading a former analysis made on some C++/CLI assemblies depedending on stdLib, an exception could occur. When at analysis time no application assembly was found, an exception occured while building the Dependency Matrix for report. On some very large code bases, analysis could hang because of some problem in Type and Method ranking computation. On the Start Page with high DPI set, some UI elements could not be displayed properly. Trying to infer .NET assemblies from a solution involving a Web Service could lead to an exception. When parsing C# source file, an erroneous warning concerning an enum that would be declared wrong was emitted if some variable name were like 'enum1' or 'enum2'. In C#, two consecutive generic clauses 'where' could provoke an erroneous warning from the NDepend C# source file parser. A FieldAccessException could occur at analysis time if other VS addins relying on Mono.Cecil were loaded.
v3.7.0.5526 [03-18-11]
Support for importing coverage data from DotCover v1.1 and above versions.
Bug Fixes
When started VisualNDepend directly on a .ndproj file, an exception occured. When right clicking the start page datagridview of projects, an exception occured if no project was listed. When ticking/unticking the check box 'Is critical rule' while editing a CQL query, the button 'Save query' enabling state wasn't updated. NCover coverage file with extension .nccov needed to be renamed with a .xml extension to be taken account.
v3.6.0.5432 [12-23-10]
Analysis Performance and Features
Analysis execution performance increased up to 40%. New analysis run option: serial vs. concurrent, where concurrent mode can run a large portion of the analysis (full and incremental) concurrently. Up to 30% less memory consummed at analysis time. New NDepend.Console.exe command line option: /Concurrent Possibility to disable NDepend keyboard shortcuts when hosted Visual Studio (useful if there are collision with other tools). Bug Fixes In the panel Project Properties > Code to Analyze, when drag-and-droppig many folders or many assemblies, the UI could take time to refresh and response. In VisualNDepend.exe with Ribbon mode, when editing a project that doesn't have previous analysis yet, clicking the button 'Load Previous Analysis' resulted in an exception. When openeing an analysis with more than 250 assemblies for the first time, the dependency graph and dependency matrix shows only the first 250 assemblies, to avoid an arbitrary and uncontrolled computation duration. Some problem could appears in dependencies involving code elements declared in a multi-modules assembly. .NET assemblies generated from dump file can now be analyzed by NDepend. Some C++CLI generated PDB files were not analyzed properly, they are now. The property IsCriticalRule wasn't taken account in CQL rules defined in code throug the attribute NDepend.CQL.CQLConstraint. If the Windows user running the analysis didn't have access to the output directory of a NDepend project, an UnauthorizedAccessException popped up. Now a clean explanatory message is shown. When changing something to the CQL queries of a project, when switching to another window and coming back to the NDepend window just after the change, NDepend asked unexpectidly for reloading the CQL queries. A bug in incremental analysis where a third-party interface of a type was discarded wrongly, has been fixed. When clicking 'Run Analysis' from a project in the start page, if the NDepend project had a Baseline for comparison (UI) defined, this baseline wasn't loaded in the interactive UI once the new analysis result (produced by the triggered analysis) was reloaded When clicking 'Run Analysis' from a project edied without any analysis result currently loaded, if the NDepend project had a Baseline for comparison (UI) defined, this baseline wasn't loaded in the interactive UI once the new analysis result (produced by the triggered analysis) was reloaded.
Predicted future versions and notices:
The doDownload.com constantly monitors the update of all programs, including information from the NDepend 4.1.1.0 changelog file, however sometimes it can happen that data are not complete or are outdated.We assume that author continue's to develop 4.2.0.0 version with further advanced features, and soon you will be informed. Equally important 5.0.0.0 upgrades of the program we will continue to monitor. Full NDepend description has been compared with the overall software database and our algorithm has found the following applications (are showed below).
Average review rating :




Useful independent reviews and opinions of the users