forge

SharePoint Office Integration

This is an old link [page removed], but one I seem to need from time-to-time.  It’s the MS document that explains (compares) what various versions of office can do with SharePoint.
forge

Getting leadership and management in your organization

There’s a difference in the skills sets for leadership and those for management. Learn the difference and how to incorporate the best of both worlds in your organization.

Early in my career, I thought that leadership was what the people at the very top of the organization did and that management was what all of the people in the middle of the organizational structure did. However, while this positional view is correct in many organizations, it does not need to be that way. Management and leadership are both necessary components of a successful organization of any size.

The differences between leadership and management

The role of a leader in any organization is to set the direction. A leader is the first to envision a future position for the organization and first to evangelize that position. Leadership is about finding a point on the horizon and saying, loudly and firmly, we should go there.

Management focuses on keeping the ship upright and moving in the direction that it’s headed. It’s not about picking a point on the horizon and going there. Management is about plotting progress towards the spot on the horizon.

More…

forge

Why does SharePoint create a new version of a document in a document library when you edit properties?

I’m working on an article for IntranetJournal about the way that SharePoint actually uses meta data (fields) in a document library and as I was crawling through the details it occurred to me one of the reasons why SharePoint has to create a new version when you update the properties of the file.  Many people have wondered why this causes a new version to be created — including myself.  However, I believe that I’ve stumbled across the answer — Because it *IS* a new version in some cases.

In the case of Office documents, the document itself gets updated to reflect the new properties.  You can see for yourself by checking File-Properties-File Properties on the file.

It’s also storing the previous properties off if you needed to restore them, even if there is no way to see them.  (It’s not just recreating them from the properties in the document because it has the behavior of restoring the properties even for non-Office documents.)

forge

Display a Random Item from a SharePoint List: Beta Testing

One of the annoying things for me has been trying to get a web part that would show a random item from a list.  I’ve wanted to feature projects, employees, questions/answer sets, etc. on the home page to keep it new without having to finely control what data was exposed on the home page.

I’ve completed the coding for a Random Item web part which takes a random item from a list and displays it using the formatting that the user/developer provides.  It has the ability to support previous and next buttons as well as the ability to cache the results for a period of time so that the entire page isn’t in a constant state of flux.

I’ve still got to finish the documentation and create a few example DWPs, but I’m looking for folks who are interested in beta testing the web part and letting me know what additional features it needs.

forge

Find a Person

I was speaking with Todd Bleeker who is still very excited about the possibilities of the Content Editor web part. Then I went to a client who was having a typical problem — making it easy to find people in their organization.

The net result was that I created a web part that leverages the Content Editor web part to use the REST format of the search page to find people. I’ve made the dwp available here for those who might be able to use it.  I’m starting to see why Todd likes this approach.  It’s good for some simple things that you want to get done without a lot of coding.

forge

Anatomy of a Software Development Role: Project Manager

The Project Management role is the first role in the software development process that isn’t on the main line. The project manager isn’t a person doing “real work.” The project management role is one that is designed to help ensure that the software development process works as it is intended. The project management role works closely with the development management role in order to facilitate, encourage and prioritize the process.

The project management role is perhaps the most clearly defined role within the software development process due to the development of project management as a profession. (If you’ve not been following the series, you might want to read Cracking the Code: Breaking Down the Software Development Roles.)

While the software industry is nascent, the project management industry is enjoying the advancement of a powerful organization in the Project Management Institute . They have assembled a guide to the body of knowledge for the project management profession that is often referred to as the PMBOK Guide. This organization has developed a widely recognized certification, Project Management Professional (PMP), which has both practical experience requirements as well as traditional testing requirements.

http://www.developer.com/java/ent/article.php/3526491

forge

Open source software on the desktop — Is it right for you?

Thinking of switching to open source? Don’t underestimate what the true acquisition cost will be.

There are few topics more heated than the discussion surrounding Open Source vs. Microsoft. This discussion typically focuses on the difference between Linux and Windows as an operating system. This is, however, only one dimension of the problem. You have to consider both the operating system and the office software that most users use. You must add to that everything else you have to support that isn’t included in the basic office applications.

Comparable and compatible

One of the arguments towards placing open source software on the desktop is that it’s “comparable and compatible.” Comparable means it’s largely similar; it performs the same functions. Compatible is saying simply that it works with the recognized leader in the area (Microsoft). For instance, Linux is comparable to Windows in that it’s an operating system. It’s compatible because it can read and write files to a Windows-based server (through Samba and some configuration.)  Similarly, OpenOffice is comparable to Microsoft Office in that it offers the same basic functions. It’s compatible in that it can read and write Microsoft Office files.

The rub comes in when you evaluate how comparable and compatible the solution is. From a comparable standpoint, does the solution offer the same user experience in terms of ease of use? How much will change from what’s already familiar? How about help? Despite the challenges with the help in commercial systems, it’s substantially better than the help files that exist for open source software.

http://www.techrepublic.com/article/open-source-software-on-the-desktop-is-it-right-for-you/

forge

Link Tracking Beta

I finished a new web part kit over the weekend.  It is called Link Tracking, and allows you to see how frequently that users are actually using the links that are in the portal.  Most customers I’ve talked to are completely unaware of when the users are using the links on the portal, as a result it’s hard to fine-tune the number and type of links on the site.

Link tracking fixes this by recording each link as it’s clicked so you can go back and review the number of people who have used the link.

I’m looking for three beta participants with the commercial release being later this month.  If selected for the beta, I’ll give you a license to the final code when it comes out.

Rob

forge

How to use SharePoint as a Mail Merge Source

I was looking for how to perform a mail merge using a SharePoint list as a source and found Wayne’s post asking the same question.  There wasn’t help there, however, amongst the comment was on from Yatin Purohit indicating that you could link to the SharePoint list as a table in Access and then use the Access table as a source for Word to use in a mail merge.  It’s a pretty useful technique — too bad there’s not an OLEDB driver for SharePoint lists. I suppose this will work for now.
forge

A few other dumb things that you can do with .NET — but shouldn’t.

In my previous post I highlighted a single bad idea that I had seen in some code.  I want to offer up a few other things that I saw and why you shouldn’t do them…

  • Tightly nested Try/Catch blocks — basically, put a try block, do one statement, add a try block in that block and repeat…  See the code…

            static public void LogRequestResult(string url, string status)

            {

                  try

                  {

                        FileStream objFileStream = null;

                        StreamWriter objStreamWriter = null;

 

                        try

                        {

                              objFileStream = File.Open(cnstMyFilePath, FileMode.Append, FileAccess.Write, FileShare.Read);

                              try

                              {

                                    objStreamWriter = new StreamWriter(objFileStream);

                                    lock(objStreamWriter)

                                    {

                                          objStreamWriter.Write(Status + url);

                                    }

                              }

                              finally

                              {

                                    if (objStreamWriter != null) objStreamWriter.Close();

                              }

                        }

                        finally

                        {

                              if (objFileStream != null) objFileStream.Close();

                        }

                  }

                  catch

                  {

                  }

            }

 


Ignoring the fact that we’re not actually doing any error checking… Isn’t the following much more straightforward easier to read, and less prone to errors?  The moral to the story, try/catch blocks are cool but don’t abuse them.


            static public void LogRequestResult(string url, string status)

            {

                  FileStream objFileStream = null;

                  StreamWriter objStreamWriter = null;

                  try

                  {

                        objFileStream = File.Open(cnstMyFilePath, FileMode.Append, FileAccess.Write, FileShare.Read);

                        objStreamWriter = new StreamWriter(objFileStream);

                        lock(objStreamWriter)

                        {

                              objStreamWriter.Write(Status + url);

                        }

                  }

                  finally

                  {

                        if (objStreamWriter != null) objFileStream.Close();

                        if (objFileStream != null) objFileStream.Close();

                  }

            }


  • Magic Numbers (or in this case letters), just stop — I can’t tell you how many times I’m looking through code and I come across an if statement that looks like “if myvariable == “A““  Why in the world would your variable is “A“.  What does “A“ mean?  In .NET we have enumerations and constants.  Why can’t we just them?  I have no idea what “A“ means — and neither will the author 2 months from now.  If you put quotes around the same text twice it should be a constant.  If you use a number for an if statement or as part of an assignment that isn’t a 0 or a 1, you should have a constant.  (Zero is a number to compare against, 1 is a number to fix a number of offset issues.)
  • Comments — Hey, there’s a concept.  And I don’t mean one that says, // the following line adds one to the number.  Thanks.  I can read code.  How about writing comments that tell me why you’re adding one to the number?  Oh, yea, those XML comment things that .NET supports.  Those are useful.  You can use them too, they’re not expensive.

Do you have any pet peves about code that should go on this list?