views:

1274

answers:

9

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#:

Sharepoint:

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,

+4  A: 

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.

Mark Brittingham
Hmmm...I'm disagreeing with Jon Skeet on this one. Isn't that sort of like when the generic bad guy takes a swing at Chuck Norris on TV? Doesn't he get "Answer" credit just for being mentioned in the question?
Mark Brittingham
+1 - no reason you can't do things together. Working with Web Parts in SharePoint provides what is essentially ASP.NET development anyhow, but there's a lot of SharePoint-specific stuff that might not be necessary initially.
Andy Mikula
Thanks for the upvote. I don't know that much about SharePoint but had heard that it had a lot of small intricacies that made learning it a bit difficult so that is why I suggested holding off on SharePoint.
Mark Brittingham
+1  A: 

AS my point of view YES.

Have look on this SO page

joe
@Krish, thanks. That was the question with Jon Skeet's answer that I linked to in my question! (-:
Rob Wells
+3  A: 

I suggest you start learning from a book that will introduce you both to .NET and C#. When you will understand .NET world, you can go further to ASP.NET. Since you come from *nix world, you should learn how different .NET world is from your previous experiences, and even from Windows itself. I spent some time reading Andrew Troelsen’s book, and I think they are quite ok to start, and then move to ASP.NET. From the list above I have heard, that Liberty’s book is quite ok.

Troelsen: http://www.amazon.com/2008-NET-Platform-Fourth-Windows-Net/dp/1590598849/ref=sr_1_1?ie=UTF8&s=books&qid=1247572543&sr=1-1

smok1
+1  A: 

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

MicTech
+3  A: 

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.

User
!!! PHP "just another lightweight scripting language" !! hmmm, you might get some disagreement from php devs.
Cheeso
PHP is horrendous
Janie
A: 

It's certainly worth getting the idea of working with C# and ASP.Net away from Sharepoint, because that adds it's own layers of awkwardness and eldritch horror onto anything you're going to be developing.

When you do move on to developing for Sharepoint, one useful piece of equipment is a soft rubber desk. You're going to be banging your head against that thing a whole lot as you try to understand the mysteries of WSS, MOSS and friends and this is a good way to reduce long-term injuries.

glenatron
@glenatron, I see that a lot at work with our Sharepoint developers! (-:
Rob Wells
+2  A: 
Galilyou
AB Kolan
+3  A: 

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.

Colin
Excellent! The purpose behind the learning makes all the difference to the answer. +1
Cerebrus
+3  A: 

This really deserves something more than "Should you walk before you can run?", which was my first thought :)

With 30 odd years of experience (I assume programming experience), you should not really learn the basics, you need to get in depth understanding of the C# developement environment, IIS, SQL Server and SharePoint (in roughly that order). To be efficient, you need to compare these technologies and see how they are different from what you are used to rather than reading yet another book that starts with variable declaration syntax.

I personally would get more from time spent with an expert, but that is not usually an option. Fortunately many of these people blog and those can be really illuminating. (see Eric Lippert)

When reading the detail, you will most likely be able to understand how the details operate without needing a full chapter.

Small snippets of information are going to be more useful to you than large amounts of basic knowledge. E.g. I assume that a snippet of information such as "SharePoint stores all the documents for a Site Collection as a binary field in a single table." will provide you with more information than a several thousand word overview of SharePoint site collections.

Nat
@Nat, thanks for a great answer! Definitely worth the +1! (-:
Rob Wells