Microsoft patterns & practices SharePoint Guidance has been released to MSDN!
Updated: SharePoint Guidance 1.0 – Nov 2008
Here are a few of the topics you will find inside:
Architectural decisions about patterns, feature factoring, and packaging
Design tradeoffs for decisions many developers encounter, such as whether to use SharePoint lists or a database to store information
Implementation examples that are demonstrated in the Training Management application and in the QuickStarts
How to design a SharePoint application for testability, create unit tests, and run continuous integration
How to set up different environments including the development, build, test, staging, and production environments
How to manage the application life cycle through development, test, deployment, and upgrading
Team-based intranet application development
You might also see my name, along with the names of a couple of others from Avanade, in the Authors and Contributors section. (Updated to refer to SharePoint Guidance 1.0 – Nov 2008)
Earlier this year I worked on a project with the Microsoft Solution Accelerator Team to develop what was released as the Service Level Dashboard for System Center Operations Manager 2007.
The dashboard is a report that is installed into Operations Manager 2007 and is used to display availability and performance metrics related to SLA thresholds set by the administrator.
Service Level Dashboard for System Center Operations Manager 2007
I also recently noticed my name, along with the names of many others from Avanade, on the Acknowledgements page.
This is what Avanade calls your time between projects. Last week I rolled off my first major project and started my bench time. This time is meant for training and getting certified. So I did just that.
The first four days of this week I spent training on Microsoft Office SharePoint Server 2007 where I utilized independent study materials that I obtained through Avanade’s internal training department.
Friday was spent craming for Exam 70–528: TS: Microsoft .NET Framework 2.0 – Web-Based Client Development, which I ended up passing on Saturday. This was my second Microsoft exam but my first with Avanade. As part of being a Solution Developer at Avanade you are required to become a Microsoft Certified Professional Developer. This was the first of five exams that make up the MCPD certification. And with five exams, I thought I should better get crackin’.
The other day out at Microsoft I ran into some interesting behavior in SQL Server regarding the difference between running a query in a table-valued function versus running it in a stored procedure.
This particular query I was trying to run selects columns from an existing view that is part a database of the Microsoft product that I am currently working with. Unfortunately, this is no ordinary view. This view not only has two nested select statements, it joins on a table holding thousands and thousands of records. Looking at the estimated execution plan was ridiculous, having probably 50 or 60 processes.
Running this query in a table-valued function, basically just running the view, causes the CPU on the server to soar to 100% and Management Studio to basically timeout. However, placing the same query in a stored procedure yields almost instant results.
I talked this over with the resident SQL guru on the project and all we could come up with was that, because of the complexity of execution plan, the pre-compilation of the query in a stored procedure makes all the difference.
Well, the training was finally over and the start of March brought the start of my first project as a consultant at Avanade.
After a little bit of networking with a fellow WWU grad, I got onto my first project, and wouldn’t you know it, it’s at Microsoft. I am currently working in a small team as a UI developer working with ASP.NET, C#, and SSRS, which is quite an exciting opportunity considering ASP.NET and SQL Server are my bread and butter. There was only one problem.. I (and my trusty new laptop) had to be converted to the Microsoft religion before being able to do pretty much anything. So after a new laptop image, hours in software installs and reinstalls, badge creation, badge recreation, and a smart card reader I was finally fully capable of working at Microsoft.
As developing on this project starts I have decided that I will be expanding the scope of my weblog to not only include life snippets but also some code snippets and developer thoughts that I find useful or interesting along the way.
It has been a while since my last post so I thought I would recap how the training course turned out.
The training program at Avanade for new college hires is awesome. Two words… free food! But seriously… Avanade offers, not only a mix of learning techniques and material, but the dedication of smart, passionate people to support those techniques and help push people to get off to a good start in their careers. The simulated project that my team and I worked on turned out to be quite a learning experience. We learned a lot about developing .NET in a team environment as well as what it means to be a consultant at Avanade. In the end we delivered one of the better solutions of the group and had a satisfied customer.
Today was the mark of my first two weeks at Avanade and I have to say that each day gets better and better.
I was fortunate enough today to go out to lunch with one of our directors, a few of our recruiters, and some of my fellow new Seattle hires. It was an hour filled with good food and good conversation. If you are looking for a good place for a seafood meal check out Anthony’s. I recommend one of their amazing salmon or tuna bowls.
As far as orientation and training goes, Avanade has presented us with a very interesting, and I think very unique, training regiment. After our initial orientation to the company, which included a series of videos and documents outlining company vision and goals, we got right into training on how to be a consultant and work on projects in teams.
My next few weeks will be filled with virtual and in-person team meetings, technical training videos, and a whole lot of development as we work through a simulated .NET project. Stay tuned as I will be sure to give you an update on how the project ends up… if I survive it, that is.