Technical

Keyword Counts of Popular Programming Languages

Keys.

In a previous post, 10 Problems with ‘Hello World”, I made a remark that a ‘Hello World’ program only teaches you on average a single keyword. Without doing any research, I asserted that there are hundreds or thousands or keywords in a given programming language – until someone called me out on it.

What I found couldn’t be further from the truth.

Based on a list of the Most Popular Programming Languages, I researched how many keywords and reserved words each language had. I am certain my counts are not exact and depending on specific implementations and versions of languages – the keyword counts may vary.

Here are my findings in descending keyword/reserved word count:

VB.NET

Keyword/Reserved Word Count: 159

AddHandler AddressOf Alias And AndAlso
As Boolean ByRef Byte ByVal
Call Case Catch CBool CByte
CChar CDate CDbl CDec Char
CInt Class CLng CObj Const
Continue CSByte CShort CSng CStr
CType CUInt CULng CUShort Date
Decimal Declare Default Delegate Dim
DirectCast Do Double Each Else
ElseIf End EndIf Enum Erase
Error Event Exit False Finally
For (in For…Next) For Each…Next Friend Function Get
GetType GetXMLNamespace Global GoSub GoTo
Handles If Implements Imports In
Inherits Integer Interface Is IsNot
Let Lib Like Long Loop
Me Mod Module MustInherit MustOverride
MyBase MyClass Namespace Narrowing New
Next Not Nothing NotInheritable NotOverridable
Object Of On Operator Option
Optional Or OrElse Out Overloads
Overridable Overrides ParamArray Partial Private
Property Protected Public RaiseEvent ReadOnly
ReDim REM RemoveHandler Resume Return
SByte Select Set Shadows Shared
Short Single Static Step Stop
String Structure Sub SyncLock Then
Throw To True Try TryCast
TypeOf…Is UInteger ULong UShort Using
Variant Wend When While Widening
With WithEvents WriteOnly Xor #Const
#Else #ElseIf #End #If

Source: http://msdn.microsoft.com/en-us/library/dd409611.aspx


C++

Keyword/Reserved Word Count: 144

registerreinterpret_castreturnsafecastsealed

__abstract __alignof __asm __assume __based
__box __cdecl __declspec __delegate __event
__except __fastcall __finally __forceinline __gc
__hook __identifier __if_exists __if_not_exists __inline
__int16 __int32 __int64 __int8 __interface
__leave __m128 __m128d __m128i __m64
__multiple_inheritance __nogc __noop __pin __property
__raise __sealed __single_inheritance __stdcall __super
__thiscall __try/__except __try/__finally __try_cast __unaligned
__unhook __uuidof __value __virtual_inheritance __w64
__wchar_t wchar_t abstract array auto
bool break case catch char
class const const_cast continue decltype
default delegate delete deprecated dllexport
dllimport do double dynamic_cast else
enum event explicit extern false
finally float for for each, in friend
friend_as gcnew generic goto if
initonly inline int interface interior_ptr
literal long mutable naked namespace
new noinline noreturn nothrow novtable
nullptr operator private property protected
public ref selectany short signed
sizeof static static_assert static_cast struct
switch template this thread throw
true try typedef typeid typename
union unsigned using uuid value
virtual void volatile while

Source: http://msdn.microsoft.com/en-us/library/2e6a4at9(v=VS.100).aspx


C#

Keyword/Reserved Word Count: 98

abstract as base bool break
byte case catch char checked
class const continue decimal default
delegate do double else enum
event explicit extern false finally
fixed float for foreach goto
if implicit in int interface
internal is lock long namespace
new null object operator out
override params private protected public
readonly ref return sbyte sealed
short sizeof stackalloc static string
struct switch this throw true
try typeof uint ulong unchecked
unsafe ushort using virtual void
volatile while add alias ascending
descending dynamic from get global
group into join let orderby
partial remove select set value
var where yield

Source: http://msdn.microsoft.com/en-us/library/x53a06bb(v=VS.100).aspx


PHP

Keyword/Reserved Word Count: 56

abstract and array() as break
case catch cfunction class clone
const continue declare default do
else elseif enddeclare endfor endforeach
endif endswitch endwhile extends final
for foreach function global goto
if implements interface instanceof namespace
new old_function or private protected
public static switch throw try
use var while xor __CLASS__
__DIR__ __FILE__ __LINE__ __FUNCTION__ __METHOD__
__NAMESPACE__

Source: http://php.net/manual/en/reserved.keywords.php


Java

Keyword/Reserved Word Count: 53

abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
true false null

Source: http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html


Ruby

Keyword/Reserved Word Count: 42

BEGIN END __ENCODING__ __END__ __FILE__
__LINE__ alias and begin break
case class def defined? do
else elsif end ensure false
for if in module next
nil not or redo rescue
retry return self super then
true undef unless until when
while yield

Source: http://www.ruby-doc.org/docs/keywords/1.9/


Javascript

Keyword/Reserved Word Count: 29

break const continue delete do
while export for function if
else import in instanceOf label
let new return switch this
throw try catch typeof var
void while with yield

Source: http://www.aptana.com/reference/html/api/JSKeywords.index.html


Python

Keyword/Reserved Word Count: 29

and del for is raise
assert elif from lambda return
break else global not try
class except if or while
continue exec import pass yield
def finally in print

Source: http://docs.python.org/release/2.3.5/ref/keywords.html


If you find any errors or omissions, please let me know. If there is a particular language I did not include, please share the keyword/reserved word source and I would be happy to add it.

0

My Experience at Orlando Code Camp 2011

As a follow up to last years post: My Experience at Orlando Code Camp 2010, I thought I would share my experience at Orlando Code Camp 2011.

This year I took away a lot more, compared to last year as I tried expose myself to more variety by focusing on the Showcase sessions and not sessions that were “how to do this with < insert technology here >”.

There was a great variety of tracks this year:

  • Showcase
  • Fundamentals
  • Web
  • Azure
  • Design and Animation
  • Languages
  • Patterns
  • Services & More
  • Collaboration
  • Visual Studio & ALM
  • Silverlight
  • SQL Server
  • Windows Phone 7
  • DotNetNuke Development
  • DotNetNuke Design
  • DotNetNuke Administration

I know that Code Camps are Microsoft-centric, but the one thing that continues to bother me (I see it at .NET User Group meetings also), is the Microsoft Fanboy attitude.

Sorry, I do not think that Windows Phone 7 is an “iPhone Killer” nor is it an “Android Killer.” I also refuse to use Bing as my primary search engine – Google works just fine thank you. It was comforting to see some iPads and MacBooks among the attendees.

Orlando Code Camp Keynote

Orlando Code Camp Keynote

Here is the breakdown of each session I attended:

Session 1

Applied Object-Oriented Design Principles

Presented by: Jay HIll

Jay presented several design patterns that are based on Bob Martin’s SOLID Principles.

Take Away: There are many design patterns that can be used in practice that extend beyond those originally written by the Gang of Four.

  • Null Object Pattern – this is the assurance that you will never receive a NULL object, therefore avoiding the dreaded ArgumentNullException.
  • Enumeration Classes
  • – a way to extend basic enums and prevent enum growth.

  • Nested Classes
  • – a reason to use nested classes in your code.

  • Composite Pattern
  • – treating objects as if they are a single instance.

Links

Code Quota


Session 2

Decoupled UI

Presented by: Page Horton

Page demonstrated an application that completely separates the UI from Business Logic.

Take Away

Links

pagehorton.com


Session 3

Visual Studio 2010 Tips and Tricks

Presented by: Sean Laberee

Sean demonstrated several new features and shortcuts available in Visual Studio 2010.

Take Away: The Extension Manager can be used to install additional functionality into Visual Studio 2010. Including:

  • Start Page Project Template
  • Productivity Power Tools
  • Visual Studio Color Theme Editor

Session 4

Intro to MVC 3

Presented by: Ken Tucker

Ken demonstrated creating a MVC website that went a little bit beyond the MVC Tutorials at ASP.NET.

Take Away: MVC 3 can be added to Visual Studio 2010 by installing the Microsoft Web Platform Installer 3.0.

Links:


Session 5

Design for Developers: Bad Design Kills Good Projects

Presented by: Diane Leeper

Diane demonstrated six things that can decide the fate of your web project.

Take Away: Developers are typically not known for their design capabilities (see 10 Resources for Design-Challenged Programmers), so it was a wake-up call to hear things from a designers standpoint.

Links


Session 6

Meet the Visual Studio Team!

Presented by:

  • Adrian “Spotty” Bowles – Compilers QA
  • Prakash Balasubramanian – Compilers QA
  • Sayed Ibrahim Hashimi – VS Web PM
  • Kevin Halverson – Compilers QA (VB/C#)
  • Sean Laberee – Editor/VB/C# IDE PM

Visual Studio Team

The Visual Studio Team answered audience questions:

Question: What does a Program Manager do?
Answer: A Program Manager is the “voice of the customer” who tries to understand what the end-users want.


Question: When is the next version of Visual Studio due out?
Answer: The typical version lifecycle for Visual Studio is 18 months.


Question: How is Microsoft moving towards combining the functionalities of Expression Blend and Visual Studio?
Answer: They are looking to make Expression Blend more developer friendly and Visual Studio more designer friendly.


Question: Where can I report issues or make suggestions?
Answer: Microsoft Connect


Question: Are there plans to include Silverlight or XNA updates in Web Platform Installer?
Answer: No, Silverlight and XNA have a different product lifecycle than Visual Studio.


Question: Why is Visual Studio 2010 so slow?
Answer: The Visual Studio team is currently looking at ways in to improve memory management. Other factors could be:

  • Running VS 2010 in Windows XP – doesn’t support video hardware acceleration
  • Installation of multiple extensions
  • Windows Forms Designer is known to leak memory on rebuilds



Question: Will future versions of Visual Studio support Design view of MVC projects similar to Web Forms?
Answer: The Visual Studio team is currently looking at ways to display a view in design mode.


Question: Will Visual Studio be offered in the cloud – similar to Office 360?
Answer: See Try F# from Microsoft Research.


Question: Will the next version of Visual Studio include the Ribbon?
Answer: Not in the short-term. The next release will have more simplified menus. Future releases will have a variation of the ribbon, but won’t be identical to the one found in MS Office.


Question: What can I do to prevent repositioning of windows after compiling?
Answer: Visual Studio 2010 supports multi-monitor support. Also the window positions will vary in Design Mode vs Debug Mode.


Overall, it was a great experience to expose myself to different approaches and ways of thinking that are presented in a classroom setting rather than a book or a blog.

If you have the opportunity to check out a Code Camp near you, I highly recommend it.

1

10 Problems with ‘Hello World!’

Hello World
I think it’s fair to say that every programmer is familiar with a “Hello World!” program. By convention it is a quick and dirty way to start learning a programming language and getting your first program to compile and run.

However, beyond this it offers very little value. I have come up with this list of the 10 problems with “Hello World.”


10. Why “Hello World” ? Why not “Hello Dave” (i.e. HAL 9000 from 2001) or “It Works!”?

I know this one seems like a bit of a stretch. Where did the saying “Hello World!” come from? When was the last time that anyone in the world ran your program besides yourself? Perhaps it would make more sense to use “Hello <Insert Your Name Here>!”


9. It’s Only Good For One Thing

I’m not making the argument that “Hello World!” doesn’t have its uses. However, they only thing it is good for is a sanity check.

“Hello World!” doesn’t help you learn any programming language, it simply helps you write a simple program that you are able to compile and execute and that’s it.

It is a way to maintain your sanity so you can say to yourself, “I’ve got that working!”.


8. Not Cool or Fun

With intensive graphics in gaming and the interactivity of the Internet, few people are impressed with an application that prints a couple words on the screen.

With that being said, writing a “Hello World!” program is not something that will impress anybody but yourself. Beyond that, it probably won’t be your motivator in learning to program.


7. It’s impractical

When was the last time that you needed to write a program that’s only task was to print a string to standard output? One could say that fewer programs are written these days that don’t involve a GUI – whether it be a web, windows interface or even a to a file or database. Perhaps it practical in academia, where you consistently write programs to that display a calculation or value, but not professionally.


6. No interactivity

‘Hello World’ is an example that does not rely on the end-user to do anything except verify that “Hello World!” is displayed on the screen. There is no interactivity to prompt the user to enter his/her name, exit the program, or run the program again. It teaches nothing about how end-users interact with programs.


5. No logic or calculations

Computing relies heavily on logical constructs (e.g., print this statement if this condition is true) and calculations. Most programs written will utilize some decision logic based upon a set of criteria. Even the basic building blocks of a computer (machine code) represent a logical expression: 1 = True, 0 = False.


4. Too similar across languages

If you take a look at Hello World in several different languages, you will notice that they are all very similar to one another.

Once you are proficient in writing a “Hello World!” program in one language, you are pretty much proficient in writing it in all languages.


3. Uses only one concept

If you saw the list of Hello World examples, the commonality among most of them is that they use a single keyword.

How many keywords does a programming language have: Hundreds? Thousands? Learning a single keyword is an extremely small step in learning a programming language.

Edit: You can make the argument that there are probably less than 100 keywords in most programming languages. However, if you include every language construct (such as classes, methods, etc.) – these might add up in the hundreds.


2. Ignores variables, constants

As I’ve said before learning a programming language involves a lot more than the capability of displaying something on the screen.

Few programs can be written that don’t use a variable of some sort.

You could make the argument that “Hello World!” teaches bad programming practices by hardcoding a string in statement.

The “Hello World!” example could at least use a constant to store the value of the “Hello World!” string.


1. Ignores Functions, OO Concepts, Etc.

“Hello World!” examples don’t try to explain the other requirements of a given program language to get a program to run.

Some of things that are taken for granted are:

  • Function Signatures
  • Class Structure
  • Namespace Imports
  • Inheritance

Most seasoned programmers will be able to figure out the syntax of these, but it could be discouraging for beginning programmers or those with only a procedural programming background.


What bugs you about “Hello World!”? or Better yet what type of programming do you do to learn a new language?

Please share below…

8

10 Websites On How To Be A Better Programmer

We all want to be better at the things that we do. Why? Perhaps it will lead to less work, less stress, a sense of pride or more money.

Whatever your motivation for improving your skills – the point is that your skills are not static; however, there are different ways that you can approach improving them.

Below are 10 websites that I have found (both old and new) that offer suggestions on how programmers can improve their programming skills.

In no particular order:

1. 8 ways to be a better programmer in 6 minutes

SecretGeek takes you through modifying your development environment and utilizing tools to improve your coding. Most of these tasks can be done in 6 minutes if you are familiar with your IDE or coding environment.


2. How To Become a Better Programmer by Not Programming

Jeff Atwood reflects on interviews he read about with Bill Gates. Bill says that you cannot improve your programming skills only by programming, you must become familiar with your surroundings and work environment.


3. Being A Better Programmer

Written almost 10 years ago, Danny Burbol mentions 10 ways that you can improve – many of which can be applied to life: know your limits, fix it, don’t hack it, don’t get personal, etc.

There is also a nice summary of his points at the bottom of the page.


4. 5 sure-fire ways to become better at programming

This site focuses on programmer passion and interest; and attempts to look at the role of a programmer as similar to a mason.

This could be alternatively titled, “5 sure-fire ways to know if programming is right for you.”


5. 4 ways to become a better programmer

This site takes a simplistic approach to becoming a better programmer. I don’t want to give away the 4 ways, but these could easily be applied to becoming better in any profession.


6. Becoming a better programmer takes exercise

This site focuses on the why of programming. We might know how conceptually a sorting routine works, but you never truly understand it until you attempt to implement it.

I always say don’t wonder how things work, do some research to know how things work.


7. 12 Tips That Will Make You a Better Programmer

Spyros Panagiotopoulos points out 12 areas of which programmers should be familiar (e.g. Version Control, Commenting, etc.)

I feel more often than not programmers know they should do certain things, but just skip to coding for the sake of time.


8. 5 Good Habits That Will Make You a Better Coder

Matt Ward approaches becoming a better code from the perspective of a web developer. The obvious way to get better at something is to read about it and practice.

I find his approach to writing logic through comments intriguing. I agree that writing pseudocode beforehand definitely makes coding easy.


9. Better Programming By Programming Better

Phil Haack picks up where Jeff Atwood left off in How To Become a Better Programmer by Not Programming.

Comparing programming to a sport, becoming a better programmer doesn’t lie in the experience that one has but the effort he/she puts in to identify weaknesses in your current skills.


10. The Joel Test: 12 Steps to Better Code

In another post from over 10 years ago, Joel Spolsky notes that there are things that all programmers should practice if one is to produce quality code.

The 12 steps are actually questions that you can ask yourself to gauge the quality of your software development environment.


I think we can all become better programmers, but we need to start with wanting to become a better programmer – and that involves putting forth the effort to improve.

0

10 Resources for Design-Challenged Programmers

When it comes to design, why do programmers tend to have difficulty in creating a simple and user-friendly user interface?

Perhaps because programmers are traditionally left-brained and more focused on logic, analytics, objectivity, etc. This type of thinking is encouraged in academics.

Designers are right-brained and focus on being intuitive, creative and subjective. This is the best kind of thinking when designing a user interface (UI) or user experience (UX).

Just because you tend to be a left-brained thinker, you cannot also have some qualities of a right-brained thinker. People typically resist change or want to break out of their comfort zone. If you are a programmer who wants to start to becoming more creative and a better designer, here is a list of 10 resources (web sites and books) to identify your current design faults and break you out of your comfort zone:


1. The 7 Signs Your UI was Created by a Programmer

The 7 Signs Your UI was Created by a Programmer


2. 8 Things Programmers Should Know About UI Design

8 Things Programmers Should Know About UI Design


3. Don’t Design Like a Programmer

Don’t Design Like a Programmer


4. This Is What Happens When You Let Developers Create UI

This Is What Happens When You Let Developers Create UI


5. Web Design for Programmers (via peachpit.com)

Web Design for Programmers


6. 8 Web Design Mistakes That Developers Make

8 Web Design Mistakes That Developers Make


7. Why Programmers Suck at CSS Design

Why Programmers Suck at CSS Design


8. User Interface Design for Programmers by Joel Spolsky


9. The Non-Designer’s Design Book by Robin Williams


10. Web Design for Developers: A Programmer’s Guide to Design Tools and Techniques by Brian P. Hogan


Did you identify any design mistakes that you currently make as a programmer?

What are the next steps that you will take to move from left-brained to right-brained (or vice versa)?

Are there any other websites or books that you think should be included in this list?

3

A List of Coding Standard Websites

Do you adhere to a certain coding style or standard when programming in your language of choice? If you are not following an official coding standard or a standard set-forth by your place of employment – perhaps you should start.

Why follow a coding standard? Standardize coding practices allow code to be more easily read by other programmers. Just imagine if you inherited code that was labeled as follows:

string a;
string b;
int flag1;
int flag2;

This might look like the code you wrote when you wrote your first program. However, if you saw this coding style in a professional environment you might have a difficult time understanding the meaning behind the variable names.

Coding standards are not necessarily dictated by the creator of the language. Many have just evolved into standards among the programmers who use the language.

I have compiled this list of several coding standards and styles. If want to start adhering to coding standards, I suggest you start with the official standards (if available). Also, check with your organization to see if they have a coding standards document already created.

.NET (C#/VB.NET)

PHP

C/C++

Python

Java

Ruby

HTML/CSS/Javascript

Objective-C

If I left out your favorite programming language, check out the Coding Conventions for languages at wikipedia.

Do you know of any other coding standards resources that I should include in the list above? Please share in the comments.

8

How To View Inception Through Code

If you have not seen Inception yet, I highly recommend doing so before reading this post.

**** SPOILERS AHEAD ****

Inception Movie Poster

Inception combines the best elements of movies in the Simulism genre; such as Dark City, eXistenZ, The Thirteenth Floor and The Maxtrix Trilogy; and creates an original, thought provoking film.

Watching the film from the standpoint of a programmer, I could not help seeing the similarities between the plot devices and basic programming concepts.

The Kick

The Kick is the concept they use in the movie to return to a dream level above the existing one. For example, if you perceive that you are falling in a dream, you have a tendency to wake up.

The Kick can be portrayed in programming in several different ways:

Recursion

public bool Dream()
{
     kick = CheckForKick();
     if(kick) return true;
     return Dream();
}

* CheckForKick() implementation has been omitted.

In this recursion example, each call to function Dream() will call another sub-Dream – until the CheckForKick() function returns true, which can occur however many levels deep.

Exception Bubble

public bool Dream()
        {
            try
            {
                try
                {
                    try
                    {
                        throw new DreamException("Receive Kick");
                    }
                    catch(DreamException dx)
                    {
                        throw dx;
                    }
                }
                catch(DreamException dx)
                {
                    throw dx;
                }
            }
            catch(DreamException dx)
            {
                // Handle Kick thrown 3 levels deep.
                Console.WriteLine(dx.Message);
            }
        }

In this Exception example, an exception is thrown within a nested try block. Rather than handling the exception at that level, it’s bubbled up until is (hopefully) handled gracefully.

Stack

This can best be represented by the following infographic, which I reconstructed to be a stack. Here is the original source.

Inception Stack

A stack is one of the most fundamental data structures in computing. A stack operates in the following: items are added in a Last-In, First-Out (LIFO) manner. They are added via being “Pushed” onto the stack and removed via being “popped” from the Stack.

In the movie, each sub-dream is pushed onto the stack starting with reality. Our characters cannot return to a different dream level by popping the dream above off the stack.

Sedation

They use Sedation in the movie to prevent the dreamers from waking up any means other than “falling” on all dream levels above the first. At the first dream level, the only way to wake up is for the machine’s time to elapse.

Sedation in the movie can be explained through the use of Threading.

Threading

public void Inception()
{
     Machine mach = new Machine();
     Sedation sed = new Sedation();
     Thread machineThread = new Thread(new ThreadStart(mach.Start());
     Thread sedationThread = new Thread(new ThreadStart(sed.Sedate());
     try
     {
          sedationThread.Start();
          machineThread.Start();
          sedationThread.Join();
          machineThread.Join();
          ReturnToReality();
     }
     catch(Exception ex)
     {
          // Limbo ???
     }
}

* Machine implementation omitted. Sedation implementation below.

In this example, you can think of the sedation and starting the “dream machine” as being two separate threads – both induce unconsciousness, but in different ways.

The sedation occurs first as indicated by the sedationThread.Start(), followed by the machine start machineThread.Start(). The Sedation.Sedate() implementation may look like the following:

public void Sedate()
{
        Thread.Sleep(36000000); // 10 Hours
}

By calling join on the threads, the ReturnToReality() function will not get called until both the sedation wears off or the machine time elapses.

Limbo

Limbo is defined in the movie has a mental state where your mind doesn’t know if you are in reality or not. The only way out is to realize that Limbo is not reality.

I already hinted at how Limbo could be represented in code in the previous example – if there is an exception (i.e. death) during the running of the threads that does not allow them to complete. Also, Limbo could also be represented by the following:

Infinite Loop or Infinite Recursion

while(!IsAwareOfReality)
{
     CreateBuildings();
     CreateFromMemories();
     QuestionReality();
}

Most of the time that we are programming and find ourselves in an infinite loop, we are not aware of it until we start to question:

  • Why is this taking so long?
  • Why is my memory decreasing?
  • Why is my CPU pegged at 100%

Fortunately in programming there are ways to identify that we are in an infinite loop state.

If you are not aware of these conditions, you will stay there until your program runs out of memory or crashes (dies) or you realize you are in a loop (meet a condition) – by calling the QuestionReality() function.

Architect

Ellen Page

The last item I will mention is the role of Architect. In the movie, Ariadne (Ellen Page) is responsible for creating the dreamscapes. This shares similarities with Software Architecture. As a software architect you responsible for knowing the systems (the main characters in movie) that you work with and to create the best solutions (e.g. Never Ending Staircase) to new problems that need to be solved (Inception). Being able to see the world around you as objects with state and behavior is a useful skill for both understanding Object Oriented Design/Programming; and as a Software Architect.

I was surprised how many people shared similar thoughts with comparing the movie with programming. If you enjoyed my post, please read their perspectives:

ASP.NET – Access To Path is Denied

If your ASP.NET program is attempting to read, write and/or delete a fie it can display the error “Access to Path … is Denied”. If this is the case, the directory may have the incorrect security settings.

Here are the steps to add the correct the user security settings on Windows Server 2003:

1. Find the folder or file that you are trying to access.
2. Right-click the folder
3. Select Properties
4. Click the Security tab
5. Click the Add button

6. Enter the user: <SERVERNAME>\IIS_WPG
7. Click Check Names button

8. Click OK button
9. Verify user has correct permissions (Read/Write)

10. Click OK button

Other Windows operating systems (XP, Vista, 7) may require the user: <SERVERNAME>\ASPNET to be added.

0

SharePoint 2010 Development Resources

Implementing SharePoint 2010 is an idea that is being thrown around at my place of employment right now. As a developer, there seems to be some significant differences between WSS 3.0/MOSS 2007 and SharePoint 2010 (SharePoint 2010 Sandbox Environment) and I wanted to make sure that my skills were updated for the latest release of SharePoint.

For everyone who is already developing or those who will start, I put together this list of resources that are available.

Videos

There are a few hands-on videos if you are a visual learner.

Books

If you prefer to learn from a book, there are many more resources available for SharePoint 2010 than there were previously for WSS 3.0 or MOSS 2007.

Pro SharePoint 2010 Solution Development: Combining .NET, SharePoint, and Office

Ed Hild and Chad Wach


SharePoint 2010 as a Development Platform

Joerg Krause, Martin Daring, Christian Langhirt, Bernd Pehlke, Alexander Sterff


SharePoint 2010 Development with Visual Studio 2010

Eric Carter, Boris Scholl, Peter Jausovec


Beginning SharePoint 2010 Development

Steve Fox


Professional SharePoint 2010 Development

Tom Rizzo, Reza Alirezaei, Jeff Fried, Paul Swider, Scot Hillier, Kenneth Schaefer


1

My Experience at Orlando Code Camp 2010

This post is long overdue but I thought I would share my experiences with attending my first code camp: Orlando Code Camp 2010.

Code Camp is something that always interested me, I thought it would be cool to experience some of the bleeding-edge technology and also receive some “free” training in the process.

If you are not aware of what a Code Camp is, it is an event where developers volunteer their time to present on several different topics – typically related to Microsoft products and technology and is sponsored by local technology companies.

Here is a breakdown of each session I attended:

Session 1

What to Know About WF 4.0

Presented by: Bayer White

I have just introduced myself to Windows Workflow Foundation (WF) since I have been teaching myself Windows SharePoint Services – so I thought I would get some exposure to what’s new in WF 4.0.

Take Away: WF 4.0 is significantly different from it’s predecessors, but there are some features that make it more productive: activities. A lot of the information was a bit over my head for being a novice at WF; however, once I get a good understanding of WF 3.0, I will migrate my skills to WF 4.0.

Links:
www.humanworkflow.net
www.flowfocus.com


Session 2

Building a Data Warehouse Using Sql Server 2008

Presented by Wes Dumey

The topic of Building a Data Warehouse is not new to me. I have taken graduate-level classes on the subject and actually built a Data Warehouse for a hospital as a team project – back in the days of Sql Server 2000. However, since taking this class, I have not had much exposure to the topic and the tools from Microsoft have changed significantly.

In the week previous to Orlando Code Camp I had attended several webinars by Pragmatic Works on Business Intelligence, so a lot of the information was review.

Take Away: Wes shared some ‘best practices’ that his firm adopted, such as storing the extracts after each step of the ETL process to verify the data.

Links:
Durable Impact Consulting
www.dayofdata.com


Session 3

Developing OLAP Solutions with SASS 2008

Presented by: Adam Jorgensen

One of the webinar sessions I missed with Pragmatic Works, was this very same presentation with Adam. So it was a treat to see Adam present this in person and demo the BI tools in Sql Server 2008.

Take Away: Since I have not used Sql Server 2008 BI Tools or even Sql Server 2005 BI Tools for that matter, I think there was an assumption that the audience had prior exposure. Adam frequently referred to the differences between 2005 and 2008 and also shared his pet peeve of naming dimensions with underscores.

Links:
Pragmatic Works


Session 4

Getting Started with WPF

Presented by: Shervin Shakibi

I haven’t had much exposure to WPF, so I thought I would check out this session for beginners. The presenter Shervin Shakibi is very comical and made the session pretty enjoyable.

Take Away:
From what I understand about WPF, is that it add additional functionality to creating Windows Forms and is primarily driven by XAML. It is possible to create web apps using WPF, but Shervin suggested to use Silverlight for that purpose.

Links:
www.computerways.com


Session 5

Silverlight Viewer for Reporting Services

Presented by: Jeremy Groves

This had to be the most unproductive session that I attended. It seemed as if the presenter was there against his will – the session only lasted about 10 minutes.

Take Away:
Silverlight Viewer for Reporting Services is actually a product by Perpetuumsoft and this session was nothing more than a marketing presentation to buy their product.

Links:
www.perpetuumsoft.com


Session 5.5

Stream It! Live + HD + Silverlight

Presented by Kevin Rohling

Since I had some time to kill, I went to this session since it was the location for Session 6.

Take Away:
Kevin Rohling made note of a video (that I had never heard of before) that is available in the public domain: Big Buck Bunny.

Links:
www.perpetuumsoft.com


Session 6

Dissecting a Real-World Silverlight 4 Application

David Silverlight

I really wanted to see Silverlight development in action and I was provided this opportunity in David Silverlight’s session.

Note: I have to admit I once thought that Silverlight was named after him.

Take Away:
David presented a User Group Website Starter Kit software package that was developed using Silverlight, and is available to download via CodePlex.

Links:
Silverlight User Group Website Starter Kit
www.perpetuumsoft.com


Overall, I was exposed to a lot of new technology at Orlando Code Camp. I look forward to attending Tampa Code Camp later this year.

More Blogs about Orlando Code Camp:

2