Friday, June 25, 2010

My analogy of a delivery team

I've recently worked under a project manager that don't do his job holistically, i was tasked to deliver 2 assignments but he didn't gave me the resources i need.

List of resources i requested for:
  1. Local intranet account (in order to get internet access)
  2. A machine for me to work on (i had to use my own macbook)
  3. Someone that have complete understanding of the database (since i'm only on a short attachment)
  4. Documentations/specifications (i had to work based on my own analogy)
This dragged on for 4 torturous months, the best thing was, in this 4 months, i only managed to complete (partially) 1 of his task due to all the above reasons. He didn't respond to my desperate pleas (i was dying to finish this assignment so as to move on with another team), he just wanted me to get the things done. Until an indian (no offense) knight, donning a set of bright shining armor came along and did his job for him. He came for barely 3 days and my first assignment was progressing by leaps and bounds, it's near completion, implementation and testing. He set a very defined objective for me to achieve and go all the way out to give me any resource that i require. I had to dedicate this post to him for his professionalism and commitment.

I stayed till almost 10pm tonight (it was a very rare thing for me to do), but i didn't sulk or feel moody over it. He had the charisma which made me willing to stay for his sake and to finish this whole thing and move on with life.

Upon sitting down, this analogy of mine came into my mind:

I can be metaphorically viewed as a Katana, him as a Samurai, my system analysts as a razor (not belittling them)

In a project team, our objective is to slaughter a cow (sorry for hindu folks but i can't think of other animals), for the whole 4 months, my previous PM was asking me to serve the meat to our users, without telling me which cuts they want, how well they want it to be done, and with what sauce. So from day one, i was only able to kill the cow, skin it and thinking of how should i serve the users. When the new PM came in, he told me everything, had all the tools ready. I did my cutting, cooked the beef and is just waiting for the sauce to be ready. (Don't feel hungry yet :))

As the saying goes: a blade is only as strong as its possessor

My job is to cut things up fast and nicely according to your requirements, not to shave the fur or to skin the beast. 

Luckily for me, a skilled wielder came along and we are on track to serve our users with a plate of medium-rare steak with black pepper sauce.

Saturday, June 12, 2010

Swollen lymph nodes

Wouldn't be blogging in the coming few days due to cold sores -> swollen lymph nodes. Hurting like hell, will try to set up SPListEngine on MOSS 2010 and update with screens and POCs...

Thursday, June 10, 2010

Sharepoint 2010 virtual box

Many of you are aware that microsoft had released a virtualized server with many components (SharePoint 2010, MS Office 2010, SilverLight, Active Directory) all configured nicely (even the AD had 100 test users with complete profiles and photos)

But for a developer like me, i would like to start from a clean server and install all the components one by one.

I am using Sun/Oracle's virtualbox as it allows 32 bit host to have 64 bit guest (free). I have a dreamspark account, which gives me access to a lot of software for free (academic purpose).

To set up your own MOSS 2010,

  1. Prepare virtualbox (create win server 2008 64bit)
  2. Install win 2008 with active directory
  3. Create domain (in MOSS 2010, you can't use a local account as farm administrator anymore)
  4. Install MS SQL 2008 developer 64bit
  5. Patch MS SQL to SP1 and CU2 (cumulative upgrade)
  6. Install MOSS 2010
  7. Go to the familiar looking Configuration wizard
  8. Start having fun with your new MOSS 2010 vm
I will attempt to put my SPListEngine within to speed up development efforts though, will update on my success (if any)

Sunday, June 6, 2010

MOSS 2007 DAL alpha

assembla repository

Please email me for me to add you into assembla team to check out the source codes using SVN. Set up guide is on the website.

Pre-release functionalities:
  • AJAX-enabled demo site (Autocompleter/update panel) Ajaxcontroltoolkit.dll
  • Using Lists as primary data store
  • using SmartPart for UI(visual web part in 2010) (found @ codeplex)
  • Model, View, Controller, AJAX (WS), Framework projects (for a robust & scalable application)
  • SPGridView (filtering/sorting/paging)
  • SPGridView with MenuTemplateItem & SPToolBar (for the nice looking MOSS style menu that allow custom events)
  • WebConfig extractor (supporting lazy-loading)
  • Predicate builder (for using Lambda expressions as where clause)
  • LinQ to sharepoint (SPMetal) credits to Bart Desmet for his excellent contributions
  • LinQ/IList extensions: for converting to DataTable for ObjectDataSource (for spgridview filtration) //optional
Can't think of more stuff, it's still in its infancy. Don't worry too much if MOSS 2010 is coming and think that the efforts here are going to be wasted as MOSS 2007 still have it's market share and most stuff in the DAL are interoperable with MOSS 2010.

It's unable to perform joining like SQL, but even MOSS 2010 Microsoft.Sharepoint.Linq doesn't as CAML doesn't support joining. You will have to do a joining at the controller level.

For e.g.

3 Lists:

Products, Products category, products in category

IList<Product> products = SPListEngine.GetIListByClause<Product>(obj => obj.Name.Contains("Demo"));
IList<ProductCategory> productCategories = SPListEngine.GetIListByClause<ProductCategory>(obj => obj.Id.Equals(5);

Perform a LinQ join like:

var joinedProducts = from p in products join pc in productCategories on products.Id == productCategories.ProductId;

foreach(var joined in joinedProducts)
{
     //do what you need in joined IEnumerable<T>
}

I am really hoping someone can help me develop an internal logic class that will remove the 2000 listitem limit. I've conceptualised it, but can't squeeze time out to do it (work & school is taking its toll on me)

Do give it a try in your next MOSS 2007 project or for your own practice.