kategorie Argief: SharePoint

Ontwikkelaars: Hoe leer ek SharePoint?

UPDATE: 04/25/08: Is vang op 'n blog en gevind dat 'n skakel na hierdie artikel: http://www.networkworld.com/news/2008/032608-microsoft-sharepoint.html?page=1. I make note of it because in addition to asking, "how do I learn sharepoint?", some people ask "why should I learn sharepoint?". That article partly answers the later.

In die laaste paar maande, 'n dosyn of meer mense van regoor die planeet is my e-pos en vra die algemene vraag, "How do I learn SharePoint?"

Ek is skaars gesaghebbende, maar ek het 'n paar sukses (en probeer om beter te kry al die tyd) so I thought I’d document my personal road map. Others may find it valuable.

Voordat ek dit doen, Ek wil net om te sien dat dit vir my duidelik, gebaseer op hierdie persoonlike e-pos en die nog groter aantal MSDN / SharePoint Universiteit poste van dieselfde aard, that there is huge developer interest in getting up to speed with WSS/MOSS. I wonder what it’s going to be like a year from now … easier to find good SharePoint talent? The same? Are folks committing themselves to the platform at a rate sufficient to keep up with demand for good resources? How could you even figure something like that out short of a WAG?

Paul’s Roadmap

I was full time employed by the good folk at Conchango while I followed this road map. This means that from a learning perspective, I was actively engaged in projects as I followed the steps I outline below.

Some Basic Terms

For people entering this world, there are two key acronyms:

  • WSS: Windows SharePoint Services
  • MOSS: Microsoft Office SharePoint Server

WSS is "free" in that it’s bundled with windows server 2003 (or at least can be downloaded from MS). I put quotes around free because you need a box, a valid O/S license and probably SQL (though there’s a "free" kind of SQL as well).

MOSS is built on top of WSS and extends it. There is no MOSS without WSS. MOSS is not free.

Perhaps not day one, but soon after you’ve got some basic familiarity with the platform, it’s important to learn the differences. Byvoorbeeld, a powerful web part, the Content Query Web Part, is a MOSS feature and not available WSS. People often make the incorrect assumption that CQWP is available in WSS and then end up scrambling for a stop-gap measure when they realize their error.

Hit the Books

I started working with WSS/MOSS on about 01/02/2007. I had a little prior experience with SPS 2003 but very little. To get myself started, I purchased the two books listed here (http://paulgalvin.spaces.live.com/lists/cns!1CC1EDB3DAA9B8AA!203/).

I started with the big blue administration book. Naturally, it covers administration. Op dieselfde tyd, it provides a survey of all MOSS features (and WSS features as well).

Vir my, it’s not so important to remember all the various details (until it’s time to get certified) but it’s good to know the boundaries. (I follow this same approach in 1st person shooters I play on the xbox or PC — I enter a room and tend to make a counter-clockwise loop until I get back where I started. I just feel better knowing the shape of the box I’m in.)

After reading the big blue book, I would read the entire Inside WSS book. It dives deeply into issues that developers care most about.

Create a Virtual Environment

In order to do any development or properly use the environment, you need a full blown windows server operating system with SharePoint Designer, Visual Studio 2005 (2008 works, but some useful tools have yet to be ported as of the writing of this article), Path 2007 and some other stuff. There are many good blog entries describing this process. I’d have a look at these two:

Daarbenewens, Andrew Connell shared his experiences with VMWare here:

Use your favorite search engine to see what other people do. It’s a useful learning exercise in and of itself.

Spend a few minutes angrily denouncing the fact that you need a server environment on which to do development. Maar … don’t bother blogging about it or posting it to MSDN forums. It’s already been done 🙂. In plaas daarvan, embrace it and move on. You’ll be better off for it.

Get Certified

I believe that the MS SharePoint certification path, which consists four exams, is exhaustive. I suggest that you follow their online preparation guide and do your best to understand each of the areas of the test.

Ek do not suggest that you take the exam just to pass it. Ek do not suggest that you use one of the "brain dump" style 3rd party "tools" for passing MS tests. If you can take the test, pass it based on a combination of your own directed study and hands-on experience, you’ll be a stronger developer and job candidate for it.

There are four tests in two "tracks":

Developer:

Admin:

I recommend that developers study for all of these exams. You’ll be strong for them, though I suppose if you skipped the admin exams, you would get by.

I found the WSS version to be considerably more challenging than the corresponding MOSS versions, much to my surprise. I was in a class recently and several others made the same point.

While I was studying for the 70-542 eksamen (MOSS development) I tracked my study resources. These may be helpful to you as well: http://paulgalvin.spaces.live.com/Blog/cns!1CC1EDB3DAA9B8AA!192.entry

Plug Yourself Into the Community

The SharePoint community is vibrant, strong and growing larger all the time.

You want to look at the following to start:

  • Blogs
  • Forums
  • Codeplex
  • Twitter

Blogs

If you don’t understand RSS, stop everything and learn it. It will take 10 minutes to learn it, maybe another 10 minutes to find a web based RSS reader (I like google’s reader, www.google.com / reader).

Start by adding this blog to your RSS reader 🙂

Volgende, add www.sharepointblogs.com to your reader. They aggregate many blogs into a single feed.

Over time, you’ll find blogs that are not aggregated that way. Just add them individually.

I subscribe to a few dozen blogs which I’ve accumulate over the last year. As jy wil, I can export my list and email it.

Uiteindelik, you may want to start your own blog. I personally think that a series of blog entries describing a "newbie’s" progress learning WSS/MOSS would be an interesting series. I wish I had done that myself.

Forums

I actively participate in two forum groups: MSDN and SharePoint University.

Forums are excellent places to learn. People ask questions ranging from the very simple ("How do I create a site column") to the panicked ("My server is down!") to more hypothetical design questions.

Once you get a flavor of the environment, venture out and start replying. Short of directly interacting with a customer, niks is beter as dit vir die hande op ervaring.

Codeplex

Gaan na www.codeplex.com.

Check dit uit en soek vir SharePoint projekte.

Skryf in vir die daaglikse opsomming CodePlex voer in jou feed reader.

Voeg 'n nuwe SharePoint projekte aan jou feed reader.

Uiteindelik, na die lees van die forums en die gesig staar af jou eie WSS / MOSS duiwels, oorweeg om saam jou eie CodePlex projek.

Twitter

As ek skryf hierdie blog entry, 'n baie SharePoint folk het begin met Twitter.

It’s hard to characterize Twitter. You’ll just have to check it out yourself.

Slot

That wraps up my roadmap and makes me current. I just started using Twitter two weeks ago.

WSS/MOSS is a very cool platform and the community is growing all the time. Use community resources to improve your skills and enjoy the journey!

</einde>

Skryf in op my blog.

Technorati Tags: ,

SharePoint Verskaf nie Kalender Roll-ups; Moontlike oplossings

UPDATE: An anonymous person in the comments posts this link: http://www.atidan.com/atidan-collaboration-kit.php

Forum gebruikers dikwels 'n vraag soos hierdie:

"I would like to have a calendar at the site level that is populated by events from subsite calendars. Ideally, gebruikers in subsites sal skep kalender gebeure, and will have the option of marking them as ‘public.’ Events marked as public will dynamically appear in the shared site calendar. Thus the shared site calendar is a roll-up of all public events from all subsite calendars."

Is WSS 3.0 of MOSS 2007, dit is nie moontlik om direk instel van 'n "Roll-up" calendar. Calendars exist on their own, onafhanklik van enige ander kalender.

'N roll-kalender te skep, Volg een van hierdie paaie:

  1. Use a Content Query Web Part. This is the easiest solution for MOSS users (WSS nie CQWP). CQWP, ongelukkig, does not provide a calendar view of data out of the box. It does provide enormous rendering flexibility (kyk hier vir 'n voorbeeld) maar by verstek, shows its results in simple list format. In many cases, CQWP waarskynlik 'n goeie keuse.
  2. A more programming-oriented solution would be to use event receivers. Implement event receivers on the subsite calendars that keep their public events in sync with the master calendar. As a given subsite calendar is modified, reach out to the master calendar and update it as needed. This option is available in both WSS 3.0 en Moss.

There are probably other clever solutions to this problem. If you have one or know of one, los 'n kommentaar of email my en Ek sal hierdie pos werk.

</einde>

Technorati Tags: ,

Skryf in op my blog.

End User Vinnige Wenk: Sorteer Views in 'n dokument Biblioteek, Lys, ens..

Ons kan, en die skep van baie sienings in SharePoint lyste (dokument biblioteke, persoonlike lyste, ens.). SharePoint always lists available views in alphabetical order. We cannot change this using out of the box functionality. If it can be done via customization (en ek is nie seker dat dit kan), dit is baie tegniese vir jou tipiese eindgebruiker.

As jy die volgorde waarin SharePoint n lys van beskikbare menings te beheer, plaas jy eenvoudig 'n nommer of 'n brief aan die oog naam, soos in:

1 – Deur materiaal soort
2 – Alle dokumente
3 – Vervaldatum

-of-

'N – Deur materiaal soort
B – Alle dokumente
C – Vervaldatum

I have also created views whose purpose is strictly to feed a KPI. I have been following this naming convention:

Z_KPI_[beskrywing]

Wat veroorsaak dat my "KPI" menings te verskyn aan die onderkant van die lys.

</einde>

Skryf in op my blog.

Technorati Tags: ,

Bar is nog redelik hoog MOSS uit te brei

Vandag, I was working with a client and describing how to modify the content query web part and display additional bits of information from a content type.

"First, jy die instel van die CQWP te verbind tot sy data bronne, dan moet jy dit uitvoer na jou werkplek, verander <CommonViewFields>, laai, remove the original and now it’s ‘primed’ to display those other columns. Volgende, oop te stel SharePoint ontwerper, navigate to the site collection root and locate ItemStyle.xsl. Copy one of the templates as a useful starting point. Go back and modify the CQWP to make use of this new template. Ten slotte, verander die sjabloon om jou nuwe velde te lewer! (Moenie vergeet om dit na te gaan terug in sodat ander gebruikers kan sien die resultate)."

Dit is alles vir my duidelik (en die meeste van ons SharePoint ontwikkelaar tipes) wat gaan aan en hoe dit is baie mooi, werklik, that the data retrieval aspects of the CQWP are so well-separate from the data presentation aspects. Maar, dit is nie so maklik om te verduidelik, is dit?

<einde />

Technorati Tags: ,

Yes/No (boks) filter in Inhoud Query Web Deel

To filter for a query for the Yes/No check box entitled "PG Milestone", instel CQWP soos hierdie:

beeld

Dit is nog een van daardie voor die hand liggend-keer-jy-weet-dit maar moeilik om te vind-'n-antwoord-vrae te: Hoe om te filter op 'n Ja / Nee boks met behulp van die inhoud navraag web deel.

Die eerste resultaat I find using the search term "filter yes/no content query web part" is plat uit verkeerd, so ek het gedink ek wil dit daar sit en kyk of dit kan die verkeerde resultaat vervang in 'n tipiese resultate.

Dit is baie maklik: True values = "1" and false values do not equal "1" (mooi retro, eintlik).

In die bogenoemde voorbeeld, I created site column of type "Yes/No (boks)" named "PG Milestone". I added it to a doc library, foto 'n paar dokumente, stel die waarde vir 'n paar en dit getoets.

<einde />

MOSS Vertel my My kolom naam gereserveer of in gebruik … Maar dit is nie

UPDATE 12/04/07: Sien this Microsoft KB (http://support.microsoft.com/kb/923589) verwante inligting.

Eintlik, dit blyk dat dit is, maar tricksy MOSS had to make it difficult.

My customer does some development work on his MOSS site over the weekend. It’s a bit of a jumble as to what he actually did, maar die eindresultaat is dit:

  • He tries to add a site column called "Quantity" and MOSS replies: "The column name that you entered is already in use or reserved. Choose another name."
  • He attempts to add it to another environment and that works. Daarom, "Quantity" is not a reserved name.
  • He tries to find an existing site column named "Quantity" in that site collection. He cannot find it.

I did some research, and even some coding, waxed philosophical and finally found that a column named Quantity did, in werklikheid, exist. It was in the "_Hidden" group. Hence, we could not find it via the SharePoint user interface.

How did it get there? I do not know, but I have a theory (or as my wife would call it, "blah blah blah"). Iewers langs die lyn, 1 fabulous forty template was added and probably activated at a site in the site collection. It was then deactivated (or the site removed). The site column, egter, remained but in the "_Hidden" group. If someone knows better, please let me know via e-pos or post in the comments.

SharePoint was telling the truth. It’s hardly worth pointing out that that message is not as helpful as it could be. It would be nice to see that message fork into two different messages in the future: 1) Say that the column name is reserved or it is not. 2) If it’s not reserved, show the site, or at least the group, where the column name is already used.

</einde>

“Kan nie die lys skedule kolom eiendom van die SharePoint lys” — beskrywing / werk-arounds

Hierdie week, ons uiteindelik 'n probleem wat deur 'n afgeleë gebruiker aangemeld is gereproduseer: Toe sy probeer om die inhoud van 'n lys uit te voer om te presteer, dinge sal lyk om te begin werk, maar dan Excel sal pop-up 'n fout: "Cannot get the list schema column property from the SharePoint list". She was running office 2003, windows XP and connecting to MOSS.

Ek het die Inter en bietjie spekulasie, maar niks gesien 100% definitive. Hence, hierdie pos.

Die probleem: Uitvoer van 'n oog om te presteer met 'n datum (datum = die datatipe van die kolom).

Wat vir ons gewerk het: Convert the date to a "single line of text". Toe, skakel dit terug na 'n datum.

That solved it. It was nice to see that the conversion worked, eintlik. It was quite nervous that converting things this way would fail, but it did not.

Hierdie fout het gegooi 'n groot skaduwee oor die datum datatipe in die kliënt se gedagtes, so ons gaan soek na 'n definitiewe antwoord van Microsoft en hopelik sal ek pos en werk hier in die volgende kort periode van tyd saam met hul amptelike antwoord en hotfix inligting.

Ander verwysings:

http://www.kevincornwell.com/blog/index.php/cannot-get-the-list-schema-column-property-from-the-sharepoint-list/

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2383611&SiteID=1

<einde>

Skryf in op my blog.

Technorati Tags: ,

Kan jy nie Klits SharePoint se bereik

Gedurende die laaste twee dae, I have participated in two meetings during which we presented the results of a SharePoint project. The CIO and his team joined the first meeting. That’s standard and not especially notable. The IT department is obviously involved in an enterprise rollout of any technology project. The second meeting expanded to include a V.P. van bemarking, Verskeie direkteure verteenwoordig HR, Logistiek, Vervaardiging, Kapitaalprojekte, Gehalte, Aankoop, Korporatiewe ontwikkeling en ander departemente (Sommige van hulle is selfs nie direk betrokke in die huidige fase). That’s a mighty wide audience.

In my vorige lewe, I primarily worked on ERP and CRM projects. They both have a fairly wide solution domain but not as wide as SharePoint. To be fully realized, SharePoint projects legitimately and necessarily reach into every nook and cranny of an organization. How many other enterprise solutions have that kind of reach? Not many.

SharePoint clearly represents an enormous opportunity for those of us fortunate enough to be in this space. It provides a great technical opportunity (wat een of ander manier op sy kop gedraai hier under "Technologies You Must Master"). But even better, SharePoint exposes us to an extensive and wide range of business processes through these engagements. How many CRM specialists work with the manufacturing side of the company? How many ERP consultants work with human resources on talent acquisition? SharePoint exceeds them both.

Soos enigiets, dit is nie volmaak, maar dit is 'n goeie verdoem plek om te wees.

Vir die liefde van [Vul in jou mees geliefde persoon / hoër], don’t change the ‘Title’ site kolom.

Op die SharePoint forums, someone occasionally asks about "changing the label of Title" or about "removing title from lists".

Bottom line: Doen dit nie!

Ongelukkig, die gebruikerskoppelvlak kan 'n een-rigting verandering van die kolom etiket soos:

beeld

Title is a column associated with the "Item" die tipe inhoud. Baie, baie, baie CT se gebruik van hierdie kolom en as jy dit hier verander, it ripples out everywhere. There’s a good chance that you didn’t intend for that to happen. You were probably thinking to yourself, "I have a custom lookup list and ‘Title’ maak net nie sin as 'n kolom naam, so I’m going to change it to ‘Status Code’ and add a description column." But if you follow through on that thought and rename ‘Title’ to ‘Status Code’, elke lys se titel (insluitend dokument biblioteke) changes to "Status Code" en jy sal waarskynlik het nie van plan om dit om te gebeur.

Die werklike probleem is dat hierdie is 'n een-rigting verandering. The UI "knows" that "title" is a reserved word. So, if you try and change "Status Code" back to "Title", Dit sal verhoed dat jy en het jy nou geverf jouself in 'n hoek using paint that never dries 🙂

So wat gebeur as jy dit reeds verander? I haven’t seen the answer we all want, which is a simple and easy method to change the label back to ‘Title’. Right now, the best advice is to change it to something like "Doc/Item Title". That’s a generic enough label that may not be too jarring for your users.

Ek het 'n paar ander idees wat op my te-doen lys van dinge om navorsing:

  • Kontak Microsoft.
  • Iets te doen met die voorwerp model, Miskien in samewerking met 'n funksie.
  • Uit te vind die databasis skedule en die hand te werk SQL. (Jy moet kontak met Microsoft voor om dit te doen al; sal dit waarskynlik tot niet u ondersteuning kontrak).

As iemand weet hoe om dit op te los, post a comment.

Werk laatmiddag, 11/15: Ek het gevind dat hierdie skakel wat beskryf 'n metode vir die skep van 'n tipe van die lys wat nie 'n titel kolom: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

SPD persoonlike workflow aksies — string manipulasie uitbreidings

Sowat 'n week gelede, I started up a codeplex project that provides a simple and reasonably generic method for adding custom action functions to SharePoit Designer workflow. It’s described here: http://www.codeplex.com/spdwfextensions. Beyond simply providing a framework, it also aims to provide a set of useful functions that will make SPD more useful/flexible/powerful.

Hier is die huidige beplande funksies vir weergawe 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

As iemand het 'n belangstelling in hierdie projek, los 'n kommentaar of begin / voeg by 'n bespreking hier: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Hier is die huidige stel van funksies wat reeds gekodeer (maar nie ten volle getoets as van 11/08/07):

Funksie Description (indien nie dieselfde as Netto funksie)
Num-inskrywings() Retour volgens die aantal inskrywings" in a string as per a specified delimiter.

Byvoorbeeld: Num-entries in a string "a,b,c" with delimiter "," = 3.

Entry() Returns the nth token in a string as per a specified delimiter.
Lengte String.Length
Vervang() String.Replace()
Bevat() String.Contains()
Returns the word "true" or the word "false".
Substring(begin) String.Substring(begin)
Substring(begin,einde) String.Substring(begin,einde)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returns the word "true" or the word "false".
EndsWith() String.EndsWith()
Returns the word "true" or the word "false".