Featured Posts

A Better Enhanced SharePoint 2010 Floating Ribbon SharePoint 2010 has issues with its scrolling because of the way it implemented the fixed ribbon. Before we look into these issues (and a workaround) let's first try to understand what SharePoint is doing....

Read more

Tips and Tricks for setting up a SharePoint 2010 development... While SharePoint 2010 is similar to SharePoint 2007, there are many tips and tricks to setting up a proper SharePoint 2010 development environment. Some of these are the same as SharePoint 2007 and some...

Read more

Developing SharePoint WebParts using User Controls... If you’ve read my blogs before, then you probably know I am a fan of WSPBuilder (http://www.codeplex.com/wspbuilder). I like the intuitive nature and flexibility of the product. It really helps with...

Read more

Cleaning up your WebPart Gallery Deploying webparts in SharePoint can be difficult (when you are learning) because of the many ways to do it. You can manually add webparts to the WebPart gallery, you can add WebParts through features...

Read more

  • Prev
  • Next

Html in SharePoint 2010 WebPart Title

1

Category : SharePoint 2010

I received an interesting SharePoint design today where the WebPart titles had two colors. Ex: the place for News and Announcements

I wasn’t really sure how to accomplish this since SharePoint renders the WebPart titles as simple h3′s with spans in them. At first I thought I’d just type html into the title area. So, I decided to put this in my title: the place for <span> News and Announcements </span>. Then I used css to do my colors: I made the .ms-WPTitle light grey and the .ms-WPTitle span green. But, of course it wasn’t that easy. SharePoint actually wrote out the word “span” instead of rendering it as html: Ex: the place for <span>News and Announcements</span>

At this point I thought I was stuck. I figured I was going to have to add content editor WebParts on top of all my other WebParts just to build titles. It was going to be a pain. But, as I was looking at the underlying html that SharePoint produced, I had an idea. It looked like SharePoint was setting to the html to the actual text literal. So, what if I use javascript to re-write the exact same text? Javascript should write it as html, right?

Anyway, without further ado, here is my javascript. I used jquery (because I have it in my masterpage). I am sure it can be done with regular javascirpt, but this was easier for me.


$(function () {
    //Replace webpart header text with html version
    $('.ms-WPTitle span').each(function () {
        $(this).replaceWith($(this).text());
    });
});

With the above javascript referenced in my MasterPage, it renders any html I put into a WebPart header now. I think it is a pretty interesting trick that could be used for all different kinds of designs.

SharePoint 2010 PowerShell enable/disable feature for all site collections

Category : Powershell, sharepoint

A lot of enterprise portals build multiple site collections within the web application of a SharePoint farm. This is a scalable architecture that allows for separation of databases, site collection administration differentiation and a host of other benefits from the SharePoint administration point of view. This architecture also has some downsides including global navigation and different settings on the multiple site collections. If this is your architecture of choice, enabling features across all site collections is also an issue. What if you buy a third party product and need to enable the feature globally? What if you build a reusable component? Every time I need to do this I find myself Googling Binging Googling the answer to this question.

Below are helpful commands that wrap the Enable and Disable features in the get all site collections for a web application. Also, notice the “whatif” command for testing. This is a very valuable functionality of PowerShell that I highly suggest using before running the commands.

Enable Feature Testing

Get-SPWebApplication “<WebApplicationURL>” | Get-SPSite -Limit ALL |
ForEach-Object {Enable-SPFeature “MyFeatureID” -Url $_.Url -WhatIf}


Enable Feature without Confirmation

Get-SPWebApplication “<WebApplicationURL>” | Get-SPSite -Limit ALL |
ForEach-Object {Enable-SPFeature “MyFeatureID” -Url $_.Url -confirm:$false}’


Disable Feature Testing

Get-SPWebApplication “<WebApplicationURL>” | Get-SPSite -Limit ALL |
ForEach-Object {Disable-SPFeature “MyFeatureID” -Url $_.Url -WhatIf}


Disable Feature without Confirmation

Get-SPWebApplication “<WebApplicationURL>” | Get-SPSite -Limit ALL |
ForEach-Object {Disable-SPFeature “MyFeatureID” -Url $_.Url -confirm:$false}



Hope this helps someone else. Also, sorry for the forum I originally got this answer from. I’d give you credit if I remembered where it was. I just had this in my notes and decided to put it on my blog in case it helps others.

SharePoint provision default WebParts for MySites

Category : SharePoint 2010

SharePoint adds a new site collection for every user when their MySite is created. Recently I had a requirement to add a custom WebPart into a zone on the root page when the MySite gets created. I accomplished this requirement with the following:

  • Feature to create the WebPart
  • Feature Receiver to add the WebPart (this feature receiver ran off of the Feature to create the WebPart)
  • Feature Stapler to activate the Feature to create the WebPart when the site collection is created

The Feature to create the Webpart and Feature Stapler were easy (standard SharePoint development). The Feature Receiver to add the WebPart to a zone on the page is where it got a little tricky and is why I felt a blog is necessary.

Steps

  1. Create a new SharePoint 2010 solution in Visual Studio 2010
  2. Right-click on your project and choose to add a WebPart Feature (you can use a regular webpart or a visual webpart).
    1. For purposes of this blog, we will call this “MySiteWebPartFeature”
    2. Make sure this is a “Site” scoped Feature
  3. Right-click on your project and choose to add an Empty Element for your Feature Stapler
    1. For purposes of this blog, we will call this “MySiteFeatureStapler”
    2. Add a FeatureSiteTemplateAssociation to the MySite templates. Please delete the Id in the example below and replace it with the Id of the feature you created in Step 2
      <FeatureSiteTemplateAssociation Id=”9f8085c2-70cb-4ce1-814b-52e3967e5c3e” TemplateName=”SPSMSITEHOST#0″/>
      <FeatureSiteTemplateAssociation Id=”9f8085c2-70cb-4ce1-814b-52e3967e5c3e” TemplateName=”SPSPERS#0″/>
  4. Right-click on your Features and choose “Add Feature”. This is for your Feature Stapler.
    1. For purposes of this blog, we will call this “MySiteFeatureStapler”
    2. Set the Scope of this Feature to “WebApplication”
    3. Make sure the “MysiteFeatureStapler” element is added as an Item in this feature. Also, go back to the MySiteWebPartFeature and make sure the “MysiteFeatureStapler” element is removed from that one.
  5. Right-click on the MySiteWebPartFeature and choose “Add Event Receiver”
  6. Add the following code in the Event Receiver

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    ThreadPool.QueueUserWorkItem(new WaitCallback(RunProcess), properties);
}

private void RunProcess(object state)
{
    SPFeatureReceiverProperties properties = (SPFeatureReceiverProperties)state;

    using (SPSite site = (SPSite)properties.Feature.Parent)
    {
        bool provisioned = false;
        while (provisioned == false)
        {
            provisioned = site.RootWeb.Provisioned;
            Thread.Sleep(5000);
        };

        AddWebPart(site.RootWeb.Url);
    }
}

private void AddWebPart(string url)
{

    using (SPSite site = new SPSite(url))
    {
        using (SPWeb web = site.OpenWeb())
        {
            try
            {
                SPLimitedWebPartManager wpm = web.GetLimitedWebPartManager("default.aspx", System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);

                bool webpartexists = false;
                foreach (Microsoft.SharePoint.WebPartPages.WebPart webpart in wpm.WebParts)
                {
                    if (webpart.Title == "My Custom WebPart")
                    {
                        webpartexists = true;
                        break;
                    }
                }

                if (!webpartexists)
                {
                    Treasury_MySites.PrivacyStatement.PrivacyStatement privacyStatementWebPart = new Treasury_MySites.PrivacyStatement.PrivacyStatement();
                    privacyStatementWebPart.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
                    privacyStatementWebPart.Title = "My Custom WebPart";
                    wpm.AddWebPart(privacyStatementWebPart, "TopZone", 0);
                }
            }
            catch
            {
                //do nothing
            }
        }
    }
}

In the end, the Feature Stapler needs to be activated at your web application level. When a new site is created within that web application the MySiteWebPartFeature will activate. When that feature activates it will add the WebPart to the webpart gallery (because that’s the standard behavior of a SharePoint WebPart feature). In addition it will run the custom Event Receiver code upon Feature Activation.

The magic of this solution is in the Event Receiver itself. It is using a seperate thread to make sure the root web gets provisioned before adding the WebParts to the zones on the page. Why is this important?

  • If you don’t use a separate thread you could hold up the web from getting provisioned and you will just hang
  • If the web is not provisioned there is no page to add the WebParts to

Is there other ways of doing this? At first I thought the WebProvisioner class would accomplish the same thing. But, that only works on sub-webs, not the root. Other than that, I couldn’t think of another way other than custom master pages or custom site definitions. I’d be glad to hear if anyone else knows another way.

SharePoint jobs at Treasury

Category : Uncategorized

Treasury has some great opportunities for government positions on the Treasury.gov site (which is built in SharePoint 2010)

Treasury.gov O&M Lead 

This is a grade 14 position to O&M lead the Treasury.gov SharePoint site, which involves supervising the O&M team and being a SharePoint SME on the project. This is a great opportunity to get into the government at a level 14:  http://jobview.usajobs.gov/GetJob.aspx?JobID=98317792&JobTitle=Information+Technology+Specialist+(INTERNET)&q=11-DO-499-FXP&where=&brd=3876&vw=b&FedEmp=N&FedPub=Y&AVSDM=2011-04-04+15%3a20%3a00

Treasury.gov SharePoint SME

This is a two year, grade 14 term position for Treasury.gov. We are looking for a dedicated SharePoint SME. This is a great opportunity to come into the government at grade 14 without a supervisory role: http://jobview.usajobs.gov/GetJob.aspx?JobID=98459169&JobTitle=Information+Technology+Specialist+(INTERNET)&q=11-DO-506-FXP&where=&brd=3876&vw=b&FedEmp=N&FedPub=Y&AVSDM=2011-04-08+12%3a46%3a00

Treasury.gov O&M team

Treasury.gov is looking for SharePoint and Web expertise at various experience levels. This is a great oppotunity to join the Treasury.gov team regardless of your level of expertise with SharePoint. The great thing about these positions is that they are what we call ladder positions in the government. If you come in at a lower grade, you are ellibible to move up to the higher grades after the required experience without reapplying for the job. These are very good positions for people looking to get into the government.

Grade 9: We are looking for someone on our O&M team with html, css and javascript experience. This person should be looking to learn SharePoint and .Net: http://jobview.usajobs.gov/GetJob.aspx?JobID=98516038&JobTitle=Information+Technology+Specialist+(SYSADMIN)&q=11-DO-501-FXP-9&where=&brd=3876&vw=b&FedEmp=N&FedPub=Y&AVSDM=2011-04-11+12%3a14%3a00

Grade 11: We are looking for someone on our O&M team with html, css and javascript experience. In addition, this person should have asp.net experience: http://jobview.usajobs.gov/GetJob.aspx?JobID=98516057&JobTitle=Information+Technology+Specialist+(SYSADMIN)&q=11-DO-501-FXP-11&where=&brd=3876&vw=b&FedEmp=N&FedPub=Y&AVSDM=2011-04-11+12%3a15%3a00

Grade 12: We are looking for someone with html, asp.net and a little bit of SharePoint experience: http://jobview.usajobs.gov/GetJob.aspx?JobID=98516102&JobTitle=Information+Technology+Specialist+(SYSADMIN)&q=11-DO-501-FXP-12&where=&brd=3876&vw=b&FedEmp=N&FedPub=Y&AVSDM=2011-04-11+12%3a16%3a00

Grade 13: We are looking for someone with html, asp.net and SharePoint development experience: http://jobview.usajobs.gov/GetJob.aspx?JobID=98516142&JobTitle=Information+Technology+Specialist+(SYSADMIN)&q=11-DO-501-FXP-13&where=&brd=3876&vw=b&FedEmp=N&FedPub=Y&AVSDM=2011-04-11+12%3a17%3a00

Slides from Capital Area .Net Special Interest Group

Category : Presenting

Here is the link to the slides from my presentation at the Capital Area .Net Special Interest Group on methodologies for querying SharePoint lists to build dynamic UI’s in SharePoint 2010.

http://www.greggalipeau.com/wp-content/uploads/2011/03/QueryingSharePointLists.pptx

Speaking at Capital Area .Net SharePoint Special Interest Group

Category : Presenting

I am speaking at the Captial Area .Net SharePoint Special Interest Group this Wednesday March 16, 2011. http://caparea.net/Default.aspx?alias=caparea.net/sharepoint

My topic is on using Lists to build the UI in SharePoint 2010:
SharePoint provides many capabilities to dynamically build UI’s based off of List data (Content Query WebParts, Custom WebParts, Office Services, etc…). This session will show some valuable techniques for displaying SharePoint data to produce rich user interfaces. We will discuss pros and cons of different techniques and work through different demos (some of which were actually used on the Treasury.gov implementation of SharePoint 2010).

Slides from Microsoft Monthly Public Sector Development Dinner

Category : Presenting, SharePoint 2010

Here are my slides from my Branding Custom Internet Sites using SharePoint 2010 session at the Microsoft Monthly Public Sector Development Dinner. Thank you to everyone that showed up and thank you for such great comments after the presentation.

Branding Custom Internet Sites in SharePoint 2010.pptx

A Better Enhanced SharePoint 2010 Floating Ribbon

37

Category : SharePoint 2010, SharePoint Ribbon, featured

SharePoint 2010 has issues with its scrolling because of the way it implemented the fixed ribbon. Before we look into these issues (and a workaround) let’s first try to understand what SharePoint is doing. Basically, in order to keep the ribbon fixed at the top of the page, SharePoint put’s the scroll bar on the div tag directly below the ribbon (i.e.: s4-workspace) and removes the “normal” scrollbar for webpages (i.e.: the one that is on the body tag). In order to put the scroll bar on the s4-workspace, they set the overflow property of that div tag. But, in order for an overflow property to work, the height and width must be set appropriately. So, SharePoint also runs javascript on the page load to set the height and width appropriately on the s4-workspace div tag.

The issues noted in this blog are particularly bad on Internet facing sites with SharePoint 2010. They are not that big of deal with Intranet sites. So, I’ve found myself using the techniques in this blog on Internet facing sites and not Intranets. These techniques will work for Intranets, but I don’t like to mess too much with a COTS product when I can help it. I can only hope Microsoft fixes this big issue one day.

SP Ribbon Positioning Issues

  1. IPad and mobile browser use: The reason IPads don’t scroll in SharePoint 2010 is because of how they interact with overflow div tags. Scrolling will work on the IPad if you use the “two-finger” technique. But, nobody will know this is a div instead of a main scroll because SharePoint makes this scroll look like the main scroll. Thus, to the normal user, it just looks like scrolling doesn’t work on your webpage.
  2. Anchor tags: Anchor tagging to sections of the page didn’t work. If you have one page www.mywebsite.com?#bottom that links to another page and the section it is linking too is below the scroll area, you get stuck there. It looks really unprofessional when this happens.
  3. Javascript reliance: A core function of a website should not be reliant on javascript (i.e.: the scrollbars).This can produce multiple issues:
    1. Broken javascript: If any other javascript breaks on the page then the entire site won’t scroll anymore. That is one main reason you don’t make a core function of a page rely on javascript. It is hard to control the other javascript on the page and you can get yourself into bad situations over time with these types of techniques.
    2. Slow loading javascript: You have to wait until all the javascript loads on the page before you can begin scrolling. This is really annoying sometimes.

Microsoft has addressed how to disable this ribbon behavior: http://blogs.msdn.com/b/sharepoint/archive/2010/04/06/customizing-ribbon-positioning-in-sharepoint-2010-master-pages.aspx

Microsoft is basically saying, you can turn this on or turn this off. So, for public facing sites, you will probably want to turn this off. However, this means you content editors won’t get the ribbon pinned to the top of the page. This will make editing content in SharePoint very, very hard.

In my opinion, the fixed ribbon positioning system in SharePoint is a really good idea. But, the “unconventional” implementation causes too many issues with scrolling. I think Microsoft could have implemented this better. Specifically, Microsoft could use the “conventional” fixed position style in css instead of this “unconventional” technique of using overflow div tags. Let me be clear: I don’t think overflow div tags are unconventional. I just think it is unconventional to use that as the main scrollbar on a page.

Solution

Turn off the ribbon positioning system that SharePoint provides and build your own one with fixed position css styles. The steps are actually pretty simple:

Steps

  1. Remove the “scroll=no” attribute from the Body tag
    Note: At this point most people would tell you to remove the s4-workspace tag from your html. In fact, that is what the Microsoft blog mentioned earlier. However, that causes side affects. The gantt chart of task views will stop working, IE7 popups will stop working and anything else that relied on the s4-workspace to be there will stop working. Thus, I do not recommend removing the s4-workspace tag from the html of SharePoint. Instead follow these steps:
  2. Add the following javascript in a script block or an attached javascript file:
    
    //set top padding of the workspace to the height of the ribbon
    function setTopPadding() {
       var wrkElem = document.getElementById('s4-workspace');
       var ribHeight = document.getElementById('s4-ribbonrow').offsetHeight;
       if (window.location.search.match("[?&]IsDlg=1")) {
          //margin works better for dialogs b/c of scrollbars
          wrkElem.style.marginTop = ribHeight + 'px';
          wrkElem.style.paddingTop = '0px';
       }
       else {
         //padding works better for the main window
         wrkElem.style.paddingTop = ribHeight + 'px';
       }
    }
    
    // bind top padding reset to ribbon resize event so that the page always lays out correctly.
    ExecuteOrDelayUntilScriptLoaded(function () { SP.UI.Workspace.add_resized(setTopPadding); }, "init.js");
    

    The above script sets a top padding for our workspace element equal to the ribbon height. This is needed because our new ribbon will be css fixed and that is more of a floating technique. Thus, padding is needed so it doesn’t hang over our workspace.

  3. Add the following css:
    
    body, body.v4.master {overflow:visible !important; height: inherit; width: inherit; }
    
    body #s4-workspace {overflow:visible !important; padding-top:44px;}
    
    /*This sets up our Ribbon for a fixed position. */
    body #s4-ribbonrow{ position: fixed;top:0px;z-index:1000;width: 100%;}
    * html #s4-ribbonrow {position:absolute;} 
    
    /* Set the ribbon popups to be fixed position also */
    #s4-ribbonrow .ms-MenuUIPopupBody, #s4-ribbonrow .ms-popoutMenu, .ms-cui-menu[id ^= "Ribbon."], .ms-cui-tooltip {
    position: fixed !important;
    }
    * html #s4-ribbonrow .ms-MenuUIPopupBody, * html #s4-ribbonrow .ms-popoutMenu, * html .ms-cui-menu[id ^= "Ribbon."], * html .ms-cui-tooltip {
    position: absolute !important;
    }
    
    /*Make sure there are no scroll bars on our popup overlays*/
    .ms-dlgOverlay {width: 100% !important }
    

    Note: I used the star hack above for ie6 (ie6 doesn’t recognize fixed positions correctly and absolute must be used instead). I don’t recommend the star hack (it was for blog purposes only). Please use a seperate ie6 file for ie6 specific css.

That’s it! Now you have a fixed css taking care of keeping the Ribbon on top. Why is this better you ask? The SharePoint’s solution uses javascript to create the scroll area. This means javascript is responsible for whether the site functions or not. My solution uses a fixed css property and only uses javascript to fix the height of the ribbon. Even if javascript is turned off, my solution will work. In addition, my page will work for the public view on all browser types (including IPads).

I started off writing this blog using techniques I thought of. However, I ran across two issues that were problematic. One of the issues had to deal with popus/overlays and other issue dealt with the padding at the top after the ribbon was “fixed”. So, like any good developer, I turned to Google. Thus, I have to give credit to 2 blogs that solve the same issues. In fact, both of these blogs seemed to have taken the same approach I did to this problem. Thus, I used techniques from each blog to come to a solution I feel is the best of all worlds.

The first blog that helped in this solution was: http://www.webpoint0.com/blog/fixed-width-layouts-scrollbar-ribbon-sharepoint-2010/. This blog showed me how to set the top padding of the ribbon in the most elegant way. However, the fix for the popups was not the best on this blog.

The second blog that helped in this solution was: http://kyleschaeffer.com/sharepoint/sharepoint-2010-scrolling/. This blog showed me how to deal with the popups and the popup overlays. However, the fix for the top padding of the ribbon was not as elegant as the first blog.

Once again, thank you so much to the blogs above. Their techniques along with the techniques I had already figured out created a great solution to this common problem.

Issues

Of course, with any solution that changes the core way a system works, there is bound to be issues. We’ve worked through the most common issues in the approach above, but I am confident we haven’t figured out all the issues. So, as issues come up I will post them here so people understand the trade-offs (and maybe come up with solutions for me).

Issue #1: Calendar hovers and add new

When you hover over a day in the SharePoint calendar the “add new” link comes up. This isn’t working “exactly” right in our solution. The reason is, if you scroll down on the page and then hover over a calendar item, the “add new” link shows up in the wrong calendar day. It works perfectly fine if you don’t have to scroll down (the issue only happens when you scroll). I debugged through the javascript and I found the problem. The core.js file of SharePoint has a function called MenuHtc_GetElementPosition. This function recursively loops through the elements of the html and gets the elements position with it’s scroll position to get the x and y axis of the element. However, it never takes into account the documents scroll position. This kind of makes sense because Microsoft doesn’t use the documents scroll position because it overflows the s4-workspace to do scrolls normally. However, we overrode that behavior and went back to the normal scrolling behavior of browsers. I hoped Microsoft would have realized that people would want to do this, but this is one of those functions where the SharePoint code is a little short sighted.

Experimental Solution: This solution overrides the MenuHtc_GetElementPosition function by creating a customcore.js file that gets called after the core.js file. I left the method exactly the same except for one small change. I subtracted the document.documentElement.scrollLeft from the x axis and document.documentElement.scrollTop from the y axis. This should account for our scrolling now.

Note: Microsoft should consider putting this change into their function in the core.js in the next service pack. It wouldn’t affect their “normal” technique for ribbon scrolling and it would help people that are building custom internet sites on SharePoint. I can’t think of a reason they wouldn’t add this into the product. So, if anyone from the Microsoft SharePoint product team reads this, please consider adding this in the next service pack.

  1. Create a javascript file called customcore.js and put the following javascript in it:
    
    function MenuHtc_GetElementPosition(element, relativeToElement)
    {
    	var result=new Object();
    	result.x=0;
    	result.y=0;
    	result.width=0;
    	result.height=0;
    	if (element.offsetParent) {
    		var parent=element;
    		while (parent !=null &&
    			parent !=relativeToElement)
    		{
    			result.x+=parent.offsetLeft;
    			result.y+=parent.offsetTop;
    			AdjustScrollPosition(parent, relativeToElement, result);
    			var parentTagName=parent.tagName.toLowerCase();
    			if (parentTagName !="body" &&
    				parentTagName !="html" &&
    				parent.clientTop !=null &&
    				parent.clientLeft !=null &&
    				parent !=element) {
    				result.x+=parent.clientLeft;
    				result.y+=parent.clientTop;
    			}
    			parent=parent.offsetParent;
    		}
    
            //This is the custom code added to account for scrolling
            //when the code has been customized to not use
            //overflows in the s4-workspace
    		result.x -= document.documentElement.scrollLeft;
    		result.y -= document.documentElement.scrollTop;
    	}
    	else if (element.offsetLeft || element.offsetTop) {
    		result.x=element.offsetLeft;
    		result.y=element.offsetTop;
    	}
    	else {
    		if (element.x) {
    			result.x=element.x;
    		}
    		if (element.y) {
    			result.y=element.y;
    		}
    	}
    	if (element.offsetWidth && element.offsetHeight) {
    		result.width=element.offsetWidth;
    		result.height=element.offsetHeight;
    	}
    	else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
    		result.width=element.style.pixelWidth;
    		result.height=element.style.pixelHeight;
    	}
    	return result;
    }
    

  2. Save the above solution in 14 hive layouts folder under your language – ex: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\1033

    In addition, save the same file as customcore.debug.js and put it in the same place (Note: if you want a minimum file you can minimize the customcore.js and leave this one around for the debug file)

  3. Replace the reference to core.js
    
    <SharePoint:ScriptLink language="javascript" name="core.js" OnDemand="true" runat="server" />
    


    with this:

    
    <SharePoint:ScriptLink language="javascript" name="core.js" Defer="true" runat="server"/>
    <SharePoint:ScriptLink language="javascript" name="customcore.js" Defer="true" runat="server"/>
    

Vote for me at MIX11!!!!!

Category : Presenting

MIX11 is Microsoft’s web conference they hold every year. I submitted a proposal in a contest they have where they select the finalist for proposals and people vote on what sessions they want to see at MIX. My proposal was selected as one of the finalist. It is on building accessible websites. Please vote for my proposal here: http://live.visitmix.com/OpenCall/Vote/Session/57.

 I’d really appreciate it if you vote for me. Also, can you forward this around to anyone you know?

Ignore list for svn and .Net

1

Category : svn

Every time I am at an organization that uses SVN for source control, I always have to remember what files and folders to ignore. Ignoring files and folders, for a .Net solution, is important so that you don’t check in the bin, obj, etc… These are files that are generated on every build and it will become annoying if you have to check them in every time.

I usually use Tortoise SVN, but this list of ignore parameters should be good for any tool. I put the following in the ignore list within the Tortoise SVN settings:

*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk *.msi* .res *.pch *.suo *.exp *.*~ *.~* ~*.* cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj Generated Logs *.csproj.user *.user

This list ignores the common .Net directives that are for the local user and not needed for the entire team. In addition, I also added the folders Generated and Logs. I added those because these are typical folders I use in my solutions to store my generated files (typically from the Entity Framework) and my log files.

This post is more of a note for myself on my next project, but hopefully it will help someone else too.