Tuesday, April 6, 2010

.Net tools and utilities

CLRVer.exe - Lists installed CLR versions on a system. Note that it does not list the .net frameworks installed on a system. e.g. .net framework 3.0 uses CLR version 2.0.XXX.
CorFlags.exe - Look at header information emitted in a managed module
DumpBin.exe - Look at header information emitted in a managed module
AL.exe - Assembly linker. Command line utility to create assembly using modules and data (resource) files.
ILASM.Exe - IL assembler
ILDASM.Exe - IL Disassembler
PEVerify.exe - Examines all of assemblies methods and notifiies of any method that contain unsafe code.
NGen.exe - Native code generator. Generate native code during application installation and stores it in a file on the machine.
Obfuscator - scramble names of all private symbols in assembly metadata
TlbImp.exe - TLB (Type library) importer
TlbExp.exe - TLB (Type library) exporter
RegASM.exe - register assembly as a COM component.
SN.exe -Generate public/private key pair.
GACUtil.exe - install/uninstall strongly named assemblies into GAC (Global Assembly Cache)
FxCop.exe - Application that analyzes .net assemblies and report information about the assemblies, such as possible design, localization, performance and security improvements.
FulLogvw.exe - Assembly binding log viewer. It displays details for failed assembly binds. This information helps you diagnose why the .NET Framework cannot locate an assembly at run time.
wsdl.exe - Command line tool to generate proxy class for XML web services.
BinDiff.Exe - Comapare two windows executable files. This tool is very useful to find out files changed between two builds of release/product.

Thursday, April 1, 2010

Concurrent connections to SQL server or SQL express

SQL server or SQL express supports unlimited (maxint) number of concurrent connections. SQL server installation wizard asks for number of connections to limit to. If the value given is 0 then it means unlimited number of connections. User can specify any number of connections that he wants.

It is a myth that SQL server or SQL express supports only 5 concurrent connections. There is some history behind it. Microsoft came up with MSDE engine to overcome limitations of popular Jet database engine. The initial version of MSDE engine could allow maximum 5 concurrent connections as the performance detoriorates if more than 5 concurrent connections are made to the MSDE database engine. Governor component in MSDE engine used to control the maximum connections.

The latest versions of SQL server (I guess SQL 2000 onwards) and SQL express does not have governor component. So now what limits the concurrent connections is now how the connection is made, for how much time and how it is used.