Domanda

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.

È stato utile?

Soluzione

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.

Altri suggerimenti

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.

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top