G'day,
I'm a long time Unix and Linux person with about 30 years and 14 years experience in those technologies, respectively. But wanting to expand my toolbox, I was trawling SO for hints on learning Sharepoint and I was wondering about Jon Skeet's answer to the question "How to begin as a .net and SharePoint developer" where he suggests learning .NET and C# before learning ASP.NET and Sharepoint.
Should I learn .NET and C# before getting involved with ASP.NET and Sharepoint? And can anyone recommend good books for the four technologies?
On SO so far, we've had questions for book recommendations for learning Sharepoint and ASP.NET but I haven't found anything about a "*nix head" dipping his toes into the MS waters for the first time.
At the moment I have Jon's recommendations from his answer above but I've been also been looking at the Head First C# book and a couple of O'Reilly Nutshell books.
The list of possible books I have so far is:
C#:
- "Accelerated C# 2008 (sanitised Amazon link)
- "Head First C#" (sanitised Amazon link)
- "Learning C# 3.0" (sanitised Amazon link)
- "Programming C# 3.0" (sanitised Amazon link)
Sharepoint:
- "Inside Microsoft Windows SharePoint Services 3.0" (sanitised Amazon link)
- "Microsoft SharePoint: Building Office 2007 Solutions in C# 2005" (sanitised Amazon link)
- "Workflow in the 2007 Microsoft Office System" (sanitised Amazon link)
- "Professional SharePoint 2007 Development" (sanitised Amazon link)
- "Real World SharePoint 2007: Indispensable Experiences From 16 MOSS and WSS MVPs" (sanitised Amazon link)
N.B. The Sharepoint list was obtained from the accepted answer to the question "WSS/MOSS". Thanks Pascal Paradis.
Any one help with the suggestions for learning .NET and ASP.NET?
Any thoughts on these books?
cheers,
IMHO,
Yes, definitely, IF you are going to do some development.
No, If you are going to do administration only.
Seeing as SharePoint was built on top of .NET 2.0 (and 3.0, Windows Workflow Foundation), it is only natural one would first try to get a hang of the basics before diving into the SharePoint Object Model. What I can recommend is to just install a Virtual Machine and start rummaging around in SharePoint (create some web applications, list, then some Content Types and Site Columns, then combine the lot.) Then, try to create your own webpart when you have done some C# coding (or VB.NET for that matter), then try to roll-out that webpart using a feature and a SharePoint Solution file. Progress from there.
SharePoint's Object Model is incredibly powerful and without a solid understanding of it's foundations you'll never get the full development experience.
As with any language, you will need something to do while learning C#. While you can do sample projects as shown in the books, as an experienced developer, I would personally recommend learning by doing an ASP.NET project (you don't need to write a lot of "this is a function" type exercises as C# functions are pretty much the same as any c-style functions).
In short, I would put off Sharepoint development due to its very specific nature, but not ASP.NET development.
Update: One other thing...Visual Studio makes web development quite straightforward. It is not as if Windows development is so much simpler than Web Development that it makes it easier to focus on the C#. It is more the case that each environment (Winforms versus Web) provides a different context within which C# is used. Thus, you may as well learn C# within the Web context since that will be your long-term focus.
One other thing: you may want to see this answer that I offered to an earlier question about getting started with .NET.
By all means.
ASP.NET is not just another lightweight scripting language like PHP or something. its power comes from the language features and the framework libraries, which allow you to build an effective and professional backend for your site. If you choose to ignore them from the start, then you will miss the very advantage of ASP.NET over other frameworks. And you won't be productive.
AS my point of view YES.
Have look on this SO page
Absolutely you need o learn C# (or VB.NET or any .NET language) and ASP.NET before Sharepoint. Actually Sharepoint is built upon ASP.NET. Though you can use sharepoint by itself (create document libraries and stuff) from the browser, without having to deal with asp.net, but a lot of sharepoint things require .NET and ASP.NET. For example, SmartWebParts in sharepoint depend on creating asp.net user controls, also features in Sharepoint depends on .NET. So yeah! You have to learn C# and ASP.NET for doing real sharepoint stuff.
EDIT:
For the books thing, for me I think that
Inside Windows Sharepoint Services is an awesome book, it's the best one for programmer (IMHO of course).
Pro C# and the .NET 3.5 is very highly recommended for C#
ASP.NET 2.0 Web Site programming Problem, Design, Solution would be my recommendation for ASP.NET
You need knowledge about C# and .NET to developing ASP.NET apps or for SharePoint. Because both technology have same base and it's .NET
Head First C# for absolute beginner in programming (OOP) and C#. And it's good for you if you haven't knowledge about object programming, but if you familiar with OOP, this book wasting your time.
Best way how to get in .NET and C# is C# in Depth: What you need to master C# 2 and 3