Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I've recently become a SharePoint developer, previously I was an ASP.NET developer. There are no experience or senior SharePoint Developer in my team (small team only 2 person). I like to know how do I decide if an application should be a custom solution built using SharePoint 2010 (SPList, Application Pages,WebPart,SPLinq..you get the idea) or an ASP.NET based web application. I've recently completed a custom SharePoint application named Learning And Development. It has 9 table and I use SPList and SPListLokup to create something similar to a database environment. Then I've read somewhere that SharePoint list is not an alternative to database system. Some of the issues I've realized with this application is scalability (need to add more table in future) and List throttling issue. Let say I was to built this application using external lists (BCS) will this be OK or do I have to create an ASP.NET web application.

Any help is very much apperciated.

share|improve this question
    
can you list some if not all of the use cases you have to support. That will help others provide a recommendation. –  Athens Holloway Nov 24 '11 at 4:24
add comment

3 Answers

up vote 1 down vote accepted

SharePoint is an ASP.NET application on steroids. Almost everything that works in ASP.NET(3.5) will work in SharePoint as well.

Having said that, the decision to choose between ASP.NET and SharePoint depends on N no of factors .... Requirements, Budget, Skills, Infrastructure, Corporate politics ;-) to name a few.

At the developer level, I think decision can be made on the basis of requirements only. Also, If you are new to SharePoint chances are high that you would like to develop in ASP.NET :-)

Some points worth to consider:

1) See how complex your database model can be.

It is easy to define and manage data structures in lists as they don't require intervention of a database admin. However, If your application has complex DB design, It may not be feasible using SharePoint. Check out this as well Using SharePoint Lists vs. Database Tables

2) Identify the Features your application will support

SharePoint provide many features out-of-box for which you may have to code in ASP.NET. If your application need revolve around below, SharePoint is worth to consider:

  • Search
  • Information Portals
  • Business Intelligence and Dashboards
  • Simple Workflows
  • Content Management
  • Social networking ( Blogs, Wikis, Communities, People Search)
  • MS Office Integration
  • Surfacing External Data Systems
  • Future Integration with other Systems

3) Cross Cutting Concerns

The majority of web applications contain common functionality that spans layers and tiers. This functionality typically supports operations such authentication, authorization, caching, communication, exception management, logging and instrumentation, and validation.

SharePoint provides effective way for managing common crosscutting concerns, such as authentication and authorization, storage, scale, provisioning of services, and governance controls.The value in managing crosscutting concerns in SharePoint is that you don't have to continually reinvent the wheel.

It may be boring to write crosscutting concerns in ASP.NET :-)

SharePoint 2010 and the associated tools promote the increased productivity and accelerated development developers are looking for.

share|improve this answer
    
Thanks for the answers, I really2 appreciate it. From what I can gather from your answers is that the factors that should be analyze in building custom SharePoint application is that how much will the application utilize the SharePoint features. In my current application the main utilized SharePoint features is workflow. Lets say that I've built the application on ASP.NET and surface the data through BCS. I can't use workflow because it is not supported. What are the alternatives for this kind of features. Thanks. –  Agamand The True Nov 29 '11 at 3:17
add comment

There is an excellent post from Sanjay Narang in msdn discussing most of the topics to think about. The post deals with the different aspects of SharePoint 2007 that are available to that of Asp.net.

Keep in mind the additional goodies that SharePoint 2010 and Office 365 comes with which are not mentioned in the post.

share|improve this answer
    
Thanks, this helps. Please put in some more links on this topic if you've found any. –  Agamand The True Nov 29 '11 at 3:00
add comment

Sounds like you have two main issues that are going to be important factors in your decision; data storage and developer experience.

In my opinion, your data storage concerns are minor. Even with a solution built on SharePoint, that doesn't mean that you have to store data in lists, or use external lists and BCS to perform data manipulation. You are just as able to use regular ASP.NET data frameworks such as Entity Framework, LINQ to Sql, ADO.NET etc within a SharePoint application as you are within an ASP.NET application. With a SharePoint solution, you just need to work out how/where to configure your database connection string.

Your bigger concern is probably having a lack of SharePoint experience within your development team. SharePoint has a pretty decent learning curve. Not only from a development aspect, but also when it comes to setting up environments in which to develop, deploy, and ultimately run your solution.

While that may sound like a downside, there are many advantages of using SharePoint as a platform for creating solutions. You can use SharePoint for easily setting up sites with navigation built in, support for search, permissions and security, content editing capabilities etc etc.

If you have the time and resources, using the opportunity to gain more experience in developing in SharePoint is going to be beneficial to both you and your team.

share|improve this answer
    
Hi Paul, thanks for the answers..really appreciate it. When you say that my data storage concerns are minor, do you mean that using SharePoint Lists to create table relationship like relational database is OK?. The way that I'm doing rite now. And also can you elaborate on how to connect my ASP.NET application to SharePoint because from what I know that I can only connect SharePoint to my ASP.NET application via BCS. And no matter what I used in the data layer of my ASP.NET application, I have to redefine it when using BCS. Thanks. –  Agamand The True Nov 29 '11 at 2:56
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.