Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
I heard from my peers that knowledge of sharepoint is going to be good for career. We do not use sharepoint at our office. So dont know how to get started. These are my sharepoint newbie questions
Is learning sharepoint worth the effort?
Where are the resources to learn sharepoint?
Is there any reference project I should considering aiming to develop?
Appreciate your inputs.
SharePoint has transformed my career in a such a positive way, I have become a huge advocate/evangelist and have a lot of passion for this technology.
I will say my career/role shift from technical business analyst into systems integration and application development can be almost directly attributed to learning SharePoint.
Quick background - Had previous IT infrastructure experience before I went back to university to get my bachelor's degree. Studied business and MIS, eventually was recruited to work for a company to basically do financial analyst stuff. The company implemented SharePoint version 2.0 soon after I got there. Having some minor exposure to the product previous to my employment, I was put on the project team for the initial roll out. I implemented the first SharePoint portal for that company (and it was a crappy one let me tell you) and I was hooked even with all the failings of SharePoint v2!
Fast forward a few years, now I'm a full time developer, integrating legacy business processes and applications into the SharePoint environment. FAR more interesting than writing pro forma budgets or forecasting maintenance costs...
So I will say this - SharePoint is completely worthwhile to learn.
On Training: There are a ton of training materials available for WSS/MOSS, from end user all the way to architect level.
For an experienced devloper I think the most valuable training you can attend is an administrator's boot camp. Getting such a deep dive into the guts of SharePoint is super valuable, from these aspects:
Server side debugging and troubleshooting efforts on SharePoint apps.
From a solutions engineering perspective: Understanding what can and can't be done in SharePoint and most importantly - why
Having a deep understanding of the OOTB features of SharePoint so you can leverage that functionality instead of recreating the wheel constantly
I hope this helps answer some questions. Good luck!
A lot of companies I have worked for in the recent past have used SharePoint and need customizations for it so I would say yes. Also, apps which run in SharePoint and as a standalone are very handy (and some would say trendy) at the moment.
When customizing SharePoint you should look to building web parts which consume it's API. This is no different than any other ASP.Net web part, save for the API. When I need info I usually look to Scott Guthrie (The Gu) at Microsoft for information. And he did not disappoint this time, here is a blog post with some great articles and links. Scott Gu on SharePoint Web Parts
If you have MSDN (or Tech Net) I believe they have a developer addition of SharePoint. I would load it up and just start playing around. See what the interface looks like and how to make customizations without code changes and then move on to making some custom web parts. Have fun!
SharePoint is embraced by a ton of large companies, and is pretty powerful out of the box -- but as corporations become more dependent on it for day to day business processes, they definitely need customizations. I would say it is absolutely something that is worth learning from a career standpoint. As of a few years ago, a friend at a Chicago-based consulting company told me that SharePoint was their largest growing practice.
For development, for SharePoint 2007 or earlier you need to have access to a full instance of SharePoint server -- which only runs on Microsoft Server OSs (Windows Server 2003 or 2008) most developers set up a virtual machine with Windows Server and SharePoint, then install Visual Studio on it.
With Visual Studio 2010 and SharePoint 2010, the developer story is changing a lot; you can develop and debug web parts on Windows 7, and the Web Part model is much more Silverlight-based. The down side is that corporate adoption of SharePoint 2010 will take some time. You may consider waiting on learning SharePoint 2007 and see if your time would be better spent ramping up on 2010 and using more of your current knowledge.
Related
I have a company that needs a document management system.
I have looked at SharePoint but it has far to many bells and whistles. The company wants something that doesn't have intranet portals, app downloads and all the other waffle (they simple don't have the skill nor the inclination to spend thousands learning it).
I am finding that SharePoint is a little like a fork-lift bus truck car. It trying to be everything to everybody which usually ends up useless to all.
My question is does SharePoint Foundation work out of the box as a document management system or is it like an engine you put your own code upon.
The more I read through Google the more conflicting information I come across without any clear definitions.
What I want to end up with is a document management system that has authentication and a simple page / screen / whatever to link / admin to those documents.
As per usual Ill probably end up having to write my own but it would be nice to not keep re-inventing the wheel.
SharePoint definitely has a learning curve, there's no getting away from that. However you don't need to set up all the "bells and whistles" if you just want a basic DMS.
To answer your question, you don't need your own code to get a SharePoint site up and running. You will however need to spend quite a lot of time figuring out what configuration you need for your needs.
We're using SharePoint 2010 Foundation as a simple document repository in a couple of web apps and it works fine. No Wikis, no versioning, no custom pages. That stuff is availablem but we don't need it so we don't enable it. The nice thing about it is the security which hooks into AD so authentication can be set up easily and it is robust. Our DMS solutions are accessed via the internet by users, and internally by apps, and SharePoint can handle that fine by setting up alternate access mapping so that you can get to documents via internal and external URLs.
I won't lie; I've spend a lot of long days cursing SharePoint, but it's still a far better solution than what I could have come up with myself.
In case your wondering, we're using 2010 rather than 2013 because we had been using WSS 3.0 up until this year and you can't upgrade directly from WSS to 2013. But since we only need the basics, doing a second upgrade to 2013 wasn't worth the effort.
The truth is Sharepoint can be used as a sort of document management system (ish). But in truth it is far to over complicated and has gone rather off at a tangent from the demos I was original given when it first came about in the beginning. Alfresco an Nuxio are probably much better. (but even they have their issues). You simple have to look at all three and make your own decisions as now I know this is not a simple question. I personally went for Alfresco but for very exact reasons, even it has some issues but generally speaking it is the best(ish) out of the three. (Nuxio would of been best except for its 'purchase your admin interface' model.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
Hello I am interested in hearing objective responses in what should a beginner dedicate his or her time into:
ASP.NET, Visual Studio, C#, IIS, Team Foundation Server?
or
Python, Django, PyCharm?
These are just some criteria that I am interested in:
Easy to start out with.
Good documentation.
Highly-scalable.
Big Career opportunities.
Feel free to post your personal opinion on this matter or if you've had an experience with both ASP.NET and Django.
C# or java will pay the bills, python will be way more fun
This is a big question, I'll give only several points according to your interests:
In general, Django is easier to start than ASP.NET. Simplicity is one of rules in Python's Zen. Also Django explicitly shows you all control flow, so you can understand internals of framework very quickly. On the other hand, guys from Microsoft did their best to make web development similar to development of desktop applications. ASP tries to erase borders between server and client sides. I can't say with confidence, if it is good or bad idea, but I know that at some moment you'll have to understand difference between them anyway.
Both. Python community provides tons of documentation, and Django official documentation is always up-to-date. Django is popular in community, but ASP is corporationally promoted and supported. In general Django has more tutorials and ASP has more books about it. Books are more complete, but they are really big.
None of them. They both are primarily view technologies, and for scalability you'll need some heavy server side technologies. Nevertheless, if it's all about supporting thousands of concurrent users (and not some computationally intensive applications), both technologies work well. See this for some good examples in Django and this to take a point of ASP.NET scalability possibilities.
It heavily depends on your region and current situation. I can only say that ASP.NET is used in large companies, and Django is for small companies and freelance. For more information see your region vacancies.
I've been an ASP.NET programmer for a few years, and I think it's pretty easy to get into. The downsides here are that Microsoft products (TFS in particular) are expensive. Of course, my experiences have been directly related to that -- I've never tried Python in any regard -- so I can only offer my perspectives as an ASP.NET programmer.
There are a lot of people who would (accurately) tell you that the page lifecycle in ASP.NET is a gigantic pain in the ass, and that's true too. I personally don't use the server-side part of ASP.NET very often anymore because juggling the lifecycle just leads to messy code and built-in obtuseness. That said, it's really easy to integrate ASP.NET WebServices with jQuery and JavaScript.
My experiences with IIS have been pretty good as well, although I can't speak to its problems in more complex environments.
I do love TFS, though. In particular, if you're working as a part of a team and need to get user bug reports or enhancement requests, there's a lot of great built-in integration. However, configuring and maintaining TFS is a full-time job in and of itself if you're a part of a development team in a corporation.
All that said, I'm not sure it makes much sense to limit yourself to two core languages and then ask about career opportunities. These are going to vary from place to place. I don't see many Python positions where I live, and there were a lot of MS/C#/ASP.NET positions available when I was looking for a job.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
What tools/plugins do you use for checking in/out code?
how to communicate changes made to the code, how to make request for new functionality?
How has your team solved this?
See this previously asked question:
Multiple Programmers in Software Development. How do we work on the same code and ensure it is always updated?
There are a lot of good answers to this question, and they apply to small and large teams.
For source control, we use Svn with the Tortoise SVN client. We've used other source control systems in the past, and have found this one to be the best for our needs.
I would recommend you use SVN for source code management, if you are using visual studio you can get numerous plugins for IDE integration.
http://subversion.tigris.org/
http://www.visualsvn.com/ = SVN Server & VS Integration
Try to set up Continuous Integration for this you can use Cruise Control .Net or Hudson. Cruise control can be set up to do a build on each check in and the history is shown on a web page.
http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET
http://hudson-ci.org/
For requesting new functionality you could use a ticketsing system, wiki or Google Wave any one of these should enable you to keep track of requirements.
Hope this helps.
You can pretty much use any tools for small development teams you wish. There are lots of options.
Personally, my team uses SVN for code, and Trac for tracking - mostly because it's very cost effective for a small team. However, there's nothing C#/.NET specific about that setup.
If your team has MSDN subscriptions, you might want to consider Team Foundation Server. It has many features for integration with Visual Studio that are (arguably) superior to some of the alternatives.
You should use one of the many available source control repositories. Trust me, you won't know what you did without it :)
There are plugins for Visual Studio for working on a team, but personally I've never used them.
I've done team projects with both Subversion and Mercurial... just make sure to check in the solution and project files, and all related code.
Everyone will also need to be running the same version of Visual Studio.
For requesting new functionality, you might want to consider an external solution like Trac or Bitbucket or some other free system that includes issue tracking.
Well, how small? I work on a team of 5, and we communicate well with IM, or just dropping by and talking. That being said, the team is pretty responsible, so you can trust everyone to carry their weight. I would suggest you use subversion for source control if your company doesn't have anything.
We're a team of 3 C# developers.
For version control, we use AnkhSVN, an open source SVN client that integrates with Visual Studio.
For project management, issue tracking and feature requests, we use Redmine.
What tools/plugins do you use for checking in/out code?
Mercurial -- once you've used a DVCS, it's hard to imagine going back. Everybody uses their own favorite editor; usually, that's Emacs, which comes with support for many VCSs, including Mercurial.
how to communicate changes made to the code, how to make request for new functionality?
Changes are tracked in version control. You can look at the changesets as you pull them, or browse the web interface. Or just ask people at lunch what you're working on -- no developer is an island. New functionality is tracked, along with bugs, in the bug tracker.
How has your team solved this?
We're a small team using C#, but nothing here is specific to C# or small teams. I've used very similar systems with other size teams, and other languages/platforms.
We have a team of three and currently use Source Gear Vault for source control and Fogbugz for bug/feature tracking. Source Gear integrates into Visual Studio nicely and works over http which makes it easy to access from anywhere. Check ins and outs can be done directly in Visual Studio or a standalone client.
Source Gear also integrates with Fogbugz.
Used to use Visual Source safe and would never go back...
I work on a small team of 1-5, depending on the project.
What tools/plugins do you use for checking in/out code?
We use Git with Github for new projects, and TFS for some legacy work.
I see a lot of people recommending a certain provider without telling you why. I have used TFS, SourceGear, SVN (a little), and Git. I prefer Git because it stays out of my way. Git is command-line based. My typical source control workflow is a handful of simple commands, but learning those commands took a few tries.
how to communicate changes made to the code, how to make request for new functionality?
We use Pivotal Tracker for story writing and organizing priority.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
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?
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.
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.
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
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.
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.
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
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.
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
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I've been asked to create a website in SharePoint within the next couple of weeks or so and I'm entirely new to SharePoint.
Does anyone have any good examples/tutorials on how to do some basic operations such as creating custom forms, using basic CRUD operations, with a custom SQL Server database?
Also is there any way to code in ASP.NET (with code-behind pages), but use the SharePoint look and feel and authentication stuff?
SharePoint is not quite like what you're used to. My two main gripes are:
Deployment:
If your requirements are for a single production site (no staging/test/development sites) your best bet is probably to go with the SharePoint Designer and hack stuff together directly on the production site (yes I know it's dirty).
If you need those other environments you should produce deployment packages for everything (no xcopy deployment). Deployment packages are a PITA IMHO and are very easy to get wrong.
IIS
SharePoint basically takes over your IIS installation and introduces a new set of rules for where things are located etc. One gotcha is "ghosted" files. i.e. whenever a file is changed using the SharePoint Designer the file is backed up to a database and from now on IIS will only use the file in the database, so there is no use changing the one in the file system.
To sum up:
In my humble opinion if you are making a site where uptime isn't that important and you can afford to make mistakes in production, SharePoint can be good enough with the designer. If you are making a CMS site where you need the code to go through multiple environments before it reaches production, (with continuous integration), I can think of no other .NET based CMS that does a worse job. You will spend a LOT of time grokking how to get the deployment routines to work for you, and you will spend a LOT of time with issues relating to "ghosted" files
Good luck.
Technet has a bunch of virtual labs for SharePoint products.
The first thing to remember is that SharePoint is just an ASP.NET application. It has a ton of framework, and various things like security, etc, built-in. But from your perspective, you can just build a Web Control, and basically deploy it right to the server. Check out this post from MikeG, and especially look at SmartPart on CodePlex. That will help you get up and running without too much fuss. Since you are using standard web controls, you have access to CodeBehind. The one caveat is that your assemblies have to either be deployed to the GAC or granted Full Trust in the config files - something SmartPart will help you through.
SharePoint Designer is just FrontPage, rebranded. It very much could help you with some basic stuff, and might be worth looking into if this is an occasional thing. But if you are going to be doing any kind of long term work, I highly recommend taking a class on developing SharePoint applications. It can be quite a beast, and you may find yourself in quicksand faster than you think.
A very good start, to get you rolling in the right direction, is Microsoft site for SharePoint Development, at http://www.mssharepointdeveloper.com/. This will get you a long way towards understanding what you need to prioritize in your learning efforts.
To answer your second question, in short: yes, you can create pages that use code-behind, just like regular ASP.net. The longer answer is a bit beyond the scope here since it requires a better understanding of how SharePoint works with master pages, customized pages, and the layouts or application pages concepts in SharePoint.
Get Ted Pattison's book, Inside Microsoft Windows SharePoint Services 3.0. It's an absolute must if you are going to do any sharepoint develelopment.
We build our Sharepoint apps through a combination of SmartParts (as mentioned above) for simpler apps and _Layout applications for more complex stuff.
A _layout application lets you build a traditional ASP.NET web app and pretty much plop it right into Sharepoint. Here's a link to get you started.
http://msdn.microsoft.com/en-us/library/bb418732.aspx
Perhaps the fastest and easiest way to get started is by using the SharePoint Designer application that is part of one of the Microsoft Office versions. If you just need to create simple Forms, Microsoft InfoPath will go along way. I would then go ahead and buy a book on SharePoint development since its a big landscape. Channel 9 is a good resource for SharePoint bits as well.
I just started using SharePoint about 3 months ago. I learned all of the basics and got a good foundation for SharePoint using the Pilothouse Consulting SharePoint training DVD (http://www.pilothouseconsulting.com/dvd/sharepoint-training-dvd-development-benefits.html). It was very helpful and all of the tutorials, demos, and code examples for development are in C#.
The fastest way to get up to speed is to use smartpart.
It allows you to build ASP.NET usercontrols and deploy them in sharepoint.
http://www.codeplex.com/smartpart/Release/ProjectReleases.aspx?ReleaseId=10697
Sharepoint designer/CAML:
- Nice for starter apps.
Visual studio tools:
painfull
documented very bad
bug ridden
Very heavy deploy cycle..
IMO Microsoft has to come up with something better.
Until then, smartpart is great.