Monday, June 15, 2009

Congratulations Pittsburgh Penguins!!



Congratulations to the Pittsburgh Penguins for beating the odds and winning the Stanley Cup!

Wednesday, June 3, 2009

A Look at CAML for SharePoint Development

Overview


For a quick summary of how CAML improved performance on a list items query, read this article from author and SharePoint development expert Sahil Malik.
The Collaborative Application Markup Language (CAML) is an XML-based language that is primarily used to perform data manipulation. In a number of cases, using CAML helps improve your program's performance.

CAML Tutorial


If you are unfamiliar with CAML syntax, Karine Bosch wrote a fantastic tutorial on writing CAML queries for SharePoint Magazine. She covers all the basics and the "gotchas" of CAML syntax in an easy-to-follow manner.

Helpful Tools


When I am writing code where I need to use CAML, I am partial to two FREE tools.
Screenshot of Stramit CAML viewer. Click on the image for a larger view.


The Stramit CAML Viewer is an "all-in-one" tool that not only lets you view and test CAML queries, but it also displays the GUIDs for lists and views. You can download this tool from CodePlex.

Screenshot of U2U Caml Query Builder. Click on the image for a larger view.


The U2U CAML Query Builder is a slick, time-saving tool that will automatically build the CAML query for you based on the information entered by you. It also has a feature where you can copy the built CAML query to the clipboard. You can download this tool from the U2U site.

CAML in Action: A Simple Query



Note: This code will only work on a server where SharePoint is installed. For example, if you are going to add a view to a list that exists on http://bogus/bogussite, you need to have this code on the server that houses http://bogus.


In this example, I have a list on my site called Doctor Who Episodes. I would like to get the list of episodes that starred Jon Pertwee as the Doctor, and I would like to order that list by the year. My application, written for demonstration purposes only (no "fancy" formatting, application usability design, or full performance evaluation was considered), will display the episode list in a text box the moment the application runs (Form_Load).
Click on the image for a larger view.


After creating a new C# Windows application called SimpleCAMLQuery, I added reference to the Microsoft.SharePoint library in my project and referenced the library in my code.

using Microsoft.SharePoint;


I added the following in the Form_Load event:
I defined three variables to hold the URL for the site, the list name, and the view name.

String siteName = "http://bogus/bogussite";
String listName = "Doctor Who Episodes";
String viewName = "All Items";


I then used SPSite, SPWeb, and SPList to open my list on my site. I also used SPQuery to open my view, since this class has the method/function to use for the CAML query.

SPSite site = new SPSite(siteName);
SPWeb web = site.OpenWeb();
SPList list = web.Lists[listName];
SPQuery query = new SPQuery(list.Views[viewName]);


I then build my CAML query using the StringBuilder class. You can also put the CAML query directly into a string object if you prefer. If the field has spaces or special characters in the name (as it does in my example - the field in my list is called "The Doctor"), you need to reference the hexadecimal values in the name.


System.Text.StringBuilder oSb = new System.Text.StringBuilder();
oSb.Append(" <Where>");
oSb.Append(" <Eq>");
oSb.Append(" <FieldRef Name=\"The_x0020_Doctor\" />");
oSb.Append(" <Value Type=\"Text\>Jon Pertwee</Value>");
oSb.Append(" </Eq>");
oSb.Append(" </Where>");
oSb.Append(" <OrderBy>");
oSb.Append(" <FieldRef Name=\"Year\" Ascending=\"True\" />");
oSb.Append(" </OrderBy>");

Note: The order in which the Where and the OrderBy tag blocks appear in the CAML doesn't matter. Some people place the OrderBy tag blocks before the Where tag blocks. I usually place the OrderBy tag blocks after the Where tag blocks because I'm used to writing SQL, and in SQL syntax, the Order clause comes after the Where clause.

I then called the Query method/function of the SPQuery object to set up the CAML query

query.Query = oSb.ToString();


Finally, I put the results in a SPListItemCollection object and looped through the object.

SPListItemCollection results = list.GetItems(query);
foreach (SPListItem i in results)
{
  txtResults.Text += i["LinkTitle"].ToString();
  txtResults.Text += Environment.NewLine;
  txtResults.Text += i["Synopsis"].ToString();
  txtResults.Text += Environment.NewLine;
  txtResults.Text += i["Year"].ToString();
  txtResults.Text += "----------------------------------------";
  txtResults.Text += Environment.NewLine;
  txtResults.Text += Environment.NewLine;
}



Here is the full code:
Click on the image for a larger view.


Additional examples of CAML in Action


If you would like to see additional examples of using CAML, view these previous posts on my blog:


If you have any questions, comments, or additional examples, please feel free to post a comment.

Wednesday, May 27, 2009

The Scribd Store: Another way to expand your portfolio...AND your wallet

As you may have read on my blog, I am a fan of Scribd, and I am a regular user. Scribd has released an exciting feature. Scribd now has its own storefront that will allow you to sell your written works.

Not only is the store a way to earn money on technical and research documents that you have written, but it is a way to build your professional portfolio.

  • Published works are always great projects to have on a professional portfolio.

  • The analytics tools that come with the store displays sales and viewing figures that you can use to demonstrate your product's marketability to potential employers.

  • Having your own store demonstrates business skills - a secondary skill - because you have to manage the sales and marketing of your documents.



For more information, visit http://www.scribd.com/store/about.

Monday, May 18, 2009

SharePoint 2007: System.OutOfMemoryException in SiteData During Search Crawl

Lately at work we've been getting these errors on our SharePoint site. From what I was able to Google, it looks like others have this problem as well.

After doing some research, I found a post from Ranjan Banerji, who also experienced this problem in his environment. This post goes into deep detail as to how they worked around this problem. You may want to read through the post. I've found it to be very helpful.

In addition to the information mentioned in the post, we found that we had users who had abnormally long names for folders and files. As a result, it would make a path that was entirely too long for SharePoint to handle. From what we were able to tell in our logs, we noticed that the crawler would "choke" on these entries, which would then trigger the OutOfMemoryException.

If you have encountered this problem due to a reason not mentioned by me or Ranjan, please feel free to post a comment.

Friday, May 8, 2009

SharePoint Development Tutorial: Programmatically Create View on a List

While it is easy to create a view for a list in SharePoint, you may find a scenario where you need an easier way to create a view on a list. For example, I had a situation where I had to create over 30 views for one list. Creating the views using SharePoint can be time-consuming, and it could increase the possibility of user error because of the manual process. Using C#, the Microsoft.SharePoint library, and CAML, one can create a view for a list on SharePoint.

This illustration will demonstrate the simplest example of using C# code to add a view to a list (as a console application). You may want to make modifications for your needs, or use it as a foundation for a larger-scale application.


Note: This code will only work on a server where SharePoint is installed. For example, if you are going to add a view to a list that exists on http://bogus/bogussite, you need to have this code on the server that houses http://bogus.



The Scenario


In this illustration, there is a list on a SharePoint site called "Doctor Who Episodes". This list needs a new view called "JNT Era", which will display Doctor Who episodes made during the JNT era (1980-1989). This list has four fields:

  • Title

  • The Doctor

  • Synopsis

  • Year



See the example list

After starting a new project, you will need to add a reference to the Microsoft.SharePoint library in your code, and you will need to indicate that you will be using the library in your code.
See the example snippet

The next step is to define the SharePoint classes that you will need to perform the action. The four classes that you will need are:

  • SPSite - Collection of sites

  • SPWeb - The SharePoint web site

  • SPList - A List on a SharePoint web site

  • SPViewCollection - Collections of views on a list



In the code, you will need to access the website. You will define an instance of the SPSite class to get the site, then you will need to define an instance of the SPWeb class to have a reference to the actual site.

SPSite oSite = new SPSite("http://bogus/bogussite");
SPWeb oWeb = oSite.OpenWeb();


Alternative to SPList oList = oWeb.Lists["List Name"]

You can also access the list by the GUID. Use the following logic if you want to access the list by the GUID rather than the name:

Guid gui = new Guid("The List GUID");
SPList oList = oWeb.Lists[gui];


Then, you will need to access the list that will get the new view, and you will need to access the list's collection of views.

SPList oList = oWeb.Lists["Doctor Who Episodes"];
SPViewCollection oViewCollection = oList.Views;


Finally, you will need to define the new view name.

string strViewName = "JNT Era";

See the example snippet

We are ready to define the fields that will be displayed in this new view. In this example, the view will display all the fields. You will need to define an instance of the System.Collections.Specialized.StringCollection class to hold the names of the fields that will be displayed in the view.

System.Collections.Specialized.StringCollection viewFields =
new System.Collections.Specialized.StringCollection();

To add the fields, use the Add() function of the class. You do not have to use the special hexadecimal characters to represent spaces and special characters for the field names. You can use the literal field name.
See the example snippet


Helpful Links:

CAML Syntax

Stramit Caml Viewer

We have to define the criteria for the view using CAML. In our illustration, we want to display the Doctor Who episodes from 1980 until 1989, and we want to display them in ascending order. Your scenario may be different, so your CAML will be different. If you are unsure of CAML syntax, a link to a site that has documentation on the CAML syntax has been provided for you on this post. If you want to make sure that your query will work before you begin coding, you can use the Stramit Caml Viewer to test your CAML query. A link to the tool has also been provided for you on this post. In this illustration, I am using the StringBuilder class to hold the CAML query. Then, I am converting it to a String.
See the example snippet

Finally, we are ready to add the view. The Add() function of the SPViewCollection class adds a view to the list. The Add function
takes six parameters:

  • View Name - a string

  • Collection of View Fields - string collection

  • CAML query - a string

  • Row Count - an integer

  • Is this paged? - a boolean

  • Is this going to be the default view? - a boolean


You also have to call the Update() function of the SPWeb class to make sure the changes "take".

oViewCollection.Add(strViewName, viewFields, query, 5000, true, false);
oWeb.Update();

See the example snippet

After completing, compiling and running the program, the list now has a new view!
See the results

If you would like a copy of the skeleton code, you can download the RTF file of the skeleton code here.

Please post your questions or comments, and I will answer your questions to the best of my ability.

Thursday, April 30, 2009

Why Twitter is a Helpful Tool if You Are or Are Going to Be in IT

If you don't know what Twitter is, here is a link to the Wikipedia article on the service.

If you haven't been living in a cave for the past six months, you've probably noticed that Twitter (http://www.twitter.com) has become the newest Internet application star. Twitter is a way for people to send updates via the web, a mobile phone, or an application on a PC or Mac. I use Twitter, and I find it to be a very useful tool in my line of work. By streamlining how one uses twitter, it can be a useful tool for all IT professionals and aspiring IT professionals. Here's how:


  • Twitter is a way to expand your technical knowledge.

    I follow a number of tweeple (people who use Twitter) who make informative posts about what's on in IT. Not only do I get instant technology news, but I also get posts containing: links to technology how-tos and tips; links to training and webinars; and career tips. It saves me a lot of time from sifting through websites and search engines to find information.

  • Twitter is a way to get assistance with your IT issue.

    Most forums are good tools to use to post questions. Twitter is another tool that you can use to post questions. Based on my experience, I've posted questions to the Twitter community, and more often than not, I got an answer to my question relatively quickly.

    If you've already asked a question in a forum, and your question is not getting a response, you can use Twitter to post a link to the question. If the regular readers of the forum can't answer your questions, perhaps someone in the Twitter community can.

  • Twitter is a way to get publicity for your professional work.

    If you're looking to expand your audience, Twitter is a good tool to use. I've recently started to use Twitter to publish links to my tutorial posts on this blog, and I've noticed a slight increase in my traffic. Other things that I've seen other tweeple post: links to custom applications and SharePoint web parts that they have written; links to web sites that they have designed; and podcasts and videos in which they were involved.

  • Twitter is a way to expand your professional social network, as well as assist with your job search.

    There are a number of IT professionals who use Twitter, and a large number of those tweeple post IT-related content 95% of the time. You can build your network by re-tweeting informative posts, as well as answer questions that other tweeple have posted.

    I've also noticed that a number of small business owners and IT job recruiters use Twitter to post job openings. You can use Twitter to keep abreast of new opportunities.



Do you use Twitter? Do you like Twitter? Can you see a use for Twitter for your profession? Please feel free to post any comments or questions that you have.

P.S. If you use Twitter, and if you are interested, you can follow me on Twitter

Wednesday, April 22, 2009

SharePoint Development Tutorial: Programmatically Deleting All Items from a List

Microsoft Reference Documentation: Microsoft.SharePoint namespace

Sometimes you need a quick way to delete all items from a SharePoint list. You can manually delete each item from the list without writing code, but this can be time-consuming, especially if you have a high quantity of items on the list.


Click the link to download the source code for this post

Licensing and Warranty

You may use the code as you wish - it may be used in commercial or other applications, and it may be redistributed and modified. The code is provided "as-is". No claim of suitability, guarantee, or any warranty whatsoever is provided. By downloading the code, you agree to defend, indemnify, and hold harmless the Author and the Publisher from and against any claims, suits, losses, damages, liabilities, costs, and expenses (including reasonable legal or attorneys' fees) resulting from or relating to any use of the code by you.




You can write code to programmatically remote items from a SharePoint list using the classes in the Microsoft.SharePoint library (namespace). There are two ways that you can delete all the items from the SharePoint list programmatically:

  • Using the DeleteItemById() function of the SPList class

  • Recommended for performance:Building CAML and using the ProcessBatchData() function of the SPSite class



I will demonstrate both approaches. The skill sets required for these approaches are:

  • C# knowledge

  • A general knowledge of the classes in the Microsoft.SharePoint library/namespace

  • A general knowledge of CAML (for approach #2)



Note: This code will only work on a machine on which SharePoint is installed.


Approach #1: Using the DeleteItemById() function of the SPList class


The function DeleteItemById() of the SPList class expects a numeric parameter ID, which is the ID of the item to delete. This code snippet, which is a slightly modified version of a function in Keith Richie's SPPurgeList (http://www.codeplex.com/sppurgelist), demonstrates how to delete all items by capturing the IDs in a hashtable, reading the hashtable, and calling the DeleteItemById() function. In this example, we will be running this on a site called http://mySharePoint/bogus on a list called BogusList. If you want to use this code, you would substitute the site and list names with your respective site and list names.

Sample: Using DeleteItemById() [Opens In Another Window]

The issue with Approach #1 is performance. While it is negligible on a list with a small amount of item, it becomes more noticeable on a list with hundreds of items. Each call to DeleteItemById() takes about 1 second. If you have hundreds of items, this could take a while to run.

Approach #2: Building CAML and using the ProcessBatchData() function of the SPSite class


Passing CAML to the ProcessBatchData() function of the SPWeb class runs faster than caling the DeleteItemById(). The following code snippet demonstrates how to build the CAML (using the StringBuilder) and pass the CAML to the ProcessBatchData() function to delete the items. In this example, we will be running this on a site called http://mySharePoint/bogus on a list called BogusList. If you want to use this code, you would substitute the site and list names with your respective site and list names.

Sample: Using CAML and ProcessBatchData() [Opens In Another Window]

A Note About Using CAML to Delete Items from a Document Library

The code snippet above will work for the lists except for document libraries. If you try to run the code snippet on a document library, you will get an error about file names. The document libraries require an additional parameter called owsfileref. The following link to the code snippet demonstrates how to build the CAML for document libraries.
Sample: CAML for document libraries [Opens In Another Window]

If you have any questions or comments, please feel free to post them, and I will answer the questions to the best of my ability.

Saturday, April 18, 2009

Attention Hackers! Uncle Sam Wants You (to help)!

I apologize for the lack of updates lately. I will be resuming tutorials on Monday.


MSNBC reports that The United States government is looking to hire hackers to help protect cyber networks.

To read the artice: http://www.msnbc.msn.com/id/30280436/

Tuesday, March 31, 2009

For Multimedia Students and Professionals: An Affordable 2-D Animation Program

Most of graphic design and animation is done using computers. If you are a Multimedia student or professional, you may have noticed that many applications used in your line of work, including the academic editions of the software, are very expensive. For those of you who are studying or working in Multimedia Technologies, famed animator Eddie Fitzgerald wrote a review on affordable 2-D animation programs that may be useful in your line of work.

At Last: An Affordable 2-D Animation Program

Thursday, March 26, 2009

Spotlight on a Good Example of a Project for a Career Portfolio


Stephanie Jones's site, Best of Everything

http://www.joancrawfordbest.com


For people who are starting out in the IT industry, one of the things that I tout is creating a career portfolio. If you are a web designer or a web application developer, a comprehensive, professional web site is a great way to gain experience.

A fine example of a professional web site is The Best of Everything, run by Stephanie Jones. The Best of Everyting is a comprehensive, unbiased, well-researched site about classic film star Joan Crawford. What impresses me about this site is Ms. Jones is not a web developer by trade, but her site does not look "amateur".

Below are some points on what makes this a good site:

  • The site is thorough, well-researched, easy to navigate, and has a good layout.

    While creating a social networking profile is a nice way to "get your name out there", you need more that that to illustrate that you can do the work. Unfortunately, a simple, few-page web site about your pet, your favorite possession, your favorite sport, or your favorite celebrity will not win over the hiring managers. You need a strong, active site to prove that you can do the work. This site fits the bill. It is not just a site with a list of Joan Crawford films and a few pictures; it is an all-inclusive site about Joan Crawford.


    A University of Michigan study showed that people receiving instructions in a plain font like Arial were able to follow the instructions and complete the task more quickly and accurately than people receiving instructions in a "fancy" font. (Source: Hyunjin Song, Norbert Schwarz (2008). If It's Hard to Read, It's Hard to Do: Processing Fluency Affects Effort Prediction and Motivation Psychological Science, 19 (10), 986-988)

    If you are going to create a web site, the trick is to make it look like a skilled, talented professional created it. The site shouldn't look like it was created by someone who uses FrontPage and animated GIFs and considers that "web development". You want to take the color pallete, the layout and the fonts into consideration. If you look at Ms. Jones' site, you will see that she uses about 4 colors total on the site. The site is also easy to read - the content is "center" to the page, and the font is a "rounded" font (ex: Arial), which is easier to read. She is also utilizing well-established third-party tools (like Google Search and Yahoo!Groups) to properly enhance her site.


  • The site illustrates Ms. Jones's skills with writing and research.

    Ms. Jones is a copy editor by trade. The thorough research that has been done on this site illustrates her writing and research skills to potential employers and clients. She has had a job offer based on the work that she has done with her site, and she was able to expand her professional network because the site was a good conversation starter.

    What does that have to do with technology, you may ask? As I mentioned in numerous articles about getting a job in the economy, you need to be more than a "digithead" in order to get the job. You need secondary skills that will support your role in the company. Written communication and research are two secondary skills to have. For example: let's say that you want to develop a encyclopedic web site dedicated to vintage machines. If you develop a site featuring pictures and scant information about the machine, it may be nice - not thrilling, but nice. However, if you also contain thorough information about the machine ( who invented it, when was it used, what kind of "under the hood" technology was used, what was it's claim to fame, what replaced it), you'll demonstrate your ability to research and understand your topic as well as your web development abilities.

  • The site is professional.


    You'd be quite surprised about how many websites are out there that "borrow" content from someone's site without properly crediting the source. That's plagiarism. If you're working in the academic world, that's grounds for dismissal. In other arenas, that's grounds for a copyright-infringement lawsuit.


    Creating a site about a celebrity can easily drift into the "unprofessional" category. Ms. Jones does a wonderful job with keeping the content professional (although the message board can get a little "colorful"...you, as a student developing a site for a career portfolio, may need to monitor your forums). If she makes a personal opinion, she chooses her words carefully. Most importantly, if she receives information from outside sources, she properly credits those sources.



If you want to build a celebrity tribute web site for your career portfolio, look at The Best of Everything as an example of a site that would look wonderful in a portfolio. In my opinion, this site is so well done that it could easily pass for an "official" site.


See Also:
Getting a Job in a Tough Economy

Tuesday, March 24, 2009

Add a SlideShow to the SharePoint Site using HTML, JavaScript and the CEWP

While the SharePoint OOTB web parts for displaying images are nice, the functionality of the web parts are very limited. Particularly, the OOTB web parts do not have a true "slide show" capabiilties that many end users are looking for. You can write your own custom web part to display images like a slide
show. However, this solution will not only take time and effort to do, but if you are just a “power user” for your SharePoint site, you may not have the right tools and permissions to make your own web parts. If you are familiar with JavaScript and HTML, you can add your own slide show on your site.

For a step-by-step guide that you can download: Add a Slideshow on a SharePoint Site using Javascript, HTML, and the Content Editor Web Part

Here is a video demonstrating how to add the slideshow:


UPDATE: If you are having trouble with getting this to work, see the blog post from 10/26/2009 for troubleshooting tips.

Thursday, March 19, 2009

VB.NET Tutorial: Renaming a Directory using VB.NET Code

There may be a time where you need to programmatically rename a directory. For example, you may be creating a Setup and Deployment project where you have to have a project that "backs up" a directory before installing a directory. .NET has a class that allows you to programmatically rename a directory.

The following video demonstrates how to programmatically rename a directory with the Move function in the Directory class using VB.NET:


A more detailed document is available here: Rename a Directory Using VB.net

If you have any questions or comments, please feel free to ask, and I will try to answer to the best of my ability.

P.S. - I just noticed - this is my 100th post!!

Monday, March 16, 2009

SharePoint Tutorial: Playing a WMV File in a SharePoint Site

Sometimes you may need to play a WMV file on a page in a SharePoint site. For example, you may have to play a video of your CEO speaking, or you may have to play a training video. By using the Content Editor web part, you can easily play a WMV file on a page in a SharePoint site.

You can download the step-by-step documentation from the following location: Playing a WMV File in a SharePoint Site

Below is the step-by-step demonstration:


If you have any questions or comments, feel free to ask!

Friday, March 6, 2009

SharePoint Tutorial: Play a Flash Video on your SharePoint Site

Sometimes you may have to play a Flash video on your SharePoint site. For example, you may have to play a message from your CEO, or you may have to incorporate a quiz on the site. This tutorial demonstrates how to play a Flash video on your SharePoint site.

You can download the written tutorial here: Playing a Flash Video on a SharePoint Site

If you are a more visual person, here is a demonstration:


If you have any questions or comments, please post a comment and I will answer the question to the best of my ability.

Tuesday, February 10, 2009

Basic Training: Working With .NET

Since I am in the process of developing a Basic Training tutorial on C#, I thought that I would create a post on the tools that programmers can use when developing in .NET.

The obvious tool


Microsoft created an IDE called Visual Studio that will allow you to develop and compile your code in one interface. This IDE also allows you to create distribution builds as well as publish web (ASP.NET) projects to a web site.

IDE - Integrated Development Environment


The latest version of Visual Studio is Visual Studio 2008. There are four versions of Visual Studio 2008:

  • Express Edition - A free but very limited version of Visual Studio. Each of the languages (Visual Basic, C#, C++, Web Developer (including ASP.NET)) are in separate software versions. This version is ideal if you are just starting out in one of the .NET languages, but it doesn't grow with you when you are ready for more involved programming. You can download the Express Edition from Microsoft.

  • Professional Edition - A full-featured version of Visual Studio 2008. This version contains additional features that the Express Edition doesn't contain, such as the ability to deploy packages. This version is ideal for an individual user or a small "shop". The product information can be found at Microsoft

  • Development Edition - Works like the Professional Edition, but this edition contains more features aimed at development teams, such as: code analyzers to improve code quality and security; unit testing features; code analyzers to analyze code performance; and metrics to identify error-prone code. This version is ideal if you are developing your own commercial or freeware applications. The product information can be found at Microsoft.

  • Team Suite - This is the mother of all versions of Visual Studio. This version contains a boatload of features aimed at larger software development shops. This version also includes a subscription to MSDN. The product information can be found at Microsoft.



What If You are Broke but You Don't Want the Express Edition?


If you are a student or an instructor, Microsoft has a program called DreamSpark. The purpose of DreamSpark is to give students and instructors professional editions of their software free of charge. Once you sign up for DreamSpark, you can download the software for free. Your school or institution may not be participating in the DreamSpark program, but you can still sign up for it as long as you have an e-mail address from a school or institution.

Note: If you are going to use SharpDevelop and you have some money to spare - even $5.00 - please take a moment and make a donation to the people who developed it.


If you are not a student or instructor, there is a free, open-source IDE called SharpDevelop that's based on the .NET Framework. The look and feel, as well as the functionality, is very similar to Visual Studio (there are a few slight differences). I have used SharpDevelop and I like it. The latest version of SharpDevelop works with the latest .NET Framework (3.5).

What If You are Broke but You're "Hardcore"?


Guess what? You don't need an IDE to develop in .NET! All you need is the latest version of the .NET Framework SDK, and you can write code with the editor of your choice and compile .NET programs from the command line (csc for C# programs, vbc for VB.NET programs). The latest .NET Framework SDK includes components for Windows Server 2008 as well as the SDK for .NET Framework version 3.5. You can review the release notes and download the SDK from Microsoft.

Those are a few tools that should get you started with .NET development. For those of you that are experienced with .NET development, please post a comment on any additional IDEs that you use for your .NET development that aren't mentioned in this post.

Thursday, February 5, 2009

A Great Tutorial on LINQ

I'll be posting more tutorials in the near future - I have a cold so I don't have much of a voice right now :(.

I found a tutorial on YouTube from rafaybinali on LINQ. Since the launch of .NET 3.5, Microsoft has been heavily promoting LINQ. This video series gets you started on LINQ pretty quickly.

Part 1



Part 2


Part 3


Enjoy!

Sunday, February 1, 2009

Congratulations SIX-burgh


Congratulations Pittsburgh Steelers - 6 time Super Bowl Champions!

Saturday, January 31, 2009

Another One of My Documents Made the Scribd Hot List

My document on Mail Servers made the Scribd hot list.

Mail Servers

Thoughts about the SharePoint Convention

I got back from the SharePoint Convention (SPTechCon) in San Fran late last night, so I thought that I would give some highlights about the conference.

  • Overall, I was really impressed with the information at the conference. Granted, there were some sessions that left me cold. The "live examples" didn't work or took too long to do, and the presenter spent more time trying to get the demo to work rather than discuss the topic at hand. However, the majority of the presentations were really informative and productive, and I came out of the conference with more knowledge than I originally had.

  • It was also a great networking opportunity. I was able to meet a number of professionals from all walks of life in IT (managers, administrators, developers) and all levels of SharePoint knowledge. I was able to learn about how these people were using SharePoint, and I learned about the trials and tribulations of using SharePoint in their respective environments.

  • It was great to place names with faces. A number of presenters were authors of SharePoint blogs and/or books about SharePoint that I've read. One of the presenters (Errin O'Connor) co-authored one of the SharePoint books in my personal library.



If you are working in a SharePoint environment, I would suggest going to their next convention, which is being held in Boston in June. It's actually quite reasonable, especially if you register for the extreme early bird. In my case, the cost of the convention, flight from Pittsburgh to San Francisco, and hotel stay was $1000 less than a SharePoint Designer class that I took locally. Visit the SPTechCon site for further details on the next conference.

P.S. - I'll start publishing tutorials again on Monday!

Friday, January 23, 2009

Off to San Francisco for a SharePoint Convention (and note about this site)

San Francisco SharePoint Convention


Next week I'll be at the SPTechCon (SharePoint Technology Conference) in San Francisco. I'm pretty excited to go. The workshops look interesting. Since I'm arriving in the city around lunchtime on Monday (PST), and the conference starts on Tuesday, hopefully I get a chance to go to Chinatown.

If you're going to the SharePoint convention at the Hyatt Regency San Francisco Airport on January 27-29, I hope to see you there!

Note About This Site


From what I can tell from the access logs and the comments left on various posts, it looks like my tutorials seem to be very popular. While I'll still feature essays and commentary geared toward IT students, I will probably start putting more focus on publishing tutorials in my posts.

What kind of tutorials would interest you? Do you like documents, videos, or both? Please let me know my leaving a comment or by contacting me. My contact information is on my profile - click on my profile for my contact information.