Based on the question posed by [@arpanshah|http://twitter.com/arpanshah] I thought I'd start a wiki page and see how it evolves.
Please feel free to edit this page and add your pros and cons. You can also submit comments to this page also.
h1. Web cast
[Jeremy Thake|http://wss.made4the.net/archive/2009/07/06/how-asp-net-developers-can-leverage-sharepoint-webcast.aspx]Thake|http://www.screencast.com/t/YTlkZGE5Z] has recently presented on this topic and the web cast is available here.
!webcastpreview.png!
...
h1. Comparison
h2. Windows SharePoint Services (WSS) Development Platform
|| Pros || Cons \\ || | *Framework* \\ * Provides a lot of functionality (both related to SharePoint and enhancing ASP.NET) | *Framework* * Too easy to create memory leaks (disposal of objects) * Inconsistencies throughout, e.g. [use of display field name vs internal field name|http://alexangas.wordpress.com/2008/09/13/internal-name-vs-display-name/], etc... * Out-of-the-box web services significantly lacking in features compared to object model * Difficult to learn, many technologies involved | | *Leveraging ASP.NET Architecture* * Master Pages * Page Layouts * Web Parts * Server and User Controls | *Leveraging ASP.NET Architecture* \\ | | *Code Deployment* \\ * Solution package deployment engine works well for multiple server farms | *Code Deployment* \\ * Complex to develop solution packages that cover multiple features | | *Development Environment* \\ * SharePoint Designer aimed at power users, Visual Studio aimed at developers | *Development Environment* \\ * Required to develop on server as administrator so can debug every type of custom-developed solution * Many community solutions developed to fill the gap in Microsoft-provided tooling | | *Approach* \\ | *Approach* \\ * Too many ways to do the same thing in framework: declaratively & programmatically. No real guidance on what is best by Microsoft. | | *Security* \\ * Supports multiple types of authentication configurable via SharePoint Central Administration * Consistent and powerful API to develop against | *Security* \\ | | *User Interface* \\ * Easily integrate with SharePoint user interface and look & feel * Generally able to override default | *User Interface* \\ * Out-of-the-box CSS markup generally poor and difficult to theme * Default UI components and out-of-the-box markup break web and accessibility standards * Don't have full control over rendering | | *Data Access* \\ * Built-in caching features when querying data * Built-in support for multiple versions of list items / documents | *Data Access* \\ * Performance problems with lists containing thousands of items * Relatively unknown and often inflexible CAML syntax (compared to SQL) * No consistent way to issue queries with consistent features * No support for transactions |