Skip to main content
SharePoint Evolved, Small Steps for a Big Solution

Blog

Go Search
Home
Blog
Wiki
Contact
Themes
TV
  

SharePoint Evolved > Blog > Categories
A Perspective on Cloud Computing

I had the opportunity to attend a talk by David Chappel (http://www.davidchappell.com) of David Chappell & Associates on Friday about his perspective on Cloud Computing. The talk occurred Friday May 26th at the Microsoft Development Center in Copenhagen(http://www.mdcc.dk), otherwise known as the MDCC. At first I thought this was going to be a talk aimed at a small group of people, but a large group of probably 150 ended up attending. While the majority of the attendees were Microsoft employees, there were a large amount of people from outside of Microsoft.

He started off with a warm up generally covering the services that are out there such as Google's AppEnginge, Amazon's EC2 and Microsoft's Azure. After an overview he started getting deep into a comparison of the services that are out there, and here are some highlights that I thought were worth mentioning.

  • Google's AppEngine gives you 10 seconds to handle a request before spinning down the instance chosen to handle the request.
  • The two buckets these services fall into are now archaiac, Platform as a Service and Infrastructure as a Service are two restrictive and don't adequately categorize the services that are starting to mature.
  • The Azure Services are all individually built by separate teams at Microsoft… for now.
  • There is a difference between platform lock in and portability, mainly in custom development languages such as force.com.
  • SQL Services has a hard limit of 10gb, so scaling beyond that would take some finesse.
  • Table Storage in Azure is meant for very scalable applications
  • Queues in Azure are meant as an intermediary for data between web roles and worker roles
  • Each instance of a Web Role and Worker role is a "VM" within Azure

This is just a short example of the information that David was presenting, to find out more information about Cloud Computing from David Chappell, check out his blog where at lot of this information is featured. http://www.davidchappell.com/blog/index.php

 

Update: A slide deck very similar to the one that was presented at the MDCC can be found here: http://www.davidchappell.com/CloudPlatformsToday--APerspective--Chappell.pdf

Modifying the TimeCard List View for Microsoft Dynamics SL, Removing the [CORRECT] Action

If you've ever needed to modify the TimeCard List in the Dynamics found on YourBusinessPortalName/Project/Project Center Pages/Time.aspx. You may have gone looking for the pages behind the Page Viewer in SharePoint, but By default they are located in the following folder: "C:\Program Files\Microsoft Dynamics\Business Portal\". You'll see that the page for viewing the TimeCard List is specified in SharePoint as "/BusinessPortal/Applications/PMA/Timecard.aspx?Action=LIST". My goal originally was to remove the "[CORRECT]" action for the timecard list.


At first glance it appears that the code for this page resides in the TimeCard.aspx file found:


If you open the Timecard.aspx file, you'll see the following code:

 

At first glance, you may think that the code to modify reside in an assembly which would require reflection and recreation to modify sueccesfully. What I found out and what you should know is that this page is essentially a redirect that adds on the Company Name at the end of the URL. The page actually redirects to TMTce10.asp file found at, "https://server/BusinessPortal/Applications/PMA/tmtce30.asp?company=companyname".

 

This page is actually editable, and to remove the [CORRECT] option, find the following line:

 

sActionText = sActionText & "<a class=""clsGridTableLink"" title=""Click to correct this timecard"" href=""*"" onclick=""CorrectTimecard('" & RSLabHdr("DocNbr") & "', '" & Trim(RSLabHdr("pe_date")) & "')"">[Correct]</a>"

 

Simply add an apostrophe at the beginning of the line to comment out the line, and have the option removed.

 

'sActionText = sActionText & "<a class=""clsGridTableLink"" title=""Click to correct this timecard"" href=""*"" onclick=""CorrectTimecard('" & RSLabHdr("DocNbr") & "', '" & Trim(RSLabHdr("pe_date")) & "')"">[Correct]</a>"

 

Now the [Correct] options should be hidden from view. This procedure should work with other actions on the same page.

 

SharePoint Contact Sync for Windows Mobile

As a proof of concept, I decided to write a program that would import the contacts from a SharePoint list, it's a rough draft, but it is something that with a little TLC, could have some potential. The source is available as a download from this website. It requires that the templates for mobile development be installed along with the Windows Mobile SDK. It basically contacts the SharePoint web services to access the list data, and stores this information in a Contact on the mobile phone. The program is pretty straight forward requiring your SharePoint credentials as well as the list name, and it will import the contacts from the SharePoint list.

If you're curious and want to download the source code, it is available here: [Link]

"Microsoft.SharePoint.SPException: One or more field types are not installed properly." Using SPQuery

Have you been coding, referencing field names using a SPList or other item, and have you run into this error?

"Microsoft.SharePoint.SPException: One or more field types are not installed properly." ? 

 

Well I did, I was banging my head into the wall, until I realized that the fields had been renamed at some point. Since the new name of the column was be referenced in the code using

SPListItem["FieldNameNew"] 

 

When running a SPQuery. This caused the SPException to be thrown. To solve this, you should use the GUID of the column, or the previous field name. The lesson is when you change your column names, remember that its more of a vanity change, and the real field name stays the same.

  

This Request Requires Request Buffering or Authentication

When designing a program using the compact framework, I ran into this error when creating a web request to the SharePoint webservice. This came from not using the built in web references and the wrappers that come with it, but manually making the call to the web service. Despite finding several proposed solutions for the problem, they all involved added more code than I thought was necessary to solve the problem.

I added:


hwr.AllowWriteStreamBuffering = true; 
hwr.PreAuthenticate = true;

This comes from the fact that the web request using authentication first off needs to authenticate the request to the web service using preauthentication, not authenticating every request, I'm not sure why its necessary, but authenticating each request did not work. Using these additions, I was able to make the call to the web service successfully. Alls well that ends well in code.

Don't have Team Foundation Server for Source Code Management? Use DropBox instead.

DropBox, is a multi-platform, folder synchronization software. It handles synchronizations and updates efficiently and in the background. From what I can tell, the service is very fast, updates are processed within seconds of changing a file on the originating machine, from there its dependent of bandwidth to update the other locations where your DropBox is synchronized. Notifications from the system tray (in Windows) lets you know when files have been updated or modified, either by yourself or someone you've shared folders with.

This is good for small code projects, where Team Foundation Server is overkill anyways. You can share your Visual Studio project with a select number of people who can also work on the same project as you. There isn't a sense of Checking IN and Checking OUT as there is in TFS, but there is conflict resolution and revision history for your files.

DropBox has versions available for Windows, Mac, as well as Linux, but you can also access your files through a web interface if you don't have DropBox installed on the machine you need to access a file from.

The best part about this service is that its free, 2Gb with the free service level, with plans if you need more space. This should be more than adequate for any small project needing code backup as well as synchronization. The data ends up on Amazon's S3 service and is Encrypted.

If you want to try it out yourself, see
www.getdropbox.com

DropBox Benefits for Code Management:

Fast - Uses Amazon's S3 Service for fast transfers

Redundant - Using the S3 Service, its backed up on the Dropbox Servers as well as your client machine(s)

Team Friendly - Share Your Project Directories with your Team, have them make changes to your code or add their own

Revisions - View file revisions via their web interface

Multi Platform - Have Cleint/TeamMate that doesn't use Windows, not a problem, Linux and Mac versions are available

These benefits aren't just limited to .Net projects, but good for many other types of development.