Wednesday, May 13, 2009

Disaster Recovery Plan

 
Are you laughing too hard and you’re afraid you cant stop before your boss sees you? Allow me - how is your (personal) disaster recovery plan?

 

Posted by Madalina at 14:00:54 | Permalink | No Comments »

Thursday, April 23, 2009

How Software is like Life

I was watching the news the other night and one of the “great accomplishments” of the government that day was reaching the conclusion that they had to build a unified wage system in our country. They are starting debates on what the limits should be and on how to map between the different domains of activity. One of the questions I REALLY like and am REALLY looking forward to hearing the answer to is “who does a teacher/doctor map to?”

Leaving aside such questions (and answers) I asked myself a more important question that rises every time that a new idea/law comes into discussion - there are a lot of countries in Europe and on other continents that have good and even great law systems, why are we still wasting time on comming up with new ideas instead of just using the ideas that have proven to be good?

And here is where software comes in. As programmers we could re-invent the wheel every day - fortunately we don’t have to, because there are Portals out there and web parts and Code Plex and a whole bunch of components that can make our lives easier.

It is obvious that we cannot ALWAYS use such components, but most of the times (80 - 90 %) we sure can. The remaining 10 - 20 % becomes our daily assurance and insurance :) of being a developer and not a button pusher.

It is also obvious that there are many of us out there that do not use existent components even when they fulfill 99% of their current requests (the 1% being the logo image on the front) and they insist in wasting/spending days to rewrite the code that someone else before them has already written and tested and updated.

Now, looking back at the unified wage system law, you could say the obvious conclusion to be drawn is that coding for the sake of it is just like… living in Romania. It takes up all your time.
 

Posted by Madalina at 11:35:04 | Permalink | Comments (2)

Tuesday, April 14, 2009

Ronua Codecamp May 2009

Ronua VS 2010 + ASP.NET MVC 1.0  Codecamp is comming this spring at the beginning of May. One week of coding side by side :)


 
 
   

Posted by Madalina at 07:43:55 | Permalink | No Comments »

Friday, April 10, 2009

10 reasons to work from home

I have found this very nice article on Zen Habits today and, although I currently have an office, I have had my days when, as a freelancer, I had to work from home.

The 10 reasons listed in this article ( and my comments on each) are:

1. Work anywhere. ( true… below I am just the photographer, but I prove my point - out the windows you can see the Gasteig Cultural Center in Munchen, Germany.)

2. Complete control of the design of your workspace. ( exactly, girly flowers everywhere.)

3. Less distractions. ( that is very true from my point of view. While other people say that staying at home distracts them from work, for me it is the other way around. I like the silence and I am more productive when I can make my own schedule. I guess this is a side effect of being an only child…)

4. Flexible time. ( I also agree here, although I am more productive in the morning rather than late at night, so my home schedule is 9 to 6 just as the office schedule is.)

5. More focus on results, not presence. ( presence as not being late in the morning, presence as office dress code, presence as socializing - although this part can actually be fun if you are lucky enough - , presence as long meetings with the management. )

6. More time with family. ( reading the blogs of other many freelance consultants, I have seen that a common good side effect of freelancing is the ability to actually be a parent not only by name or circumstance)

7. Work in your underwear. ( no comment :) )

8. Yoga at your desk. ( you can replace the commute time with jogging in the park time. Or just jogging around the neighborhood.)

9. Less commute. Less pollution. ( not on my side :| )

10. Work fewer hours. ( work hours are not 9 to 6 - work hours are 7 to 7, because between the time that you get up in the morning and the time you enter your home at night you do it all for your job - get up, get dressed, commute, work, eat lunch, work again and commute back home.)
 

Posted by Madalina at 09:56:23 | Permalink | Comments (2)

Friday, April 3, 2009

SharePoint Designer 2007 Free!

For a while now there has been talk that starting April 1st, SPD would be free to download. Everyone took it as an April Fool’s Day joke, but it is true! Starting this April, SPD 2007 is free to download on the Microsoft site. 
 
Is it because so many people are now using it, or maybe because a new an improved version is on its way? :)

 
Posted by Madalina at 07:37:00 | Permalink | No Comments »

Monday, March 16, 2009

Designing SharePoint MasterPages - Taking advantage of SharePoint capabilities

I was reading the last MSDN Magazine the other day and, among some interesting Silverlight articles, I found one very nice SharePoint article - very real and to the point.
This article talks about SharePoint best practices - what to use, what not to forget and what to think about first when you implement something. In my opinion, the most important point of the article is that we always must take advantage of the Sharepoint capabilities and even try hard to do it.

SharePoint is a very large application/system/portal and it takes a very long time to learn all its features, strong and weak points and even just to learn how to work with it. We may very easily get lost in it and even though we read books and articles about it, we will soon forget all the interesting things we’ve learned if we don’t actually use them in the real world.

Taking all this into consideration, it may sometimes be easier for us to think about custom-made functionality when we have to implement something, rather than to think about how we can achieve what we want with what SharePoint has to offer.

The article also says that, when a new functionality in a portal is discussed, it pays off to think about how you can achieve it with a custom-made solution, but also how SharePoint existing features would achieve it and to compare the 2 solutions, having in mind the fact that SharePoint existing functionality brings many advantages, as security, speed and unity.

These ideas also apply to Master Pages, as they are also a customization of a SharePoint existing feature.
Have you ever received the request to eliminate some functionality from a masterpage - such as the dropdown list of the Search control, or the My Site link ? You definitely have, especially if the design you had to implement was not created by you, but by a designer with no knowledge of SharePoint. And have you ever did that in order to implement the design as provided, to later see the Search functionality replaced with a custom control? I am sure you have done that or at least witnessed it at a point.

As SharePoint Master Page designers and developers, we are the first ones that can draw the attention on this issue - we are the ones that can prevent the occurrence of the above mentioned mistakes and watch over the implementation of best practices. We must draw attention to the fact that SharePoint functionality is there for a reason and not only to that. SharePoint users must not be confused by the design customization - being used to the default SharePoint interface, they must not find the new design hard to use and tricky. All the SharePoint controls must remain in the custom design. If they are moved around on the page, their layout must be consistent between all the pages and sites and also, easy to spot.

The design is the first thing a user sees on a page and its 2 goals (equal in importance) are to skin the page and make the usage easy and painless.

In conclusion, best practices start on day 1 of the project and every single element of customization must oblige to them, even at the cost of not following the Master Page design by the letter. 

We all know all of this. Face to face with the project, we must not freak out and start writing code :)
 

Posted by Madalina at 09:56:32 | Permalink | No Comments »

Friday, March 13, 2009

Test your designs on all IE versions

To test your designs on all the IE versions you don’t need 4 virtual machines running in parallel :) You just need IE Tester.
 
IE Tester is a tool that simulates IE versions from 5 to 8 (Beta 1 currently) and allows you to see how your site/web page/design behaves in all these cases.
 
I have used it for a while now and it does its job very well.

 
Posted by Madalina at 16:12:22 | Permalink | No Comments »

Monday, March 9, 2009

Enabling Silverlight 2 in SharePoint / The easiest sample

Silverlight promises to give SharePoint exactly what it doesn’t have: glam :).
SharePoint is a very powerful tool, but it comes a time in the life of such a powerful tool when it needs a little dosage of eye-candy design. Right now, that can be very easily achieved with Silverlight.
As the two are siblings of the same technology (plain old ASP .NET :) ) they work very nicely together.
But first of all, some SharePoint configuration element are needed.

Configure SharePoint to run Silverlight

The needed configuration elements are:
1.
Silverlight 2 plug-in.
2. .NET 3.5 framework installed on the server.
3. Service Pack 1 installed for WSS 3.0/MOSS 2007.
4. System.Web.Silverlight.dll added in the Global Assembly Cache (GAC).
5. New 
Web.config elements in the web.config of the Web application you are planning to run Silverlight on.
6. The .xap extension registered as a MIME type (application/x-silverlight-app) in IIS.
7. [Development requirements:
Silverlight Tools for Visual Studio 2008 SP1, Install Microsoft Expression Blend 2 and Microsoft Expression Blend 2 Service Pack 1]

Easiest test - Silverlight on SharePoint

To test if Silverlight actually works, open a site in the web application that you configured to run Silverlight controls (point 5 above).
Silverlight can easily be added in a Content Editor Web Part. For that, you will need, first of all, a Silverlight control to add. You can find a simple Silverlight control on the Internet, or
here.

1. Create a document library in the site you just opened. I named mine XAPS.
2. Navigate to this library and upload the Silverlight control.
3. On the site Home page (for example) add a new Content Editor Web Part.
4. Open the Edit panel and select Source Editor.
5. In the content text box enter the following:

<object width=”100%” height=”200″
    data=”data:application/x-silverlight-2″
    type=”application/x-silverlight-2″ >
    <param name=”source” value=”/xaps/SilverlightControl1.xap”/>
</object>

6. Click Save and then OK and the Web Part should load the following:

A very good place to start with Silverlight and SharePoint is CodePlex’s Silverlight Blueprint for SharePoint.
 

Posted by Madalina at 10:26:49 | Permalink | No Comments »

Monday, January 19, 2009

AlternateCssUrl - what is it useful for?

When you design a SharePoint MasterPage or Theme, you usually include the CSS style sheet references in the .master file or in the Theme folder. And those style sheets contain all the styling you need.

If you work with a masterpage, you will probably set in code values for DefaultMasterPageURL and CustomMasterPageURL.

There is one more property of a SharePoint site called AlternateCssUrl. You would use this property if you don’t want to create a MasterPage or a Theme, but just apply a skin on the SharePoint default look - by specifying a value for this property, you make SharePoint include your style sheet in its pages.
 
Although it would look like the AlernateCssUrl property has a very limited use, you could not be more mistaken. There are pages in SharePoint that do not implement any masterpage - not the default.master, not the application.master. One example is the Picture Slideshow page.

This is the case where the AlternateCssUrl property comes in handy - by initializing this property value with your custom css style sheet, you can rest assured that all the SharePoint pages in a site will be skinned.
 

Posted by Madalina at 17:33:51 | Permalink | No Comments »

Wednesday, January 7, 2009

SharePoint System MasterPage - hide the Search control or delete it?

It is a known fact that SharePoint can skin its system pages.
When designing a system masterpage for SharePoint, there are 2 ways that you can follow: take the generic application.master and customize it, or start from the existing masterpage of the site, supposing you are working on a skinned site.

I usually start from the main masterpage of the site and take into account the fact that the system masterpage needs a few tweaks.
The 3 main differences between the regular site pages and system pages in SharePoint are:
1. The Search control is missing on the system pages.
2. The Breadcrumb is different on the system pages.
3. The left navigation placeholder is empty.

Letting the Breadcrumb tweak for you to discover :), I will make you now aware of the fact that the Search control is not needed on the system pages master.
When you don’t want use certain controls (ContentPlaceHolders) on a SharePoint masterpage, you generally choose to hide them, not delete them, by placing them in a hidden panel. SharePoint will still find them and so not retrieve an error, but they will not show up in the page design, giving the site the look of your choice.
Following this pattern, I first hid the Search control on the system page in a panel. Everything worked fine until I tried to Check In/ Check Out a file and i got this error:
“Unable to validate data. at System.Web.Configuration.MachineKeySection.GetDecodedData(Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Int32& dataLength) at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString) “

This error did not appear when the site was skinned with the SharePoint Default theme. So the problem laid in the customized application.master file. The only difference between the application.master and my system.master pages was that in my master I had the Search control place holder hidden (but present).
After deleting it, everything worked fine. Except… WIki Sites - History of a page retrieved an error: “Search PlaceHolder not found”.

So the answer to the question in the title is - Delete the Search control, leave the PlaceHolder:
< asp:ContentPlaceHolder id=”PlaceHolderSearchArea” runat=”server” >
< / asp:ContentPlaceHolder >
  

Posted by Madalina at 18:00:00 | Permalink | Comments (2)