Archive for 'Blog'


Programmatically and Selectively Revoke SharePoint Item-Level Permissions Using PowerShell

June 20, 2010 1 comment

I’ve been using PowerShell more and more lately, and liking it more and more as I use it.

Here’s another one you might find useful – programmatically and selectively revoking item-level permissions. For this scenario, the SharePoint list already has inheritance broken. Now we have to loop through the versions of SharePoint list items, and check a people/group column called Participant. A participant would have had read/contribute permissions before, but after the list item has been verified, we don’t want the participants changing any of the values anymore.

We will start with the typical loading of the DLL, and creating a handle to our SharePoint site:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#Load the SharePoint DLL
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") | Out-Null
$SiteURL = $server;
 
#make sure we're using the system account token
$TmpSite = New-Object Microsoft.SharePoint.SPSite($SiteURL);
$SysToken = $TmpSite.SystemAccount.UserToken;
 
$SPSite = New-Object Microsoft.SharePoint.SPSite($SiteURL,$SysToken);
 
#if we want to get additional info about SPSite, code is below
#$SPSite.AllWebs | Format-Table Url, ID, Name, AllUsers
 
$SPWeb = $SPSite.OpenWeb();
$SPWeb.AllowUnsafeUpdates = $true;
 
$MyList = $SPWeb.Lists["My Sample List"];

Now let’s get only verified items from our list:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#note your ending herestring must NOT have a space before it.
#also, this "Project Audited" field is really a boolean, 
#but using the Integer works
$CAML = @"
<Where>
     <Eq>
        <FieldRef Name='Project_x0020_Verified' />
        <Value Type='Integer'>1</Value>
     </Eq>
  </Where>
"@
 
$SPQuery = New-Object Microsoft.SharePoint.SPQuery;
$SPQuery.Query = $CAML;
 
$itemCollection = $null;
$itemCollection = $MyList.GetItems($SPQuery);
$listItem = $null;

Now the bulk of the work is as follows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
if($ItemCollection.Count -gt 0)
{
   foreach($listItem in $itemCollection)
   {
 
        $ID = [string]$listItem["ID"]
        $ProjectVerified = [string]$listItem["Project Verified"]
 
        #now I want to display the roles before I revoke, 
        #so I can verify the changes visually
        #assume in here you already created a new file for 
        #this process, and gave it a handle $logfile
        "Roles BEFORE revoke : "  | Out-File -FilePath $logfile -Append
        foreach ($role in $roles)
        {
            $msg =  "Role : ID " + $role.Member.ID.ToString() + " : Name  " +  $role.Member.Name
            $msg | Out-File -FilePath $logfile -Append
        }
 
        #get the item versions (SPListItemVersionCollection)
        $itemVersionCollection = $listItem.Versions;
 
        #need to check current permissions
        #we'll store all Participants in an array first and evaluate later
        $Participants = @();
 
        foreach($currentVersion in $itemVersionCollection)
        {
            $SPFieldUserValue = New-Object Microsoft.SharePoint.SPFieldUserValue($SPWeb, [string]$currentVersion["Participant"]);
            $Participants += $SPFieldUserValue.User.LoginName
        }
 
        #now, we just want to get the unique people from the version, 
        #so we don't unnecessarily revoke
        $Participants = $Participants | SELECT -Unique
 
        #let's now revoke permissions for every participant
        #that has ever been involved in any version of this item
        foreach($Participant in $Participants)
        {
            $user = $SPWeb.AllUsers[$Participant];
            $listItem.RoleAssignments.Remove([Microsoft.SharePoint.SPUser]$user);
        }
 
        #confirm
        "Roles AFTER revoke : "  | Out-File -FilePath $logfile -Append
        foreach ($role in $roles)
        {
            $msg =  "Role : ID " + $role.Member.ID.ToString() + " : Name  " +  $role.Member.Name
            $msg | Out-File -FilePath $logfile -Append
        }
 
    } 
}

And very very important, do not forget to dispose the SPWeb and SPSite objects you created. It’s VERY bad to not dispose it, as it will definitely slow down your site, one way or another. Believe me, you don’t want to learn this the hard way.

1
2
3
$SPWeb.Dispose();
$SPSite.Dispose();
$TmpSite.Dispose();

Done. Happy times.

- Donabel (@sqlbelle)



Leverage 960.gs for Page Layout

April 18, 2010 Comments Off

The 960 grid system is a great tool for streamlining your web development effort by providing a convention around the most commonly used dimensions, based on a width of 960 pixels. You can learn more about this system at 960.gs, or you can experiment with the HTML LAYOUT Generator.

What I wanted to address in this article was some basic CSS/HTML techniques that integrate the core concepts of the 960 grid system to easily allow you to achieve beautifully laid out web pages.

Here at Black Ninja, we do a fair bit of site design and so we wanted to build a consistent framework that we use across all our sites. It had to be flexible, easy to understand and powerful for customization.

Let’s get into some specific examples so that we can see the types of options and flexibility we have when trying to layout our pages and the content within them.

To setup our scenario, what we really wanted with this layout was a centered fixed width design, that when resized, had the effect of expanding the area around our content, but did not alter the content itself. We wanted to avoid fluidity that was hard to predict. We also don’t feel that pages need to necessarily scale for every resolution. A 27” monitor has a lot of real estate for web page viewing, but do users actually use the full screen width when viewing their pages?

For example, compare sites like chapters.indigo.ca and amazon.ca. Both have the same function, but their layout is entirely different. Amazon has content areas within the center that expand and shrink as you resize your browser window. The Chapters website content is centered and does not alter in anyway. The only thing that changes is the white space around the main content. The Chapters effect is what I’m going to demonstrate here.

Screen shot 2010-04-18 at 10.36.44 AM

Screen shot 2010-04-17 at 9.28.54 AM

Let’s start by creating a new page, we’ll call it index.html and we’ll insert a header, main content area and a footer:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>960.gs Demo</title>
</head>
<body>
 
<div id="header">
	this is my header
</div>
 
<div id="main">
  this is my main content area
</div>
 
<div id="footer">
  this is my footer
</div>
 
</body>
</html>

If we save the page and open it in a browser, we should see:

Screen shot 2010-04-18 at 10.50.02 AM

Starting with the header, we’re going to want to center this, and have control over the style of both the centered content and the wrapper content. In order to achieve this, I’m going to add a div inside the header div, and i’m going to apply some styles to both:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>960.gs Demo</title>
<style>
body {
	margin: 0;
	text-align: left;
	padding: 0;
	font: normal 14px/16px "Helvetica Neue", Helvetica, Arial, sans-serif;
	background: #FFF;
	color: #333;
}
 
#header {
	background-color:#FFF;
}
 
#header-inner {
	margin: 0 auto;
	width: 940px;
	height: 30px;
	padding: 10px 20px;
	background-color:#333;
	color:#FFF;
}
</style>
</head>
<body>
 
<div id="header">
	<div id="header-inner">
	    this is my header content
	</div>
</div>
 
<div id="main">
  this is my main content area
</div>
 
<div id="footer">
  this is my footer
</div>
 
</body>
</html>

So the two key pieces to the above code is the #header and #header-inner styles. The margin:0 auto gives us the effect of centering our div. We set our width of 940px, the height we want to size our header to, and some extra padding so everything isn’t packed so close together. The background colors for both #header and #header-inner are entirely up to you. If you’d like the two to blend, set the colors to be the same. If you want a contrast effect, make them different. And here is the effect:

Second Draft

Let’s make a minor change to the #header class and set the background color to be the same as our #header-inner:

#header {
	background-color:#333;
}

Save and reload:

Third Draft

So now as the window is resized, the content within the center remains at 940px and won’t change at all.

Let’s apply this same concept to the content area of our site. First, let’s throw some dummy content in there:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>960.gs Demo</title>
<style>
body {
	margin: 0;
	text-align: left;
	padding: 0;
	font: normal 14px/16px "Helvetica Neue", Helvetica, Arial, sans-serif;
	background: #FFF;
	color: #333;
}
#header {
	background-color:#333;
}
 
#header-inner {
	margin: 0 auto;
	width: 940px;
	height: 30px;
	padding: 10px 20px;
	background-color:#333;
	color:#FFF;
}
</style>
</head>
<body>
 
<div id="header">
	<div id="header-inner">
	    this is my header content
	</div>
</div>
 
<div id="main">
  <div id="main-inner">
		<p class="lead">Let's talk about our site a little bit.</p>
		<div class="leftcol">
			<h3>More data</h3>
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>					
		</div>
		<div class="rightcol">
			<h3>Some data</h3>
			<p><a href="http://tenderapp.com">Duis aute irure dolor</a> in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
		</div>
</div>
 
<div id="footer">
  this is my footer
</div>
 
</body>
</html>

We should see:

Fourth Draft

Once the dummy content is in there, we can properly style our main content divs. The left and right col divs both get a width of 470px, had we wanted to make this content area 3 divs instead of two, we could have set them to 300px each.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>960.gs Demo</title>
<style>
body {
	margin: 0;
	text-align: left;
	padding: 0;
	font: normal 14px/16px "Helvetica Neue", Helvetica, Arial, sans-serif;
	background: #FFF;
	color: #333;
}
#header {
	background-color:#333;
}
 
#header-inner {
	margin: 0 auto;
	width: 940px;
	height: 30px;
	padding: 10px 20px;
	background-color:#333;
	color:#FFF;
}
 
#headline {
	background: #FFF;
}
 
#main {
	background-color: #FFF;
}
 
#main-inner {
	margin: 0 auto;
	width: 940px;
	height: 450px;
	background-color: #FFF;
}
 
div.leftcol {
	width: 470px;
	float: left;
}
 
div.rightcol {
	width: 470px;
	float: right;
}
 
</style>
</head>
<body>
 
<div id="header">
	<div id="header-inner">
	    this is my header content
	</div>
</div>
 
<div id="main">
  <div id="main-inner">
		<p class="lead">Let's talk about our site a little bit.</p>
		<div class="leftcol">
			<h3>More data</h3>
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>					
		</div>
		<div class="rightcol">
			<h3>Some data</h3>
			<p><a href="http://tenderapp.com">Duis aute irure dolor</a> in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
		</div>
	</div>
</div>
 
<div id="footer">
  	this is my footer
</div>
 
</body>
</html>

Fifth Draft

And finally, our footer, we need to style it properly so it takes it’s correct position on the page:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>960.gs Demo</title>
<style>
body {
	margin: 0;
	text-align: left;
	padding: 0;
	font: normal 14px/16px "Helvetica Neue", Helvetica, Arial, sans-serif;
	background: #FFF;
	color: #333;
}
#header {
	background-color: #333;
}
 
#header-inner {
	margin: 0 auto;
	width: 940px;
	height: 30px;
	padding: 10px 20px;
	background-color: #333;
	color:#FFF;
}
 
#headline {
	background: #FFF;
}
 
#main {
	background-color: #FFF;
}
 
#main-inner {
	margin: 0 auto;
	width: 940px;
	height: 450px;
	background-color: #FFF;
}
 
div.leftcol {
	width: 470px;
	float: left;
}
 
div.rightcol {
	width: 470px;
	float: right;
}
 
#footer {
  	border-top: 1px solid #dbdbdb;
}
 
#footer-inner {
	font-size: 12px;
	margin: 0 auto;
	width: 940px;
	height: 100px;
}
 
</style>
</head>
<body>
 
<div id="header">
	<div id="header-inner">
	    this is my header content
	</div>
</div>
 
<div id="main">
  <div id="main-inner">
		<p class="lead">Let's talk about our site a little bit.</p>
		<div class="leftcol">
			<h3>More data</h3>
			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>					
		</div>
		<div class="rightcol">
			<h3>Some data</h3>
			<p><a href="http://tenderapp.com">Duis aute irure dolor</a> in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
		</div>
	</div>
</div>
 
<div id="footer">
  	<div id="footer-inner">
		this is my footer
	</div>
</div>
 
</body>
</html>

And our final result is:
Final Draft

And that’s it. I hope that clearly demonstrates how easy it is to layout your pages. Please post a comment if you have any modifications to suggest or questions about the above code.



SharePoint 2010 Books – Which Ones to Buy?

April 7, 2010 Comments Off

As many of you are already aware, SharePoint 2010 is on it’s way to becoming an official release, May 12, to be exact. There are a slew of books that are in the works and we found ourselves wondering which ones we should pre-order for our already overflowing bookshelves.

We order books on an almost weekly basis here at Black Ninja so it’s about that time where we need to prepare for the 2010 releases. Here is a list of the ones we found to be most interesting and that we’ve already pre-ordered:

  • “Professional SharePoint 2010 Development” – Tom RozzoApril 23 Release
    • We do a lot of custom SharePoint development here at Black Ninja, so this book was a must have. We’ve attended plenty of Tom’s sessions at various conferences in the past, and he definitely knows his stuff. The fact that’s it set to release pretty soon was also a factor; we’d like to get our hands on a 2010 development book as soon as possible.
  • “Professional SharePoint 2010 Administration” – Todd KlindtJune 17 Release
    • This book is equally important as the development book in our eyes because administration is such a crucial component for any successful SharePoint deployment. We’re a fan of Todd’s work and already own Real World SharePoint 2007 on which he was a contributing author.
  • “Beginning SharePoint 2010 Development” – Steve FoxMay 20 Release
    • This was another close release date and having an extra development book around the office wasn’t going to hurt anything. We’ve also used Steve Fox’s articles on more than one occasion, and look forward to reading this book.
  • “Professional Workflow 4 in Sharepoint 2010: Real World Business Workflow Solutions” – Paul J. GalvinAugust 3 Release
    • Workflows are another huge part of what we do here at Black Ninja. Our aim was to get at least 1 development book, 1 SharePoint Designer book and 1 Workflow book. This was our pick for workflow book.
  • “SharePoint Designer 2010 Unleashed” – Kathy HughesSeptember 27 Release
    • We spend a fair bit of time tinkering with SharePoint Designer as well. We’ve even taught 5-day classes that cover this product from beginning to end. We are very eager to sit down and play around with some of the real world examples this book promises to cover.
  • “SharePoint Developer’s Guide: SharePoint Foundation 2010″ – Todd C. BleekerJune 1 Release
    • Todd C. Bleeker wrote this book, enough said.

As you can see, we tried to go with books of authors we knew and were fairly active in the community. We’ve also tried to balance the administration/designer/development roles because we often have to put on all three hats. If anyone else has any books suggestions to go along with this, please contribute to the comments below!



We’ve Added an Aztec Warrior to Our Team!

March 23, 2010 Comments Off

We’re very excited to welcome Miguel A. Tena as the newest member of the Black Ninja team! As you’ll read more about in his bio, Miguel is a huge fan of SharePoint and ASP.NET development and is already gearing up to become super active in the SharePoint and .NET communities. He’s been working with SharePoint since it’s early days and we’ve already begun leveraging his knowledge, enthusiasm and passion for further development of our training services. Stay tuned for more updates from Miguel in the next couple of weeks.

So, please join us in welcoming Miguel, the Aztec Warrior, to our team!



SQL Ninja to Present Idera Webcast in March!

February 28, 2010 Comments Off

Our very own @sqlbelle will be presenting her very first Idera webcast this month and it’s going to be a good one!

SQL Developer’s Guide to Solving Database Administration Headaches

Many SQL Server developers are finding themselves having to deal with an increasing number of administrative tasks traditionally assigned to DBAs. In this session of Secrets of SQL Server, SQL Server developers will learn how to recognize and address common administrative issues to ensure successful implementation of their development projects.

Tune into this live webcast to learn SQL Server secrets from the pros.

Register now!

Date: Wednesday, March 10, 2010
Time: 3:00 p.m. – 4:00 p.m. CST
Hosted by: Idera | MSSQLTips
Speaker: Donabel Santos, DBA/Developer/Trainer at Black Ninja Software and Instructor at the British Columbia Institute of Technology



Black Ninja Video: SQL Server Powershell – Part 2

December 3, 2009 Comments Off

Overview: This video is part 2 of a 2 part video series that demonstrates how to use PowerShell with SQL Server, using the SSMS built-in mini shell, and using .NET and SMO.

SQL Powershell Part Two from Matthew Carriere on Vimeo.

Created for the Edmonton PASS user group by Donabel Santos at Black Ninja Software.

Author: @SQLBelle
Recorded On: 17″ MacBook Pro
Software: Telestream’s ScreenFlow



Black Ninja Video: SQL Server Powershell – Part 1

November 25, 2009 1 comment

Overview: This video is part 1 of a 2 part video series that goes through powershell basics with demonstrations on how to use powershell with SQL Server.

SQL Powershell Part One from Matthew Carriere on Vimeo.

Author: @SQLBelle
Recorded On: 17″ MacBook Pro
Software: Telestream’s ScreenFlow



Last Class Before Christmas! SQL Server 2005 Transact-SQL Programming

November 12, 2009 Comments Off

Training is just one of the many things we do here at Black Ninja. We really do enjoy taking the time out to prepare for and deliver a successful training course. Because of the feedback and interest level, we’re offering one more class before the Christmas break: SQL Server 2005 Transact-SQL Programming.

Who Is This Class For?

This is a fairly introductory course, so anyone who has some relational database background who wants to learn to script and create programmable objects in sql server using transact-sql would be an ideal candidate. Familiarity with programming/scripting languages is good, but not necessary.

Who Will Be Teaching It?

Our SQL Ninja @sqlbelle who has just come back from an awesome week at PASS Summit 2009 and is even more pumped up about SQL Server (if that is even possible) will be running this class.

Donabel runs a very successful blog centered around SQL Server, is a Microsoft Certified Training and has a ton of additional certifications in her tool belt. She loves to teach and is currently running SQL Server Admin and SQL Server Development courses at BCIT.

What Should I Bring?

Nothing! Just yourself, we’ll provide computer access and writing pads.

How Much Does It Cost?

The full 3 day course is offered at $1400 CDN. The class runs from 9:30am to 5pm.

Your Registration Includes

  • We’ll be sending each student home with a Black Ninja TSHIRT and their own personal, take home copy of THE definite source for SQL Server Transact-SQL Programming
  • Plenty of fresh coffee and snacks during the week
  • A comfortable training environment and really friendly staff. We keep the training sizes small for a reason; we want you to get the most out of training!

If you’d like to know more, please contact us and we’d be happy to answer any questions you may have.



We Will be Heading Down To A Few Conferences This Year

October 18, 2009 Comments Off

A few of the Black Ninja’s will be headed down to various conferences this year to build up a bit more training and product knowledge in our core competency areas. Professional development is something we believe very strongly in and conferences are an important component to that. We’re looking to socialize and meet some of the key folks in our online community. Anyone interested in speaking with us, look for the people dressed in Black Ninja t-shirts!

SharePoint Conferences 2009 – October 19-22

We do a fair bit of SharePoint consulting and custom development, so this conference is really important to us. It’ll be an opportunity to get familiar with the next version of SharePoint and to meet and greet with the various MVP’s and SharePoint consultants in the community. Part of any future infrastructure and development planning around the SharePoint platform will require an intimate knowledge of what’s coming, so that we can better prepare for these projects. That’s our ultimate goal.

SQL Pass 2009 – November 2 – 5

As with any good web application development, database design and development is big piece of that puzzle. Our db ninja, @sqlbelle, will be headed down to SQL Pass this year to learn everything she can about the latest and greatest in the database world. This event is the single biggest gathering of sql professionals and she’s bound to pick up a few gems here and there. If you’re wondering where you can find her while down there, just look for the section with all the books.

Pragmatic Studio Mastering Ruby and Rails – December 1 – 4

Ruby on Rails is one of our favourite languages and frameworks to work with and we’re really excited to be able to send our rails ninja down to this conference. Having already attended RailsConf this year, he’s very excited to be able to take his rails development to the next level. Our own internal product development is done entirely on rails, so having a guru on board makes it that much more easier!



Are Vendor Certifications Still Valuable?

October 9, 2009 Comments Off

Certifications seemed to be the “it” thing in the late 90s early 2000. Companies would seek after anyone who had certification for a specific product because the perception at the time was that they were difficult to obtain and anyone with one must be an expert in that area.

Now, however, is a totally different story. Certifications are, for the most part, easier to prepare for and pass. Perceptions about their relevance and trust factor have also changed, which begs the question “are these certifications still valuable”?

Before providing my personal take on it, I’d like to go over some of the general pros and cons of getting certified.

Cons

It costs money.

Most certifications will cost $100 USD upwards. In this economy it is hard to justify spending $500-$800 to take 5 exams that will earn you a single vendor certification. In addition to this, prep guides, classes, books, or practice tests also cost an arm and a leg.

If a university or technical institute’s course costs less, and earns you credits towards a diploma, degree or even post-graduate degree, then going for the academic course could be a more lucrative option.

It takes time to prepare.

Unless you are planning to depend solely on braindumps or actual questions posted in various blogs or forums, it can take a lot of time to prepare for the vendor certifications.

You will most likely need to:

  • Get you development environment setup
  • Read a few tutorial books to get your concepts all straightened out.
  • Read a few certification prep books to make sure you cover all the topics that are relevant to the exam you are taking. Note that general tutorial books are different from certification prep books. Certification prep books focus on topics and terminologies that are most likely going to be in the exam, but it may not necessarily point out all the useful, efficient, practical applications of the technology or product you are studying.
  • Practice – at nights, or weekends, or holidays.
  • Lather, rinse, repeat.

Expectations of you go up.

Once you get your hard earned certification, and you put that in your resume, expectations of you will go up. If you’re an MCAD, MCSD, MCDBA, MCTS, MCITP, people could come up to you and ask you very specific questions related to your certification. And if you cannot answer, you may get the infamous sigh of disappointment.

Or it might discredit you.

Some employers don’t trust vendor certifications anymore. It is very easy to cheat, and get certified in a technology or product you haven’t even worked with. Case in point, we had an experience with an MXXX (fill in your favorite M acronym); this person was supposed to be a certified web applications developer, but had difficultly with very basic programming concepts, and when put in the position of actually producing some real code, was not able to. It is unfortunate, but there are employers who question your knowledge or competence more if you have the certification. Cannot blame them, but it is unfair to those individuals who genuinely prepared for and passed their exams.

Pros

Extra few letters after your name.

Admit it, it’s flattering to have an extra few letters after your name even if they don’t happen to be MBA, MSc or PhD.

Some companies require it. You can still see job postings that require or want someone who has the vendor certification. So as far as marketability of your resume goes, it does help you in some job postings.

If you don’t have experience in the technology, it gets your foot in the door.

If you are getting started on a specific product or technology, preparing for a certification gets you that good introduction and gets you comfortable working with the product.

If you have experience with the technology, it gives you a good refresher, and updates you on new features.

Technologies change. Products get upgraded. That’s already a fact of (techie) life. Preparing for a certification gets you refreshed on some things you may have forgotten, and updates you on what has changed, improved, or removed from the last few versions of the product/technology. It can also broaden your perspective on what this product/technology can do – there might be a feature or tool that lets you do your routine task better and/or faster. Knowing these tools/alternatives exist can help you make better informed decisions at a later time.

You have to be accountable.

I will put this in the pro side, because proving you rightfully earned your certification can be an exhilarating thing.

Getting a certification does not just mean getting the extra few letters after your name. Part of your clients’ trust will stem from that vendor certification you advertise. Getting your certification should not be the end goal. It should be the start of an ongoing journey to learn more about that product, or technology, and anything that is related to it that helps you do your job better, smarter.

A Personal Perspective

Before I started working with computers and databases, I came from a totally – at that time almost computer-less background. Feeling inadequate, I wanted to play catch up with the professionals in my field, and that’s when I started taking some certifications. Though it was a tiring endeavor reading the cert books night by night, I came to appreciate how useful it was for me to go through the exercises and tutorials. It also made me realize how much I enjoyed working with the product.

For me the value of taking the certifications is not the exam nor the actual certification you get, but the exercise of preparing for the exam. The certification I earned is just the frosting on the cake, but nowhere near as valuable as what I’ve learned preparing for it. It is also very interesting to read all the practice exams – especially as these give you some “real world” problems to solve without going through the “real world” project. As a consultant or as a trainer, I can still remember some of these questions from the certification prep guides, and these sometimes still help me answer some of the questions that either clients or students ask me.

In addition to this, I still get a certain high when I go in, and take my exam, and pass my exam. If I were into sports, this would my adrenaline rush after bungee jumping.

Cases for Certification

Brad McGehee wrote an excellent article Professional Certification for DBAs specifically for DBA Certification.

Warren Wyrostek also wrote an interesting article: Now What? A Case for Certifications, where he compares traditional education and these vendor certifications, and gives a a good case for a vendor-neutral body to oversee vendor certifications, rate those certifications, and accredit those who offer the training leading toward certification.

Conclusion

There is still value in getting certified. It may not be a “must have”, but it definitely is a “nice to have”.

Getting certified in a product/technology, does not make you an expert in that product/technology. It gives you permission to say you read up on it, used it, and retained some of the details to get through an exam.

Is it a disadvantageous thing? No, it shouldn’t be. Is it a good thing? Yes it should be, if you genuinely prepared for it, learned from it, and to some extent made you better.

Post your comments and let us know what you think!




We Use WooThemes

Do you like the look and feel of this blog? You'll definitely want to checkout WooThemes and their awesome lineup of designs available for WordPress. Contact us for more information or to get started using WordPress for your company site, we'd love to help.

WooThemes - Premium WordPress Themes Club

We are experts

Black Ninja Software was created with the idea that great software comes from great people. We are passionate about the technologies we use and continually refine our skills to better master what we do. This is what makes us Ninjas. We architect, design, and implement solutions using Microsoft Office SharePoint Server, SQL Server, and ASP.NET

We create software

If you have a business process that needs refining or automation, or you have a current project in distress that needs rescuing, we can help. Our wealth of experience will create your great idea from scratch if that's what you need ninjas to do for you. In addition to the work we do for our clients, we also have several of our own projects that are currently being developed. We use the same tools and the same skills on our projects as we do on yours.

We train

We can train you to become ninjas like us. SharePoint is ginormous. We can break down training into areas that cover your business needs either on-site or over the web. We understand that adopting new technology can often be a challenge and we can help ease the process through our professional SharePoint training services.