Before starting what sandbox solution is, first let us understand what solution mean? If you have worked with MOSS 2007 version then you must be aware of solutions. Solutions can be deployed over a farm. With 2010 version solution can also be deployed in sandbox. Solution may contain web parts, images, pages, event handlers, lists etc.
Sandbox solution is a new concept introduced in SharePoint 2010. Advantage of sandbox solution is this solution actually executes in a restricted zone. It cannot access everything in object model. It cannot access certain resources from SharePoint object model.
This is the advantage because it cannot affect the farm environment. If something goes wrong in the sandbox solution then entire farm does not get affected.
Sandbox solution is always given certain number of resource allocation space and that is monitored by farm administrator. If farm administrator wants, then it can be disabled or even it can also be promoted to be a farm solution as an upgrade.
Other advantage of sandbox solution is it can free farm administrator for deployment stand point. Site collection administrator can deploy and activate the sandbox solution. If the sandbox solution does not contain any assembly, then even a user with full control over a top level site of site collection can also deploy the solution.
Sandbox solution runs in a separate process and that is the reason if something goes wrong in sandbox solution then it does not impact farm. It does not run in w3wc process but runs under SPUCWorkerProcess.
For the hosted SharePoint environment, this can be one of the best ways to deploy and maintain the solutions and sites.
There are many limitations in terms of accessing resources while you program against sandbox solutions in SharePoint. I am listing down some of them. You cannot:
1) System.IO, ADO.Net
2) Write to disk files
3) Oher site collection content
5) Change threading model
6) Create visual web part
7) Access programmatic workflow
8) Timer Job
9) Web Application scoped features
Here are certain items that you can do in sandbox solution environment
1) Web Parts (not visual)
2) Event receivers
3) Feature receivers
4) Custom SharePoint Designer Workflow Activity
There are certain steps that farm administrator has to perform before setting up sandbox solution environment if entire set up is farm architecture. Farm administrator starts the sandbox service in each server in farm, configures the best load balancing service for sandbox solutions on each server and then set the resource quotas.
Read Part-2 for further reading.