Static methods vs instance methods in BLL
<p>Was asked today why I used code like this for my bll classes in an asp.net app:</p>

<pre><code>public class StudentBll
{
    public static DataTable GetStudents()
    {
        return DBHelper.ExecuteSp("GetStudents");
    }
    public static DataTable GetStudentById(int studentId) 
    {
        return DBHelper.ExecuteSp("GetStudentById", studentId);
    }
}
</code></pre>

<p>instead of</p>

<pre><code>public class StudentBll
{
    public DataTable GetStudents()
    {
        return DBHelper.ExecuteSp("GetStudents");
    }
    public DataTable GetStudentById(int studentId) 
    {
        return DBHelper.ExecuteSp("GetStudentById", studentId);
    }
}
</code></pre>

<p>Only thing I could think of was that</p>

<p>A) <strong>Performance</strong> A slight increase (not sure of the specifics)</p>

<p>B) <strong>Readability</strong>
 <code>StudentBll.GetStudents();</code> rather than </p>

<pre><code>StudentBll studentBll = new StudentBll();
studentBll.GetStudents();
</code></pre>

<p>I wasn't too confident in those answers, however.  Anyone care to enlighten me?</p>
