Jonas Nilsson is the principal architect of MashPoint, and has been with Bamboo for over 8 years. Prior to moving to the U.S. and joining Bamboo, Jonas studied Computer Science at the Institute of Technology in Linkoping, Sweden, in which country he also worked as a software consultant for several years.
On the occasion of the release of MashPoint, we thought it was a perfect opportunity to introduce you to the man behind the code. Since Jonas was good enough to take a short break from coding to submit to our questions, we're pleased to be able to present you with the following interview. Enjoy!
Jonas, before we get to MashPoint, I'd like to ask a few questions about your history with Bamboo. Given that you've been with the company for over 8 years, you were on board when the decision was made to chart the company's course towards developing exclusively for the SharePoint ecosystem. I understand that was a controversial decision at the time, and one which ruffled more than a few feathers amongst staff members.
That's true, and I think I was one of the loudest people "against" it at the time. It wasn't because of SharePoint though ... it was because I felt that we lost our focus. In hindsight, it was the best decision the company ever made.
What was the transition to developing for SharePoint like for you?
We had developed our own Document Management product, so a lot of things in SharePoint were very familiar, but finding information when you are doing anything outside the "mainstream" development areas is painful. Documentation is still the biggest problem since SharePoint is huge.
What was the biggest challenge you encountered when beginning to develop for SharePoint?
Once you realize that you are now developing on a platform, and you have to play by its rules --and this takes some time for people to realize, though I think I got it pretty quickly-- the biggest challenge is to find documentation. It's getting better, but in a lot of places the only documentation on MSDN is just the same info as I get from staring at the method signature.
What do you most enjoy about developing for SharePoint, and/or what's your favorite aspect of SharePoint as a tool/platform?
It's the platform aspect. You get all this infrastructure for free when developing for SharePoint. That's also what makes it a little hard for people to switch from ASP.NET development to SharePoint development. It's time to realize that you don't save your settings in web.config or in a file on the file system. You have storage in the platform; if you are developing a Web Part you have Web Part properties. If it's application pages, you can store settings using hierarchical storage, and so on. When Bamboo developed WD3, we spent all this time on infrastructure instead of the real business value. With SharePoint, you can focus on the business value.
When did you first realize the benefit of creating a MashPoint-type product? Was there an "ah ha!" moment, or was it more of a gradual, organic process that led you to what ultimately became MashPoint?
If you talk to my colleagues here at Bamboo they will probably say that Jonas "doesn't like lists." That is in part true; I have never believed that you can look at the lists in SharePoint as database tables. If you have relational data, you shouldn't put it in lists because there's no referential integrity. Lists are great for "simpler" non-relational data.
At Bamboo, we are creating a lot of Web Parts and most of them have the ability to consume data from many different sources: SharePoint lists; Databases; Web Services; and List Rollup. It was pretty obvious for us that we had to consolidate this functionality somehow instead of repeating it in every Web Part. If you run MOSS Enterprise, you have the BDC and with the BDC you get an abstraction of the data in the Entity. But our Web Parts can't have a dependency on the BDC since it will greatly reduce the number of potential customers. So we knew we had to create something similar to the BDC, but I really didn't want to come up with Yet Another BDC API. The "ah ha" moment was when we decided to use the BDC API's and emulate the BDC. This way, the developer doesn't have to learn a new set of API's, and we can extend the API with MashPoint-specific features.
So it's been a gradual process that concluded in a small "ah ha" moment.
I've got to ask about your "little hack" to run WSS (and MOSS) on Vista. Was that application something you approached purely to satisfy your own curiosity as to whether or not it could be done?
I'm a pretty impatient guy. I have a powerful desktop computer, a Quad core with 4GB (not enough) memory. I felt that my development experience was suffering because I was developing in a VPC running Win2003 with the whole development environment. So to do something about it (before installing Windows Server 2008 on my desktop), I decided to try to install WSS on my Vista since I know that IIS7 in Vista and Windows 2008 is almost identical. So I took a Monday and put this install together, and now we are sharing it with other SharePoint developers out there.
I want to emphasize one thing: I still use all my 12 VPC images. The local development environment lets you develop and, most importantly, debug without much friction. But you still have to do your final testing in a supported environment, so keep your VPC images around. Nothing beats "Enable Undo disks."
Given that your SharePoint on Vista tool was released into the wild just a few weeks ago, and we're now releasing MashPoint to the development community, can you give us a hint as to what we might be seeing from you next?
All I can say is that we will have a lot of new things coming out related to MashPoint, and to keep up with this and to INFLUENCE development, you should join Bamboo Nation and take part in Bamboo Labs. We are committed to producing community-driven products.
When you're not working tirelessly to improve the SharePoint ecosystem for developers and end users, how do you enjoy your downtime?
I enjoy time with my family, I have two daughters 2 and 5 and they require my full attention when I'm at home, so I don't have any downtime ;)
Posted
Aug 15 2008, 04:01 PM
by
John Anderson