SharePoint or ASP.Net?
As architects we have often come across this scenario in Software development life cycle.
The grilling project requirement phase ends, it’s time to start getting design savvy and the tech architecture team will brainstorm amongst eachother to come up with a recommended architecture.
SharePoint and Asp.net are widely used technologies and finalizing one vs the other is a challenging task in itself.
Based on my experience and what I have learned from my community, for the applications that can utilize the below features of SharePoint - this platform should be the preferred choice...
- Collaboration
- Internet facing website
- Social networking such as Blogs, Wikis, Communities, etc
- Applications requiring browser enables forms
- Enterprise Search
- Information portals
- Business Intelligence and Dashboards
- Workflows
- Content Management
- Ms Office Integration
- External Data systems integration via BCS
- Document Management
If the dilemna still remains, we need to look at different aspects before deciding whether to go for SharePoint or Asp.Net.
Below I have collated a couple of my considerations:
Licensing : To get the Basic OOB Out-of-the-box features from the Free version of Sharepoint
SharePoint Foundation is aptly named because it provides the base for SharePoint 2010 Standard and SharePoint 2010 Enterprise.
SharePoint Foundation is free and is supported on Windows Server 2008 R2 and Windows Server 2008 SP2. Here’s a list of what you get in SharePoint Foundation (see
Editions Comparison at Microsoft's site to learn more about each feature):
SharePoint Foundation
Accessibility | Blogs | Browser-based Customizations |
Business Connectivity Services | Business Data Connectivity Service | Claims-Based Authentication |
Client Object Model (OM) | Configuration Wizards | Connections to Microsoft Office Clients |
Connections to Office Communication Server and Exchange | Cross-Browser Support | Developer Dashboard |
Discussions | Event Receivers | External Data Column |
External Lists | High-Availability Architecture | Improved Backup and Restore |
Improved Setup and Configuration | Language Integrated Query (LINQ) for SharePoint | Large List Scalability and Management |
Managed Accounts | Mobile Connectivity | Multilingual User Interface |
Multi-Tenancy | Out-of-the-Box Web Parts | Patch Management |
Permissions Management | Photos and Presence | Quota Templates |
Read-Only Database Support | Remote Blob Storage (SQL Feature) | REST and ATOM Data Feeds |
Ribbon and Dialog Framework | Sandboxed Solutions | SharePoint Designer |
SharePoint Health Analyzer | SharePoint Lists | SharePoint Ribbon |
SharePoint Service Architecture | SharePoint Timer Jobs | SharePoint Workspace |
Silverlight Web Part | Site Search | Solution Packages |
Streamlined Central Administration | Support for Office Web Apps | Unattached Content Database Recovery |
Usage Reporting and Logging | Visual Studio 2010 SharePoint Developer Tools | Visual Upgrade |
Web Parts | Wikis | Windows 7 Support |
Windows PowerShell Support | Workflow | Workflow Models |
|
|
SharePoint 2010 Standard includes SharePoint Foundation features and adds these features:
Ask Me About | Audience Targeting | Basic Sorting |
Best Bets | Business Connectivity Services Profile Page | Click Through Relevancy |
Colleague Suggestions | Colleagues Network | Compliance Everywhere |
Content Organizer | Document Sets | Duplicate Detection |
Enterprise Scale Search | Enterprise Wikis | Federated Search |
Improved Governance | Keyword Suggestions | Managed Metadata Service |
Memberships | Metadata-driven Navigation | Metadata-driven Refinement |
Mobile Search Experience | Multistage Disposition | My Content |
My Newsfeed | My Profile | Note Board |
Organization Browser | People and Expertise Search | Phonetic and Nickname Search |
Query Suggestions, "Did You Mean?", and Related Queries | Ratings | Recent Activities |
Recently Authored Content | Relevancy Tuning | Rich Media Management |
Search Scopes | Secure Store Service | Shared Content Types |
SharePoint 2010 Search Connector Framework | Status Updates | Tag Clouds |
Tag Profiles | Tags | Tags and Notes Tool |
Unique Document IDs | Web Analytics | Windows 7 Search |
Word Automation Services | Workflow Templates | |
|
|
SharePoint 2010 Enterprise includes the features in SharePoint Foundation and SharePoint 2010 Standard and adds these features to the mix:
Access Services | Advanced Content Processing | Advanced Sorting |
Business Data Integration with the Office Client | Business Data Web Parts | Business Intelligence Center |
Business Intelligence Indexing Connector | Calculated KPIs | Chart Web Parts |
Contextual Search | Dashboards | Data Connection Library |
Decomposition Tree | Deep Refinement | Excel Services |
Excel Services and PowerPivot for SharePoint | Extensible Search Platform | Extreme Scale Search |
InfoPath Forms Services | PerformancePoint Services | Rich Web Indexing |
Similar Results | Thumbnails and Previews | Tunable Relevance with Multiple Rank Profiles |
Visio Services | Visual Best Bets | |
|
|
Again, to learn more about each feature, see this side-by-side
comparison chart at Microsoft’s SharePoint 2010 website. Hovering over each item displays a description that explains what the feature does.
You can use SharePoint 2010 to set up
intranet, extranet, and Internet sites. SharePoint 2010 Standard and SharePoint 2010 Enterprise are licensed depending on how you will use SharePoint. There are two ways to use it, and thus two licensing models:
- Intranet sites: Server/Client Access License model
- Extranet/Internet sites: Server-only model
Intranet sites. Intranet sites are licensed using a Server/CAL model. SharePoint Server 2010 is required for each running instance of the software, and CALs are required for each person or device accessing a SharePoint Server. There are two licensing models for intranet sites:
- Check if the requirement maps to Out-of-the-box (OOB) SharePoint features :
Is the requirement to utilze some of the basic features i.e. site provisioning, search, version control, roles/groups, easy forms/Lists (new, edit, view pages), collaboration, workflows, content deployment, alerts, social collaboration on documents etc...?
If we are not using any of these features, then it’s probably not worth using SharePoint.. The effort involved in building Custom features will be pretty considerable.
- Check what kind of System/Application is being built
Is it one application or similar replicated Applications across many teams\sites?
SharePoint is an excellent platform to replicate one type of site to many teams. Site templates are excellent feature of the replication.
- Check the Scale and Performance objectives of the application
SharePoint may not be able to match the performance of a plain ASP.net application as it does a lot more work (security trimming, getting files from database etc.)
Getting back to real life scenarios, we should not forget some
project specific considerations:
DECIDE.............WISELY!!!!
--------------------------------------------------------------------------------------------------------
Refrences: MSDN