Thursday, July 18, 2013

Sharepoint or ASP.Net?

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
AccessibilityBlogsBrowser-based Customizations
Business Connectivity ServicesBusiness Data Connectivity ServiceClaims-Based Authentication
Client Object Model (OM)Configuration WizardsConnections to Microsoft Office Clients
Connections to Office Communication Server and ExchangeCross-Browser SupportDeveloper Dashboard
DiscussionsEvent ReceiversExternal Data Column
External ListsHigh-Availability ArchitectureImproved Backup and Restore
Improved Setup and ConfigurationLanguage Integrated Query (LINQ) for SharePointLarge List Scalability and Management
Managed AccountsMobile ConnectivityMultilingual User Interface
Multi-TenancyOut-of-the-Box Web PartsPatch Management
Permissions ManagementPhotos and PresenceQuota Templates
Read-Only Database SupportRemote Blob Storage (SQL Feature)REST and ATOM Data Feeds
Ribbon and Dialog FrameworkSandboxed SolutionsSharePoint Designer
SharePoint Health AnalyzerSharePoint ListsSharePoint Ribbon
SharePoint Service ArchitectureSharePoint Timer JobsSharePoint Workspace
Silverlight Web PartSite SearchSolution Packages
Streamlined Central AdministrationSupport for Office Web AppsUnattached Content Database Recovery
Usage Reporting and LoggingVisual Studio 2010 SharePoint Developer ToolsVisual Upgrade
Web PartsWikisWindows 7 Support
Windows PowerShell SupportWorkflowWorkflow Models

SharePoint 2010 Standard includes SharePoint Foundation features and adds these features:
Ask Me AboutAudience TargetingBasic Sorting
Best BetsBusiness Connectivity Services Profile PageClick Through Relevancy
Colleague SuggestionsColleagues NetworkCompliance Everywhere
Content OrganizerDocument SetsDuplicate Detection
Enterprise Scale SearchEnterprise WikisFederated Search
Improved GovernanceKeyword SuggestionsManaged Metadata Service
MembershipsMetadata-driven NavigationMetadata-driven Refinement
Mobile Search ExperienceMultistage DispositionMy Content
My NewsfeedMy ProfileNote Board
Organization BrowserPeople and Expertise SearchPhonetic and Nickname Search
Query Suggestions, "Did You Mean?", and Related QueriesRatingsRecent Activities
Recently Authored ContentRelevancy TuningRich Media Management
Search ScopesSecure Store ServiceShared Content Types
SharePoint 2010 Search Connector FrameworkStatus UpdatesTag Clouds
Tag ProfilesTagsTags and Notes Tool
Unique Document IDsWeb AnalyticsWindows 7 Search
Word Automation ServicesWorkflow Templates

SharePoint 2010 Enterprise includes the features in SharePoint Foundation and SharePoint 2010 Standard and adds these features to the mix:

Access ServicesAdvanced Content ProcessingAdvanced Sorting
Business Data Integration with the Office ClientBusiness Data Web PartsBusiness Intelligence Center
Business Intelligence Indexing ConnectorCalculated KPIsChart Web Parts
Contextual SearchDashboardsData Connection Library
Decomposition TreeDeep RefinementExcel Services
Excel Services and PowerPivot for SharePointExtensible Search PlatformExtreme Scale Search
InfoPath Forms ServicesPerformancePoint ServicesRich Web Indexing
Similar ResultsThumbnails and PreviewsTunable Relevance with Multiple Rank Profiles
Visio ServicesVisual 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:
  •  Cost of project -  Is the licensing cost ( free, standard, Enterprise) goof enough to demonstrate to the client that there will be savings? 
  • Skillset of the team - A very important aspect is to also assess the team's skillset. Have we considered the budget to to ramp up and provide trainings to the team?  Though SharePoint is based on ASP.net, but there is need to have additional knowledge to develop SharePoint applications. Custom development in SharePoint is complex and requires extertise.
DECIDE.............WISELY!!!!
                                                                                                                                                                                                                                                                                    
    --------------------------------------------------------------------------------------------------------

    Refrences: MSDN