|
Waldek Mastykarz Profile |
|
|
Waldek Mastykarz is Microsoft Certified Professional Developer SharePoint 2010
Waldek Mastykarz Last May I’ve taken the beta versions of the two SharePoint 2010 Developer exams: 70-573 TS: Microsoft SharePoint 2010, Application Development and 70-576 PRO: Designing and Developing Microsoft SharePoint 2010 Applications. Today I received an e-mail saying that I successfully passed both exams and received the Microsoft Certified Professional Developer SharePoint 2010 status.
It was the first time that I participated in beta examination so I didn’t really know what to expect when I signed [read]. Posted: Tue, Jul 13th '10 |
CKS:DEV soon with even more support for Content Types and Site Columns
Waldek Mastykarz Defining custom Site Columns and Content Types is the very basis of almost every SharePoint project. Using Site Columns and Content Types you can define the information architecture of your Solution. And although this process is something that is very important and something you do very often, it is surprising how little support there is for it from the development point of view that would allow you to do it in a productive manner. CKS:DEV has already had some support around Content Types and Si [read]. Posted: Sun, Jul 11th '10 |
CKS:DEV now with support for Importing Site Columns
Waldek Mastykarz Creating custom Site Columns is something you do in almost every single SharePoint Solution. Unfortunately even in spite of great SDK documentation and intellisense for SharePoint XML files, it’s still a tedious process to create new columns directly in the XML. Using the SharePoint web UI is way easier but then again: how would you get that out of SharePoint and put into your Solution? There is an answer to that question and it is: use CKS:DEV!
In case you missed the tweets, we’ve recently [read]. Posted: Fri, Jul 2nd '10 |
Dynamically resizing images with Mavention Smart Images
Waldek Mastykarz A picture is worth a thousand words. In many situations images help illustrate and explain thoughts. Without images the Web would be boring and colorless. And while we all are convinced about the power of image and how it enhances telling a story, it is surprising how complex it is to get it right on the Web. Many large images on your website make it download and display slowly. No matter how great the content is, the odds are high that your visitor will not take the time to wait for it. Large i [read]. Posted: Tue, Jun 22nd '10 |
Inconvenient Reusable Content List
Waldek Mastykarz One of the great capabilities of SharePoint Server is the ability of including reusable content: standard snippets of HTML which you can use in different places over and over again without having to copy & paste it. The great thing about Reusable Content is that you have the option to insert a reference instead of the copy of the content so that if the content snippet ever changes, you won’t have to manually check every single page in your site to ensure that the content is correct: ShareP [read]. Posted: Mon, Jun 14th '10 |
Inconvenient Pages List Name
Waldek Mastykarz While working on Microsoft Office SharePoint Server (MOSS) 2007 Web Content Management (WCM) Solutions you might have relied on the fact that the name of the Pages Library was always Pages. Well almost always, because in some languages, like German, it was translated along with the Title. Given that fact, changed the way we had to deal with the Pages Library in code. Instead of hard coding the URL part of the Pages Library, all of a sudden we had to retrieve it dynamically, just because someone [read]. Posted: Mon, Jun 14th '10 |
Creating multilingual Site Definitions with Visual Studio 2010 SharePoint Development Tools
Waldek Mastykarz When working on SharePoint Solutions one of the common requirements is delivering multilingual solutions. Depending on your scenario you might either need to localize a single Web Part or a complete Solution. Thinking of multiple languages you have to take into account not only the development but also the packaging process for all the different assets in your Solution. One of such assets, where implementing support for multiple languages in SharePoint 2010 might seem complex at first sight, are [read]. Posted: Mon, Jun 14th '10 |
Did you know: configuring Solution Dependencies in SharePoint 2010
Waldek Mastykarz When SharePoint 2007 shipped with the Features and Solutions framework we thought we had it all sorted out. We were able to package our work and deploy it in a structured and repeatable manner. Using Feature Activation Dependencies we were able to ensure that all the functionality that our components require are available prior to provision our custom functionality. And while Feature Dependencies are definitely a great concept they are unfortunately incomplete. If all the different pieces come f [read]. Posted: Fri, Jun 11th '10 |
Did you know: provisioning AppGlobalResources in SharePoint 2010
Waldek Mastykarz Developing localized solutions on the SharePoint 2007 platform wasn’t as straight-forward as we wanted it to be. First of all you had to make your code support globalization and then you had to provision the localized Resource files to your Web Application. As SharePoint 2007 didn’t provide any mechanism to do that, you had to use custom Timer Jobs to get this done correctly. Luckily this situation has changed with SharePoint 2010 which introduces the new App_GlobalResourceFile element in th [read]. Posted: Fri, Jun 11th '10 |
Did you know: using Developer Dashboard for monitoring performance of your solutions
Waldek Mastykarz SharePoint 2010 ships with Developer Dashboard which allows you to see how well different pieces of SharePoint are performing. And while it’s extremely useful by itself, it becomes even more important when used to measure the performance of your custom code!
Logging the performance of your custom code to Developer Dashboard is really easy. All you have to do is to wrap a block of your code in a using clause and that’s it:
protected override void CreateChildControls()
{
using (new SPMonitore [read]. Posted: Mon, Jun 7th '10 |
Web standards Accessibility – SharePoint Server 2010 deck available
Waldek Mastykarz Yesterday we had a great evening here at Mavention talking about web standards and accessibility on the SharePoint platform.
Paul did the kick off talking about the differences between web standards and accessibility and why they are important if you are developing an Internet-facing website. The key takeaway was the importance of accessibility for Internet environments where you never know who will visit your website and which browser, operating system and device he will be using. Implementing [read]. Posted: Fri, Jun 4th '10 |
Mavention Insert Lorem ipsum
Waldek Mastykarz Recently, during my SharePoint 2010 Web Content Management session at DIWUG, I demoed new editing capabilities of SharePoint 2010. During the demo I used a custom feature to quickly insert dummy text. As I got quite a few questions about it, I decided to publish the solution. Proudly presenting: Mavention Insert Lorem Ipsum.
Mavention Insert Lorem Ipsum is a Sandbox Solution that allows you to quickly insert five paragraphs of Lorem Ipsum text. Upon activation the Features adds a new button to t [read]. Posted: Wed, Jun 2nd '10 |
Did you know: extending Solution Manifest with intellisense
Waldek Mastykarz SharePoint 2010 ships with a great developer story. The new Visual Studio 2010 SharePoint Developer Tools provide great experience and allow you to be productive while working on SharePoint Solutions. And while these tools ships with rich functionality they obviously don’t cover all new capabilities of SharePoint 2010. In some situations you might need to manually modify some of the SharePoint artifacts like for example when specifying dependencies for your Solution.
As you might have noticed [read]. Posted: Tue, Jun 1st '10 |
Logging to ULS in SharePoint 2010
Waldek Mastykarz One of the pieces of developing custom components is logging information. No matter if it’s for diagnostic purposes or when an error occurs, logging allows you to track the health of your custom component. When developing custom components for SharePoint 2007 we hadn’t much choice. Although SharePoint 2007 shipped with the Unified Logging Service, we couldn’t use it. The SharePoint SDK was pretty clear about it: although some methods were publicly available, ULS was for internal use only a [read]. Posted: Fri, May 28th '10 |
SharePoint 2010 Web Content Management – The Developer Story deck available
Waldek Mastykarz My deck from the DIWUG event on May 25 is available on-line. So if you either couldn’t make it to the event or want to have the content for future reference, you can get it from SlideShare.
Check out: DIWUG deck: SharePoint 2010 Web Content Management – The Developer Story
Technorati Tags: SharePoint 2010,WCM,DIWUG [read]. Posted: Thu, May 27th '10 |
DIWUG SharePoint eMagazine #2 available for download
Waldek Mastykarz Dutch Information Worker User Group SharePoint eMagazine #2 has just been published and is available for download. This second issue contains some great articles about Web Content Management in SharePoint 2010, Community Kit for SharePoint: Development Tools Edition (CKS:DEV) and more. Get your copy of the FREE DIWUG SharePoint eMagazine #2 now!
Technorati Tags: DIWUG,SharePoint,SharePoint 2010 [read]. Posted: Thu, May 27th '10 |
DIWUG (May 25) – SharePoint 2010 Web Content Management – The Developer Story
Waldek Mastykarz Tomorrow (May 25) I will be presenting at the Dutch Information Worker User Group (DIWUG) about developer improvements in SharePoint 2010 Web Content Management. We will be not only looking at what’s new in SharePoint 2010 WCM but I will also share with you some tips on how you can get the most of your WCM solutions on the SharePoint 2010 platform.
Additionally Marianne van Wanrooij (SharePoint MVP) will be presenting improvements in the UI of SharePoint 2010. She will walk you through the new [read]. Posted: Mon, May 24th '10 |
Code Access Security policy template for Visual Studio 2010 SharePoint Developer Tools
Waldek Mastykarz SharePoint 2010 ships with the Sandbox: a new concept that allows you to deploy solutions with limited trust. Still there are many scenarios to think of when you might need to deploy your work to the Web Application’s BIN directory. When doing that, you need to define for your assembly a CAS policy, which specifies what your code should and should not be allowed to do. While the contents of the policy always depend on your code, I have noticed that there are a few entries that are common for a [read]. Posted: Mon, May 24th '10 |
Creating HTML e-mail messages for Microsoft Outlook 2007/2010 – resources
Waldek Mastykarz Should you ever need to create an HTML e-mail/stationery that is being correctly displayed in Microsoft Outlook 2007/2010 there are two very useful documents on MSDN that can help you getting things done:
Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (Part 1 of 2)
Word 2007 HTML and CSS Rendering Capabilities in Outlook 2007 (Part 2 of 2)
These documents describe HTML and CSS properties supported by both Word and Outlook. Since both applications don’t support the full HTML [read]. Posted: Sat, May 8th '10 |
Inconvenient creating list instances using Feature Receivers
Waldek Mastykarz Recently I’ve been working with a Feature responsible for provisioning a list instance based on the Asset Library List Template (new in SharePoint 2010). In spite of the fact that everything seemed to be okay on my side (everything defined in the right place, the Asset Library Feature activated, and so on), I kept getting error that the Asset Library List Template does not exist. Finding the answer to this riddle was just a matter of… timing.
Scenario
Let me give you some more information on [read]. Posted: Wed, May 5th '10 |
Preventing newly added project items from being automatically added to Features
Waldek Mastykarz The new Visual Studio 2010 SharePoint Development Tools not only simplify working with SharePoint Solutions but are also a great productivity booster. By encapsulating the internal working of packaging SharePoint artifacts developers can focus on the development process instead of keeping the track of what should go where. One of the productivity features of the new developer tools is automatically adding project items to Features: each time you add a new SharePoint Project Item (SPI) to your pr [read]. Posted: Wed, May 5th '10 |
Activating selected Features during the deployment of a package in Visual Studio 2010 SharePoint Developer Tools
Waldek Mastykarz By default the new Visual Studio 2010 SharePoint Developer Tools activate all Features from the package that is being deployed. While this is a great productivity feature when you need to quickly deploy something, it might be not the thing that you want while working with larger projects. The alternative available out of the box is not activating Features at all. Where does that takes us? I wrote about it previously. In my previous post I also suggested you could use Post-deployment Commands to [read]. Posted: Wed, May 5th '10 |
The No Activation Deployment Configuration: use it or not?
Waldek Mastykarz If you have worked with the new Visual Studio 2010 SharePoint Developer Tools you probably know that one part of the cool pieces of the new tools is the ability to specify the steps executed while deploying SharePoint Solution Packages on your development machine. These Deployment Configurations are fully configurable: you can either use one of the two existing configurations or create a new one that fully suits your needs. By default two Deployment Configurations are available Default and No ac [read]. Posted: Wed, May 5th '10 |
Making controls in a Silverlight/WPF User Control private
Waldek Mastykarz By default, when you create a User Control in Silverlight or Windows Presentation Foundation (WPF) all child controls are publicly available. This is not only bad for reusability of the control but also from the design point of view as you should always try to encapsulate the internals of your control and only make available to the outside world functionality that makes sense to them. Additionally encapsulating properties allows you to validate the input what makes your control less error prone. [read]. Posted: Wed, May 5th '10 |
Inconvenient Silverlight Object Model vs. anonymous users
Waldek Mastykarz SharePoint 2010 ships with Silverlight Object Model that simplifies working with SharePoint data within Silverlight components. Thanks to the new object model you no longer have to create and deploy custom services to retrieve data from SharePoint. Out of the box the Silverlight Object Model encapsulates calling standard SharePoint WCF Services which makes it extremely easy for you as a developer to create Silverlight components that communicate with SharePoint. Although working with the Silverl [read]. Posted: Tue, May 4th '10 |
Inconvenient Content Query Web Part slots
Waldek Mastykarz We all know Content Query Web Part (CQWP) – probably the greatest Web Part provided with SharePoint Server that allows you to build dynamic content aggregations in a matter of minutes. CQWP is known not only for its great performance but also for its flexibility and extensibility capabilities. In SharePoint Server 2010 Content Query Web Part introduces even more functionality among which the slots – a cool feature that allows you to create semantic and reusable templates. And while creating [read]. Posted: Sat, May 1st '10 |
Inconvenient good page title with SharePoint Server Web Content Management (revisited)
Waldek Mastykarz One of the things that matter when optimizing an Internet-facing website for search engines is the page title. Next to the level one header (H1) and the URL, the page title is one of the most important elements of your page that allows search engine to find your page. A good page title consists of at least the title of the current page and the title of the website. Additionally, if the site is quite large you can add the name of the section. And although it doesn’t sound like rocket science it [read]. Posted: Sat, May 1st '10 |
You created a Content Type and it doesn’t inherit columns from the parent Content Type (Publishing Tip #1)
Waldek Mastykarz Imagine the following scenario: you created a new Content Type in SharePoint 2010. You built the Content Type ID correctly and even included the FieldRefs element. Still, after you provisioned your Content Type it doesn’t contain any fields:
Content Types inheritance works a little different in SharePoint 2010 than it did in SharePoint 2007. SharePoint 2010 introduces the Inherits attribute. From the SharePoint SDK:
Inherits – Optional Boolean. The value of this attribute determines wh [read]. Posted: Sat, May 1st '10 |
Page Layouts vs. Body id revisited and solved
Waldek Mastykarz Right after I posted my last article on using Page Layouts for dynamic body ids and issues that you stumble on, I got one more idea on how you might leverage Page Layouts for setting dynamic body ids and still deliver a great performing solution.
In my last post I discussed how accessing the PublishingPage.Layout property requires you to login, which makes it very inconvenient when working with Internet-facing websites. Elevating Privileges allows you to work around this issue but it introduces [read]. Posted: Tue, Apr 20th '10 |
Error while deploying a WSP with CAS using the new Visual Studio 2010 SharePoint Developer Tools (and fix too)
Waldek Mastykarz If you’re working with SharePoint 2010 solutions that deploy assemblies to BIN the right way (with CAS policies that is), you might have noticed that an error occurs during the deployment of the WSP to SharePoint with the new Visual Studio 2010 SharePoint Developer Tools.
Basically it is impossible to deploy the WSP to SharePoint and benefit of all the new cool functionality that the new development tools provide.
The great news is, that the team responsible for the tools found this error as [read]. Posted: Tue, Apr 20th '10 |
MSO_ContentDiv – Web Part Properties right where you want them
Waldek Mastykarz While creating custom branding for SharePoint it is not only important that it looks all right, but also that it’s fully functional and that users don’t loose any of the standard functionality provided with the platform. While most elements can be easily positioned within Master Page and Page Layout some are positioned more “indirectly”. Knowing how SharePoint does the positioning can help you deliver a great User Experience.
As you might have heard I recently started working on a brand [read]. Posted: Tue, Apr 20th '10 |
Inconvenient body id for anonymous users
Waldek Mastykarz A few weeks ago I presented you a solution for creating dynamic layouts with nothing more than some CSS definitions and a dynamic body id. Using exactly the same HTML markup you can create a different layout of your page elements what makes it an extremely efficient and easy to maintain solution. While the concept is pretty straight-forward, applying it in practice to a real-life SharePoint Server Web Content Management solution has one drawback that you should keep in mind.
Anatomy of body id r [read]. Posted: Tue, Apr 20th '10 |
SharePoint 2010 Linq doesn’t support anonymous users
Waldek Mastykarz SharePoint 2010 ships with support for Linq. The great thing about it is, that Linq simplifies the process of querying lists and working with the retrieved items. Instead of objects, which you get if you’re using CAML, Linq retrieves for you strongly typed objects what makes it extremely easy to work with. And although it seems really perfect there are a few things that you need to keep in mind before you refactor your code to use SharePoint Linq instead of CAML.
It’s for the Server API only [read]. Posted: Tue, Apr 20th '10 |
Create SharePoint breadcrumbs with Mavention Simple SiteMapPath
Waldek Mastykarz One of the challenges while developing Internet-facing websites built on the SharePoint platform was rendering semantic breadcrumbs. Out of the box Office SharePoint Server 2007 was using for that purpose the ASP.NET SiteMapPath control. And while it looked okay visually, internally the whole control was rendered as non-semantic spans. SharePoint 2010 ships with a new control for rendering breadcrumbs called ListSiteMapPath. And while this control uses semantic markup and renders the breadcrumbs [read]. Posted: Sun, Apr 11th '10 |
Mavention Export Page
Waldek Mastykarz Mavention Export Page is a custom extension for the new Visual Studio 2010 SharePoint Developer Tools that allows you to export preconfigured Publishing Pages to XML which can be then used for provisioning pages with Site Definitions.
Upon installation the Mavention Export Page extension adds Pages folder to every site.
Important The Pages folder is being added to Publishing Sites only. If you open a Site which is not a Publishing Site you will not see the Pages folder.
In the Pages folder you [read]. Posted: Tue, Apr 6th '10 |
Mavention Instant Page Create
Waldek Mastykarz Do you still remember how many clicks did you need in Microsoft Office SharePoint Server 2007 to create a new Publishing Page? First you had to pick the New Page option from the Site Actions menu. Then you had to provide some information about the page and then finally, after pressing the OK button, you were redirected to the newly created page. SharePoint Server 2010 simplifies that process, but did you know that you can push it even further, and create new Publishing Pages with a single mouse [read]. Posted: Sun, Apr 4th '10 |
Mavention Simple Menu
Waldek Mastykarz Did you know that SharePoint 2010 ships with a brand new menu control, which allows you to render the menu as an unordered list (UL)? Using that control makes branding your menus extremely simple! Unfortunately this control is available only with SharePoint 2010. If you’re still working with Office SharePoint Server 2007 projects, you have to either brand the tables rendered by the standard SharePoint menu or create a custom control that would generate semantic markup. But wait: code no more! [read]. Posted: Thu, Apr 1st '10 |
My first day at Mavention
Waldek Mastykarz Today was my first day on the new job. Today was the day when I became SharePoint Consultant at Mavention.
Who is Mavention?
The name Mavention is derived from the word maven, "a trusted expert in a particular field, who seeks to pass knowledge on to others." We are an independent company with an entrepreneurial spirit. Mavention aims for real results for our clients. We do this with passion for both our customers and profession. As one of the few organizations in the Netherlands we have the Mic [read]. Posted: Thu, Apr 1st '10 |
My last day at Imtech
Waldek Mastykarz After more than three years working at Imtech ICT Integrated Solutions as a Software Engineer it's time for me for a change. Today is my last day at Imtech.
I came to Imtech a little more than three years ago as an intern. My first assignment was to create a generic toolkit for migrating content from one Content Management System to another. This was back in the days when all I knew was PHP and developing software was mostly for fun. Right after I was done with my first assignment at Imte [read]. Posted: Wed, Mar 31st '10 |
Rich Text Editor control in SharePoint 2010
Waldek Mastykarz Recently I was presenting for a group of colleagues at Imtech ICT Integrated Solutions about new publishing features in SharePoint 2010. One of the questions that I got was: how can we leverage the Rich Text Editor for anonymous users on Internet-facing websites?
The Scenario
Imagine the following scenario: on your Internet-facing website you want enable your anonymous visitors to post comments or short messages. You want them to be able to use some simple formatting for their messages, but as y [read]. Posted: Tue, Mar 30th '10 |
Conditionally show content the easy way
Waldek Mastykarz Yesterday I showed you a neat way to hide/show some content based on authentication level and/or the page mode. The cool thing about it was that whenever the control was hidden, the child controls didn’t get instantiated at all preventing you from any kind of performance penalty. Today, when I read the article myself, it struck me: you could extract a piece of the control that I showed you yesterday and make of it a base class for all kind of conditionally visible content like content visible [read]. Posted: Mon, Mar 15th '10 |
Inconvenient SPSecurityTrimmedControl revisited
Waldek Mastykarz About a year ago I wrote about the inconvenience of the SPSecurityTrimmedControl: a great idea within the SharePoint framework that unfortunately doesn’t work the way it should. Now, as we’re about to get a new release of SharePoint, I decided to check if things have changed.
What makes SPSecurityTrimmedControl so cool?
In case you didn’t know SharePoint, both 2007 and 2010, ships with a control that allows you to conditionally display/hide pieces of your site: the Microsoft.SharePoint.Web [read]. Posted: Sun, Mar 14th '10 |
Webdesigners vs. SharePoint: the body id
Waldek Mastykarz Body id is a cool webdesign trick that allows designers to easily alter the layout of a page using nothing more than a single property and some CSS styling. Using the body id you can define one HTML page structure for the whole site and then, by changing the single value of the body id attribute, you can create new experiences by styling the different pieces of the page in a totally different way. While it sounds very easy and it is very easy with HTML, this trick can get very challenging when u [read]. Posted: Sat, Mar 13th '10 |
Visual Studio 2010 SharePoint Developer Tools vs. Modules with many files
Waldek Mastykarz Visual Studio 2010 ships with new SharePoint Developer Tools that simplify the process of developing solutions for the SharePoint platform. Using nothing more than the standard functionality provided with the tools you can rapidly create custom solution by focusing on the real work instead of the plumbing….
If you ever worked with Web Content Management solutions or just highly branded collaboration solutions, you know that at some point you have to include the branding in your solution packag [read]. Posted: Sat, Mar 13th '10 |
Imtech Content Query Web Part v14 now with EXSLT
Waldek Mastykarz Recently I published a new extended version of the Content Query Web Part. I extended the SharePoint 2010 version of CQWP with support for paging the results which is one of the things that our customers ask for very often. But that’s not the end of the extensibility possibilities of the CQWP. In this version I extended the Imtech Content Query Web Part even further by adding additional capabilities which make working with the CQWP even easier. Introducing: Imtech Content Query Web Part v14.2! [read]. Posted: Mon, Feb 22nd '10 |
Visual Studio Gallery launches SharePoint Tools category
Waldek Mastykarz The popularity of SharePoint as a developer platform is growing every day. In fact it’s getting so important that the Visual Studio Gallery has just recently launched a separate category for SharePoint Tools. Check it out:
Using the new SharePoint Tools category will hopefully make it easier for you to find out about new tools that will help you do your job. And if you write extensions for the new Visual Studio 2010 SharePoint Developer Tools yourself, go on and add them to the SharePoint To [read]. Posted: Mon, Feb 22nd '10 |
Visual Studio 2010 Release Candidate is available!
Waldek Mastykarz In case you haven’t noticed, Visual Studio 2010 Release Candidate has been published to MSDN yesterday. Although it hasn’t been that long since the last release, the RC is improved… a lot!
The first difference that I saw, was the installation size. In Beta 2 my configuration was around 3.7GB, in RC it increased to 4.2GB! Still, the Release Candidate makes it worth every MB, because it’s lightning fast! The Add reference window is “just there” and the whole IDE just feels very very re [read]. Posted: Wed, Feb 10th '10 |
SharePoint 2010 Content Query Web Part with paging
Waldek Mastykarz One of the coolest and probably most frequently used Web Parts in SharePoint 2007 was the Content Query Web Part (CQWP) – a great control that allowed you to display content aggregations to the users. Although it was pretty awesome, it had some serious drawbacks like for example the lack of a paging mechanism – something that almost every single Web Content Management project that I worked on required. Three years later in SharePoint 2010 the CQWP got a facelift and shipped with some serious [read]. Posted: Mon, Feb 1st '10 |
Showing transient messages using the SharePoint 2010 Notification Area – SharePoint 2010 UI tip #2
Waldek Mastykarz Delivering a great User Experience for a custom application developed on the SharePoint application is really easy using the new SharePoint 2010 UI API. One of the new possibilities is to leverage the Notification Area to communicate the progress of an operation to the users to make using your applications more intuitive and responsive.
Notification… what?
Notification Area is one of the few new concepts introduced in SharePoint 2010 User Interface. It has been designed to deliver transient me [read]. Posted: Sun, Jan 31st '10 |
Showing persistent messages using the SharePoint 2010 Status bar: SharePoint 2010 UI tip #1
Waldek Mastykarz SharePoint 2010 ships with a brand new framework for delivering compelling user experiences for custom applications created using the SharePoint platform. One of the pieces of the UI framework is the Status bar which can be used to display persistent messages to the users.
Working with the SharePoint 2010 Status bar is very easy. Its functionality is exposed through the SP.UI.Status namespace (defined in the 14\TEMPLATE\LAYOUTS\SP.js file) in SharePoint 2010 JavaScript API.
Displaying new mess [read]. Posted: Sat, Jan 30th '10 |
Overloading functions in JavaScript
Waldek Mastykarz If you are a SharePoint developer, or do some general .NET development, you probably work with overloading methods. Using the same name you can define multiple variants of the same method by specifying a different set of parameters. As SharePoint 2010 contains a large piece of very powerful API in the JavaScript: both for communicating with the SharePoint platform (also known as the SharePoint Client Object Model) and manipulating the UI, the odds are high that you will sooner or later start usi [read]. Posted: Sat, Jan 30th '10 |
Filling forms using data from EntityPicker aka EntityPicker with Callback
Waldek Mastykarz Windows SharePoint Services v3 ships with many controls that simplify entering data. One of such controls is the EntityPicker which allows users to search for data and then select the desired record(s). Not only is the EntityPicker very intuitive but also highly extensible. Did you know that you can extend the EntityPicker to make it fill the list form using the data from the entity that you picked?
Imagine the following requirement: you have a document library that allows users to write letters [read]. Posted: Mon, Jan 25th '10 |
Visual Studio temporary projects
Waldek Mastykarz Does ConsoleApplication87 sounds familiar to you? If so, I’ve got some great news for you – a tip that will help you keep your disk clean of all the test code that you check out.
Imagine: you’re in the middle of the development process working on SharePoint code. Then you would like to check out some code before including it in the solution and rebuilding the whole thing. You fire up a new instance of Visual Studio and create a test project. Visual Studio spins for a second and comes up wi [read]. Posted: Wed, Jan 20th '10 |
Community Kit for SharePoint: Development Tools Edition
Waldek Mastykarz For the last few months I've been working with the new Visual Studio SharePoint development tools. The results? A few extensions that make developing SharePoint 2010 solutions a little easier.
I was not the only one who created and published extensions for the Visual Studio SharePoint development tools. First there was the SPVSX toolkit by Matt Smith, Wesley Hackett and Todd Bleeker. Then, just a few weeks ago, Wouter van Vugt published his cool toolkit on-line. At some point we all noticed [read]. Posted: Wed, Jan 20th '10 |
Web Content Management in SharePoint Server 2010
Waldek Mastykarz For a while now I’ve been thinking about what should I write about in the very first post about SharePoint 2010. If you’ve been following this blog for a while, you probably know, that I’m passionate about Web Content Management (WCM) in SharePoint. For three years now I’ve been working with SharePoint WCM. Although it’s sometimes challenging, it’s great to build WCM solutions on the SharePoint platform. And now SharePoint 2010 offers an even richer foundations for custom Web Content [read]. Posted: Tue, Oct 20th '09 |
Meet me @ Tech·Ed Europe 2009
Waldek Mastykarz I’ve just got confirmation from Microsoft: I will be at the Technical Learning Center (TLC) booth at Tech·Ed Europe 2009. Together with some fellow MVPs I will be answering all your SharePoint questions.
Looking forward to see you at Tech·Ed 2009!
Technorati Tags: TechEd 2009 [read]. Posted: Mon, Oct 5th '09 |
Extending Lookup Fields with “Add new item” option
Waldek Mastykarz How many times were you working with Lookup Fields and just when you were about to pick a value, you found out that it’s not there. How many clicks did you have to make to get to the Lookup List, add the new Lookup Item, get back to where you were first and add your item? While it sounds trivial, it’s the only way things can be done in out of the box SharePoint. You could of course create a whole new Custom Field Type which would contain an “Add new item” link, but there is an easier way [read]. Posted: Sat, Oct 3rd '09 |
Custom Field Type: Site Reference (part 1)
Waldek Mastykarz For the last few weeks I’ve been working on a project that strongly relied on meta data. The project is all about finding the right information in a strongly fragmented collaboration environment. One of the parts of the project was publishing news messages related to specific collaboration areas.
The background
The project I mentioned is an Intranet environment meant to support the organization’s collaboration process. It consists of many different areas like Topics, Projects, Departments, e [read]. Posted: Tue, Sep 22nd '09 |
PowerShell for developers
Waldek Mastykarz Yesterday I wrote my first PowerShell script. During that process I’ve discovered quite a few things – new to me being a .NET developer.
Load your assemblies on time
All the assemblies required by the script must be loaded before the script is executed. Consider the following script for example:
param(
[string]$Url = $(Read-Host -prompt "Site (Collection) Url"),
[bool]$Recursive = $false
)
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
function Get-SPFolder
{
[read]. Posted: Tue, Sep 1st '09 |
From /Press-Releases/Pages/Press-Release.aspx to /Press-Releases/Press-Release – make friendly URL’s for your SharePoint site in 4 steps with IIS7 URL Rewrite module
Waldek Mastykarz We all know Microsoft Office SharePoint Server (MOSS) 2007 Web Content Management (WCM) solutions for their Pages URL’s. Purist web designers/developers hate SharePoint not only for the fact that it’s injecting something into URL’s but mostly for the inability of changing anything about it. And while many people think that SharePoint and semantic URL’s just don’t play along, it turns out that there is a solution – one that doesn’t involve a single line of custom code.
It’s almost [read]. Posted: Thu, Aug 27th '09 |
Generate your own SPBuiltInFieldId class
Waldek Mastykarz SharePoint ships with the SPBuiltInFieldId class which allows you to access the ID’s of all the out-of-the-box available fields using intellisense. This is very important in scenarios when your solution heavy relies on custom development and working with list items. The SPBuiltInFieldId class makes working with Content Types and Columns easier: instead of typing the names you can use the Properties of the SPBuiltInFieldId and get to all the standard SharePoint fields using intellisense.
Whil [read]. Posted: Fri, Aug 21st '09 |
Visual Studio T4 template for SharePoint Feature Definition (Feature.xml)
Waldek Mastykarz Recently I wrote an article about automating the generation of the DDF files used to package SharePoint Solutions. In my example I used a custom Visual Studio T4 template to generate the DDF file. As a scenario I used a Web Content Management (WCM) solution, which contained a lot of assets to be provisioned to SharePoint. While working with WCM solutions generating and maintaining the DDF files is not the only challenge. As all the different assets are being provisioned using Features you also h [read]. Posted: Sun, Aug 16th '09 |
Programmatically creating Wiki Pages
Waldek Mastykarz Recently I had to prepare a demo for one of our customers. Next to the regular things like provisioning sites and lists I had to provision a Wiki Pages Library with some demo pages in it. Although you might expect a Wiki Library to be a regular list it is not and programmatically creating Wiki Pages is slightly different than creating regular items.
As the name says Wiki Pages Library is a Library. If you look at its BaseType property, it says that a Wiki Pages Library is a Document Library. Tha [read]. Posted: Sat, Aug 15th '09 |
Visual Studio T4 template for SharePoint Solution (DDF)
Waldek Mastykarz Packaging solutions built on the SharePoint platform into WSP packages has proven to be the way to deploy your work in a structured and repeatable manner. While there are many different tools available which can support you in packaging your work, there are scenarios when they are not sufficient. As some of the tools are open source you could modify them to fit your requirements but did you know that Visual Studio can help you with creating WSP files?
The tools
SharePoint package – a WSP file [read]. Posted: Wed, Aug 12th '09 |
Leveraging ASP.NET User Controls in SharePoint development
Waldek Mastykarz In the last Web Content Management (WCM) project built on top of Microsoft Office SharePoint Server (MOSS) 2007 I’ve worked on, we’ve used a couple of new tools and development approaches. One of such things was leveraging the power of ASP.NET UserControls for developing Page Layouts and Web Parts – approach promoted by fellow SharePoint MVP Chris O’Brien.
The idea 101
Chris described the whole idea in his top 5 WCM tips article. Basically it’s pretty simple: create a User Control for [read]. Posted: Tue, Aug 4th '09 |
Inconvenient Content Query Web Part vs. Lookup fields with multiple values
Waldek Mastykarz Content Query Web Part has been around for a while now and has proven to be a great performing and a very flexible content aggregation solution. In spite of its power it has some shortcomings like for example lack of support for Lookup fields with multiple values.
Almost every Web Content Management (WCM) solution I built on top of Microsoft Office SharePoint Server (MOSS) 2007 required using one or more Lookup fields. Comparing to other alternatives like a Choice field, a Lookup field allows us [read]. Posted: Fri, Jul 17th '09 |
Waldek Mastykarz is now Microsoft Certified Professional Developer
Waldek Mastykarz For the last couple of weeks I spent some extra time on learning. I have decided to organize my knowledge and experience and fill in all the gaps.
It’s not bad to learn things through working with them. Theoretical knowledge is not as valuable and useful as real-life experience in my opinion. The downside is however, that if the only thing you’re doing is learning through practice, the odds are high that you will miss some things and not fully benefit of everything that’s already there.
Fo [read]. Posted: Wed, Jul 8th '09 |
Inconvenient Page Title <title> element
Waldek Mastykarz During my last Web Content Management (WCM) project built on top of Microsoft Office SharePoint Server (MOSS) 2007 I noticed that SharePoint was rendering two elements on all pages:
The first title element was the one defined by me in the Master Page. That title element correctly displayed the title of the page using a custom control:
For some reason SharePoint was automatically adding the second – empty title element during the rendering process of the page.
Having two title elements in [read]. Posted: Tue, Jul 7th '09 |
Inconvenient PublishingScheduleControl
Waldek Mastykarz Microsoft Office SharePoint Server (MOSS) 2007 ships with a rich Web Content Management (WCM) System functionality. Among lots of functionality which simplifies managing content on websites, MOSS 2007 allows you to schedule the publication of your Publishing Pages. The process is as simple as enabling versioning, approval and items scheduling on the Pages Library and editing the desired publication and expiration dates on the Publishing Page. Could you imagine that even something as simple as th [read]. Posted: Thu, Jun 25th '09 |
Performance of various methods to retrieve one list item
Waldek Mastykarz A while ago I did some research on performance of various approaches for aggregating data in Microsoft Office SharePoint Server 2007. Back then I have found some interesting results. In the project I’m working on at the moment, I got a slightly different challenge: what is the best way to retrieve one particular list item?
What I already knew
From the previous trials that I did I knew, that using PortalSiteMapProvider is the fastest way to perform data aggregation on MOSS 2007. Whether you wil [read]. Posted: Mon, Jun 22nd '09 |
SharePoint RTE breaks in IE8 when in editing mode
Waldek Mastykarz Since a couple of days I’m working on a brand new Web Content Management solution on MOSS 2007. For the first time I’ve started off using Internet Explorer 8. Considering the changes the IE team has made to the DOM rendering I wasn’t surprised when I saw that some of the SharePoint functionality doesn’t work properly in IE8.
When ’null’ is null goes wrong
For the last couple of days I’ve been developing pieces for the brand new MOSS 2007 WCM solution for one of our customers. I’v [read]. Posted: Sun, Jun 21st '09 |
Templates-based menu control for SharePoint
Waldek Mastykarz Sometimes doing the simplest things turns out to be unnecessary difficult. This is true with SharePoint development in particular. For example: have you ever tried creating a menu control based on a standard Site Map Provider which would render a nested unordered list (UL) and nothing else? I have, and finally have a solution that I’m happy about: a templates-based menu control.
SharePoint and menus
If you ever looked at the out-of-the-box available Master Pages provided with MOSS 2007 you kno [read]. Posted: Tue, Jun 9th '09 |
WCF and SharePoint: context != context
Waldek Mastykarz Recently I got interested in Windows Communication Foundation (WCF) Services and SharePoint. I’ve heard some great stories about how WCF can improve the architecture of your solutions. On the other hand I’ve heard some complaints about how complex the integration with SharePoint is. To keep it short: reason enough to check it out myself.
Hello World
To be honest I haven’t worked with WCF services yet. Somehow the new technology passed me and I didn’t even give it a chance. Recently I stu [read]. Posted: Sun, Jun 7th '09 |
5 Great SharePoint sessions you can’t miss
Waldek Mastykarz Upcoming SDN Event, on June 26 in Houten, the Netherlands, there will be five great SharePoint sessions you cannot miss:
SharePoint Mythbusters: Debunking common SharePoint Farm Misconceptions - Spencer Harbar This interactive session will dive into common SharePoint Farm Myths and discuss common misconceptions around Global Deployments, Farm Topologies, Shared Service Providers, High Availability, Security and more. Alongside best practices for each “myth”, the SharePoint “magic numbers [read]. Posted: Wed, Jun 3rd '09 |
SharePoint BLOB caching issue solved
Waldek Mastykarz A couple of weeks ago Chris O’Brien – fellow MVP wrote an article on the research of the SharePoint BLOB cache he has done. During that research he has experienced some issues with some of the files not being cached properly on the client causing the browser to request the file every single time. As I’m working with Web Content Management solutions on SharePoint a lot, it definitely took my attention.
After spending a few days on it, trying almost every possible solution I thought I’d fo [read]. Posted: Mon, Jun 1st '09 |
DevDays ‘09 Recap
Waldek Mastykarz DevDays ‘09 was an amazing event: nice venue, great content and a lot of great people.
It all started with the PreConf DeepDive: Wouter van Vugt of Code Counsel delivered some great content about SharePoint. He started with an easy to follow introduction on the SharePoint platform and slowly moved towards some more advanced topics. He shared with us some of his development best practices and his cool Entity Pickers code (available on MSDN at http://msdn.microsoft.com/en-us/library/cc8893 [read]. Posted: Sat, May 30th '09 |
DevDays ‘09 day 1
Waldek Mastykarz Today I attended the DevDays ‘09 PreConference – DeepDive. It was a great day full of SharePoint content provided by Wouter van Vugt of Code Counsel. Wouter did absolutely a great job delivering the content. It was a great mix of introduction content, some great undocumented stuff, and bad jokes Wouter-style.
Wouter did a great job presenting his development tools, walking us through his Entity Pickers code and of course covering the ‘How I did it’ on his brand new site that just recentl [read]. Posted: Wed, May 27th '09 |
Using PageAsyncTask to improve the performance of your website
Waldek Mastykarz Once in a while I like to get back to “old stuff”. It allows me to look once again at the things I’ve already done but then from another perspective: between now and then I’ve done a few projects, I’ve read a couple articles/books and spoken to some people. So it’s not surprising that quite often I find some new insights about the subjects I thought were closed. One of such topics was using the PageAsyncTask class to improve the performance of your website.
PageAsyncTask 101
PageAsyn [read]. Posted: Sat, May 23rd '09 |
Ask the Expert @ DevDays ‘09
Waldek Mastykarz I’ve just got a confirmation from Microsoft: Ton Stegeman (MOSS MVP) and I will be on the Ask the Expert booth @ DevDays ‘09. We’ll be there to answer all your SharePoint questions. Looking forward to meet you. See you at the DevDays ‘09!
Technorati Tags: DevDays09,SharePoint,SharePoint 2007,MOSS 2007,WSS 3.0 [read]. Posted: Mon, May 18th '09 |
SharePoint productivity templates for CodeSmith
Waldek Mastykarz For quite some time I have been busy with trying to increase my productivity while working on SharePoint solutions. In the last two years I helped design a couple of tools and developed a few of them myself: all that to simplify the most common tasks and be able to focus on the solution-specific things. Recently I have focused on code generation: based on the information already present either in SharePoint or in your solution generate source code. You can see a part of the results of my efforts [read]. Posted: Sun, May 17th '09 |
Tijdelijk bericht dat wordt gebruikt om het thema te bepalen. (009ff809-c94a-4ccd-ab6a-7f28abff05ed - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
Waldek Mastykarz Dit is een tijdelijk bericht dat niet is verwijderd. Verwijder het handmatig. (fc08eef7-c4a2-43f1-b2c4-84631b4db816 - 3bfe001a-32de-4114-a6b4-4005b770f6d7) [read]. Posted: Fri, May 8th '09 |
Inconvenient opening sites – SPSite.OpenWeb()
Waldek Mastykarz While working with SharePoint I have stumbled upon quite some inconveniences. Most of the time they were in methods that you don’t use that often, and when you do, you expect them to do something else than they actually do. I probably haven’t worked on a single SharePoint project where I wasn’t instantiating sites. So I was quite surprised when I found out that even something as simple as SPSite.OpenWeb doesn’t always do what you would it expect it to.
Recently I got the task to design a [read]. Posted: Sun, May 3rd '09 |
DIWUG meeting upcoming Thursday (May 7)
Waldek Mastykarz Upcoming Thursday (May 7) there will be a Dutch Information Worker User Group (DIWUG) meeting. Two very promising sessions are on the agenda.
First of all Sandra de Ridder of Macaw will discuss the SharePoint User eXperience (UX). She will cover different aspects of the default SharePoint UX and will give us some tips on how the user experience of SharePoint solutions could be improved.
During the second session Maurice Bakker and Jaap Mollema of TamTam will take us for a trip to the world of fu [read]. Posted: Sun, May 3rd '09 |
Generating tag cloud using the Content Query Web Part
Waldek Mastykarz By now you should know how powerful the Content Query Web Part (CQWP) provided with Microsoft Office SharePoint Server (MOSS) 2007 is. If you’ve been following this blog for a while it should be really difficult to surprise you with cool new things you could do with nothing more than the standard CQWP. And yet, I think I make a good chance here: did you know that you can use the standard Content Query Web Part to create a tag cloud?
Tag Clouds and SharePoint
Tag Clouds provide an alternative w [read]. Posted: Fri, Apr 24th '09 |
Generating short description using the Content Query Web Part
Waldek Mastykarz Probably every Web Content Management (WCM) solution out there uses some kind of content aggregation. No matter whether it’s showing the 5 most recent press releases, new job offers or upcoming events: presenting content roll-up to the visitors allows them to get to your content more easily.
If you’re building a WCM solution on top of Microsoft Office SharePoint Server (MOSS) 2007 you are very likely to use the standard Content Query Web Part (CQWP) for that purpose. CQWP is a great performi [read]. Posted: Tue, Apr 21st '09 |
Inconvenient programmatically provisioning Web Part instances
Waldek Mastykarz Back in October last year I started working with programmatically provisioning Web Part instances. The challenging part was that the assemblies containing the Web Parts’ code were located in the bin directory of the target Web Application. The custom STSADM command I was using for that purpose wasn’t able to resolve the Web Part type. Back then I have found a way to deal with it which I though was a working solution. Unfortunately: just last week I have stumbled upon the same situation: agai [read]. Posted: Sat, Apr 18th '09 |
Inconvenient programmatically working with SharePoint users (SPWeb.EnsureUser)
Waldek Mastykarz According to the Windows SharePoint Services (WSS) v3 SDK the SPWeb.EnsureUser(String) method is all you need while programmatically working with users. Using nothing more than the login name it checks for you whether the particular user exists in the current web and adds it if required. Within a single line of code it retrieves for you a proper reference to a user no matter the membership/role provider. While it’s really that simple while working in the scope of your SharePoint Web Applicatio [read]. Posted: Thu, Apr 16th '09 |
Imtech SharePoint Gems: SPUrlExpressionBuilder
Waldek Mastykarz Recently, while working on a SharePoint solution I have rediscovered the SPUrlExpressionBuilder class – one of the many hidden gems of SharePoint 2007. After some research it turned out to be more than the URL tokenizer we know from WSSv3.
SPUrlExpressionBuilder
SPUrlExpressionBuilder aka SPUrl is an Expression Builder shipped with Microsoft Office SharePoint Server (MOSS) 2007. It allows you to build dynamic URL’s using ~-prefixed tokens, like ~Site and ~SiteCollection. Most of you probably [read]. Posted: Tue, Apr 14th '09 |
Export Publishing Pages to Features – Imtech OCD Export Page v1.0.0.0
Waldek Mastykarz Recently I have found that you could actually provision Publishing Pages using the declarative markup of Features. Right after that discovery I have found that you could benefit of that functionality in quite a few scenario’s, like provisioning test content wrapped in Features. The biggest downside against provisioning Publishing Pages would be having to generate the XML manually. To simplify the process I have decided to create a tool which would export the existing Publishing Pages to Featur [read]. Posted: Wed, Apr 8th '09 |
Inconvenient Control Adapters
Waldek Mastykarz Control Adapters are a great way to modify the presentation layer of any control out there: no matter whether it’s sealed or internal. And while they are pretty easy to setup you can find yourself spending a couple of hours if somehow they seem not to be applied…
To modify the presentation of an existing control you need two things: a Control Adapter class which comes in a couple of tastes (check out the System.Web.UI.Adapters and System.Web.UI.WebControls.Adapters namespaces for more detail [read]. Posted: Thu, Apr 2nd '09 |
Remove HTML markup in Content Query Web Part
Waldek Mastykarz How many times have you tried to generate a short preview out of a Rich HTML field using the Content Query Web Part (CQWP)? How many times did you end up making your customers using the Description field instead just because the CQWP doesn’t provide an out of the box mechanism for removing HTML markup? Guess what: it does.
Removing the HTML in the real world
What would you do if someone asked you to remove all HTML from some string in your custom application? Depending on your skills you would [read]. Posted: Wed, Apr 1st '09 |
Inconvenient programmatically exporting Web Parts
Waldek Mastykarz Programmatically provisioning Web Part instances is an important piece of structured and repeatable deployment of SharePoint solutions. Preferably you would like to be able to deploy preconfigured Web Parts at particular places in your SharePoint solution. In order to do that you need two at least things: the target location where do you want to deploy the Web Part instance and the preconfigured Web Part itself. SharePoint Web UI allows you to export Web Parts. While it’s definitely doable to [read]. Posted: Wed, Apr 1st '09 |
AC’s VS CodeRush/Refactor Tools for SharePoint Developers v1.1 Cheat Sheet
Waldek Mastykarz Just recently I started using AC’s Visual Studio CodeRush/Refactor Tools for SharePoint Developers. I know that the AC’s Tools have been there for a while. Somehow I missed them. Lucky for me, just recently I stumbled upon them once again and decided to give them a try and guess what: they are great and they save you a lot of time typing SharePoint XML.
Andrew has put a lot of stuff in there, and while I don’t use all of it, I really appreciate being able to type newguid to generate a GUID [read]. Posted: Wed, Apr 1st '09 |
The First Dutch SharePint: Next Friday
Waldek Mastykarz It’s finally going to happen: the very first SharePint in the Netherlands - SharePoint by day, SharePint by night.
Right after the “SharePoint Day with the Experts: Amsterdam” we’ll all be heading to have some SharePint. There will be a lot of great folks out there: Joel Oleson, Mike Watson (MOSS MVP), Daniel McPherson, Robin Meuré, Ton Stegeman (MOSS MVP) and (last but not least) Marianne van Wanrooij.
If you want to talk about SharePoint or just have a drink with us you should definit [read]. Posted: Tue, Mar 31st '09 |
Did you know: Changing existing Site Definitions is unsupported
Waldek Mastykarz During the last SharePoint Black Belts meeting we talked about deploying of all kinds of things in SharePoint. One of the topics was deploying and updating custom Site Definitions. Did you know that changing existing Site Definitions is unsupported?
Personally I’m using custom Site Definitions quite a lot. Every Web Content Management (WCM) solution I’m working on, is based on a custom Site Definition. It’s either for convenience or a must-have (like a customer who wants to be able to crea [read]. Posted: Thu, Mar 26th '09 |
Provisioning Publishing Pages using Features declarative markup
Waldek Mastykarz SharePoint Features allow you to provision all kinds of assets in a declarative way - we all know that. Using XML you can provision not only branding resources like CSS, JavaScript files and images but also Page Layouts and Master Pages. But did you know that using exactly the same mechanism you can provision Publishing Pages?
If you’re following me on Twitter you probably know that since a couple of weeks I’m working on a brand new Web Content Management (WCM) solution based on Microsoft Of [read]. Posted: Wed, Mar 25th '09 |
Debugging Content Query Web Part
Waldek Mastykarz Content Query Web Part (CQWP) is one of the coolest web parts available out of the box in MOSS 2007. Using nothing more than the standard functionality you can aggregate content available within your Site Collection. Additionally you can extend the CQWP by introducing new XSLT parameters and functions, what allows you to create pretty complex data presentation including paging.
The downside of customizing the CQWP is that it doesn’t present you with sufficient feedback should you have done som [read]. Posted: Tue, Mar 17th '09 |
Inconvenient SPWeb.GetListItem (Exception from HRESULT: 0×80070001)
Waldek Mastykarz SPWeb ships with the GetListItem method which allows you to retrieve a list item using a URL. While in general you would use the SPContext.Current.ListItem property to get the current list item, there are situations when the GetListItem method becomes really useful, like for example getting the current list item with elevated privileges. There is however one confusing thing about the GetListItem method and if you’re not focused enough, you will spend hours trying to figure out what is wrong.
W [read]. Posted: Mon, Mar 16th '09 |
Speaking at “SharePoint Day with the Experts: Amsterdam”
Waldek Mastykarz I will be on the Experts Panel & Q&A on the upcoming “SharePoint Day with the Experts: Amsterdam” event on Friday, April 3rd.
What is it? “SharePoint Day with the Experts: Amsterdam” is an event organized by Quest Software and hosted by Microsoft. It’s a free no-cost seminar and there will be a lot of great content including meeting people who have been involved with SharePoint for years, like Joel Oleson, Mike Watson, Matthijs Hoekstra, Daniel McPherson and Robin Meuré. Check [read]. Posted: Tue, Mar 10th '09 |
SharePoint InstantListFilter
Waldek Mastykarz I’ve just been pinged by Jaap Vossers: he’s published another SharePoint solution which enhances the User Experience – SharePoint InstantListFilter.
SharePoint InstantListFilter allows you to quickly filter a list view in a filter-as-you-type manner. It uses jQuery to hook up the filtering engine, so there is no reload after applying the filter.
Check out SharePoint InstantListFilter by Jaap Vossers @ CodePlex.
Technorati Tags: SharePoint, SharePoint 2007, WSS 3.0, MOSS 2007 [read]. Posted: Tue, Mar 3rd '09 |
AKS v2.0 available soon
Waldek Mastykarz According to the HiSoftware’s press release Accessibility Kit for SharePoint (AKS) v2.0 will soon become publicly available.
Originally planned to Q3 2008 AKS v2.0 was supposed to provide us with some new features improving delivering accessible websites in MOSS 2007 among which XHTML compliancy and a new Accessible Rich Text Editor (aRTE). Unfortunately for some reasons, the release has been delayed until now.
Just recently HiSoftware has announced that AKS v2.0 will soon be publicly availabl [read]. Posted: Thu, Feb 26th '09 |
Speaking at SDN Event March 30, 2009
Waldek Mastykarz I will be speaking at the upcoming SDN Event on March 30 in Driebergen.
Together with my great colleague Erik Schoenmakers I will discuss deploying SharePoint solutions in different environments in a structured and repeatable way. We are going to present what SharePoint offers you to support structured and repeatable deployments and what the different shortcomings are. Then we will give you a little demo of how we have designed a complete development and deployment environment for SharePoint sol [read]. Posted: Sun, Feb 22nd '09 |
SharePoint QuickLaunchExtender
Waldek Mastykarz Via Jaap Vossers: Jaap has pulled it off again. Just recently he created yet another solution which enriches the standard SharePoint UI: introducing the SharePoint QuickLaunchExtender.
SharePoint QuickLaunchExtender extends the standard capabilities of the Quick Launch menu with a couple of new features. First of all you can expand/collapse the different sections. This resembles the Accordion Left Nav Feature by Paul Grenier.
Then you can expand the different sections accordion style:
Last b [read]. Posted: Tue, Feb 17th '09 |
SharePoint People Search – Lessons learned. Part 1: Covering the basics
Waldek Mastykarz For the last couple of days I’ve been working on a facebook solution based on SharePoint People Search. And while you might think that it’s nothing more than configuring and developing for SharePoint, there are quite a few search-specific things I’ve learned in those few days.
First things first
The first thing you are very likely to do while working with a solution based on SharePoint Search is to configure the SharePoint Search Service so that it crawls your content and returns some resu [read]. Posted: Wed, Feb 4th '09 |
SharePoint People Search – Lessons learned. Part 2: Programmatically running search queries
Waldek Mastykarz In the first part of the SharePoint People Search – Lessons learned article we’ve discussed the basics of configuring SharePoint People Search. We have also looked at how it could be used for a facebook solution and what the shortcomings are. In this part we will explore different aspects you are very likely to face while creating a custom facebook solution based on SharePoint People Search.
Introduction
If the standard search functionality provided by SharePoint is insufficient for your req [read]. Posted: Wed, Feb 4th '09 |
SharePoint Dispose Checker Tool (SPDisposeCheck) available now!
Waldek Mastykarz SharePoint Dispose Checker Tool aka SPDisposeCheck is finally available! You can download it from MSDN Code Gallery @ http://code.msdn.microsoft.com/SPDisposeCheck.
SPDisposeCheck is a tool to help you to check your assemblies that use the SharePoint API so that you can build better code. It provides assistance in correctly disposing of certain SharePoint objects to help you follow published best practice. This tool may not show all memory leaks in your code. Further investigation is advised if [read]. Posted: Thu, Jan 29th '09 |
SharePoint mobile-friendly interface (Imtech Mobile SharePoint)
Waldek Mastykarz SharePoint 2007 ships with a mobile-friendly interface. In the past few years the usage of mobile devices has grown tremendously. It is then not surprising that the SharePoint team has provided a mobile-friendly interface for accessing data stored in SharePoint. Unfortunately the standard SharePoint mobile interface is far from perfect and maybe even far from useful.
It’s not Black & White
SharePoint’s Web UI is richly loaded with bulky html, images, cascading style sheets and JavaScript [read]. Posted: Thu, Jan 29th '09 |
Get to the on-line SharePoint SDK with one click (MSDN bookmarklet)
Waldek Mastykarz While developing custom SharePoint solutions there is a big chance you need to look into the SharePoint SDK on regular. To keep off continuously surfing to the on-line reference, the SharePoint Team have provided us with the compiled CHM files. I admit that the off-line help files do simplify finding the information on a particular class, method or property. They have however two serious flaws: the content is outdated and there is no community content included in the off-line SDK.
What’s the p [read]. Posted: Tue, Jan 27th '09 |
Programmatically deleting list items/documents with Recycle Bin support
Waldek Mastykarz If you delete a document in SharePoint 2007 using the User Interface, it’s being moved to the Recycle Bin, so that it can be restored if necessary. There are situations when you want to include deleting list items and documents in your custom solutions. The most commonly used approach I’ve seen is calling the SPListItem.Delete() method. While this does the job, and deletes the item, it deletes it permanently instead of moving to the Recycle Bin.
Looking carefully at the SPListItem class, you [read]. Posted: Tue, Jan 27th '09 |
Quote of the Day Web Part, Reprised – Part 2
Waldek Mastykarz [Via EndUserSharePoint.com] In the previous article we’ve discussed all the different ingredients of the Quote of the Day Web Part. Additionally we have created the basics to retrieve quotes from a list and display them on the page. In Part 2 of the article I revise the mechanism for retrieving random quote of the day.
Check out the full article Quote of the Day Web Part, Reprise – Part 2 at EndUserSharePoint.com.
Technorati Tags: SharePoint, SharePoint 2007, WSS 3.0, MOSS 2007, JavaScript, [read]. Posted: Fri, Jan 16th '09 |
10 development-related things I’d love to see in SharePoint vNext
Waldek Mastykarz In my previous post I’ve shared with you 5 experience-related things I’d love to see in SharePoint vNext. Now it’s time for Part #2: Development – the things I deal with every day.
Less internal code
The object model of both WSS 3.0 and MOSS 2007 is very powerful. It allows us – developers to do cool things with SharePoint and build some great solutions on top of it. While the solutions you could build are virtually unlimited, their viability and scalability isn’t. At the end of the [read]. Posted: Wed, Jan 14th '09 |
Quote of the Day Web Part, Reprised – Part 1
Waldek Mastykarz [Via EndUserSharePoint.com] In March, Mark Miller of EndUserSharePoint.com (EUSP) has created a Quote of the Day web part. And while it has been downloaded and installed on many sites, it has one shortcoming: you had to edit the web part’s code to manage the quotes. Recently Mark asked me whether it would be possible to do something about it, to make the web part more end-user friendly.
I came up with an idea to base the Quote of the Day Web Part on the standard List View Web Part. Sounds inte [read]. Posted: Mon, Jan 12th '09 |
Imtech SEO Slugs Live Writer Plugin v1.1.0
Waldek Mastykarz Almost half a year ago I’ve release the first version of the Imtech SEO Slugs Windows Live Writer Plugin. Using the selected text the plugin generates a Search Engine Optimized slug for your post by removing all the noise words. By default slugs are being generated using the post’s title which usually doesn’t contain any HTML markup. There might be situations however when you would like to generate a slug using some text in the body instead.
The initial version of the plugin couldn’t dea [read]. Posted: Mon, Jan 12th '09 |
5 experience-related things I’d love to see in SharePoint vNext
Waldek Mastykarz It’s more than two years since the last version of SharePoint has been released. Comparing to SPS 2003, MOSS 2007 brought us a very rich environment with tons of new features. As we all might expect, the SharePoint product team is really busy with the new version of SharePoint and I assume that many of us can’t wait to get their hands on it. Looking at the calendar however, it’s probably going to be at least the end of this year until the public release of the new version of SharePoint wil [read]. Posted: Fri, Jan 9th '09 |
A SharePoint solution looking for a problem – the focused href
Waldek Mastykarz [Cross-posted from EndUserSharePoint.com] Recently I’ve been playing around with jQuery and some other JavaScript-based interface interactions. And so a couple of days ago I came up with another idea: the focused href.
The idea is simple: you are looking on a large content page in SharePoint: procedure document, article, Wiki, etc. You are particularly interested in one piece of text on that page which you would like to share with your team. How to let them know which part do you exactly mean? [read]. Posted: Tue, Jan 6th '09 |
I’m a SharePoint Server MVP
Waldek Mastykarz I’ve just received an e-mail telling me that I have received the Microsoft Most Valuable Professional (MVP) award for my contributions to the SharePoint community. It is a great honor to me and I would like to thank everyone who contributed to my nomination but also all my colleagues and readers of my blog who provide me with new challenges every single day: Thank you!
I’m really looking forward to all the new engagements both the MVP Award and the New Year 2009 will bring. I hope it will al [read]. Posted: Thu, Jan 1st '09 |
Programmatically creating Variation Hierarchies in SharePoint 2007
Waldek Mastykarz Scripting deployment of SharePoint 2007 solutions gives you numerous benefits. Not only you will be able to deploy your work in a structured and repeatable manner but it also saves you tons of time which you would otherwise spend on configuring the solution in different environments over and over again. If you’re going to automate your deployment process, you would preferably want to script it all, leaving no manual steps at all. Unfortunately it’s not always possible as both WSS and MOSS te [read]. Posted: Thu, Jan 1st '09 |
Change the WSPBuilder DeploymentTarget to WebApplication
Waldek Mastykarz By default WSPBuilder builds solutions with the DeploymentTarget attribute set to GlobalAssemblyCache. All assemblies provisioned by the solution will be deployed to the Global Assembly Cache (GAC) of the target web server which might not always be desirable/doable. There are a couple of ways of how to change the DeploymentTarget to the bin directory of the target Web Application.
One way of changing the WSPBuilder’s default behavior is using the WSPBuilder.exe.config file. Changing the value [read]. Posted: Tue, Dec 30th '08 |
Excluding empty text values in SharePoint Search
Waldek Mastykarz Last week I got an opportunity to work with SharePoint Search. As you could imagine it didn’t go that easy at all and to be honest the SQL-like statements didn’t make it for me at all. And unless I’ve seriously missed something, I’ve found out that there is no easy way to exclude empty text results in SharePoint Search. At least it seemed so…
In my case I’ve had a MultiLookup field (Tags) attached to some Content Types. What I wanted to achieve is to obtain a list of all tags and the [read]. Posted: Tue, Dec 30th '08 |
tryGetValue in JavaScript
Waldek Mastykarz Recently, while working on a new JavaScript mockup I’ve noticed that JavaScript lacks a decent support for retrieving values of object properties. Constantly checking whether both object and property makes the code almost unreadable. But isn’t there a better to get the values of object properties and keep the JavaScript code to the minimum?
Let’s look at the following example:
var options = {
filter: true,
defaultText: "Lorem ipsum",
multiList: false
};
The options variable is an object [read]. Posted: Tue, Dec 30th '08 |
jQuery :regex filter
Waldek Mastykarz jQuery is a powerful library which simplifies working with JavaScript. Using CSS-like selectors it allows you to grab DOM elements on a page and run some operations on it. As you might’ve guessed the power is not only in what kind of operations you may perform but also how efficiently you are able to select the elements that you’re interested in. jQuery ships with quite a few filters among which Content Filters: selectors which allow you to select DOM elements based on the text they contain. [read]. Posted: Tue, Dec 30th '08 |
Imtech Fields Explorer Visual Studio 2008 plugin
Waldek Mastykarz For the last couple of weeks we’ve been thinking here at Imtech ICT Velocity about how we could improve our SharePoint development process. During the last year we have gathered a lot of different tools which help us to automate the routine. And while they all are definitely very useful, they make the development environment quite complex. Maybe even too complex. One of the improvements we thought about was integrating all these different tools we have made into Visual Studio. Imtech Fields Ex [read]. Posted: Mon, Dec 22nd '08 |
SharePoint InlineSiteSettings
Waldek Mastykarz Via Jaap Vossers: Recently I’ve been pinged about a new SharePoint project on CodePlex called SharePoint InlineSiteSettings. What is does is to display the links to all Site Settings on the front-end saving you at least two clicks:
SharePoint InlineSiteSettings is a great alternative to SharePoint Developer Bookmarklets. While the bookmarklets depend on JavaScript to get the right data, SharePoint InlineSiteSettings provides a server-side control. Just like the bookmarklets, SharePoint Inlin [read]. Posted: Mon, Dec 22nd '08 |
See IDs of all available Site Definitions
Waldek Mastykarz While working on SharePoint solutions once in a while you need to create custom Site Definitions. It’s not easy to work with Site Definitions: they can easily get very complex and are almost impossible to debug. Unfortunately there are situations when you cannot avoid using custom Site Definitions. Is there anything we could do to make it easier to work with Site Definitions?
One of the things you really have to be careful about is defining the ID of a Site Definition. According to the Windows [read]. Posted: Thu, Dec 18th '08 |
Improving the SharePoint print experience
Waldek Mastykarz Via EndUserSharePoint.com: The ability to print web pages has been available for years. Comparing it to the transition that most browsers have gone through, there is very little that has changed about how web pages are printed. While moving the digital version of a page to its paper equivalent, important information is not accessible to the print job. Luckily you can quite easily provide your visitors with a richer printing experience using no more than a couple of lines of JavaScript.
Check out [read]. Posted: Thu, Dec 18th '08 |
Images slideshow in SharePoint 2007 using jQuery
Waldek Mastykarz Yesterday I published an article with an example on how you can display a random image in SharePoint 2007 using jQuery. With only a couple of lines of JavaScript you can pick a random image from an Image Library and display it on a page. But did you actually know that with a little more effort you can create your own images slideshow?
Images slideshow: the ingredients
Just like in the previous example, let’s start with creating an Image Library, adding some pictures and adding the Images List [read]. Posted: Wed, Dec 17th '08 |
Improve your jQuery
Waldek Mastykarz jQuery has been out there for a while now. Many web developers use it thanks to its simplicity. But because you can use it intuitively there is a chance you might overuse it. Because not all browsers out there can easily deal with lots of JavaScript your enhancements might decrease the user experience – definitely the opposite of what you wanted. So how can you avoid it?
If you’re into jQuery you should definitely check out Jon’s article: Improve your jQuery – 25 excellent tips. These ti [read]. Posted: Wed, Dec 17th '08 |
Showing random images in SharePoint 2007 using jQuery
Waldek Mastykarz If you’ve been following my blog you know that a bit more than a year ago I’ve published the Imtech Random Image Web Part: a SharePoint web part which allows you to display random images from a list of your choice. The web part I’ve made contains some code which you would have to deploy it in your SharePoint environment to get it working. Did you actually know that you can create the same functionality using no more than a couple of lines of JavaScript and no server-side code at all?
Showi [read]. Posted: Tue, Dec 16th '08 |
jQuery :random filter
Waldek Mastykarz While working on a new JavaScript mockup I needed a way to obtain a random jQuery item. While I could use jQuery(“selector”).get(int) to get a random item, I wanted to have a cleaner way of doing that to keep my code clean.
jQuery ships with great support for extensibility. You can not only extend jQuery with custom functions but filters as well. That is when I thought of the custom “:random” filter, just as you have the standard “:first”, “:last” and “:nth” filters.
Is jQuer [read]. Posted: Tue, Dec 16th '08 |
Getting values of internal properties in SharePoint 2007
Waldek Mastykarz SharePoint has a lot of gold under the hood. Unfortunately for us – developers not all of it is publicly available. Some methods/properties are marked as internal what makes it impossible for us to use is custom functionality we’re developing. But do you really develop your own alternatives or is there a way to get to those gems after all?
GroupedItemPicker – almost unusable?
One of the examples of the situation I’ve described above is the GroupedItemPicker- a list control which allows [read]. Posted: Tue, Dec 16th '08 |
Is it a good idea to use lambda expressions for querying SharePoint data?
Waldek Mastykarz .NET 3x ships with a number of new features among which lambda expressions: an easy way to write code for querying collections. Because of its ease of use many developers use it for retrieving data from different kind of collections. Just recently I’ve been asked to have a look how well lambda expressions perform while retrieving data from SharePoint comparing to SharePoint native mechanisms.
Before you read further…
Keep in mind that lambda expressions are nothing else than a fancy way of w [read]. Posted: Tue, Dec 9th '08 |
RenderAllHiddenFieldsAtTopOfForm – is it really a SEO solution?
Waldek Mastykarz Yesterday I’ve found out about one of the new features of .NET 3.5 SP1: the renderAllHiddenFieldsAtTopOfForm setting which allows you to control where in the page the hidden fields are being rendered. Today I gave it a shot in combination with a SharePoint Web Content Management solution…
The RenderAllHiddenFieldsAtTopOfForm has been added to the .NET framework as a solution for some postback related problems when users would trigger the postback before the page was fully rendered.
Steve Smi [read]. Posted: Sun, Dec 7th '08 |
Optimize your Internet facing sites in SharePoint for search engines using out of the box functionality
Waldek Mastykarz .NET 3.5 SP1 ships with some extra functionality which allows you to optimize your ASP.NET pages for search engines. Basically it means less hacking and more control about the generated markup.
Steve Smith has just posted an article about using standard ASP.NET functionality to optimize ASP.NET pages for search engines. Steve wrote that .NET 3.5 SP1 allows you to control where in the page the ASP.NET hidden fields (eg. __VIEWSTATE) are being rendered: at the top or at the bottom of the HTML body [read]. Posted: Sat, Dec 6th '08 |
CodePlex Downloads Gadget update
Waldek Mastykarz Recently the CodePlex Team has updated the GUI of the whole site. Because of some minor changes in the layout the CodePlex Downloads Gadget stopped working and turned into:
Today I’ve provided a fix which works with the updated version of the CodePlex Release pages. Additionally I’ve added the ability to forcibly reload the statistics by double clicking on the gadget’s surface.
Download: CodePlex Downloads Gadget v1.3.0.0 (48K)
Technorati Tags: CodePlex, Vista, Gadgets [read]. Posted: Sat, Nov 22nd '08 |
JavaScript date formatting .NET style
Waldek Mastykarz It’s quite surprising for a .NET developer to see that JavaScript doesn’t provide any mechanism to format dates. Considering how powerful JavaScript is, especially in environments where custom development is limited or not allowed, you can provide some great experience using JavaScript only. But just because something isn’t there out of the box, it doesn’t mean we can’t make it ourselves.
While working on a new project I’ve found that it would be actually great to be able to format d [read]. Posted: Fri, Nov 21st '08 |
Let me google that for you
Waldek Mastykarz Getting tired of answering questions like: “What is SharePoint?” and “How can I create a Feature in SharePoint?”. Start answering: “Let me google that for you”
Technorati Tags: Google [read]. Posted: Thu, Nov 20th '08 |
Site Collection and Variation relative URLs in Office SharePoint Server 2007
Waldek Mastykarz Microsoft Office SharePoint Server (MOSS) 2007 provides architecture for designing and developing scalable solutions. Two of these concepts are Site Collections for separating information and Variations for delivering multilingual solution. While working with both concepts – especially in Web Content Management (WCM) solutions I have found out that there is no easy way to create Site Collection or Variation relative links.
SPSite.ServerRelativeUrl != /
Per definition SharePoint allows you to c [read]. Posted: Thu, Nov 20th '08 |
A better way to obtain objects from cache
Waldek Mastykarz Last week I have posted a better approach to getting field values from an SPListItem. Today I’ve found out that you can actually use almost the same approach to get stuff from the ASP.NET cache.
Once again it’s an extension method which can be used in an intuitive way. The only difference is the type of the key: while getting a field value we’ve been using a GUID and now we’re using a string.
Using the above method you can now easily obtain various items from the cache in a type-safe m [read]. Posted: Wed, Nov 19th '08 |
“Search on this Page” using jQuery
Waldek Mastykarz Every modern browser provides the ability to search for text within a page. In most cases that functionality is underserved and allows you to find only one instance of the text at a time. Google Chrome recently presented improved version of search which searches for the given text as you type and highlights all instances found on the current page. But wait a minute: is this functionality limited to Google Chrome only?
Check out my article @ End User SharePoint.com: “Search on this Page” usin [read]. Posted: Mon, Nov 17th '08 |
Why tables for layout is stupid?
Waldek Mastykarz Yesterday I asked you a question: should I use tables for layout? In 99% cases the right answer is of course ‘No’ and in 1% ‘It depends’. In case you’re surrounded by a bunch of guys still stuck to the tables, I’ve found a great resource which might help you explain it to them: Why tables for layout is stupid?
Technorati Tags: Webdesign [read]. Posted: Thu, Nov 13th '08 |
How to retrieve the contents of a file in SharePoint no matter its location?
Waldek Mastykarz Imagine you want to retrieve the contents of a non-binary (text, CSS, XSL, etc.) file stored in SharePoint 2007 and all you know about that file is its location (URL). How would you do it?
The answer is way simpler than you might think: SPWeb.GetFileAsString(string) allows you to obtain the contents of the file at the given URL. But that’s not all. Using SPContext.Current.Site.RootWeb.GetFileAsString you can obtain even files which are stored in subwebs! Now isn’t that just cool?!
Technorati [read]. Posted: Thu, Nov 13th '08 |
Google Search Engine Optimization Starter Guide and SharePoint 2007
Waldek Mastykarz As announced earlier this morning, Google has published the Search Engine Optimization Starter Guide: a set of good practices which can help you get the most of your website. Having it read with my SharePoint 2007 developer hat on a couple of things took my attention in particular.
Writing meaningful titles
Creating meaningful titles tells both the search engine and the visitor what the page is about. It identifies that particular page in fact. According to Google you should try to create accura [read]. Posted: Thu, Nov 13th '08 |
Google Search Engine Optimization Starter Guide
Waldek Mastykarz To simplify the process of optimizing websites for search engines, Google has published yesterday the Search Engine Optimization Starter Guide. Although this is the first time that Google publishes such document, the guide contains many different practices which should help you get the most of your site and reach your audience. You should definitely check it out no matter if you are a developer, a designer or a content author. As long as you have anything to do with web technologies, the guide a [read]. Posted: Thu, Nov 13th '08 |
Microsoft SharePoint Team help solve the problem of disposable objects
Waldek Mastykarz The SharePoint team has just announced that they are working on a tool which will help SharePoint developers to deal with disposable objects in custom code. SPDisposeCheck – as the tool is called, will check custom compiled assemblies and validate them against the Microsoft guidance.
I definitely like the idea of having an extra piece of software just to be sure that I do everything okay. It would be cool if it would end up as a kind of intellisense in Visual Studio so that we can get the feed [read]. Posted: Wed, Nov 12th '08 |
A better way to obtain fields values of an SPListItem
Waldek Mastykarz Obtaining the value of a particular field (SPField) of a list item (SPListItem) is quite awkward. First of all you have to pass either the index, Id or the InternalName of an existing field. If the field exists a value of the object type is being returned. In some cases that value can be null. If it’s not you can cast it to its origin type as in most cases defined by the SPField.FieldValueType Property. Imagine doing all that each time you want to retrieve a field value. Isn’t there a better [read]. Posted: Wed, Nov 12th '08 |
Should I use tables for layout?
Waldek Mastykarz I’ve just stumbled upon a new campaign called: “Give up and use tables”. Two guys: Todd A and Brian Matthews seem to be tired of wasting their time on making things work CSS. Instead they suggest using tables and even offer to provide you with the HTML code you need. To make it even better they provide a little app: a counter which measures how much time you already spent on making CSS work. Should you really be using tables for layout?
Tables for layouts
Probably right when CSS became mor [read]. Posted: Wed, Nov 12th '08 |
Imtech SpriteGenerator binaries posted
Waldek Mastykarz I’ve just noticed that while creating the release for the Imtech SpriteGenerator the binaries haven’t been uploaded. I’ve just fixed it by adding the executables to the existing release. Check out Imtech SpriteGenerator @ http://www.codeplex.com/tmt/Release/ProjectReleases.aspx?ReleaseId=19270 [read]. Posted: Tue, Nov 11th '08 |
Wikipedia has the most valuable SharePoint resources
Waldek Mastykarz According to Microsoft Live Search it is neither the WSS or MOSS team nor the SharePoint MVP's that provide the most useful information on SharePoint. Looking for websites about SharePoint which provide RSS feeds Microsoft Live Search returns Wikipedia on the first place.
Technorati Tags: SharePoint, SharePoint 2007, Live Search, Wikipedia [read]. Posted: Tue, Nov 11th '08 |
Paging large content in SharePoint using jQuery
Waldek Mastykarz Recently I’ve stumbled upon an interesting challenge on the Microsoft SharePoint Forums: how to automatically page the content of a large Publishing Page? And while I came up with a plausible solution quite quickly I have decided to make it work as well.
The case
Imagine you had a Publishing Page with a large chunk of content in the body (PublishingPageContent field for example). While you might just throw it to the users/visitors to read in one piece, it’s definitely much neater to split th [read]. Posted: Tue, Nov 11th '08 |
Generating CSS sprites using Imtech SpriteGenerator
Waldek Mastykarz Using CSS sprites is one of the known methods for improving performance of a website. By minimizing the number of requests the web pages load faster. Creating sprites manually is quite difficult: you not only have to put the sprite together but have to manually create the stylesheet to actually use the sprite as well. Imtech SpriteGenerator simplifies working with by generating a sprite out of a directory with images and creating a CSS for all the pieces as well.
Introducing Imtech SpriteGenerat [read]. Posted: Mon, Nov 10th '08 |
Visual Studio 2008 doesn’t display XML files with the UTF-16 encoding
Waldek Mastykarz Recently, while working on a new tool for converting XML files using XSLT I have noticed something odd: Visual Studio (VS) 2008 wouldn’t display the contents of the converted XML files!
It’s not the first time that I’ve been working with XML and XSLT in .NET. I really like XML, and I use it for many purposes: from storing configuration data for applications to returning raw data so it can be presented using XSLT. XML is really really great. But what would keep Visual Studio 2008 from displ [read]. Posted: Sun, Nov 9th '08 |
WCAG 2.0: Preparing for tomorrow
Waldek Mastykarz Via Roger Johansson: Web Accessibility Initiative (WAI) has been working on the new version of the Web Content Accessibility Guidelines (WCAG) for a couple of years now. Just recently the WCAG 2.0 version has advanced to the W3C Proposed Recommendation status. To simplify the migration process WAI has posted some documentation. Check out Roger’s article Going from WCAG 1.0 to WCAG 2.0 for more information.
Technorati Tags: WCAG, WCAG 2.0, WAI, Accessibility [read]. Posted: Fri, Nov 7th '08 |
Provisioning Content Query Web Part querying subsites in a structured and repeatable way
Waldek Mastykarz Today, while working on a brand new SharePoint Web Content Management (WCM) solution, I’ve faced quite a challenge: I needed to provision a Content Query Web Part (CQWP) which would query subsites of the current site using a custom Site Definition. Each time user would create a site using that Site Definition, he would get on the home page an aggregation of the content from all underlying sites. It’s more challenging than it sounds and you won’t know it unless you had to do it yourself onc [read]. Posted: Wed, Nov 5th '08 |
SharePoint developer bookmarklets updated
Waldek Mastykarz SharePoint developer bookmarklets got updated: 87 bookmarklets to get you as quickly as possible to the most frequently used SharePoint functionality. Get the latest version now and save time for the cool stuff instead of clicking around.
Today I’ve posted a major update of the SharePoint developer bookmarklets. I’ve added quite some new links: at the moment there are 87 different links to help you get to various options as soon as possible.
I’ve been using the bookmarklets for a couple of [read]. Posted: Tue, Nov 4th '08 |
Provisioning subclassed Content Query Web Part using Gary Lapointe’s setwebpartstate stsadm command
Waldek Mastykarz Stsadm is highly extensible and Gary Lapointe is one of the guys who could tell you everything about it. In order to support the deployment and administration of SharePoint solutions, Gary has created more than 130 custom STSADM commands. One of them – setwebpartstate has recently took my attention. I kept getting errors while importing a subclassed Content Query Web Part (CQWP) – until now…
Back in August 2007 Gary Lapointe has noticed that STSADM lacks functionality he needed for his pro [read]. Posted: Fri, Oct 24th '08 |
Optimize your images and save the bits for later
Waldek Mastykarz There are many different ways of optimizing the performance of your website. While many developers tend to look for the troubles inside their code, there are some things that designers can do to make a website load faster.
There are many good image editing tools that allow us to get the best visual result for a certain file size but "under the hood" a lot more optimization can be done
Recently I stumbled on smush it! – new service which can help you decrease the load time of your website. smu [read]. Posted: Thu, Oct 23rd '08 |
New generation of web forms or a design stunt?
Waldek Mastykarz Huffduffer has come with a quite interesting sign up form. Does it represent a new generation of web forms or is it nothing more than a design stunt?
The sign up form @ huffduffer.com resembles a traditional paper-form we’ve seen for years: some text with gaps to fill-in to provide the requested information. It’s actually the first time that I see something similar on the web. But will that case trigger a new revolution or is it just a design mockup that we’ll never see again?
I really lik [read]. Posted: Thu, Oct 23rd '08 |
Localizing Content Query Web Part XSL templates
Waldek Mastykarz It’s great to know that the Content Query Web Part (CQWP) is there whenever you need to provide a roll up of some content. Delivering a solution of similar experience, possibilities and flexibility would be really time consuming. Unfortunately there are still some things inside the CQWP which could be improved. Let’s take for example localizing the XSL used for data presentation: do we really have to create a different template for every language or is there a better way?
The truth behind va [read]. Posted: Mon, Oct 20th '08 |
Alternative display order in Content Query Web Part
Waldek Mastykarz Content Query Web Part (CQWP) is a great solution for content aggregation: not only thanks to its high performance but to the XSLT-based output rendering as well. And while XSLT is very powerful, many beginning SharePoint developers experience it as an obstacle and are more likely to provide custom aggregation solutions instead of using the standard components provided with SharePoint. In this article you will find out how you can alter the standard display order of the aggregated content using [read]. Posted: Thu, Oct 16th '08 |
Generating list instances XML using Imtech ListInstance Generator
Waldek Mastykarz This week I learned the hard way that the FeatureId attribute of the ListInstance element must contain the ID (GUID) of the Feature which has provisioned the particular List Definition. Although I’ve provisioned lists using Features dozens of times, this one sneaked up on me and took me more than an hour to figure out. To prevent it from happening ever again I’ve decided to create a tool which would make working with ListInstance element even easier.
Introducing Imtech ListInstance Generator [read]. Posted: Fri, Oct 10th '08 |
Setting the right value of the FeatureId attribute for ListInstance
Waldek Mastykarz Setting the correct value for the FeatureId attribute of the ListInstance element is just one of things you can easily overlook on a sunny Friday afternoon when your mind is already enjoying the weekend. It’s like forgetting to read the small letters underneath a contract you’re about to sign: it seems like it all is going to be okay but at the end of the day you’ll be in troubles.
When provisioning list instances using Features you must provide the ID of the Feature associated with the pa [read]. Posted: Fri, Oct 10th '08 |
This is a test
Waldek Mastykarz [read]. Posted: Tue, Oct 7th '08 |
Improving performance of SharePoint solutions by using Cache and CacheDependency
Waldek Mastykarz Recently I noticed that the customers ask for more control about the custom SharePoint solutions we deliver. They not only want to be able to customize general SharePoint settings which determine the working of the solution but they want to be able to configure various custom controls as well. Storing custom settings in a list provides the power users a nice interface, yet retrieving these values for each single request is very likely to decrease the overall performance. Is it then a battle betw [read]. Posted: Mon, Oct 6th '08 |
Best Practices to create designer friendly server controls
Waldek Mastykarz SharePoint 2007 is a really great application development framework. While the framework is rich and contains plenty of controls which can be incorporated in the custom solutions, there are quite often situations when you need to create custom controls. Most of the time the developers and consultants focus on the functionality, forgetting that, depending on the solution, the customer might require to be able to use the custom controls in SharePoint Designer (SPD). It turns out that making the cu [read]. Posted: Sat, Oct 4th '08 |
Why using the Minimal SharePoint Master Page is a bad idea?
Waldek Mastykarz Branding Office SharePoint Server 2007 Web Content Management solutions reaches beyond development and is done in most scenarios by webdesigners. Once done the templates are being sliced into pieces and incorporated in SharePoint. To simplify the work, SharePoint community has created a Minimal Master Page: a template which contains all the elements required by SharePoint. Just recently I have noticed that using that template for branding is rather harmful and can lead to even more problems inst [read]. Posted: Mon, Sep 29th '08 |
Extending Content Query Web Part XSLT with custom functions
Waldek Mastykarz Earlier this month I wrote that SharePoint developers working with the Content Query Web Part (CQWP) are provided a mechanism to extend the information available in the XSLT transformations. While exploring the CQWP even further I found out that you could create custom XSLT functions as well! Can you imagine the possibilities?
It's probably a common knowledge by now, that the CQWP uses XSLT for creating the presentation layer for the queried data. The default set of the functions provided w [read]. Posted: Sat, Sep 27th '08 |
SharePoint development toolkit
Waldek Mastykarz If you've been following my Facebook updates, you probably noticed that I started working on a brand new SharePoint Web Content Management (WCM) solution. Just to prevent myself from from any dependencies whatsoever I have decided to use a brand new development environment. I've been developing for SharePoint for more than a year and a half now and I got really surprised seeing how many different tools I'm using while developing SharePoint solutions to simplify the process.
The En [read]. Posted: Tue, Sep 16th '08 |
Generate Page Layouts using Imtech Fields Explorer
Waldek Mastykarz A couple of weeks ago I have added some new functionality to the Imtech Fields Explorer: generating wrapper classes allowing you to work with Site Columns and Content Types in an intuitive way. Just when I thought that it couldn't get any better I thought of something new: how about generating Page Layouts?!
We all know the ability of SharePoint Designer to read the information from the chosen Content Type and provide a list of the available fields which can be dragged & dropped onto a [read]. Posted: Tue, Sep 16th '08 |
Inconvenient provisioning of Content Query Web Part instances
Waldek Mastykarz Some time ago I wrote about provisioning instances of Content Query Web Part (CQWP) in a structured and repeatable way. Just recently I have found out that there is one very important thing you have to be aware of, if you don't want to break the deployment process.
Back in June I provided you with a way to imitate the context required to provision a CQWP. Such context would consist of the minimal information required by the Content Query Web Part - the reference to the current site. In most [read]. Posted: Mon, Sep 15th '08 |
SharePoint blogs RSS feeds aggregation back on-line
Waldek Mastykarz It took me a bit to make it up and running correctly, but here it is: the aggregation of SharePoint blogs RSS is available again!
Right after I published the first aggregation I got notified that there was an aggregation of SharePoint MVPs' blogs already available. While I'm trying to follow the SharePoint scene, I have definitely missed that one. In case you didn't know it either, check out the post by Lawrence Liu at Microsoft SharePoint Team Blog: New aggregated feeds for Share [read]. Posted: Tue, Sep 9th '08 |
Best SharePoint blogs RSS feeds aggregation
Waldek Mastykarz The day that Joel Oleson has published his top 100 SharePoint blogs list, I thought that it would be great to have an aggregated RSS feed of the best SharePoint blogs on the Internet. And while it's nearly 4 months since Joel published his list, I haven't had a chance to make it work until today: I present to you the aggregated feed of the best SharePoint blogs on the Internet.
Instead of using a custom solution I have decided to use the Yahoo Pipes to do the job. Using an example aggr [read]. Posted: Sun, Sep 7th '08 |
Innovation Matters is now member of 9rules
Waldek Mastykarz The list of the new sites accepted by 9rules Network has just been published. I'm really proud to share with you that my blog has been accepted to become a member of the 9rules Network!
9rules has been there since 2003 presenting some of the greatest content on the Web. Having my blog accepted as a part of the same network which shares the content of some great bloggers like Roger Johansson, Jonathan Snook and Robert Nyman.
While there are a lot of very good blogs in the SharePoint communit [read]. Posted: Wed, Sep 3rd '08 |
Extending Content Query Web Part with custom data
Waldek Mastykarz Have you ever found yourself in a situation when you were working with the Content Query Web Part (CQWP) and you wished it could provide you with some more information? While many SharePoint developers create they custom aggregation solutions you should know better than that. Content Query Web Part can provide you with almost any kind of information that you need and all that with only a few lines of code!
The Content Query Web Part provided with MOSS 2007 is probably the best performing content [read]. Posted: Tue, Sep 2nd '08 |
Optimize Publishing Pages for search engines using the Imtech SharePoint SEO Slugs Feature
Waldek Mastykarz Recently I have made a Live Writer plugin which helps you create search engines optimized names for your blog posts (slugs). While I was working on a new MOSS 2007 Web Content Management (WCM) solution I have noticed that the standard page names generated by SharePoint while creating Publishing Pages can be optimized for better findability.
How MOSS 2007 deals with slugs
While creating a new Publishing Page the first thing you do is to enter the title. Based on your input SharePoint automaticall [read]. Posted: Tue, Sep 2nd '08 |
SharePoint 2007 Web Services are missing DISCO and WSDL files
Waldek Mastykarz While working on new functionality for Imtech Fields Explorer I have noticed that there are Web Services in SharePoint 2007 which are missing the DISCO and the WSDL files. If you ever tried to attach a web reference to such Web Service you know that it will fail. While you might think that it's impossible, I have found a way of creating a WSDL file for an existing Web Service.
One of the SharePoint 2007 Web Services which is missing the WSDL file is the SharePointPublishingToolboxService wh [read]. Posted: Fri, Aug 29th '08 |
Including Welcome Pages in the search scope in SharePoint Web Content Management solutions
Waldek Mastykarz When using SharePoint search in a Web Content Management (WCM) solution you are very likely to create your scope which will include Publishing Pages only. As other pages like Application Pages and Lists' Forms are not accessible by anonymous visitors you don't want them to appear in the search results on the public site. While creating what I call a 'public scope' is rather straight-forward there is one thing you have to keep in mind to make it work as expected.
To create a s [read]. Posted: Wed, Aug 27th '08 |
How to reset the Windows Live Writer language to English
Waldek Mastykarz Via Myo Kyaw Htun.com: after installing the Windows Live Writer for the first time I thought that I missed some options when the interface turned to be in Dutch. While working on a Live Writer plugin, I have stumbled upon an interesting article about the interface language in Windows Live Writer. Myo Kyaw Htun describes the problem and provides an easy step-by-step solution on how to change the Live Writer interface language to English. Read: How to reset regional language to English in Windows [read]. Posted: Tue, Aug 26th '08 |
Generate search engine optimized slugs for your blog posts (Live Writer Plugin)
Waldek Mastykarz Search engine optimized titles, headers and URL's are very important if you want your articles to score high in the natural search results. While you definitely need to take your time while crafting the first two, let the Imtech SEO Slugs Live Writer Plugin help with the slugs.
Imtech SEO Slugs Live Writer Plugin creates an optimized slug for your blog post of any phrase chosen by you. In most cases you will use the post title to generate a slug but you can pick any other phrase as well.
[read]. Posted: Tue, Aug 26th '08 |
Imtech Fields Explorer v1.4.1.0 (Inconvenient Site Columns update)
Waldek Mastykarz While testing the newest feature of Imtech Fields Explorer - generated Content Types and Site Columns wrapper classes I have discovered that there were some issues while using these classes for referring to Site Columns. To avoid problems while referring to Site Columns from custom code I have decided to use SPField.Id instead of SPField.InternalName. While generating wrapper classes Imtech Fields Explorer v1.4.1.0 will now use the InternalName for the property name and Id for the value:
To im [read]. Posted: Tue, Aug 26th '08 |
Inconvenient Site Columns
Waldek Mastykarz Windows SharePoint Services (WSS) v3 introduces the concept of Site Columns: reusable fields which can be used for creating content definition across the whole Site Collection. While this concept allows you to manage the way content is stored, you have to be really careful when working with Site Columns in custom development.
Yesterday I have introduced a new version of Imtech Fields Explorer which simplifies working with Content Types and Site Columns in custom code by generating wrapper classe [read]. Posted: Tue, Aug 26th '08 |
Work with SharePoint Content Types and Site Columns using intellisense - Imtech Fields Explorer v1.4.0.0
Waldek Mastykarz Windows SharePoint Services v3 has introduced the concept of Content Types and Site Columns which allows you to separate the definition of the content from the content itself. Furthermore it is possible to reuse these definitions across the whole Site Collection. In many situations you will need either the Internal Name or the ID of the Content Type/Column to obtain its reference. Manually typing these values in your code is prone to type errors which you can see no earlier than during the runti [read]. Posted: Mon, Aug 25th '08 |
Search Engine Optimization of MOSS 2007 WCM sites
Waldek Mastykarz Andrew Connell has pointed today to a new white paper at MSDN Office Developer Center called How to Optimize SharePoint Server 2007 Web Content Management Sites for Search Engines. From what the title says I was expecting the paper to provide SharePoint specialists with SharePoint specific knowledge and solutions to various Search Engine Optimization (SEO) challenges. Unfortunately, the white paper published at MSDN has disappointed me.
SEO is common knowledge - search results ranking isn' [read]. Posted: Sat, Aug 23rd '08 |
Google's custom 404 widget
Waldek Mastykarz I've just found out that Google has released a custom 404 widget. The idea is to improve the experience of 404 pages and instead of telling the user that he or she is lost, provide him with something he could really use.
Google's custom 404 widget resembles other Google technology like search. All you need to do to integrate it in your website is to copy & paste an HTML snippet. Check out the Google custom 404 widget at Google Webmaster Tools.
Unfortunately it's impossible to [read]. Posted: Fri, Aug 22nd '08 |
Measuring the length of a string in pixels using JavaScript
Waldek Mastykarz There are many situations while developing websites when you need to know how long a text string is: not how many characters it has but how long it is in pixels. While this isn't of much importance for regular webdesign it might get useful in certain scenario's like for example when designing Vista Sidebar gadgets.
To provide the experience as originally designed, you want to precisely position all elements within the gadget. While it isn't really difficult in case of static text, [read]. Posted: Fri, Aug 22nd '08 |
Track the ranking of your SharePoint blog from the Sidebar
Waldek Mastykarz Back in May this year Joel Oleson has put together a list of the top 100 SharePoint blogs. That top 100 is ordered by the Technorati Rating (Rank) of each blog participating. Joel is planning to do an update soon, so come on and improve the ranking of your blog so you can make it to the top 100 too.
Technorati Blog Info Vista Sidebar Gadget v1.0.0.0
Sure you can surf to the http://www.technorati.com/blogs/yourblog each time you want to check the ranking of your blog. But don't you think it [read]. Posted: Thu, Aug 21st '08 |
Regular Expressions in JavaScript don't support the single-line mode
Waldek Mastykarz Today, while working on a gadget involving some client-side development I have discovered that JavaScript doesn't support the single-line mode for Regular Expressions (Regex). Now why is that bad?
What is the Regular Expression Single-line mode?
As you know Regular Expressions work with patters. Using various metacharacters you can match pieces of a text string. One of such characters is a "." (dot) which by default matches any character except newline characters ( on *nix and [read]. Posted: Thu, Aug 21st '08 |
Regular Expressions save the day
Waldek Mastykarz Regular Expressions (Regex) is a very powerful technology which allows you to process strings using patterns. It gives you the possibility of processing text in a relatively easy and manageable way. Depending on what you need to do, creating a single Regular Expression might save you some pretty complex programming.
Because of its power the Regular Expressions have been implemented in probably every programming language used nowadays (including for the brevity PHP and JavaScript as well). Lookin [read]. Posted: Thu, Aug 21st '08 |
The future of blogging
Waldek Mastykarz In the last couple of weeks I have notice that people on the Internet started talking about the trend-to-come for blogging: video blogging. The idea isn't that new and there are plenty of people doing it already: they publish videos alongside the textual content. What's new about the future concept of blogging is that it's supposed to totally replace blogging as we know it now: no more writing and reading, recording and watching instead. I've been following some blogs using v [read]. Posted: Thu, Aug 21st '08 |
Waldek Mastykarz @ SharePoint.Alltop.com
Waldek Mastykarz Today I have received an e-mail from the guys at Alltop that my blog has been chosen to make part of the SharePoint.Alltop.com page. It's always great to hear that people appreciate your efforts. Considering other blogs available at that page, it's even better compliment! [read]. Posted: Wed, Aug 20th '08 |
WordPress Stats Vista Sidebar Gadget v1.0.0.0
Waldek Mastykarz Recently I have published a Vista Sidebar Gadget which allows you to track the number of downloads for different CodePlex projects' releases. As the gadget works as a dashboard it simply saves you some time which you would otherwise spend to visit the pages of all the different releases you want to track. I have to admit: I really like the way it works.
But I have noticed that there is another page I visit daily: the visitors statistics of this blog. There are a couple of reasons why I' [read]. Posted: Tue, Aug 19th '08 |
Microsoft Office SharePoint Server 2007 Developer Badge
Waldek Mastykarz Proud of being a MOSS 2007 developer? If so, then this is something for you: the Microsoft Office SharePoint Server 2007 Developer Badge! Show to the world that you are a MOSS 2007 developer and that you belong to the one of the greatest communities out there!
It would definitely be great to make something useful of the badge. Post your ideas on where it should point to when clicked. The best idea will be added as the link of the MOSS 2007 Developer badge.
The MOSS 2007 Developer Badge is a Vist [read]. Posted: Sun, Aug 17th '08 |
CodePlex Downloads tracking Vista sidebar gadget
Waldek Mastykarz Since I started blogging nearly a year ago I have made quite a few tools I share with the community using CodePlex. Because all these tools are rather small me and my colleagues at Imtech ICT Velocity have decided to setup one project where we would publish tools that simplify developers' work. During that year I have made quite some tools I have uploaded to CodePlex.
Just as every other author, I've been curious about the successfulness of my products. Unfortunately as only 10% of the [read]. Posted: Sun, Aug 17th '08 |
Sample code acceptance checklist for IT organizations
Waldek Mastykarz Recently, there has been the Sample code acceptance checklist for IT organizations published at Microsoft TechNet. This checklist is meant to help IT organizations evaluate custom SharePoint solutions before they are deployed in the production environments.
Because many SharePoint solutions are really complex, such checklist is definitely something you must have implemented in your organizations if you have an IT department and want to keep track of what has to be supported. I'm a developer [read]. Posted: Sat, Aug 16th '08 |
Inconvenient WSSv3 RSS Feeds
Waldek Mastykarz Windows SharePoint Services v3 ships with a possibility to create RSS Feeds for every List. This feature is quite powerful as it allows you to create multiple RSS Feeds for one List based on Views. If you have worked with Lists at least a bit, you know that you can quite easily create a custom View using the standard SharePoint interface. Without any problems you will be able to define the filter and apply the sorting criteria.
When using the SharePoint RSS Feeds with Document Libraries (like fo [read]. Posted: Wed, Aug 13th '08 |
Going on vacation
Waldek Mastykarz Finally, the last day at work is behind me. After having delivered the OneClickDeployment of a SharePoint solution for one of our customers and having a great meeting about accessibility in SharePoint this work day is finished to me. I'm officially going on vacation.
I really like the idea of seeing my family again. Quite a lot of things have changed since the last time we've spoken so it will be long evenings.
For the next three weeks I will have limited access to my blog and e-mail, [read]. Posted: Wed, Jul 30th '08 |
SharePoint developer bookmarklets updated
Waldek Mastykarz Recently I've been working quite intensively with the SharePoint developer bookmarklets. SharePoint is really infamous of way too many clicks required to accomplish various things. Having shortcuts to the most commonly used functionality within one click saves really a lot of time.
The first set of SharePoint bookmarklets I have published a couple of weeks ago, provided one-click-access to a few places only. Sure it was useful but eventually you would end up clicking around to get to the Si [read]. Posted: Tue, Jul 29th '08 |
Manage Checked Out Publishing Pages (OCDCheckedOutPages StsAdm command)
Waldek Mastykarz Structured and repeatable deployment of SharePoint solutions is very important for preserving scalability and maintainability of the solution. Furthermore it allows you to keep track of the deployed components what is very important if you want to provide your customers with support for your solution.
Here at Imtech ICT Velocity we have taken that concept even further and have developed a tool (Imtech SharePoint One Click Deployment Studio - OCD) which allows us to deploy the configuration in a [read]. Posted: Sun, Jul 27th '08 |
Inconvenient SPWeb.GetFile(string)
Waldek Mastykarz Recently I've been working on a piece of code which would obtain an instance of SPFile using either a GUID or the server relative URL. You don't have to search long to find out that the SPWeb provides a method to do that: GetFile(String). According to the WSS v3 SDK it should return the file object located at the specific URL.
While checking if it was working as I was expecting it to, I have found out that it actually doesn't. The GetFile method returned an instance of SPFile but [read]. Posted: Sat, Jul 26th '08 |
Consistent development of Master Pages, Page Layouts and User Controls in MOSS 2007
Waldek Mastykarz Page Layouts form the presentation layer in Publishing Sites of MOSS 2007. In fact they are very close to the Web Forms as we know them from ASP.NET except that Page Layouts in SharePoint don't contain any content.
One of the things that Page Layouts and ASP.NET Web Forms have in common is using custom User Controls and Web Controls. This concept provides developers with high extensibility, code reusability, and allows them to encapsulate custom functionality instead of using in-line coding [read]. Posted: Fri, Jul 18th '08 |
How to do it: RSS aggregation (merging multiple XML files using XSLT)
Waldek Mastykarz In my previous article I have presented you a little test case I have made for testing the performance of various data merging approaches. Using an XSLT based method turned out to be the best performing way of merging multiple XML files.
Combining multiple XML files into one is not difficult, but some parts of the process might nog be obvious at the first glance. Below you will find a step-by-step guide of creating your own XML data merging solution.
Let's start with an empty XSLT file:
T [read]. Posted: Fri, Jul 18th '08 |
Performance of various data merging methods
Waldek Mastykarz Recently I got the task to develop a Web Part which would aggregate the contents of a couple of RSS Feeds, sort them descending on the publishing date and display the top n of them. Thinking about how the whole thing could be done, I have found out that there are multiple methods to get things done. The Web Part was supposed to work on an Internet site so I decided to have a closer look at the performance of the various methods.
RSS Feeds are just an example. You could apply all the presented me [read]. Posted: Thu, Jul 17th '08 |
Internet Explorer 8 will support AJAX page navigation
Waldek Mastykarz The IE team has recently announced that they have made a few AJAX improvements in the newest version of Internet Explorer. One of such improvements is support for updating the navigation log through AJAX. So when your application uses intensively AJAX to enhance the User Experience, you can still leverage the native browser navigation mechanism by updating the navigation log information.
It's definitely great improvement of usability and accessibility. What concerns me is the fact, that it [read]. Posted: Tue, Jul 15th '08 |
Imtech Extended ContentQueryWebPart (with paging) source code available
Waldek Mastykarz Some time ago I have created a concept of the ContentQueryWebPart extended with paging support, called Imtech Extended ContentQueryWebPart. Since its release, the Imtech ExCQWP has been downloaded more than 200 times and some of you have sent me some questions regarding how it all works.
One of the frequently asked questions was about sharing the source code of the web part. Because I'm curious of what other improvements could've been done, I have decided to post the source code and sh [read]. Posted: Mon, Jul 14th '08 |
Preselecting Page Layout in the Create Page screen
Waldek Mastykarz Did you know that you can preselect a Page Layout in the Create Page screen? To preselect a layout simply add LayoutName=YourLayout.aspx to the query string parameters:
This becomes extremely useful when you want to create for example a shortcut in the Site Actions menu so that the content editors can quickly add press releases from any location on the Site Collection.
Using the LayoutName parameter preselects the chosen Page Layout what simplifies the process of creating new Publishing Pages: [read]. Posted: Mon, Jul 14th '08 |
MOSS 2007 is XHTML compliant out-of-the-box
Waldek Mastykarz Recently, while gathering resources for a presentation on MOSS 2007 WCM I’ll be giving next week for a Dutch SharePoint community, I have stumbled upon something interesting. Did you know that MOSS 2007 is XHTML compliant out-of-the-box? Well, neither did I. But it is so, according to CMS Matrix.
CMS Matrix is a service which provides comparison of various Content Management Systems. They have a quite impressive collection to be honest, but what I have doubts about is the quality of each r [read]. Posted: Sun, Jul 13th '08 |
SharePoint developers don’t know what accessibility is
Waldek Mastykarz Since a couple of months I’ve been following the SharePoint Forums @ MSDN. Most of the time I’m just checking whether there are some new questions on Web Content Management (WCM) in MOSS I could answer. Each day there are posted around 100 new questions, so you could say that SharePoint is a quite popular product and the community is really busy with it.
One of the areas on the SharePoint Forums is Accessibility where people working with SharePoint can ask their questions regarding v [read]. Posted: Fri, Jul 11th '08 |
Performance of content aggregation queries on multiple lists revisited
Waldek Mastykarz Recently I have done some research on performance of various approaches to querying information from multiple lists. While reading Andrew Connell’s book on WCM development I have discovered that I have missed one important approach. It turns out that it’s probably the best bet in the most Web Content Management (WCM) solutions being often under heavy load. Curious about the results I have added it to my test project.
It turned out that in spite of providing the context information yo [read]. Posted: Thu, Jul 10th '08 |
Getting quickly to the VirtualDirectories folder in Explorer View
Waldek Mastykarz I’m a big fan of using the Explorer View: it provides you much more overview of the file system and allows you to access other directories with a single click even if they are located in a different branch on the file system.
The VirtualDirectories folder (C:\Inetpub\wwwroot\wss\VirtualDirectories) is a location you access very often during SharePoint development to access the root directory of your Web Application and do some file operations like for example editing the web.config file. S [read]. Posted: Wed, Jul 9th '08 |
Getting quickly to the VirtualDirectories folder in Explorer View
Waldek Mastykarz I’m a big fan of using the Explorer View: it provides you much more overview of the file system and allows you to access other directories with a single click even if they are located in a different branch on the file system.
The VirtualDirectories folder (C:\Inetpub\wwwroot\wss\VirtualDirectories) is a location you access very often during SharePoint development to access the root directory of your Web Application and do some file operations like for example editing the web.config file. S [read]. Posted: Wed, Jul 9th '08 |
Always consider the source when doing research
Waldek Mastykarz Wow, Andrew Connell has just posted quite a comment on how CMS Watch has been reviewing SharePoint for the last couple of months. I’ve been following CMS Watch for a few months now and I have to agree with Andrew: there hasn’t been a single positive word about SharePoint published by CMS Watch. For customers, who rely on their opinion and report, it might seem that SharePoint is nothing but an experimental CMS.
I have worked with SharePoint WCM for almost two years now and I have to [read]. Posted: Tue, Jul 8th '08 |
Browsing .wsp files using Windows Explorer
Waldek Mastykarz How many times did you actually have to rename the .wsp file to .cab in order to browse its contents? SharePoint 2007 allows you to use any extension for the solution files, so you could build all your solutions with the .cab extension to support quick browsing. This has however two downsides.
First of all you’ll be breaking the conventions. The WSS team has decided to use the .wsp extension for the SharePoint 2007 solutions. They have probably done it for a good reason. Personally I think [read]. Posted: Tue, Jul 8th '08 |
Don’t hide or disable menu items
Waldek Mastykarz Microsoft Windows SharePoint Services (WSS) 3.0 introduces several new possibilities of controlling how the User Interface (UI) is presented to the users. While the mechanism has definitely been improved since the previous versions, there are a few things which doesn’t make working with SharePoint easier to the end users.
I’ve just read a short article by Joel Spolsky on how the menu items should be handled: whether they should be disabled or hidden if not available or always visible [read]. Posted: Tue, Jul 8th '08 |
SharePoint 12 directory in the places bar
Waldek Mastykarz Recently I have noticed that quite often I need to navigate to the 12 folder using the Open/Save file dialog. While I have already created a shortcut to 12 directory on the taskbar, which is sufficient in many cases and provides me quick access to all SharePoint system files, I was still left with the Open/Save file dialog. To get the quick access to the SharePoint system files in the Open/Save file dialog, I have decided to customize the Places bar and replace one of the locations with the 12 d [read]. Posted: Tue, Jul 8th '08 |
SharePoint developer bookmarklets
Waldek Mastykarz Tired of navigating through the SharePoint jungle just to get to Site Settings, Style Library or the Master Page and Page Layouts Gallery? Remember this moment, because it’s the last time you’ve done it. Proudly introducing: the SharePoint developer bookmarklets.
Bookmarklets are tiny pieces of JavaScript residing in your favorites. While bookmarklets are heavily used by various social sites, I really haven’t seen anyone using them for any developer purpose.
While working on va [read]. Posted: Fri, Jul 4th '08 |
Back on-line
Waldek Mastykarz For the past few hours my blog was off-line. The guys hosting my blog had some serious problems with their RAID setup: on of the disk died. At 2am GMT they have installed new drives and since then were busy restoring the accounts.
On one hand I’ve been a bit nervous seeing my blog missing the content from the last week. On the other hand, that’s one of these moment when making daily backups pays back. Nothing is missing and I’m back on-line with some fresh content. [read]. Posted: Fri, Jul 4th '08 |
Adding new locations to the Look In dialog
Waldek Mastykarz Recently I’ve been asked by one of our customer whether it would be possible to add a new location to the Look In dialog. In their SharePoint solution they’re using a custom Image Library for storing images which are being used across the whole Site Collection. Adding a shortcut to their custom library would definitely simplify their editors work and would improve the editing experience.
Below you can see how the Look In dialog looks like as shipped with SharePoint 2007.
Most editor [read]. Posted: Fri, Jul 4th '08 |
Performance of content aggregation queries on multiple lists
Waldek Mastykarz Recently I got the task of creating a custom content aggregation Web Part which would roll up content from two lists. As this can be done in many different ways, I’ve decided to do a little research on which of these methods would perform the best.
The case
As I’ve already mentioned, the task was to aggregate some content from two lists (in the future it might be even more). One of the lists would contain general information while the other, stored within a topic site (child SPWeb), [read]. Posted: Fri, Jul 4th '08 |
SharePoint developer bookmarklets
Waldek Mastykarz Tired of navigating through the SharePoint jungle just to get to Site Settings, Style Library or the Master Page and Page Layouts Gallery? Remember this moment, because it’s the last time you’ve done it. Proudly introducing: the SharePoint developer bookmarklets.
Bookmarklets are tiny pieces of JavaScript residing in your favorites. While bookmarklets are heavily used by various social sites, I really haven’t seen anyone using them for any developer purpose.
While working on va [read]. Posted: Thu, Jul 3rd '08 |
Best Practices for developing accessible web sites in Microsoft Office SharePoint Server 2007
Waldek Mastykarz For the last couple of months I’ve been working with accessibility Web Content Management (WCM) in MOSS 2007. During that time I have gathered some do’s and don’ts for working with accessible WCM solutions.
During the last months I have published some of these tips & tricks on my blog. Still I’ve been thinking on publishing my findings bundled in one document. Recently it became possible thanks to Dennis Mulder (MSFT NL), Anthony Labriola (MSFT) and the crew behind Te [read]. Posted: Wed, Jul 2nd '08 |
Accessible 404 (PageNotFound) in Microsoft Office SharePoint Server 2007
Waldek Mastykarz Every time you request a web page that doesn’t exist, the web server provides you with a 404 (the web server response code for an non existing URL) page - an information page telling you that you’ve got it wrong. While some of your visitors, might be able to get to the information they are looking for either by correcting the URL or finding an alternative way to access the resource, it is a good practice to provide an information page which will help the average visitors to continue [read]. Posted: Wed, Jul 2nd '08 |
Adobe Flash searchable!
Waldek Mastykarz Adobe has just announced that Flash will be searchable! This is definitely a great news for a few reasons.
First of all, the obvious one, we all be able to search the content included in Flash objects. This definitely become a relief for many designers and companies who will no longer have to make a choice between having a web site with a great experience and having its content indexed by search engines.
Another consequence of this fact is improving accessibility. Visually impaired visitors will [read]. Posted: Tue, Jul 1st '08 |
Render parent control to string snippet
Waldek Mastykarz While working with Control Adapters in either ASP.NET or SharePoint 2007 you will quite often want to intercept the output of the parent control and modify it before rendering. As retrieving the output is the same for each and every control I have created the following code snippet:
Render parent control to string
Waldek Mastykarz | http://blog.mastykarz.nl
render
StringBuilder sb = new StringBuilder();
System.Web.UI.HtmlTextWriter htw =
new System.Web.UI.HtmlTextWriter(new S [read]. Posted: Tue, Jun 24th '08 |
Semantic URL’s in MOSS 2007 (Imtech SharePoint Semantic URL’s free Feature)
Waldek Mastykarz Semantic URL’s are one of the things I always wanted to have in Microsoft Office SharePoint Server 2007. Since the first time I have opened an Internet facing site made in SharePoint 2007 I knew it would be great if the Pages part of the URL could be removed as well as the .aspx extension.
I believe that everyone working on Web Content Management (WCM) solutions would agree, that semantic URL’s are very important in today’s Web. First of all they are much more user friendly. Vi [read]. Posted: Mon, Jun 23rd '08 |
Update: Imtech Microsoft Windows SharePoint Services 3.0 Dynamic Help v1.0.1
Waldek Mastykarz During the last week I have added some more resources to the Imtech WSS 3.0 Dynamic Help. Below you can find the list of the changes in the v1.0.1.
As MOSS 2007 WCM is the area I’m mostly busy with, you shouldn’t be surprised seeing most updates around that topic. If you like the idea of using context help inside Visual Studio and have some suggestions about the must-have resources - let me know. In the meanwhile:
Download: Imtech Microsoft Windows SharePoint Services 3.0 Dynamic Hel [read]. Posted: Wed, Jun 18th '08 |
Disposing (every little bit of) SharePoint objects
Waldek Mastykarz Chris O’Brien has recently posted an article about proper disposal of SharePoint objects. While you might think that it’s nothing else than yet another disposables article, Chris presents some extra insights on various pitfalls which you are likely to face while developing for SharePoint 2007.
Personally, I’m always trying to keep disposable objects within one method, so I can clean them up when not needed anymore. But then again, never say never: one day you might find yoursel [read]. Posted: Mon, Jun 16th '08 |
Tag Clouds considered harmful
Waldek Mastykarz Recently, while solving a presentation issue of a tag cloud we have created for one of our customers, I have stumbled upon an article on Tag Clouds by Mark Norman Francis. While I’ve been following the trends quite blindly, I have to admit, I haven’t really though on the accessibility of Tag Clouds - one of the youngest and most popular navigation forms.
So what’s the whole fuzz about? The whole idea of a tag cloud is to make it visually clear which words or phrases are the mos [read]. Posted: Mon, Jun 16th '08 |
Imtech SharePoint GoCodes (Free SharePoint Feature)
Waldek Mastykarz Imtech SharePoint GoCodes is a SharePoint Feature which allows you to manage a list of accessible URL’s in SharePoint 2007. Instead of using for example http://SharePoint/MyDivision/SubSites/Documents/VeryImportant.docx you can use http://SharePoint/go/ImportantDoc.
The Feature allows you to use semantic URL’s. It becomes really useful if you either send URL’s to other people or want to make particular pieces of your SharePoint Site easily accessible.
The Imtech SharePoint GoCo [read]. Posted: Sun, Jun 15th '08 |
Help Resources for SharePoint developers (Imtech Microsoft Windows SharePoint Services 3.0 Visual Studio 2008 Dynamic Help v1.0.0)
Waldek Mastykarz Recently I’ve been looking at various extensibility possibilities of Visual Studio 2008. After having successfully done a proof of concept I have thought, that ideally, I would never want to have to leave my development IDE while working on a SharePoint solution. Preferably I would like to have all the tools I need and all the shortcuts inside Visual Studio and run them with one single click. Wouldn’t the life be great?
Just today I have stumbled upon a great feature inside Visual St [read]. Posted: Tue, Jun 10th '08 |
Imtech XML Sitemap (Free SharePoint Feature)
Waldek Mastykarz XML sitemaps, as defined by Sitemaps.org, are a standard way to inform search engines about the content of your web site. While in many cases your site will be automatically crawled for new content, there may exist pages without any direct link. Using an XML sitemap is a way to let the search engine know about its existence.
XML sitemaps have another important role. They define how often the contents of the pages gets updated and how important a particular page is comparing to other pages on the [read]. Posted: Mon, Jun 9th '08 |
Optimizing performance of the Imtech SharePoint Enhancement Toolkit
Waldek Mastykarz I have spent the last days on optimizing performance of the Imtech SharePoint Enhancement Toolkit: a toolkit that I have built in order to achieve standards compliancy, accessibility and slightly better performance of Web Content Management (WCM) solutions built in SharePoint 2007.
While we have worked with the toolkit quite intensively for the past few months, I haven’t really had a chance to actually measure what’s the penalty of using it. The Enhancement Toolkit is meant to be use [read]. Posted: Thu, Jun 5th '08 |
Minify your JavaScript - and save the KB’s for later (Imtech JavaScript Minificator - Free Tool)
Waldek Mastykarz Recently I have spent quite some time measuring and tuning the performance of the Imtech SharePoint Enhancement Toolkit: a toolkit that I have built in order to achieve standards compliancy, accessibility and slightly more performance of SharePoint Web Content Management (WCM) solutions.
During my tests I have stumbled upon an article of Robert Nyman about YSlow - a performance measurement Firefox add-in: Improve Your Web Site Performance - Tips & Tricks To Get A Good YSlow Rating. Because t [read]. Posted: Thu, Jun 5th '08 |
Structured and repeatable deployment of Content Query Web Part instances
Waldek Mastykarz Content Query Web Part (CQWP) is probably the best solution for data aggregation within SharePoint 2007 solutions. The limited functionality exposed through the standard UI is compensated by caching and high performance of the CQWP. Yet there is one thing that can keep you off using the CQWP in environments which require you to deploy your solutions including the configuration in a fully structured and repeatable manner.
The Content Query Web Part produces the query results as XML and uses XSL f [read]. Posted: Wed, Jun 4th '08 |
Waldek Mastykarz is now 70-631 certified
Waldek Mastykarz Today I’ve passed the 70-631 exam: Configuring Microsoft Windows SharePoint Services 3.0. Together with my colleagues: Erik Schoenmakers and John Bruin I have scored 1000 points. By passing this exam I have completed the SharePoint 3.0/MOSS 2007 certification as defined by Microsoft.
I’ve found the 70-631 exam the most abstract to learn. I’m a developer not an admin. Looking at the questions though, there are quite many questions about various server configuration-related stuff [read]. Posted: Wed, Jun 4th '08 |
Structured and repeatable deployment of Lookup fields
Waldek Mastykarz Lookup Fields as we know them
SharePoint 2007 ships with various Field Types among which the Lookup fields. Lookup fields allow you basically to choose a value from a drop-down list which is based on a list (SPList) existing within the same Site. By using the Lookup fields you leverage the concept of dynamic content which allows the editors to manage the list of possible values without the need to modify the existing Site Columns definitions or any other part of the solution.
While this concept, [read]. Posted: Wed, May 28th '08 |
Optimizing web site performance
Waldek Mastykarz Recently Robert Nyman, has written a great article about optimizing web site performance using YSlow: an add-on for Firebug for Firefox. In his article Robert presents not only the add-on itself, but he also gives some tips on how to tune various settings to achieve better performance.
Although the article doesn’t target the Microsoft technology directly, it definitely gives an idea of what the common pitfalls are and how they can be avoided. I’m really curious to see how these tips [read]. Posted: Mon, May 26th '08 |
Quickly adding assemblies references using the Object Browser
Waldek Mastykarz I create very often little projects to try things out: either based on the Console Application or the Class Library template. As it’s SharePoint development we’re speaking of the first thing you need to do is to add references to the Microsoft.SharePoint assembly. Depending on what you’re doing you might need to add the references to System.Web and Microsoft.SharePoint.Publishing as well or maybe even more. You can do it just the regular way by clicking with right button on the [read]. Posted: Wed, May 14th '08 |
Slightly more accessible Web Parts
Waldek Mastykarz Recently, while researching the RSS Feed mechanism of the Content Query Web Part I have stumbled upon the SuppressWebPartChrome Property. As this Property sounds very promising but is not very well documented in the current WSS SDK I have decided to have a further look at it.
What is SuppressWebPartChrome and why does the Content Query Web Part need it?
The Content Query Web Part gives you the possibility to produce an RSS feed of the items returned by the query. It uses the /_layouts/Feed.aspx [read]. Posted: Wed, May 14th '08 |
SharePoint wallpapers
Waldek Mastykarz SharePoint wallpapers - definitely a must-have for every SharePoint developer out there. [read]. Posted: Wed, May 14th '08 |
SharePoint licensing
Waldek Mastykarz Matt Groves has just posted detailed information on costs of various SharePoint licenses. Although a bit difficult to read and to compare due to lack of formatting, it is definitely a very useful piece of information. [read]. Posted: Mon, May 12th '08 |
Imtech Fields Explorer v1.3.0.0: Get to work with your Content Types and Site Columns
Waldek Mastykarz It’s not that long ago since I released the previous version of the Imtech Fields Explorer. In that release I have introduced the possibility of exporting the Site Columns and Content Type definitions to XML using the GUI.
After I got some feedback about the tool and some other ideas I have decided to work them out taking the available functionality even step further. Introducing the Imtech Fields Explorer v1.3.0.0.
The most important changes comparing to the previous versions are:
The wor [read]. Posted: Sun, May 11th '08 |
Inconvenient Content Editor Web Part
Waldek Mastykarz The Content Editor Web Part (CEWP) shipped with SharePoint 2007 is just one of these ordinary Web Parts: they don’t introduce any extraordinary functionality, yet we all use them in our solutions for some reason. Because this Web Part is all about displaying the Rich Text you have entered, you might think, that it is almost impossible to mess that up. Unfortunately…
The problem about using the Content Editor Web Part is that it makes absolute URL of all the relative ones you have ent [read]. Posted: Sat, May 10th '08 |
Preventing provisioning duplicate Web Parts instances on Feature reactivation
Waldek Mastykarz Recently I wrote about various approaches to provisioning Web Part instances in a structured and repeatable way. One of the approaches I have mentioned was using the AllUsersWebPart element within Feature manifest. While being manageable and flexible this approach has one big downside: it causes provisioning duplicate instances after the Feature has been reactivated (either by Activate-Deactivate-Activate or Activate using the -force parameter). In this article I present some possible approaches [read]. Posted: Thu, May 8th '08 |
Accessibility Kit in MOSS - Is it really accessible?
Waldek Mastykarz Mark Harrison has just posted a little notice about the fact that the United Nations office is using the Accessibility Kit with MOSS. Wondering about the result I took a look at the United Nations site.
Looking at it I have stumbled upon poor HTML and multilevel nested tables to start with. Disabling images takes away the language menu. Disabling CSS reveals the true nature of the tables for layout: the site becomes difficult to read. And the worse of it all: disabling JavaScript causes the drop [read]. Posted: Thu, May 8th '08 |
Inconvenient PublishingStartDate and PublishingEndDate
Waldek Mastykarz Recently, while working on a custom content aggregation solution, I stumbled upon another inconvenience in SharePoint 2007 WCM. While trying to sort the query results on PublishingStartDate I got an exception that there is no such field. I found it quite odd since the Content Type of which the pages I was querying definitely had the PublishingStartDate. I have even triple checked it in the Content Type definition, in the SharePoint Web UI and using the Imtech Fields Explorer. However, while look [read]. Posted: Wed, May 7th '08 |