Pros
The dress code was relaxed and you were mostly free to manage your time given you meet deadlines and deliverable times. There weren't any particular constraints on the means that projects were completed, so any technique or technologies could be used, granted the position had a focus on using Microsoft technologies. However with time constraints and sometimes multiple projects going on at once it kind of restricted a great deal of exploration.
Cons
As a contractor, the client I was working for did not deliver the working experience I had expected. The work was not as fulfilling or enjoyable as it seemed it might have been. There was a lot of company politics. I didn't feel like I was going anywhere. For projects the client's client were not always constrained in what they were allowed to ask for causing at times for there to be additional work added to projects.