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, asp.net, 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 asp.net and is a cross between asp.net 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 asp.net 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
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 asp.net programmer its easier to use sharepoint as youll know about how asp.net 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 asp.net so you can write asp.net application pages and host them on sharepoint to use.
application building for sharepoint
As for the languages, I would recommend first C# or VB.net 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).
ASP.net as sharepoint is built on top of it and you can add asp.net application pages to sharepoint and connect them up using iis
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.
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 :)