Sign up ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I have heard alot of computer programmer who mentioned that doing some coding in regular dotnet is different to Sharepoint because they see Sharepoint in a ERP approach feeling compare to regular .net computer programmer.

What is you experience when you do the coding in regular dotnet and sharepoint?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

Im sorry but that is such a vauge question! regual .net? vs sharepoint?

the first point to make is that this question might be in the wrong place. Answering your question tho... .net is just a large library of classes that you can use.

Be it for SharePoint, wpf,, Silverlight, winforms they all use the .net library that are commononly referenced. Depending on what you use like for example Sharepoint you would need to reference to the microsoft.SharePoint.dll as its needed to access specific APIs' and the same would go for anyother, some less some more ;) but in the end they all use .net as they are all part of the .net family.

To understand .net more read this:

Sharepoint is built ontop of and is a cross between and winforms set as a collaboration platform. SharePoint 2003 uses .net 1.1 as its hosted on Windows Server 2003, SharePoint 2007 uses .net 2.0 and is hosted on Windows Server 2003 R2. SharePoint 2010 .net 3.5 Windows Server 2008 R2.

each .net is upgraded with better functionality and improvements from the predecessor, meaning some features and classes don't exsist anymore or you have new ones. They sometimes rebuild it from scratch :) . Same for SharePoint it has its own APIs' that extend that utilizes .net. Things to do in 2003 was harder than in 2010 because .net pretty much changed making thing easier to perform meaning you have to write less code making your custom webpart or feature easier.

If you want to understand it further than you can read this:

sharepoint is more than an ERP system:

The purpose of ERP is to facilitate the flow of information between all business functions inside the boundaries of the organization and manage the connections to outside stakeholders.

SharePoint can be used to provide intranet portals, document & file management, collaboration, social networks, extranets, websites, enterprise search, and business intelligence. It also has capabilities around system integration, process integration, and workflow automation.

From a developers point of view, its harder than normal programming, by that i mean winforms as somthing simple in winforms can be complex in sharepoint. You have to consider different languages that you have to use to accomplish what you need and different methods depending on your criteria. If you are an programmer its easier to use sharepoint as youll know about how works what helps alot but you would need to know how sharepoint works and the api's that you would need to use to get or set the info you want and when to dispose of objects properly. This is one of the reasons sharepoint programmers are paid more becusae they need to know alot more languages and need to know how sharepoint runs what takes time and alot of reading and programming. Iv only been doing it for a year but have thankfully managed to learn alot in my time and started to already teach others under me and i am no where near a pro :( but like i said it comes with time and with each sharepoint version you learn more .net versions.


Sharepoint does not use MVC it uses MVP instead as MVC contradics sharepoints patterns but you can still use mvc by adding it in as they have similar goals. MVP are applied to the Custom webparts described here:

mvc is not targeted for sharepoint but the eqivelent is MVP :) . sharepoint is built on top of so you can write application pages and host them on sharepoint to use.

application building for sharepoint




As for the languages, I would recommend first C# or but from personal preffernece and industrial use C# over VB as its used more and less code. This is needed to develop custom webparts and for codebehind (overriding onInt, render, prerender, onload, createchildcontrols, overriding eventhandlers and much more). as sharepoint is built on top of it and you can add application pages to sharepoint and connect them up using iis

Jquery and javascript including Ajax (mainly ajaxcontroltoolkit) for client side that you cant do serverside that youll find out for a simple example keyUp or keyDown events dont exsist on textboxes so you need to use those events in Javascript to handle it or onBlur for focus events.

I would also start to read up on html5 for sharepoint 2013 and html for 2003 - 2010.

xml mainly for features or just another method for getting info from lists:

but xml in general is used all over the place so its also recommended that you use it aswell :).

SQL to get the data from database using stored procedures (highly recommended) or directly (not recommended (high risk of sql injection)).

and the final part isto learn sharepoint itself by that i mean how it works, using the UI, where everything fits, how the info is handled. C# point of view what to override, how to make custom webpart, how to use "SPsite" and "SPweb" properly using the using statment to dispose of the objects properly:

I hope this answers you question :)


Sharepoint itself has its own tables that is stored in the database most things are stored in the DB, this shouldnt be touched but you can get info from it if you realy want to (read only), the reason read only is that you have a good chance of screwing up sharepoint whats bad.

For your custom stuff like say you have a custom table, you can create a custom stored procedure with get/set or just one of them as you need it.. dont forget to set the permission to execute on whatever you choose otherwise it will throw an execute premission exception ;). From that you can bind lists or use them by calling directly in the .cs class(not recommended) or creat a dataaccess layer, the dataaccess layer consists of an .xsd that is a visual representation of your stored procedure that you can drag and drop in VS. Then once that is complete you can create and similar named .cs class that inherits from tha xsd class. This will setup the connection and varibles that would be visable. save and build.

Now you can start creating your custom webpart in VS and import the dll reference, goto the folder location of the dataaccess layer and go into the bin directory and select the built dll in either debug or release. Once you have added the reference in the webpart to the dataaccess layer you can use that to call the stored procedure. The last part is to add the dataaccess.dll to the GAC.

so instead of:

weppart (presentation layer) - sql

it now goes:

webpart (presentation layer) - dataaccess - sql

this is the recommended way to minimise sql attacks.

DataAccess layer

For lists or other things like dropdown boxes you can also use databinding that also minimises sql attacks more can be found here:


SPGridView and databinding

hope this answers your question for sql queries :)

share|improve this answer
1. Do you code website in or mVC? 2. "You have to consider different languages.." Can you mention what language you need to learn as a Sharepoint developer? –  HelloWorld Sep 16 '12 at 7:29
iv just ammended the answer for you :) –  ali Sharepoint Sep 16 '12 at 12:43
Another question I'm wondering. How does Sharepoint do in order to retrieve data from the database to the view layer? For instance, does it use entity framework, Nhibernate or bindinglist etc? –  HelloWorld Sep 16 '12 at 15:10
im a bit confused as what you mean by retriving data from the database? do you mean custom code like from a custom webpart or sharepoint itself OOB? –  ali Sharepoint Sep 16 '12 at 19:53
iv ammended the question for sql :) –  ali Sharepoint Sep 16 '12 at 20:17

Your Answer


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.