-
NetTiers (via CodeSmith) for .NET Code Generation
.netTiers is an open source set of templates for the
CodeSmith code generator. It follows Microsoft's patterns and best practices
guidelines to generate a customized, layered, application architecture for your database (we call it "maintenance pages". See our rule on maintenance pages).
Choosing a code generator that's right for your needs involves a reasonable amount of consideration. You should
think about things like:
- ability to alter templates in a familiar environment (such as .xsl)
- the code output is of good quality and adhering to your coding standards
- it generates a layered architecture to support extendable projects
- it is easy to regenerate and compile the code output (see our regenerate standard)
Other code generators that we have used in the past include:
-
Jetbrains ReSharper
ReSharper was created with the single purpose in mind: to increase the productivity of
C# developers. It comes equipped with a rich set of features, such as intelligent coding assistance, on-the-fly
error highlighting and quick error correction, unmatched support for code refactoring, and a whole lot more.
ReSharper's tight integration with Visual Studio .NET provides quick and easy access to all of its advanced
features right from the IDE.
- Error Highlighting
- Error Quick-fixes
- Refactoring Support
- Live Templates
Figure: Inline error highlighting and fixes
Figure: Code generation
-
Microsoft FxCop
FxCop is a code analysis tool that checks .NET managed code assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses reflection, MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects in the following areas:
- Library design
- Localization
- Naming conventions
- Performance
- Security
-
SSW Code Auditor
As a project or company grows, managing code standards throughout your team
becomes virtually impossible. But consistent code is crucial to future development
and maintenance. Built in C#, SSW Code Auditor lets you take control of your
code and automatically review your web apps and projects - giving you more opportunity
to spend time where it really matters.
-
NUnit
NUnit is a unit-testing framework for all .NET languages. Initially ported from
JUnit, the current release,
version 2.2, is the fourth major release of this xUnit based unit testing tool
for Microsoft .NET. It is written entirely in C# and has been completely
redesigned to take advantage of many .NET language features, for example custom
attributes and other reflection related capabilities.
-
Jetbrains dotTrace Profiler
If you are looking to improve the performance of your .NET application, and don't know where to start, you need this tool.
The dotTrace .NET Profiler from Jetbrains is an invaluable tool to quickly determine where your application is slowest and which methods are in dire need of optimization.
Red-Gate's ANTs profiler offers similar functionality. However, we have found .NET profilers reports allow the developer to more quickly pinpoint bottlenecks in code.
-
NDoc
NDoc generates class libraries documentation from .NET assemblies and
the XML documentation files generated by the C# compiler (or an add-on
tool for VB.NET such as
VBCommenter).
NDoc uses add-on documenters to generate documentation in several
different formats, including the MSDN-style HTML Help format (.chm),
the Visual Studio .NET Help format (HTML Help 2), and MSDN-online
style web pages.
Figure: Rich CHM files
Figure: MSDN-online style webpages
NDoc
-
Sandcastle
Sandcastle, created by Microsoft, is a tool used for creating MSDN-style documentation from .NET assemblies and their associated XML comments files.
Sandcastle is command line based and has no GUI front-end, project management features, or an automated build process.
However several Sandcastle users have created scripts and tools that automate the documentation build process, e.g.
Sandcastle Help File Builder
Figure: Rich CHM files
Figure: MSDN-online style webpages
NDoc
-
C# to VB.NET converter
Here is a tool to convert C# code to VB.NET. The tool is available either as
a Web site or an add-in for the VS IDE. Its available here: Weve found that
its extremely useful for VB developers that struggle when they can only find
C# examples/snippets.
-
VB.NET to C# converter
This is the best converter currently available for VB.NET to C# conversions and has won many "best-of" awards. This can be found at the link below
Figure: The VBConversion Converter
VB Conversions - VB.NET to C# converter
Here is a tool to convert VB.NET code C#. The tool is available for Offline Use.
Its extremely useful for C# developers that struggle when they can only find
VB.NET examples/snippets. This Converter is still under testing, there has been a few flaws.
Figure: VB.NET to C# converter
BabbelFisken - VB.NET to C# converter
-
Combined VB.NET to C# and C# to VB.NET converter
This tool is great - you can point to a file or type your C# or VB.NET code into the page and it will show you translated code - as you type. See the tool in the link below
Carlos Ag Code Translator
-
SourceGear Vault
SourceGear vault mirrors all good things about Microsoft SourceSafe's interface
and integration, while scaling better to enterprise level projects.
SourceGear Vault features:
-
Reliability. Many users do not trust VSS because of its tendency to corrupt
its own repositories. Vault's design places a strong emphasis on the integrity
of the repository. The Vault repository is stored using Microsoft SQL Server
2000. Furthermore, Vault supports atomic check-in transactions (change sets).
When checking in a collection of files, the entire check-in either succeeds
or fails as an atomic unit.
-
Seamless transition from VSS. Vault includes a SourceSafe import wizard
which is painless and easy to use. Every version of every file is imported,
including change comments. Shares and pins are properly maintained.
-
Familiar features and interface. VSS users will feel comfortable using
Vault. The client user interface very closely resemble that of VSS and SourceOffSite
all major features of VSS are present.
-
.NET Architecture. Vault is built entirely on Microsoft's .NET platform,
including C#, IIS, and SQL Server 2000.
-
Open. The Vault Server is built as a collection of .NET Web Services.
The Vault Client API allows you to build custom solutions using the same
libraries on which the Vault clients are built.
-
History Explorer. The use of SQL as a repository storage allows Vault
to easily provide more advanced ways of querying the history of a project.
Other alternatives include:
- Perforce
- StarTeam
- Source Inegrity
-
Reflector Decompiler for .NET
Reflector is a class browser, decompiler and XML documentation browser for .NET
components (assemblies). If you want to see code in other people's .NET applications
(assuming it has not been obfuscated) in C# or VB.NET, this is your tool.
-
Allocation Profiler
Allocation Profiler is a great tool for visualizing and analyzing allocations
on the Garbage Collection (GC) heap. It presents the data from this log file
in a variety of interesting and useful views (histograms, graphical tree views)
It can be used to verify program execution (e.g. ensure you've allocated only
the objects you thought) and to detect possible memory leaks, and unclosed and
old objects within a process. Great for working out why that application takes
up 70MB in memory. This even works for .NET COM Add-ins (just point to OUTLOOK.EXE
instead). Simply launch AP, point it at your EXE and click a button.
-
CLR Spy for COM Interop
COM-Interop is the most error prone aspect of .NET. If you do anything with
COM-Interop in .NET, this is an invaluable tool for diagnosing and isolating
any problems you might have. Optionally logs probes to file.
Developer Express CodeRush
CodeRush is a developer productivity enhancement tool that
integrates Visual Studio .NET. CodeRush provides extensive
visualisation, selection, clipboard, navigation and template tools, and works with both C# and Visual Basic .NET.
Features include:
- Icons - Different types and
members (for example, classes, enums, structs, methods,
properties, etc) with icons that allow you to modify the
accessibility
- Structural highlighting - lines on the left
hand side make it easy to see the start and end of nested
statement blocks. A configurable line on the right allows
you to ensure lines of code don't become too long when
developers use different screen resolutions
- Keyboard shortcuts allow you to expand, contract and
comment selections based on statement blocks
- Documentor window
- allows you to visualise complex XML documentation markup
- Smart cut and paste - automatically selects logical code
blocks when copying, and adapts pasted code to the
situation. For example, inside an if block, "=" will
automatically be converted to "==" in C#.
- Advanced bookmarks - remember the column position as
well as the line and allow you to easily move between
different locations
- Templates - common blocks of code can easily be inserted
with keyboard shortcuts
Figure: Visual indicators inside your code
Figure: Visual accessibility modification in code view
Figure: XML documentation previews
Figure: Automatically insert templates for commonly used code
CodeRush Web Site
Test Driven .NET
Test Driven integrates with a range of tools such as NUnit, MBUnit and Visual Studio that allows you to run Unit Tests with the right click button. Its key features include:
- Run unit tests within any method, class, source file, namespace, project or solution with a single-click
- TestDriven.NET is the only add-in to work with all versions of Visual Studio .NET
- Supports multiple unit testing frameworks including NUnit, MbUnit and MS Team System
- Runs in its own process for side-effect free testing.
- Allows you to easily debug tests or methods
- Supports all major .NET languages (C#, VB, C++ and J#)
Figure: Run Unit Tests from the right click menu
Test Driven .NET Web Site
-
AspDB
Tornado is the DotNet version of AspDB.
VS.NET is not required but remains a popular way to program DotNet with Tornado as a library.
If you have the DotNet Framework installed, you basically need only one file (Tornado.dll) to get going.
You can click via a code generator (Designer) to produce a complete and acceptable Web DB application in several minutes.
-
- Figure: Designer
-
BLinQ
Blinq is a tool for generating ASP.NET websites for displaying, creating, and manipulating data based on database schema, but it is replaced by MVC.
You don't need to write SQL queries to use Blinq; LINQ will generate optimized queries for you that request just the data you want to show.
The Blinq tool autogenerates web forms from database schema which enable the following by default:
- Select, insert, update, and delete functionality
- Details and foreign key navigation
- Sorting and Pagination of records
- A default style and design which provide a consistent layout
-
Elmah (Error Logging Modules and Handlers)
Once ELMAH has been dropped into a running web application and configured appropriately, you get the following facilities without changing a single line of your code:
- Logging of nearly all unhandled exceptions.
- A web page to remotely view the entire log of recoded exceptions.
- A web page to remotely view the full details of any one logged exception.
- In many cases, you can review the original yellow screen of death that ASP.NET generated for a given exception, even with customErrors mode turned off.
- An email notification of each error at the time it occurs.
- An RSS feed of the last 15 errors from the log.
-
EditPlus
EditPlus is a 32-bit text editor for the Microsoft Windows operating system. The editor contains tools for programmers, including syntax highlighting (and support for custom syntax files), file type conversions, line ending conversion (between Linux, Windows and Mac styles), regular expressions for search-and-replace, keystroke, spell check, full support for Unicode editing, customizable keyboard shortcuts, auto-completion, code folding, and more. Files can be browsed and edited in tabs, and an internal file browser is implemented in the software.
-
Notepad++
Notepad++ is a text editor and source code editor for Windows. One advantage of Notepad++ over the built-in Windows text editor, Notepad, is tabbed editing, which allows working with multiple open files.
Notepad++ is distributed as free software. The project was hosted on SourceForge.net, from where it has been downloaded over 27 million times and twice won the SourceForge Community Choice Award for Best Developer Tool. To display and edit text and programming language source code files, Notepad++ uses the Scintilla editor component.
- Figure: Notepad++ in action
-
UltraEdit (IDM Computer Solutions Inc.)
UltraEdit is a simple text editing program that picks up the functionality that Notepad leaves out.
UltraEdit will allow you to edit Text, Hex and HTML files in the one user friendly environment. It has
smart indenting for when you're editing code, macro recording, advanced search and replace functions.
When you want to work on a .txt file, it's important to associate it with a proper editor, UltraEdit
is just such a tool. There are other third-party editors about, but this is the one I like the best.
- Figure: UltraEdit
IDM Computer Solutions Inc Web Site