tags:

views:

219

answers:

6

Hey,

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 training, 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 ;)

+5  A: 

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.

mjv
Big thanks!! Link in editing answers also helps me very well!
netmajor
p.s. You think that for programmer it's enough to know how to use Sharepoint? He don't need to know design features...?
netmajor
@netmajor: Sorry, I'm afraid it is a very subjective question... Many of our [lucky] colleagues may not even need to _use_ SharePoint never mind tweaking it or designing apps with it. Apparently there is interest about SharePoint in your company, and you should therefore read-up about it, try to understand whether what it could do for your company (or clients) and what it couldn't do as well. The decision to go to the next step and learn SP in earnest, will depend on your role in the company. Understand this is a relatively steep learning curve, arguably with many positive outcomes.
mjv
@netmajor: (saw your comment in other question). As a student, you should beware of a few things: a) One can easily "drown" in broad and sophisticated technologies. In your rush to get practical experience, you may end up merely attaining a sophomoric understanding of the various technologies at work in SharePoint. b) Technologies change, fundamental concepts evolve much more slowly. It's ok (better, IMHO), as a student to favor the fundamental stuff. c) Depending when you will effectively seek employment, the growing trend associated with SP may readily be slowing down and the...
mjv
(cont) offer-demand i.e. SP-ready-workforce vs. SP-projects, which currently favors the programmers, may by then have started to balance itself (double effect: fewer project starting, more folks with such experience). d) There's a lot hype out there, yet for good and bad reasons ;-) betting on MS technologies is typically safer choice (in very broad terms). So to conclude: focus on in depth/fundamental skills; congratulations however for your interest in the marketplace, this will help your eventual job search.
mjv
I know what You mean about fundamentals... I today realize that I everyday search for this sophisticated technologies, but I drown in fundamentals of .NET :/ and I start read my .NET Core from beginning! Can You show me when I find most important things about SP You writing about?
netmajor
@netmajor: Here's a very _tentative_ list of concepts/languages, applicable to "Web 2.0" type of applications, and which one may consider more fundamental. One can recognize them as they are not exclusively found in one particular technology, but tend to pervade the space. Her goes: XML, XML transforms (XSLT etc.), HTML/XHTML, CSS, SQL, several design patterns (Abstract factory, IOC, MVC...), a script language or two (maybe Python, for its ease of use and multiple paradigmns), one .NET CLR language C# preferably). Long list! But one which may prep you for SP and yet be Gen. Purpose enough.
mjv
+4  A: 

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.

Development 4.0
Development 4.0, Your answer is more than enough! Its explain for me everything ;) About TFS + SP, i have to install both ? I have at MSDNAA few version of TFS (Workgroup ,Standard) and Sharepoint Designer 2007. I think to try it, but this Designer version have which features You mention ? It's design this wokflow ?
netmajor
Here is a great write up of the relationship between Sharepoint and TFS: http://blogs.msdn.com/aabdou/archive/2007/07/11/team-foundation-server-2008-and-sharepoint-integration.aspxThe designer is a product meant to help non developers customize and manage certain aspects of Sharepoint.
Development 4.0
A: 

@Development 4.0: However, the versioning functionality of Sharepoint is useful for doing limited version control of documents you share via Sharepoint.

jamesv
A: 

Is it mainly a tool to keep Sharepoint developers busy?

Paul D. Waite
sorry, but what You mean? I am not Sharepoint developer, but .NET programmer..
netmajor
I was being facetiously disparaging about the value of Sharepoint. I was suggesting that it has little value in itself, other than to give people with experience of Sharepoint something to do.
Paul D. Waite
+4  A: 

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!

Paul Lucas
oHH man! That's a so useful answer!! Now I'm at the beginning of my programmer career(student), when I experiment with much technologies (6 month ago ASP.NET,now Silverlight and WCF). So I try to learn Sharepoint as well ;) But my brain fell like it explode from some much information in some little time... :/
netmajor
LOL... I know what you mean. I've been a .NET developer for 10 years, and working with SharePoint since 2003... and while I think I know a lot, I KNOW there's lots I still dont know.
Paul Lucas
Yes Paul, We learn whole life...and one day more... :/ But I like learning but only if I have free time for this...otherwise i frustrated that I can't know everything :/
netmajor
Yeah netmajor, all students are in the same position like you. All try to learn everything on everyday. Not possible..
pointlesspolitics
“I don't find honest answers which are result of programmer experience, for me there is only advertising of M$ products” — luckily that was avoided in this answer... :/
Paul D. Waite
+1  A: 

Hi,

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).

pointlesspolitics
Nice role overview,Tnx!
netmajor