You are here: Home » Software Development » Other » Project Analyzer

Project Analyzer

Project Analyzer The best way to analyze and optimize VB .NET 2002 and VB 3-6 code



  • Downloads:41
  • Last update:Apr 19, 2009
  • Version:9.0.01
  • License:Demo
  • Publisher:Aivosto Oy
  • System Requirements Windows All

Free Download ( 7.6 MB )

Buy Now ( Full version | $299 ) [ Check Discount]

Project Analyzer

The best way to analyze and optimize VB .NET 2002 and VB 3-6 code
Project Analyzer is a Visual Basic source code analyzer, optimizer and documentor.

Project Analyzer works with VB.NET, VB, ASP.NET and Office VBA.

Project Analyzer does an automatic code review to detect quality control issues like dead code, unoptimal variable declarations, unoptimized syntax, memory leaks and functionality issues such as missing event handlers or questionable tab order.

You can enforce programming standards on variable naming, commentation, disallowed statements and code complexity.

Optionally, you can let the tool automatically remove or comment out the unused, dead code to considerably reduce the size of your program.

You can also search for duplicated code blocks that frequently result from copy-paste coding.

Project Analyzer lets you navigate your projects with hypertext and graphical views. Click objects to see their use and declarations. Locate
code via the enhanced Find window.

Copy syntax-formatted code to documents. Cross-reference information such as call trees, called-by trees and control + data flow diagrams help you understand existing code.

Project Analyzer generates comprehensive project documentation, including procedure list, control list, project dictionary and module diagrams. It can turn your code into a hyperlinked web site or a .chm file.

Besides source code analysis, the program also analyzes binary DLL and COM libraries.

Project Analyzer calculates tens of metrics including lines of code, cyclomatic complexity, relative complexity, depth of conditional nesting, amount of commentation and object-oriented metrics for the entire inheritance tree.

Limitations:

  • This demo is fully functional with max 10 source files at a time.


    What's New in This Release:

  • Improvements and new features
  • Support for Visual Basic 2008.
  • Export source code as PDF.
  • Project Printer generates source documentation as PDF.
  • View contents of COM and DLL files as pseudo-code.
  • View binary files with built-in hex viewer.
  • Analyze all source files in a sub-directory tree. Analyze
  • projects without a .vbproj or a .sln file.
  • Module list report classifies modules into groups such as
  • Definitions, Interface, Abstract class, Concrete class,
  • Stateless class, Dialog, Standard module and the like.
  • Useful for learning to understand an existing project.
  • set of code review rules helps locate logical
  • mistakes and omissions and prevent future errors.

  • New code review rules
  • Rules marked with (*) can be fixed via auto-fix.
  • Hard-coded path found
  • RaiseEvent fails via constructor
  • Enum missing zero value
  • Enum with duplicate value
  • Trailing comment found *
  • Line too long *
  • ReDim without Dim *
  • For index variable not local
  • Write-only property found
  • Cyclic recursion found
  • Declare contains ordinal number
  • File with several classes or modules
  • Implicit variable
  • Shared constructor decreases performance
  • Parent class inherited only once
  • Data-only class found
  • Dataless class found
  • Shared-only class instantiated
  • NotInheritable expected
  • CVDate found, use CDate
  • Dead parameter
  • ByVal parameter not read
  • ariable users all dead
  • ariable readers all dead
  • ariable writers all dead
  • ariable not read, writers all dead
  • ariable not written, readers all dead
  • Type field users all dead
  • Type field readers all dead
  • Type field writers all dead
  • Type field not read, writers all dead
  • Type field not written, readers all dead
  • Constant users all dead
  • Enum constant users all dead
  • Type users all dead
  • Enum users all dead
  • Enum constant expected
  • Type inference used
  • Optional parameter in exposed procedure
  • Interface ambiguous
  • Interface duplicated
  • MustInherit class missing MustOverride methods
  • MustInherit class inherits concrete class
  • MustOverride overrides concrete procedure
  • Shared expected
  • Multiple Return statements found
  • ReadOnly variable expected
  • Octal number found
  • Case branch(es) missing for Enum
  • Condition always True or False
  • Case useless
  • Case overlap

  • Improved features
    Unicode support for international characters was added to:
  • Hypertext view
  • Reports (Display, HTML, MHT, RTF)
  • PDF reports (Latin-based, Greek and Cyrillic characters)
  • Copy to Clipboard (RTF)
  • Export code (RTF, HTML, Unicode text)
  • Project Metrics
  • Option to load international source in a different codepage.
    Report enhancements:
  • ariables and constants report rewritten for clarity.
  • Added underlying numeric constant values.
  • ariable use report shows variable deadness status.
  • File sizes and dates report shows line count and file age.
  • Library report shows image base addresses for optimizing
  • the base address of your library projects.
  • Dictionary report displays new statistics on names.
  • PDF reports greatly improved.
  • Image version and compile time displayed for library files.
  • Syntax formatting for .sln files in hypertext and print-outs.
    Find window improved:
  • Results displayed in an easier-to-read format
  • Option to search for "Code or String" (Klaus Lair)
  • Print code: New option "Bracket structures" emphasizes
  • conditionals and loops. (Trevor Tregellas)
  • Auto-fix now preserves existing line continuation characters
  • (_) when possible. A continued line gets reformatted only
  • when the particular line is auto-fixed.
  • Analyze several directory trees by creating a .lst file.
  • Compatibility library detected for classic VB projects.

  • B2008 support details
  • Option Infer
    Extension methods:
  • Nullable types
  • Object initializers: New With { .field=value }
  • attribute
  • Lambda expressions: Function(x). Partial support.
  • LINQ
  • WPF/XAML projects
  • If() function

  • Improved analysis
  • Added support for single-line Type and Enum blocks.
  • (Les Sullivan)
  • Classic VB: Added support for single-line declarations such
  • as Dim x:Dim y or Sub x:End Sub.
  • Added support for date literals #10/5/2008 11:25:00#
  • Arrays declared with ReDim (without Dim) are now detected
  • in classic VB.
  • Support for generic Structure and Interface (Of T)
  • Support for Structures implementing an Interface.
  • Overloads resolution improved. The correct Overloads
  • procedure is now picked more often.
  • Accuracy of late-bound call resolution improved by taking
  • account the number of call arguments. (idea by Steve Gilbert)
  • COM procedures. If an Optional parameter has an Enum data
  • type and a default value, the name of the respective Enum
  • constant is displayed as the default.

  • Problem detection improvements
  • Option to Ignore dead Property Get/Set/Let if another one
  • lives. This option allows read&write properties even if read
  • or write is dead. (Ian Digby)
  • Special warning for an empty procedure when it Overrides
  • an ancestor class procedure. Empty Overrides deletes
  • functionality of an ancestor class, which is bad class
  • design.
  • Unused file problem is enhanced in a multi-project analysis.
  • It now verifies use for each project separately. You can
  • then exclude the file from some projects and keep it in those
  • projects where it is used.
  • Option to switch Dead parameter rule on/off.
  • (idea by Jean-François Ménard)
  • Overrides procedures are not subject to NameCheck, since
  • their name is defined in an ancestor class. (Alex Mauer)
  • Microsoft.VisualBasic imported rule checks project-level
  • imports in addition to Imports statements. (Eric Burdo)
  • More accurate rules for Excess Scope problem (classic VB).

  • Performance improvements
  • Reduced analysis time at end of phase 2/2.
  • Faster processing of overly large Enums (such as 9000 lines).
  • Project Metrics Viewer loads large .mtx files faster.

  • Bug fixes
  • Fixed Unicode character width problems in "Print code"
  • feature.
  • "Initializer missing for variable" is not reported for arrays
  • with defined bounds. Cannot be initialize them. (Alex Mauer)
  • Fixed bug where calls to Events declared "As EventHandler"
  • were not found from implementing classes. This lead to extra
  • "Event not raised" warnings. (Charles Loreja)
  • Fixed crash reading some OCX properties. (Chaudier Guillaume)
  • Fixed bug where COM analysis ignored files with LCID0 in a
  • B 2002/2003 project. Sample file: XL5EN32.OLB.
  • Fixed .NET startup form being reported as dead.
  • The rule Option Strict missing was accidentally labeled
  • Option Strict Off in Problem Options. The rule considers
  • that an Option Strict Off statement is intentional, not a
  • problem. A problem is triggered when project-level Option
  • Strict is Off and there is no Option Strict statement in a
  • file. To search for any Option Strict Off statements, do
  • a simple Find.
  • Support added for Shared Event and Shared Custom Event.
  • Fixed Save WMF/EMF in Project Graph.
  • Added missing support for ReadOnly variables.
  • Added missing support for Sub New in a Module.
  • Added missing support for generic procedures (Of T)
  • FRX file viewer did not always save icons and cursors
  • correctly. (Jan Polonský)
  • Scope declaration missing no longer reported for a Shared
  • Sub New, because it you can't declare one. (Alex Mauer)
  • Fixed dead code detection with Type fields declared As New.
  • Dictionary report showed too low Unique names count.
  • Fixed display problems with line continuation characters,
  • especially in Hypertext view, code print-outs and
  • Project Printer.
  • Reduced flickering in Hypertext and Report views.
  • Fixed crash in Enterprise Diagrams, File belongs to project
  • diagram when analyzing a project directory without a
  • project file. (Richard Hurst)
  • Saving metrics as a .xml file produced invalid XML for
  • characters beyond Unicode &H7FFF (such as in Japanese).
  • Fixed handling of keyword New in Dim x, y As New datatype.
  • Fixed unnecessary warnings for IIf() and Choose() function.
  • Fixed parameter
  • Fixed sorting, then double-clicking in Find window.
  • Fixed autofix: If all variables in a Structure are dead,
  • don't removes them. A Structure without variables is illegal.
  • Fixed autofix: Adding return typename to property named P.
  • Fixed autofix: Don't remove dead Interface procedures if
  • they are implemented. VB.NET refuses to compile implementor.
  • Fixed autofix: Don't remove Overrides base procedures or
  • children of MustOverride when required to compile.

  • Code review rule changes
  • Classification changes
  • Return value discarded: Style -> Dead code
    ariable/function/constant missing type declaration:
  • Optimization -> Style
  • Case Else missing: Style -> Functionality
  • "Case Else missing" now reported at Select Case line.
  • Move any '$PROBHIDE CASE_ELSE next to Select Case.
  • Case Else is no longer required if existing Case branches
  • cover all theoretically possible input values.

  • B.NET Compatibility Check changes
  • Rules updated to cover upgrading code from VB6 to VB2008,
  • with Visual Basic Power Packs 3.0 installed.
    Removed compatibility rules (and reason why removed):
  • Circle and Oval controls unsupported (use Power Packs)
  • No control arrays (automated upgrade now available)
  • bAlias unavailable (replacement available)
  • ByVal/ByRef missing (upgrade wizard works correctly now)
  • (feedback by Torsten Borg)

  • Metrics changes
  • TCC for classes includes Custom Event accessors. May increase
  • slightly.
  • Values of SC, SYSC and RSYSC may have changed significantly
  • due to improved analysis.

  • BA Plug changes
  • VBA Plug v2 is required for Project Analyzer v9.
  • Old version VBA Plug v1 is no longer compatible.
  • Command line option /Q quits VBA Plug after export.

    Free Download ( Evaluation | 7.6 MB )

    Buy Now ( Full version | $299 )

  • Rating & Reviews for Project Analyzer





    Tips & Guides Related to Project Analyzer

    Free Download Project Analyzer

    Free Download ( Evaluation | 7.6 MB )

    Buy Now ( Full version | $299 )