title: Static methods vs instance methods in BLL
body: <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>