Archive for the Category development

 
 

Offline content for Designing .NET Class Libraries Series

Designing .NET Class Libraries Presentation by Brad Adams .I highly recommend them for all developers.

Setting the Stage

Naming Conventions

Rich Type System

Member Types

Designing Inheritance Hierarchies

Enhanced DataSet Watch Visual Studio Addin

This addin is an update to Mohammed Barqawi’s excellent DataSet Quick Watch addin.

I’ve summarized the enhancements below:

Added support for Typed DataSets
Added support for DataTables and DataRows (typed and untyped)
Added filtering support (based on DataViewRowState and free-text)

Read article( Download addin )

[ Via CodeBureau : Matt Simner]

Introducing Log4Net Viewer!

Log4Net Viewer is a GUI log viewer and filter for the Log4Net library. By default it listens for LoggingEvent objects sent using the UdpAppender and displays them in a table.

The events can be filtered based on:

  • Level
  • Logger
  • Message

All the details for each event can be displayed by selecting the event in the table.

log4net viewer

Getting Log4Net Viewer

Project home page:  http://www.devintelligence.com/Log4NetViewer

 

If you have any feedback on this tool, please email me at admin at devintelligence.com

Visual Studio Templates

Eddie Garmon posted a link to his Visual Studio Templates (with Installer).

The following templates are available:

  • a class template
  • an enumeration template
  • an exception template
  • a nunit test template
  • a registry template
  • a typed collection template
  • a typed hashed collection template

  [Via Brendan Tompkins ]

    Fugue ( Software protocol checker for languages compiling to MSIL )

    Fugue is a defect detection tool for .net software, which lets you record the rules for using a class or interface and then check whether code that uses the class or interface is obeying the rules. For example, Fugue can show you the places where null is stored in a field that should not be null, where your code neglects to call Dispose on an IDisposable object or uses the object after calling Dispose, where an object’s methods are being called in the wrong order, and even where the code makes domain-specific mistakes, such as creating a SqlCommand object on a bad sql query. When you run Fugue, it analyzes your code and prints a list of error messages and warnings, just like a compiler.

    You can constrain the order in which an object’s methods may be called.

    [WithProtocol(”raw”,”bound”,”connected”,”down”)]
    class Socket
    {
        [Creates(”raw”)]
        public Socket (...);
        [ChangesState(”raw”, ”bound”)]
        public void Bind (EndPoint localEP);
        [ChangesState(”raw”, ”connected”), ChangesState(”bound”, ”connected”)]
        public void Connect (EndPoint remoteEP);
        [InState(”connected”)]
        public int Send (...);
        [InState(”connected”)]
        public int Receive (...);
        [ChangesState(”connected”, ”down”)]
        public void Shutdown (SocketShutdown how);
        [Disposes(State.Any)]
        public void Close ();
    }

     

    You can use Nullness attributes To record whether an object can be null, you give the object’s declaration one of the following three attributes:
    [NotNull] The object cannot be null.
    [Null] The object is definitely null.1
    [MayBeNull] The object might or might not be null.

     

    class NullDemo
    {
        [NotNull] private string name;
      [NotNull]
        public string Name
        {
            get
            {
                return name;
            }
        }
     
        public NullDemo([MayBeNull] string nm)
        {
            this.name = ( nm == null) ? "default" : nm ;
        }
     
        [return : MayBeNull]
        public string GetOrigName()
        {
            return this.name.Equals("default") ? null : this.name;
        }
     }
     
    Download Figue

    Page 35 of 37« First...102030...3334353637