SharePoint
contains huge number of technologies under SharePoint platform umbrella. According
to the end user information in the industry, SharePoint is heavily used for
document management, intranets, knowledge bases, web content management and
business reporting tools.
According
to the working experience of SharePoint development I would suggest that each
and every SharePoint developer or beginner would pay attention to some basic as
well as core sectors of SharePoint development. It would help to manage and
understand SharePoint properly, furthermore it will assist you to gain more and
more SharePoint knowledge based on that basic understanding. This would help
you to come to a point that you can manage SharePoint properly.
As
it is mentioned above, below shown sectors are the basic sectors of SharePoint
development. This will help you to explore SharePoint through an appropriate
path.
1. SharePoint installation & configuration
This
is the first sector, in order to use SharePoint it should be installed and
configured properly according to the requirements.
· Deciding the service applications which
need to be provisioned according to the provided requirements.
· Deciding the farm architecture (Whether
the single farm, 2 tier farm or 3 tier farm architecture is used, but single tier
farm is not recommended as the production environment)
·
Installation
1) Windows
(Windows should be installed in each and every server that are in the farm)
2) SQL
(SQL should be installed in each and every server which are in database layer)
3) SharePoint
(SharePoint should be installed in each and every server that are used in
application server layer and web front end server layer)
· Configuration (After the proper SharePoint,
installation mandatory service applications and additional service applications
should be created according to the requirement, furthermore in this
installation users with proper permission level and proper application pools
have to be used).
2. Designing & development
When
it comes to the designing phase design of the particular SharePoint solution
should be aligned with best practices for best performance.
SharePoint
development is normally divided in to two categories, developing solutions with
SharePoint inbuilt features (no code solutions) and developing a custom
solution by using visual studio, SharePoint designer, etc. In aforementioned
custom solutions SharePoint object are accessed to fulfill operations. Ways of
accessing SharePoint are listed below.
SSOM
– It stands for Server Side Object Model and it allows to access SharePoint
objects in server side.
CSOM
(JSOM, REST api) – It stands for Client Side Object Model and it allows to
access SharePoint object in client side.
Web
services – SharePoint inbuilt web services allows to access SharePoint objects out
of the SharePoint environment.
Below
mentioned tools are widely used for custom developments.
·
Visual studio
·
SharePoint designer
Additionally,
AngularJS is used as a framework that binds the HTML (View) to JavaScript
objects (Model).
3. Branding
In
this phase, mainly concerning about design and the usability of the SharePoint
site. Below mentioned tools are widely used for branding
·
Photoshop
·
SharePoint Designer
Apart
from that, SharePoint inbuilt features like device manger and device channel
are used, moreover below mentioned technologies are used.
·
jQuery
·
Bootstrap
·
CSS3
·
HTML 5
4. Administration & troubleshooting
Administration
is the way of managing and maintaining the SharePoint. In this case it mainly
contains database administration, infrastructure administration, backup and
recovery administration and disaster planning.
Mainly
it needs the knowledge areas of networking, operating IIS, SQL, SharePoint central
administration, STSADM and SharePoint PowerShell.
Apart
from that, should have capability of managing services and scheduled jobs
within the SharePoint environment, creating new sites and lists, installing new
web parts, doing backups, managing the Shared Services, educating users on how
to use features like InfoPath, managing governance policies and permissions.
Troubleshooting
means, the ability to find and resolve the issues in SharePoint. Below mentioned
tools are widely used to troubleshoot SharePoint.
·
ULS
·
Event Logs
·
SQL logs
·
Developer dashboard
·
Performance monitor
·
Health Analyzer
·
Fiddler
5. Migration and scaling out
SharePoint
migration is the process of migrating the content of a SharePoint farm to
another farm. The Upgrading refers to the process of converting the version of
a SharePoint to a higher version (eg -: SharePoint 2010 to 2013)
In
order to start SharePoint migration, a proper plan should be prepared for the
particular migration. It should contained,
- What should be migrated
- How should be migrated
- What are the important contents and where are those located
Basically
three types of migration methods are used in the industry, those are listed
below.
- In-place migration
- Database attached migration
- Using a well-supported third party tool
In
SharePoint, “scaling out the farm” stands for adding one or more
server roles to the existing farm. Web-front end servers, Application servers,
database servers, search servers are the main server roles in SharePoint.
Web front end servers
process incoming request by using IIS, request data from services and database,
process received data and sending response to the request through a Asp.net
page.
Application servers
are the servers where the service applications are hosted.
Database servers
contains all the databases which are dealing with SharePoint.
Search servers
are the places where the search service application is hosted. This depends on
the usage of the search service in the SharePoint farm. If the search service
doesn’t need much resources and it is not used heavily, search service
application can be hosted in application server as normal service applications.
6. Performance tuning
According
to my working experiences SharePoint performance relies on many factors, but for easiness of understanding it can be divided below mentioned domains.
·
Windows server
1. Windows
server performance option
Computer>properties>Advanced system settings
> Performance>Settings>visual effects
and select best performance option
2. Page
file size
Computer>properties>Advanced system settings>
Performance>Settings>Advanced>virtual memory>settings
Page file size=RAM size *
1.5
3. Use
the Proper power plan
Start>Control
Panel>Power Options > select the high performance
4. Stop
unused services
Spooler, AudioSrv,
TabletLnputService, WerSvc services
5. Check
Loopback
6. Install
latest and correct updates to the server.
7. Define SQL rules on the firewall
8. Exclude
data, transaction and log files from real-time Antivirus scan.
9. Put
log and index files on separate disks
·
SQL
1. Use
dedicated server for sql, furthermore don’t use the default instant
<500GB
data farm
|
500GB-1T
data
farm
|
1T-2T
data
farm
|
2T-5T
data
farm
|
>5T
data
farm
|
|
RAM
|
8
|
16
|
32
|
64
|
64+
|
CPU
|
4
|
4
|
8
|
8
|
8
|
2. Check
the disk and the NTFS allocation size of the particular drive.
Eg :- Use “chkdsk C:” for the drive and SQL has
64k
3. Modify
the model default database size to a maximum amount that is possible in the
particular environment.
4. Modify
the auto growth of the model database, which is possible in the particular
environment.
5. Active
back up compression
6. Make
Max degree of parallelism 1
7. Exclude
data files, transaction logs and back up files from Antivirus real time scanning.
·
SharePoint
1. Try
to avoid using the Product Configuration Wizard.
2. 20
web applications is maximum recommended for a share point farm.
3. 5000
site collections is maximum recommended for a Web application.
4. Avoid
“-Force” deployed as much as possible
5. Avoid
Global deployments (Scope) as much as possible unless or otherwise it’s needed.
·
IIS
1. Wake
up script
2. Enabling
BLOB cache in web config file.
I
hope this blog post provides the basic understanding to the beginners and
developers who are willing to enhance their knowledge on the industry of
SharePoint.
Keep sharing the knowledge! :)
Keep sharing the knowledge! :)