title: Architecture of  .NET Desktop Application - Client Server C#, SQL
body: <p>Recently I've being given a chance to develop a PMS (Practice Management System) software for a small physiotherapy clinic. </p>
  
  <p>I'm a computer science student and my course is predominately told on Linux. However, my client runs all their computers on vista or Windows 7. </p>
  
  <p>My ideas are to develop the client front end in Visual C# and access a central postgresql server. </p>
  
  <p>I'm a beginner in Windows Programming so I'm after advice on best practice on implement user rights and access levels in C# (WPF or Windows FORM). I've had a look into Credential class in Visual C# and access control list but please share your thoughts. </p>
  
  <p>Just to Elaborate: </p>
  
  <p>My thoughts are to write the front end using window forms and disable or hide controls/tables/forms according to the access level the user is granted. </p>
  
  <p>E.g. Only the owner of the clinic will be shown the finance reporting form while the secretary will only be shown the appointment diary form. </p>
  
  <p>So I probably need a dialog asking the user to login to the system, should I store or map those login details in the database? What libraries or classes are best used to handle those tasks?</p>
  
  <p>I'm probably way over my head on this but this is my first commercial project so I'm keen to test the waters. </p>