title: Organizing classes in C#
body: <p>Whats are some best practices for where/how you should have classes organized in a such way that its easy for the developer to use without any difficulty, I am creating a framework in C# static class library to provide bunch of functionality for a specific domain.</p>
  
  <p>here is my design.</p>
  
  <p>I have created a static class:</p>
  
  <pre><code>public static class Pages
  {
     //static prop to get access HomePage class
     public static HomePage HomePage
     {
         get {
                var _home = new HomePage();
                return _home;
             }
     }
     //static prop to get access Employee class
     public static Employee EmployeePage
     {
         get {
                var _employeePage = new Employee();
                return _employeePage;
             }
     }
     //static prop to get access Employer class
     public static Employer EmployerPage
     {
         get {
                var _employerPage = new Employer();
                return _employerPage;
             }
     }
  
  }
  </code></pre>
  
  <p>I have created separate classes (non static) for HomePage, Employee, Employer
  for an example:</p>
  
  <pre><code>//Implementation class 
  public class Employee
  {    
      public bool Status()
      {
          return true;
      }
  
  .... more code.....
  </code></pre>
  
  <p>}</p>
  
  <p>Here is the important question:</p>
  
  <p>user should be able to acess something like this.</p>
  
  <pre><code>bool _status = Page.Employee.Status();
  
  or
  
  Page.HomePage.SomeMethod();
  </code></pre>
  
  <p>am I going on the right direction? </p>
  
  <p><strong>Concern:</strong> The only concern I have with the above approach is that, <code>Pages</code> class.... I will be adding more classes and I will end-up having instantiation classes in the <code>Page</code> class is this okay to do?</p>
  
  <p>or any other better approach?</p>