What is Sharepoint? What are its main advantages for programmer?
For some time I’ve seen employers demanding Sharepoint knowledge from programmers, but I have a problem understanding what it is :/
But today I was at IT tra开发者_开发技巧ining, and the main guy said something like: “Sharepoint is platform for commit code for programmer, control of version etc...”
Is that true? It sounds like SVN. Can someone explain me what advantages it has for a C# programmer?
Thanks ;)
Microsoft Sharepoint should be thought of as two things
- An out of the box solution for sharing and collaboration in a network
- A Development platform.
Out of the box, Sharepoint can give you document management, discussion groups, notifications/alerts, integration with Reporting Services, Performance Point, Infopath and various other products, but at its heart Sharepoint wants to be a portal. A portal into all the information and all the applications that your business has. It has features for showing structured/relational data from any database (with limits), searching for data, crawling for data. It has a fairly comprehensive security system etc.
Secondly and in some cases more importantly Sharepoint is a development platform/
framework built on top of asp.net.
It gives developers a lot of different tools they can use to create workflow/
collaboration/document management and custom application.
The dual nature of the product and how it is pitched can lead to some confusion.
Furthermore there are really two different product, Windows Sharepoint Services and Sharepoint Portal. One is free with Windows, and the other is pretty darn expensive.
It is not a good idea to try and use Sharepoint as a code versioning tool. Though I am sure it could be done it is not really structured for it.
Microsoft has Team Foundation Server (which integrates with Sharepoint) for that need.
I have seen it used for bug tracking at a number of my clients. It is not the best tool you can find, but it gets the job done.
Creating an repository of custom forms, that an end user can create, and then track changes and data submitted etc, is one thing Sharepoint does fairly well upto a certain complexity.
You can start out just creating a custom list, then you can move into Infopath integration for more complex forms and validation and from there you can move into custom development for even more complex forms.
SharePoint is Microsoft's fastest ever growing product, with many many companies using it worldwide. This growth has really begun to happen over the past couple of years, and with SharePoint 2010 due out in May, it is set to continue for a while.
Given the growth rate, there is a huge demand for developers with SharePoint skills. It is a broad product which can be used to create business applications, content managed web sites, collaboration portals and much more.
SharePoint can be used out-of-the-box, but one of it's strength's is in how customizable it is. A SharePoint developer can leverage a lot of this out of box functionality and combine it with .NET skills to create highly functional business solutions quickly, easily and at a fraction of the cost of traditional solutions.
What are the advantages for a programmer? I would say job prospects for the future, along with good salaries are good ones! In order to be a good SharePoint developer, you should probably have a solid foundation in ASP.NET, as well as other web development skills (eg CSS, XML/XSL, Javascript). Windows Workflow Foundation, Windows Communication Foundation and Silverlight wouldn't hurt either!
SharePoint is a document management/publishing system. Essentially it allows companies to create [typically] Intranet web-enabled applications to allow employees to edit web pages and share documents.
Although it can be used for programmers to share design documents, user stories and the like, and even source code, I don't know that there is really a version control built-in to SharePoint (and if there is I doubt it would be as powerful as dedicated source-control applications such as SVN or SourceSafe).
In addition to the core page-editing and document-managing features (with very versatile administration management features), SharePoint provides a relatively powerful Full-text search engine, a content-federation feature (allowing to blend-in say info from RSS-feeds or even web pages, with your own content), and a host of bells and whistles (which is why it is sometimes hard to tell what SharePoint is and is not...). Maybe a better generic name would be a "Knowledge management platform" or something like that.
Do check this Overview from Microsoft and even Wikipedia, for a more precise overview.
It is a relatively sophisticated (and configuration-finicky) system, which is maybe why "SharePoint programmers" are in demand these days, as the question implies.
Sharepoint is not versioning tool for code. It is a document repository with workflow engine. In fact it is much more than that. You can create sites and site collections in the Sharepoint. you can use it as intranet, extranet and internet with tight security. The advantage for c# programmer is that sharepoint is built upon .NET framework, so we can create the same forms, use same membership provider classes as we do with .NET websites. It is having in-built workflow engine, so we can route the documents.
Apart from that there is a facility called BDC (Business data catalogue) which allow us to connect with external data sources, like SAP, peoplesoft, sieble etc.
Sharepoint is basically a portal which will offer you the facilities, which ordinary person and a business can use. It's direct integration with Active directory is useful in business context.
Actually there are many roles involved using sharepoint in a company
End User - a user in a business role, no interest in another technology, only uploads or updates documents.
Site Owner - to manage and administer the team / project documentation, information and communication on; and access to, a team site and subsites.
Site Collection Administrator - to manage and administer a site collection for a division.
Helpdesk Administrator - to support all users on the platform.
Farm Administrator - to maintain, manage and report on the farm web, application, index, query and database servers in accordance with best practices.
Evangelist - the public face of SharePoint in the organisation; to demo and evangelise SharePoint to effect good user adoption; to provide specialized application consulting services with regards to infrastructure and web content management services provided by SharePoint.
Architect - technical team lead architecting topology and scalability of farm; (can also be the operational, day to day decision maker on the running of the platform if there is no fulltime person for this in the organisation).
@Development 4.0: However, the versioning functionality of Sharepoint is useful for doing limited version control of documents you share via Sharepoint.
Is it mainly a tool to keep Sharepoint developers busy?
精彩评论