<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://1hourw.devcow.com/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Atlanta .NET Regular Guys</title><link>http://1hourw.devcow.com/blogs/default.aspx</link><description>&lt;P&gt;Atlanta's .NET Regular Guys work to bring Atlanta's .NET development community closer together. &lt;/P&gt;
&lt;P&gt;Contact us by sending mail to either &lt;A href="mailto:support@devcow.com"&gt;Brendon&lt;/A&gt; or &lt;A href="mailto:mranlett@devcow.com"&gt;Matt&lt;/A&gt;&lt;/P&gt;</description><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60217.2664)</generator><item><title>Mercury in Retrograde</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/12/06/24315.aspx</link><pubDate>Thu, 06 Dec 2007 17:08:22 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:24315</guid><dc:creator>Matt Ranlett</dc:creator><slash:comments>16</slash:comments><description>&lt;p&gt;Since I'm back in New York this week and since I just last night went back to the New York SharePoint User Group for the second time, I thought I'd share the story of what happened to me the first time I came to the NYSPUG.&amp;nbsp; The text that follows was written on November 8th in a stream of consciousness&amp;nbsp; style and for some reason never got posted.&lt;/p&gt; &lt;p&gt;&lt;em&gt;It just wasn't my day yesterday.&amp;nbsp; I was in New York to give a presentation.&amp;nbsp; I've admittedly not prepared for the presentation as much as I should have (read that as not prepared at all).&amp;nbsp; So the presentation is at 6.&amp;nbsp; I've got a 10-2:30 appointment (including travel time to and from).&amp;nbsp; This gives me about 6 hours to prepare.&amp;nbsp; For the first few hours everything goes OK.&amp;nbsp; Slide deck is done and I'm just scripting my demos into the notes section of the slide deck.&amp;nbsp; Then I get to the Microsoft offices in New York and everything goes downhill rapidly.&amp;nbsp; The VM won't cooperate and critical services won't load.&amp;nbsp; No time to debug.&amp;nbsp; Trying another VM and the problems that one is having is worse.&amp;nbsp; Try a third one, then a fourth.&amp;nbsp; Somewhere along the way I find one that will at least run the critical services - time to install InfoPath.&amp;nbsp; Now I've got less than an hour left to prepare and I'm trying to rebuild some demos.&amp;nbsp; Lots of the content I planned on showing off just gets set aside.&amp;nbsp; Finally it's time to present, ready or not.&amp;nbsp; I get up there and my laptop won't display the screen on the projector.&amp;nbsp; OK - I planned for that and brought a spare laptop.&amp;nbsp; Switcho-changeo and the video is on screen.&amp;nbsp; However the CD drive doesn't work and the USB slots only recognize 50% of the memory sticks containing PowerPoint.&amp;nbsp; Time to give the demo...singing and dancing occurs as operations which worked successfully less than 20 minutes ago in a room 30 feet away suddenly stop working.&amp;nbsp; Even in the middle of some operations bizarre things happen.&amp;nbsp; Step 1 and the URL to the site is recognized.&amp;nbsp; Step 2 in the same wizard process and the URL is not recognized!!!&amp;nbsp; Needless to say, the demos totally sucked, but I managed to sing and dance in front of the crowd (80-100 people present) and despite a barrage of technical problems, I got almost universally good reviews.&amp;nbsp; So after the meeting, Intellinet is sponsoring the social hour(s) at a nearby bar.&amp;nbsp; The guy in charge announces this and dashes off to make sure it's set up.&amp;nbsp; Everyone follows him.&amp;nbsp; Everyone except the people lined up to ask me questions.&amp;nbsp; The questioning goes on for so long that by the time I'm packed and ready to leave, there are only 2 people left, and none of us know where the bar is!&amp;nbsp; Fortunately, one of them remembered the name and they were kind enough to help me find it.&amp;nbsp; A $700 bar bill later, I'm back in the corporate apartment sleeping to get ready for my 6:00 am flight back to Indiana.&amp;nbsp; The next day, back in Indiana, I realize that I've left my power cord plugged into the Microsoft podium in NYC.&amp;nbsp; Then, in the very room where I realize I lost the laptop power cord, I plug my cellphone charger into the wall and then leave it behind too! &lt;/em&gt;[edit note - this was recovered the next week.]&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I decided to title this post Mercury in Retrograde b/c while I was at that meeting, the local Microsoft rep babysitting the group introduced me to the concept when I was detailing everything that went wrong for me.&amp;nbsp; &lt;a href="http://www.karmastrology.com/mercrx.shtml" target="_blank"&gt;Mercury in Retrograde&lt;/a&gt; is apparently the astrological equivalent to Murphy's Law taking steroids and whaling on you.&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=24315" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1003.aspx">.NET Community</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1022.aspx">Personal</category></item><item><title>Visual Studio 2008 Loadfest / Halo Fragfest / Guitar Hero Rockfest!</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/11/26/21324.aspx</link><pubDate>Mon, 26 Nov 2007 18:44:53 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:21324</guid><dc:creator>Dan Attis</dc:creator><slash:comments>9</slash:comments><description>&lt;p&gt;For those of you in Atlanta or the surrounding area, we (the &lt;a href="http://www.atlantamspros.com/" target="_blank"&gt;Atlanta Microsoft Professionals&lt;/a&gt;, &lt;a href="http://atlantadotnet.org/" target="_blank"&gt;Atlanta .NET User Group&lt;/a&gt; and Microsoft (aka &lt;a href="http://blogs.msdn.com/dougturn/" target="_blank"&gt;Doug Turnure&lt;/a&gt;)) will be hosting a Visual Studio 2008 Loadfest, followed by a Halo Fragfest / Guitar Hero Rockfest in place of the regularly scheduled "talks".&amp;nbsp; All the fun (and loading) will be happening at the Microsoft Greater Southeast District office in Alpharetta on Monday, December 3rd beginning around 6 PM or so. &lt;p&gt;Be sure to bring your laptops!&amp;nbsp; The first 150 people to arrive get a &lt;strong&gt;FREE&lt;/strong&gt; copy of Visual Studio 2008 Professional.&amp;nbsp; Yes, we know it's not out yet, but trust us, you will get a pretty boxed copy (when it does come out). &lt;p&gt;The gaming facilities will include 9 very large TV's with 9 XBox 360 Elites each with four controllers.&amp;nbsp; Can you say "Holy Crap Batman, I'm there!"&amp;nbsp; Bringing your own guitar is optional! &lt;p&gt;Having an accurate count of attendees would be extremely helpful so please register &lt;a href="https://www.clicktoattend.com/invitation.aspx?code=123034" target="_blank"&gt;here&lt;/a&gt; if you plan on attending. &lt;p&gt;See you then! &lt;p&gt;&lt;a href="http://www.microsoft.com/About/CompanyInformation/usaoffices/southeast/alpharetta.mspx" target="_blank"&gt;Microsoft Corporation&lt;/a&gt;&lt;br&gt;1125 Sanctuary Pkwy.&lt;br&gt;Suite 300&lt;br&gt;Atlanta, GA 30004&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=21324" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1037.aspx">Personal</category></item><item><title>Yet Another great looking public facing MOSS Internet site!</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/11/26/21320.aspx</link><pubDate>Mon, 26 Nov 2007 18:11:35 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:21320</guid><dc:creator>Dan Attis</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;A good friend of mine recently architected, developed and launched &lt;a href="http://www.kroger.com/" target="_blank"&gt;kroger.com&lt;/a&gt; using the MOSS 2007 platform.&amp;nbsp; This is yet another example of using it as a public facing site.&amp;nbsp; This isn’t to say that there weren’t a few hurdles, he mentioned many, but all in all, it seems to be a success and it "looks" awesome! &lt;p&gt;Hopefully this will be the first of many Fortune #25 companies jumping on board (Kroger is #21 at press time)! &lt;p&gt;Check it out!&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=21320" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category></item><item><title>The long dark teatime of my soul</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/11/21/20206.aspx</link><pubDate>Wed, 21 Nov 2007 15:41:18 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:20206</guid><dc:creator>Matt Ranlett</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;So that title has nothing at all to do with the content of this post.&amp;nbsp; I just happen to like the &lt;a href="http://www.amazon.com/Long-Dark-Tea-Time-Soul/dp/0671742515" target="_blank"&gt;book of similar name&lt;/a&gt; by Douglas Adams (of Hitchhikers Guide to the Galaxy fame) and thought it might fit the mishmash of details I'm going to throw in here.&lt;/p&gt; &lt;p&gt;First of all, it's been a while since I've posted anything.&amp;nbsp; Nearly two months!&amp;nbsp; I've been mega-busy at work and at home so I hope that no one has missed my Internet spam too much...&lt;/p&gt; &lt;p&gt;Let's begin with the important details:&lt;/p&gt; &lt;p&gt;1)&amp;nbsp; &lt;a href="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/BabyScan.jpg"&gt;&lt;img height="185" alt="Baby Scan" src="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/BabyScan_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; Kim and I are expecting our first child!&amp;nbsp; Yup - pregnancy!&amp;nbsp; We're past our 12th week where they do all kinds of genetic testing, blood testing, ultrasound testing, and &lt;a href="http://en.wikipedia.org/wiki/Scantron" target="_blank"&gt;Scantron&lt;/a&gt;/#2 pencil testing.&amp;nbsp; Everything seems to be proceeding as it should.&amp;nbsp; We've got at least 4 books with scary titles like &lt;strong&gt;&lt;a href="http://www.amazon.com/What-Expect-Youre-Expecting-Third/dp/0761121323/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1195657930&amp;amp;sr=1-1" target="_blank"&gt;What To Expect When You're Carrying Satan's Child&lt;/a&gt;&lt;/strong&gt; and the like.&amp;nbsp; Kim's really tired of feeling like she's about to throw up (an every day all day sort of feeling for her so far) but we've not noticed any head spinning or levitating furniture so I think she'll be OK.&amp;nbsp; She's also tired a lot, early bedtimes and not much in the way of partying during the daytime, but that's probably a good thing.&amp;nbsp; We're just over 12 weeks in so the baby should start showing its head in the middle of May.&amp;nbsp; We get to find out the sex in a few weeks.&amp;nbsp; Finding the right name should be fun - it turns out that Kim and I don't really agree on ANYTHING.&lt;/p&gt; &lt;p&gt;2) &lt;a href="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/aircastboot.jpg"&gt;&lt;img height="244" alt="aircast boot" src="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/aircastboot_thumb.jpg" width="183" border="0"&gt;&lt;/a&gt;&amp;nbsp; Just over 6 weeks ago, Kim tripped on her way into the garage and broke her ankle in two places.&amp;nbsp; She's been imprisoned in one of these aircast walking boot thingies.&amp;nbsp; For a period of time we had a wheelchair, crutches, a walker, and a stool for the shower at the house.&amp;nbsp; She's now walking without assistance and is eager to be done with the boot.&amp;nbsp; Having a broken leg sucks pretty hard, but combine that with the general malaise Kim's been going through with her pregnancy and it's been a swell time all the way around.&lt;/p&gt; &lt;p&gt;3) &lt;a href="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/airplane.jpg"&gt;&lt;img height="187" alt="airplane" src="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/airplane_thumb.jpg" width="215" border="0"&gt;&lt;/a&gt;&amp;nbsp; Starting at the very end of October, &lt;a href="http://www.intellinet.com" target="_blank"&gt;Intellinet&lt;/a&gt; put me on the road.&amp;nbsp; I've been working for the past three weeks in Indiana, home for a two weeks, then back out on the road in December to a new client in New York City. My being on the road isn't really a big deal aside from the fact that I spend long hours working and no time at home helping Kim manage.&amp;nbsp; I did discover that there are actually some good restaurants in Indiana and I was traveling with some entertaining coworkers.&amp;nbsp; That made travel fairly easy to handle.&lt;/p&gt; &lt;p&gt;4) &lt;a href="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/ConcertTickets.jpg"&gt;&lt;img height="179" alt="ConcertTickets" src="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/ConcertTickets_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; Last weekend was our concert weekend.&amp;nbsp; Friday night we got to see &lt;a href="http://social.zune.net/my/ContentRedirect.ashx?mtype=Artist&amp;amp;mid=f9ab0600-0600-11db-89ca-0019b92a3933" target="_blank"&gt;Tegan and Sara&lt;/a&gt; at the Roxy.&amp;nbsp; Zune users can find their two latest albums here: &lt;a href="http://social.zune.net/my/ContentRedirect.ashx?mtype=Album&amp;amp;mid=7999aa00-0100-11db-89ca-0019b92a3933" target="_blank"&gt;So Jealous&lt;/a&gt; and &lt;a href="http://social.zune.net/my/ContentRedirect.ashx?mtype=Album&amp;amp;mid=370da800-0100-11db-89ca-0019b92a3933" target="_blank"&gt;The Con&lt;/a&gt;.&amp;nbsp; Great show.&amp;nbsp; I missed them the last time they came to Georgia.&amp;nbsp; I think I've been a fan of theirs for 3 or 4 years now.&amp;nbsp; Saturday night we got to see &lt;a href="http://social.zune.net/my/ContentRedirect.ashx?mtype=Album&amp;amp;mid=d133a200-0100-11db-89ca-0019b92a3933" target="_blank"&gt;The Police&lt;/a&gt; reunion concert at Philips Arena with 80,000 of my closest friends.&amp;nbsp; The last time they were in Atlanta, I was 7 years old.&amp;nbsp; It was funny to watch everyone recoding the show with cameras and cellphones.&amp;nbsp; I didn't bother myself, figuring I could find dozens of clips on YouTube later on.&amp;nbsp; Here is just &lt;a href="http://youtube.com/watch?v=XNMM54khyu4" target="_blank"&gt;one of those clips&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;5) &lt;a href="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/promotion.jpg"&gt;&lt;img height="124" alt="promotion" src="http://devcow.com/blogs/adnrg/images/Thelongdarkteatimeofmysoul_9638/promotion_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; Without receiving an official change in title or a raise in pay, I've been selected as the acting director of the &lt;a href="http://intellinet.com/solutions/informationworker.aspx" target="_blank"&gt;Information Worker team&lt;/a&gt; here at &lt;a href="http://www.intellinet.com" target="_blank"&gt;Intellinet&lt;/a&gt;.&amp;nbsp; Should I get the official title, I'll get to put the word "Director" on my business cards and resume.&amp;nbsp; The net effect here is that I get to work longer and harder than before, and some of my time is going to be directed at pre-sales activities instead of having a dedicated focus on implementation and delivery.&amp;nbsp; It's tenuous but it feels like a step in the right direction towards career development.&amp;nbsp; Not bad, considering my 1 year anniversary with Intellinet was just this past October.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I figure this is a pretty good list of excuses as to why I've been quiet for so long.&amp;nbsp; I'll start posting more stuff again - doing my part to fill the Internet with drivel and bad information.&amp;nbsp; Right &lt;a href="http://www.elumenotion.com/Blog/Lists/Posts/Post.aspx?ID=23" target="_blank"&gt;Doug&lt;/a&gt;?&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=20206" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1022.aspx">Personal</category></item><item><title>You Don't Need to Copy PDB Files to Debug in the GAC!</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/11/15/18964.aspx</link><pubDate>Fri, 16 Nov 2007 01:43:30 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:18964</guid><dc:creator>Dan Attis</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I generally don't post a link without much else but this was a no brainer and I feel every SharePoint developer, heck, every .NET developer needs to know this.&amp;nbsp; My friend and SharePoint pal, &lt;a href="http://www.elumenotion.com/default.aspx" target="_blank"&gt;Doug Ware&lt;/a&gt; has discovered how to debug assemblies in the GAC &lt;strong&gt;WITHOUT&lt;/strong&gt; having to copy the pdb symbols file to the MSIL folder.&amp;nbsp; In other words, simply attaching to the correct w3wp worker process will work.&lt;/p&gt; &lt;p&gt;It's awe inspiring, I had no idea!&lt;/p&gt; &lt;p&gt;I'm not going to steal his thunder so you will have to read all about &lt;a href="http://www.elumenotion.com/Blog/Lists/Posts/Post.aspx?ID=23" target="_blank"&gt;here&lt;/a&gt;!&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=18964" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category></item><item><title>Technical Interview Tips</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/10/24/15531.aspx</link><pubDate>Thu, 25 Oct 2007 01:57:46 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:15531</guid><dc:creator>Dan Attis</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;&lt;a href="http://www.mindfusioncorp.com/weblog/" target="_blank"&gt;Keith Rome&lt;/a&gt;, an &lt;a href="http://en.wikipedia.org/wiki/%C3%9Cber" target="_blank"&gt;über&lt;/a&gt; smart friend of mine and fellow &lt;a href="https://mvp.support.microsoft.com/profile/Keith.Rome" target="_blank"&gt;MVP&lt;/a&gt;, recently &lt;a href="http://www.mindfusioncorp.com/weblog/2007/10/23/10+Interview+Tips+That+Will+Help+You+Land+A+Better+Job.aspx" target="_blank"&gt;posted&lt;/a&gt; some interview tips on how to increase the odds of landing that next dream job.&amp;nbsp; Remember, it's the little things that help!&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.mindfusioncorp.com/weblog/2007/10/23/10+Interview+Tips+That+Will+Help+You+Land+A+Better+Job.aspx" href="http://www.mindfusioncorp.com/weblog/2007/10/23/10+Interview+Tips+That+Will+Help+You+Land+A+Better+Job.aspx"&gt;http://www.mindfusioncorp.com/weblog/2007/10/23/10+Interview+Tips+That+Will+Help+You+Land+A+Better+Job.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=15531" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1036.aspx">SQL Server 2005</category><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1037.aspx">Personal</category></item><item><title>SharePoint 2007 - Add a Lookup Field to a List Template Element that references its own List</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/10/16/14341.aspx</link><pubDate>Tue, 16 Oct 2007 14:27:12 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:14341</guid><dc:creator>Dan Attis</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;I had a real hard time coming up for a title for this post.&amp;nbsp; Here is what I am trying to explain in the title.&amp;nbsp; I had a need to create a custom List Template.&amp;nbsp; This can be done via a Feature.&amp;nbsp; The issue I ran across was I needed a Lookup Field in my list that contained values in another column in the same list.&amp;nbsp; The problem was that when you create a Lookup List, behind the scenes, SharePoint is assigning the Guid of the list that you are performing the lookup in to the &lt;a href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.spfieldlookup.lookuplist.aspx" target="_blank"&gt;LookupList&lt;/a&gt; property.&amp;nbsp; This works fine when doing this thru the user interface because the list exists when you add the column.&amp;nbsp; But to place a lookup into a List Template, as far as I can tell anyways, is impossible to do via any of the schemas.&amp;nbsp; It needs this Guid when it creates the field, which we obviously do not have when we are creating the List Template.&amp;nbsp; &lt;/p&gt; &lt;p&gt;My solution was as follows:&amp;nbsp; I created the list without that field and I added some code in the Feature receiver FeatureActivated method.&amp;nbsp; This allowed me to programmatically add the lookup field AFTER the list was created.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;public override void FeatureActivated(SPFeatureReceiverProperties properties)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb _SPWeb = properties.Web)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the name of the list is set in the ListInstance Element of&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // this Feature&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPList _SPList = (SPList)_SPWeb.Lists["ListName"]; &lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_SPList != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // add a new lookup field to the list&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPList.Fields.AddLookup("LookupField", _SPList.ID, false);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // update the list&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPList.Update(); &lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the SPFieldLookup we just added&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPFieldLookup _SPFieldLookup = new SPFieldLookup(_SPList.Fields, "LookupField"); &lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the default view&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPView _SPView = _SPList.DefaultView; &lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // add the field to the view if it is not there&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!_SPView.ViewFields.Exists("LookupField"))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPView.ViewFields.Add(_SPFieldLookup);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // update the view&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPView.Update();&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Now I have a lookup field in my list that points to a column in the same list!&amp;nbsp; Happy coding!&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=14341" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category></item><item><title>October Atlanta Microsoft Professionals meeting - new location alert!</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/28/11643.aspx</link><pubDate>Fri, 28 Sep 2007 19:25:37 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:11643</guid><dc:creator>Matt Ranlett</dc:creator><slash:comments>2</slash:comments><description>&lt;div align="center"&gt;&lt;font face="Verdana" size="5"&gt;&lt;b&gt;Please join us on Monday, October 1 at 6:30 PM for the monthly Atlanta Cutting Edge .NET / MsPros / VB Study Group meeting. &lt;/b&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;font face="Verdana"&gt;&lt;br&gt;&lt;b&gt;Note, for this meeting we will be meeting at Turner in midtown (1015 Techwood Drive) rather than the usual Microsoft offices. If you haven't attended meetings in the past due to location, here's your chance to let us know if this facility is better. Scroll to the bottom of this message for directions to the meeting. &lt;br&gt;&lt;/b&gt;&lt;br&gt;&lt;/font&gt; &lt;blockquote&gt; &lt;div align="center"&gt;&lt;font face="Verdana"&gt;To register for this event, please go to &lt;a href="http://www.clicktoattend.com/?id=121536" target="top"&gt;http://www.clicktoattend.com/?id=121536&lt;/a&gt;. Registration for this meeting is &lt;b&gt;required &lt;/b&gt;in order to get you through Turner's security. &lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;font face="Verdana"&gt;&lt;br&gt;&lt;b&gt;Presentation Topics &lt;/b&gt;&lt;br&gt;&lt;/font&gt; &lt;blockquote&gt;&lt;font face="Verdana"&gt;&lt;b&gt;Speaker&lt;/b&gt;: Steve Porter &lt;br&gt;&lt;b&gt;Topic:&lt;/b&gt; Windows Workflow Rules Engine &lt;br&gt;This talk explores creating, maintaining and executing business rules using the Windows Workflow (WF) rules engine. &lt;br&gt;&lt;br&gt;&lt;b&gt;Speaker&lt;/b&gt;: Rik Robinson &lt;br&gt;&lt;b&gt;Topic&lt;/b&gt;: Deep Dive CSS for the ASP.NET Developer &lt;br&gt;This will be a thorough discussion of all that is CSS. Whether you know it as the necessary evil or the great enabler (that just hasn’t quite clicked for you yet), you should walk away with something valuable from this discussion. I will begin with the basic box model and travel all the way to the holiest of grails (the no tables here, two and three column ASP.NET Master Page layout…yours to take home for free!). Along the way, we’ll touch on some CSS Best Practices and gotchas in ASP.NET and take a look at the new CSS tools in Visual Studio 2008 (Orcas). &lt;br&gt;Rik Robinson is an Independent Consultant in the Atlanta GA area. He holds the following certifications (all .NET Framework 2.0): MCPD –Enterprise Applications, MCTS-Web, MCTS-Windows, MCTS-Distributed Applications. He really hates that he has to type this in third person like someone else wrote it. Rik is supposed to maintain his blog at &lt;a target="top"&gt;www.r2musings.com&lt;/a&gt;. He will soon, I’m sure. Rik’s focus is always on the User Experience (both the end user’s and the developer’s). &lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;font face="Verdana"&gt;&lt;b&gt;NOTE: Different location! &lt;/b&gt;We will be meeting at the Turner Broadcasting in Atlanta &lt;br&gt;&lt;br&gt;&lt;u&gt;&lt;b&gt;&lt;font size="5"&gt;Directions to Techwood &lt;/font&gt;&lt;/b&gt;&lt;/u&gt;&lt;br&gt;&lt;b&gt;Marta Rail System&lt;/b&gt;: Midtown Stop on the North/South Line &lt;br&gt;&lt;br&gt;&lt;b&gt;FROM I-75/I-85 NORTH HEADING NORTH &lt;/b&gt;&lt;br&gt;&lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Travel North on I-75 and I-85. &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Take 10th Street/14th Street/Techwood Drive/Georgia Tech exit (Exit #250) &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Turn left at first red light, onto Tenth Street (heading West) &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Turn right onto Techwood Drive and left into the visitor entrance. &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Pull up to window of the GateHouse and Security Officers will direct you to visitor parking &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Take the parking deck elevator to the 1st floor of the 1000 Bldg and check in with the receptionist in the lobby. Tell them you are with the Atlanta MS Pros. &lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font face="Verdana"&gt;&lt;b&gt;FROM I-75/I-85 SOUTH HEADING SOUTH &lt;/b&gt;&lt;br&gt;&lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Travel South on I-75 or I-85. &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Take Techwood Drive/Tenth Street/Fourteenth Street exit (Exit #84) &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Go straight ahead and the exit ramp turns into Techwood Drive &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Cross 14th Street and stay in the right lane. &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Turn right into the visitor entrance on Techwood Drive &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Pull up to window of the GateHouse and Security Officers will direct you to visitor parking &lt;br&gt;&lt;/font&gt; &lt;li&gt;&lt;font face="Verdana"&gt;Take the parking deck elevator to the 1st floor of the 1000 Bldg and check in with the receptionist in the lobby. Tell them you are with the Atlanta MS Pros. &lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div align="center"&gt;&lt;font face="Verdana"&gt;Thanks, and I hope to see everyone at this month's meeting! &lt;/font&gt;&lt;/div&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=11643" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1003.aspx">.NET Community</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1004.aspx">.NET Events</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1005.aspx">Atlanta MS Pros</category></item><item><title>SharePoint 2007 - Content Editor Web Part and Absolute Url's</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/09/27/11463.aspx</link><pubDate>Thu, 27 Sep 2007 21:04:42 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:11463</guid><dc:creator>Dan Attis</dc:creator><slash:comments>6</slash:comments><description>&lt;p&gt;I am not sure if this type of information has been posted before.&amp;nbsp; I looked around for a good 2 days or so trying to find a solution to my particular problem and could not.&amp;nbsp; Here is a short description of the problem.&lt;/p&gt; &lt;p&gt;My current project involves a public facing WCM site.&amp;nbsp; The site has 2 zones, one for anonymous access and forms users and another zone for AD users.&lt;/p&gt; &lt;p&gt;The content owners all have AD accounts and will be managing the content via the AD zone.&amp;nbsp; Many of the layout pages use Content Editor Web Parts.&amp;nbsp; When a user selects an image or a link using&amp;nbsp;a CEWP, the relative url that appears in the text box is replaced with an absolute url in the database (genius!).&amp;nbsp; Why this happens is beyond me but the end result was unacceptable.&amp;nbsp; Since AD users were uploading content to the site, the url's were being converted to the absolute url of the AD site, which of course is not accessible to anonymous or forms users.&amp;nbsp; My solution was to create an event handler to handle the OnUpdating event of the Page (which is just a list item) and cycle thru the CEWP's on the page to replace any absolute url's with relative ones.&lt;/p&gt; &lt;p&gt;I began by creating my Feature file:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;font size="1"&gt;&amp;lt;!-- _lcid="1033" _version="12.0.4518" _dal="1" --&amp;gt;&lt;br&gt;&amp;lt;!-- _LocalBinding --&amp;gt;&lt;br&gt;&amp;lt;Feature&lt;br&gt;&amp;nbsp; DefaultResourceFile="core"&lt;br&gt;&amp;nbsp; Description="Changes absolute urls to relative urls for all Content Editor Web Parts used in the Pages library."&lt;br&gt;&amp;nbsp; Id="E4E20B7F-F948-4b38-893B-F9F1AA202B84"&lt;br&gt;&amp;nbsp; ReceiverAssembly="Ratman.SharePoint.EventHandlers.ForceRelativeUrl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxtokenxxx"&lt;br&gt;&amp;nbsp; ReceiverClass="Ratman.SharePoint.EventHandlers.ForceRelativeUrl.ForceRelativeUrlFeature"&lt;br&gt;&amp;nbsp; Scope="Web"&lt;br&gt;&amp;nbsp; SolutionId="7B09E255-2BFC-43d5-86AB-3154FC60E443"&lt;br&gt;&amp;nbsp; Title="Ratman Force Relative Url"&lt;br&gt;&amp;nbsp; Version="1.0.0.0"&lt;br&gt;&amp;nbsp; xmlns="&lt;/font&gt;&lt;font size="1"&gt;http://schemas.microsoft.com/sharepoint/"&lt;/font&gt;&lt;/strong&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;gt;&lt;br&gt;&amp;lt;/Feature&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Notice that the above Feature definition defines an assembly.&amp;nbsp; In this assembly we will be hooking up our event handler to the appropriate library in a single site.&amp;nbsp; The reason I did it this way was because the List Type Id of the library I am hooking it up to is 850 and is not in the list of available List Type Id's available when defining an event handler via XML.&amp;nbsp; Well, now to think of it I am not sure if I actually confirmed that.&amp;nbsp; Either way, activating event handlers this way gives you more control over "where" it is activated.&amp;nbsp; For example, when defining an event handler via XML, you must provide (as mentioned above) a List Type Id.&amp;nbsp; This will attach the event handler to all lists of a certain type.&amp;nbsp; For example, were we to define 101, the event handler would be attached to all document libraries.&amp;nbsp; This may not be the behavior that we want.&amp;nbsp; With all that said it is also important to note that the List Template Id for a Pages library is 850.&amp;nbsp; This number can be viewed by looking at the source of a list view of&amp;nbsp;a Pages library.&amp;nbsp; I have not found a single reference to this Id in any MSDN documentation so be weary.&amp;nbsp; I am guessing it&amp;nbsp;may be&amp;nbsp;hard-coded in many places. &lt;p&gt;The following code is my Feature handler, obviously replace xxxtokenxxx with your own token: &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;public class ForceRelativeUrlFeature : SPFeatureReceiver&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void FeatureActivated(SPFeatureReceiverProperties properties)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the current SPWeb&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb _SPWeb = SPContext.Current.Web)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the "Pages" library&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPDocumentLibrary _SPDocumentLibrary = (SPDocumentLibrary)_SPWeb.Lists["Pages"]; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if the "Pages" library exists&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_SPDocumentLibrary != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // create an empty Guid&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Guid _ItemUpdatingGuid = Guid.Empty; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enumerate thru all of the event receiver definitions, attempting to&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // locate the one we are adding&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (SPEventReceiverDefinition _SPEventReceiverDefinition in _SPDocumentLibrary.EventReceivers)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if we find the event receiver we are about to add&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // record its Guid&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_SPEventReceiverDefinition.Type == SPEventReceiverType.ItemUpdating &amp;amp;&amp;amp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPEventReceiverDefinition.Assembly == "Ratman.SharePoint.EventHandlers.ForceRelativeUrl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxtokenxxx" &amp;amp;&amp;amp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPEventReceiverDefinition.Class == "Ratman.SharePoint.EventHandlers.ForceRelativeUrl.ForceRelativeUrlItem")&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ItemUpdatingGuid = _SPEventReceiverDefinition.Id;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if we did not find the event receiver we are adding, add it&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_ItemUpdatingGuid == Guid.Empty)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPDocumentLibrary.EventReceivers.Add(SPEventReceiverType.ItemUpdating, "Ratman.SharePoint.EventHandlers.ForceRelativeUrl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxxtokenxxx", "Ratman.SharePoint.EventHandlers.ForceRelativeUrl.ForceRelativeUrlItem");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Write(ex.Message);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;I made a few assumptions in this code, some of which you may want to remove.&amp;nbsp; I assumed that the Pages library is the name of the Pages library.&amp;nbsp; I assumed this because if you look at the list definition of a Pages library, located @ &lt;strong&gt;C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\Publishing&lt;/strong&gt; you will see that the &lt;strong&gt;UNIQUE&lt;/strong&gt; attribute is set to &lt;strong&gt;true&lt;/strong&gt;.&amp;nbsp; What this means is that you really can have only one of these types of list on a single site.&amp;nbsp; It has also been suggested that many of the publishing features themselves will not work if this is not the name of the library.&amp;nbsp; Here is the Pages library list template definition as it is defined on above on the file system. &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;lt;!-- _lcid="1033" _version="12.0.4518" _dal="1" --&amp;gt;&lt;br&gt;&amp;lt;!-- _LocalBinding --&amp;gt;&lt;br&gt;&amp;lt;Elements xmlns="http://schemas.microsoft.com/sharepoint/"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ListTemplate&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name="Pages"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type="850"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BaseType="1"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hidden="TRUE" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unique="TRUE" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecurityBits="11" &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DisplayName="$Resources:cmscore,List_Pages_DisplayName"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description="$Resources:cmscore,List_Pages_Description"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Image="/_layouts/images/itdl.gif"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ListTemplate&amp;gt;&lt;br&gt;&amp;lt;/Elements&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The code after that is pretty straight forward. &lt;ul&gt; &lt;li&gt;Get a reference to the current SPWeb.&lt;/li&gt; &lt;li&gt;Get a reference to the Pages library (I assume this name) and check if it exists.&lt;/li&gt; &lt;li&gt;Check to make sure that the event handler you are attaching to this library is not already attached.&lt;/li&gt; &lt;li&gt;If the event handler is not found, attach it.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Here is the code for the event handler itself:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;public class ForceRelativeUrlItem : SPItemEventReceiver&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void ItemUpdating(SPItemEventProperties properties)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.DisableEventFiring(); &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 850 is the ListTemplateId of the OOB Pages library on a publishing site&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Int32.Parse(properties.ListItem.ParentList.BaseTemplate.ToString()) == 850)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the list item (the page in this case)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPListItem _SPListItem = properties.ListItem; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the containing SPWeb&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb _SPWeb = _SPListItem.Web)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get a reference to the the web part manager on the page &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPLimitedWebPartManager _SPLimitedWebPartManager = _SPWeb.GetLimitedWebPartManager(_SPListItem.Url, PersonalizationScope.Shared))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // loop thru all of the web parts on the page and up update&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // all of the CEWP's&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (Microsoft.SharePoint.WebPartPages.WebPart _WebPart in _SPLimitedWebPartManager.WebParts)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (_WebPart.GetType().Equals(typeof(ContentEditorWebPart)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (ContentEditorWebPart _ContentEditorWebPart = (ContentEditorWebPart)_WebPart)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // get the contents of the CEWP&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string _ContentString = _ContentEditorWebPart.Content.InnerText; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // remove the absolute url&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ContentString = _ContentString.Replace(_SPWeb.Site.RootWeb.Url, "");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // create an Xml element to use to update the CEWP&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlDocument _XmlDocument = new XmlDocument();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlElement _XmlElement = _XmlDocument.CreateElement("MyElement");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _XmlElement.InnerText = _ContentString; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // update the Content property of the CEWP&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ContentEditorWebPart.Content = _XmlElement; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _SPLimitedWebPartManager.SaveChanges(_ContentEditorWebPart);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Write(ex.Message);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.EnableEventFiring();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The code here is a little more complex, but not terribly difficult.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Disable event firing.&amp;nbsp; Since we are updating this item, we wouldn't want to get caught in some sort of loop, since this is the OnUpdating event handler :)&lt;/li&gt; &lt;li&gt;Ensure that the List Template Id of the list containing this item is in fact 850.&amp;nbsp; This is really just a double check, since we know it is true since we hooked the event handler up to a Pages library in the Feature handler defined above.&lt;/li&gt; &lt;li&gt;Get a reference to the Web Part Manager on the page itself which is really just an item in the Pages library.&lt;/li&gt; &lt;li&gt;Loop thru the web parts on the page and identify CEWP's.&lt;/li&gt; &lt;li&gt;Update the CEWP's content.&amp;nbsp; This was a little tricky.&amp;nbsp; You can't just update the XML directly, you need to create the new XML using an XmlElement and update the XmlElement that defines the Content property&amp;nbsp;of the CEWP.&amp;nbsp; This part took me a while.&amp;nbsp; For some reason intellisense lead&amp;nbsp;me to think that you can update the XML directly.&lt;/li&gt; &lt;li&gt;Re-enable event firing.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;It is important to be sure that all of your disposable objects are disposed of.&amp;nbsp; If there is a single gotcha to SharePoint coding (coding, not development, that's another set of gotchas)&amp;nbsp;it is this.&amp;nbsp; Memory leaks can sprout up quickly and are hard to trace after code is deployed.&amp;nbsp; I hope you find this techniques as useful as I did.&amp;nbsp;&amp;nbsp;I am sure there are some improvements that can be made.&amp;nbsp; This was a relatively quick fix to a VERY BIG problem.&lt;/p&gt; &lt;p&gt;The end result here is that all images and links created via a CEWP on a page in the Pages library on a publishing will contain relative url's as opposed to absolute url's!&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=11463" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category></item><item><title>Be sure to use distinct names in your SharePoint Web Applications</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/25/11020.aspx</link><pubDate>Tue, 25 Sep 2007 17:43:29 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:11020</guid><dc:creator>Matt Ranlett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;If you are creating an externally accessible portal or extranet with SharePoint which uses Forms based authentication, business requirements such as Search and ECM Publishing might require you to create an intranet portal which uses NTLM or Kerberos authentication.&amp;nbsp; To do this, you'd first create a Web Application in SharePoint, then you'd go back and extend that web application to add the second zone.&amp;nbsp; However tempting it might be to give these portals the same description, don't.&amp;nbsp; The misnamed Description field is actually the name that shows up in the IIS Manager application.&amp;nbsp; If you give two Web Apps the same name, they won't get distinct entries in the IIS Admin web sites section.&amp;nbsp; This has the effect of IIS not being able to find your site and sending incoming requests for the duplicate named site to the default web site (which normally shows a "Under Construction" message)&lt;/p&gt; &lt;p&gt;&lt;a href="http://devcow.com/blogs/adnrg/images/BesuretousedistinctnamesinyourSharePoint_C0F0/SharePointWebAppDescription.png"&gt;&lt;img height="159" alt="SharePoint Web Application Description field" src="http://devcow.com/blogs/adnrg/images/BesuretousedistinctnamesinyourSharePoint_C0F0/SharePointWebAppDescription_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://devcow.com/blogs/adnrg/images/BesuretousedistinctnamesinyourSharePoint_C0F0/IISAdminSites.png"&gt;&lt;img height="197" alt="IISAdmin Sites list" src="http://devcow.com/blogs/adnrg/images/BesuretousedistinctnamesinyourSharePoint_C0F0/IISAdminSites_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=11020" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1001.aspx">Programming</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1023.aspx">Technical</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>Be careful about hard coding Javascript in SharePoint 2007</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/17/9590.aspx</link><pubDate>Mon, 17 Sep 2007 14:27:48 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9590</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Have you ever gotten "Please wait while scripts are loaded..." in SharePoint 2007?&amp;nbsp; This is caused by a script error on the current SharePoint page.&amp;nbsp;&amp;nbsp;To&amp;nbsp;solve this problem just fix&amp;nbsp;the javascript errors on&amp;nbsp;the page and it&amp;nbsp;should go away.&amp;nbsp; If you are a using a minimal or custom WCM master page you might run into this.&amp;nbsp; One place you might see this after applying&amp;nbsp;a new master page&amp;nbsp;is in the Survey form.&amp;nbsp; This is&amp;nbsp;due to a hard coded script line in a content area&amp;nbsp;that tries to set an element without checking if the element exists first.&amp;nbsp; Actually this should happen in an list that uses the form.aspx where the code actually lives.&lt;/p&gt; &lt;p&gt;&amp;lt;script id="onetidPageTitleAreaFrameScript"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById("onetidPageTitleAreaFrame").className="ms-areaseparator";&lt;br&gt;&amp;lt;/script&amp;gt; &lt;p&gt;If you don't have this element the message to wait for scripts will never go away.&amp;nbsp; To define the element just add it to a table as defined on the default.master page&amp;nbsp;like the following table row:&lt;/p&gt; &lt;p&gt;&amp;lt;td valign=top id="onetidPageTitleAreaFrame" class='ms-pagetitleareaframe' nowrap&amp;gt;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9590" width="1" height="1"&gt;</description></item><item><title>Phew - coming to the end of a long dark tunnel</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/11/9259.aspx</link><pubDate>Tue, 11 Sep 2007 14:48:02 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9259</guid><dc:creator>Matt Ranlett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;a href="http://devcow.com/blogs/adnrg/images/Phewcomingtotheendofalongdarktunnel_D741/OMFG.jpg"&gt;&lt;img alt="OMFG" src="http://devcow.com/blogs/adnrg/images/Phewcomingtotheendofalongdarktunnel_D741/OMFG_thumb.jpg" align="left" border="0"&gt;&lt;/a&gt; I've been working heads down on a project for the last several months which has consumed a huge portion of my time and probably some of my hair.&amp;nbsp; Even now, as I write this, I'm in the process of developing some stuff which was due last week, rebuilding the server which blew up over the weekend, and managing client expectations the whole while.&amp;nbsp; Oh, let me not forget to mention that Brendon and I managed to write what I think is a pretty insightful article on Office SharePoint Server Search technologies for &lt;a href="http://www.aspnetpro.com/"&gt;ASP.Net Pro magazine&lt;/a&gt; in the last 10 days!&lt;/p&gt; &lt;p&gt;It's been lots of work to get to the end of this road and lots has happened.&amp;nbsp; I've got a new laptop, I've discovered &lt;a href="http://www.facebook.com"&gt;Facebook&lt;/a&gt;, and I've got lots of lessons learned to share with everyone.&amp;nbsp; Look for posts on these topics and more in the coming days!&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9259" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1022.aspx">Personal</category></item><item><title>Using SAP iViews with SharePoint 2007</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/10/9203.aspx</link><pubDate>Tue, 11 Sep 2007 01:35:10 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9203</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;One of the easiest ways to integrate SharePoint 2007&amp;nbsp;to SAP is using&amp;nbsp;a predefined iView from SAP.&amp;nbsp; Of course this will display the same data and view that you would see in any other system that would display an iView, but it is a good start without any extra coding.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;First add an&amp;nbsp;IView web part to the page.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image.png"&gt;&lt;img alt="image" src="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image_thumb.png" border="0"&gt;&lt;/a&gt;&lt;br&gt; &lt;li&gt;The next step seems like it should be easy.&amp;nbsp; Open the tool pane and select the trusted SAP portal server as well as the iView.&amp;nbsp; &lt;br&gt;&lt;img alt="image" src="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image_3.png" border="0"&gt;  &lt;li&gt;The problem is that the first time you are setting up your server you will get an error "No SAP® servers are configured for this site. Contact your administrator to configure trusted SAP® servers."&amp;nbsp; Don't worry you just need to set up your SAP server locations.&amp;nbsp;&lt;br&gt;&lt;a href="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image_4.png"&gt;&lt;img alt="image" src="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image_thumb_3.png" border="0"&gt;&lt;/a&gt;  &lt;li&gt;To set up the SAP server&amp;nbsp;create a configuration file with the web location of the SAP server&amp;nbsp;and the SSO application.&amp;nbsp; If you have the default installation of MOSS this will be under the folder C:\Program Files\Microsoft Office Servers\12.0\Config.&amp;nbsp; You will notice there is an example configuration file named TrustedSAPHosts.xml.sample, just rename the file to TrustedSAPHosts.config.&amp;nbsp; This will allow SharePoint to find the registered SAP servers.  &lt;li&gt;Inside of the xml configuration file there are two elements that have to be set:&amp;nbsp;ServerURL (The server with port number of the SAP Server) and the SsoAuthentication (The SSO application in&amp;nbsp;Central Administration site)&lt;br&gt;&lt;br&gt;&amp;lt;!-- This is from the config file --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;lt;Server Name="SAPServer"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ServerURL&amp;gt;&lt;a href="http://SAPServer:50100"&gt;http://SAPServer:50100&lt;/a&gt;&amp;lt;/ServerURL&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SsoAuthentication Name="SAP"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;lt;/Server&amp;gt;&lt;br&gt; &lt;li&gt;Now go back to the web part and open the tool pane once again.&amp;nbsp; Simply select the&amp;nbsp;SAP server to use and type in the name of the iView to display.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image_5.png"&gt;&lt;img alt="image" src="http://www.devcow.com/blogs/adnrg/images/UsingSAPwithSharePoint2007_13319/image_thumb_4.png" border="0"&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9203" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>Custom SharePoint List-based Membership and Roles Provider</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/10/9200.aspx</link><pubDate>Tue, 11 Sep 2007 00:54:29 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9200</guid><dc:creator>Matt Ranlett</dc:creator><slash:comments>16</slash:comments><description>&lt;p&gt;I've finally finished (almost) with the project that has been keeping me up late at night.&amp;nbsp; I want to thank &lt;a href="http://www.elumenotion.com/default.aspx" target="_blank"&gt;Doug Ware&lt;/a&gt;, &lt;a href="http://devcow.com/blogs/adnrg/" target="_blank"&gt;Brendon Schwartz&lt;/a&gt;, &lt;a href="http://devcow.com/blogs/jdattis" target="_blank"&gt;Dan Attis&lt;/a&gt;, and &lt;a href="http://www.sharepointsecurity.com/blog/" target="_blank"&gt;Adam Buenz&lt;/a&gt; for all the help they gave me over the past several months while I struggled to bring this&amp;nbsp;beast to its knees.&lt;/p&gt; &lt;p&gt;I did some cool work so I thought I'd post it online.&amp;nbsp; Look for this to be the focus of several upcoming blog posts and eventually a white paper of some sort or other.&lt;/p&gt; &lt;p&gt;I sought out and received permission from my employer, &lt;a href="http://www.intellinet.com" target="_blank"&gt;Intellinet&lt;/a&gt;, and my client, &lt;a href="http://www.preparis.com" target="_blank"&gt;Preparis&lt;/a&gt;, to post this code online in its entirety.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.codeplex.com/SPListMP" target="_blank"&gt;&lt;img alt="CodePlex banner" src="http://devcow.com/blogs/adnrg/images/CustomSharePointListbasedMembershipandRo_125FD/CodePlexbanner_toplogo.jpg" border="0"&gt;&lt;/a&gt;&amp;nbsp;Here is the code - &lt;a title="http://www.codeplex.com/SPListMP" href="http://www.codeplex.com/SPListMP"&gt;http://www.codeplex.com/SPListMP&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I've created a custom membership and role provider for SharePoint, which uses a SharePoint list as the backing store for users.&amp;nbsp; This gives me a couple of neat benefits:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;I've got totally discrete user stores despite the fact that potentially dozens of site collections are on the same server.&amp;nbsp; This means I can back up my users along with my site!&lt;/li&gt; &lt;li&gt;I've got&amp;nbsp;familiar and easy to use list management tools to maintain my users and my roles&lt;/li&gt; &lt;li&gt;I've got the ability to do cool custom code based on my custom roles, including the ability to have custom welcome pages for each user role (ok, so this isn't restricted to my custom providers, but it's cool nonetheless)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;I'm excited about this, and I plan to work on the code a lot as time goes on to get it right.&amp;nbsp; The code works now, but there are elements I'm not that proud of as I was forced to make cuts to get it done and out the door.&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9200" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1001.aspx">Programming</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1023.aspx">Technical</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1028.aspx">Microsoft Office 2007</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>Application Error for every new site collection using Network Services account</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/10/9199.aspx</link><pubDate>Tue, 11 Sep 2007 00:51:27 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9199</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Have you ever been testing new web applications in SharePoint and constantly gotten the Runtime Error (Server Error in '/').&amp;nbsp; If you do get this error the real error&amp;nbsp;might be displayed in the event log like the one I found below.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Exception information: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception type: HttpException &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Exception message: The current identity (NT AUTHORITY\NETWORK SERVICE) does not have write access to 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'. &lt;/p&gt; &lt;p&gt;&lt;br&gt;Request information: &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Request URL: http://sharepoint.devcow.com/&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Request path: / &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; User host address: 127.0.0.1 &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; User:&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Is authenticated: False &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Authentication Type:&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread account name: NT AUTHORITY\NETWORK SERVICE&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;A&amp;nbsp;common problem that I just recently saw when creating site collections using the Network Services account for the app pool was a restriction to the ASP.NET Temporary files.&amp;nbsp; This is due to the fact that the Network Services account is a restricted account, so by default it will not have permissions to everything another account, say an administrator, would have.&lt;/p&gt; &lt;p&gt;Keep this in mind next time you create a new site collection or web application and get the Runtime Error screen.&amp;nbsp; Go and check the event logs to see if the error is in there before you try to perform the actions asked on the screen, like changing the web.config which won't work.&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9199" width="1" height="1"&gt;</description></item><item><title>MSDN Event in GA tomorrow</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/10/9197.aspx</link><pubDate>Mon, 10 Sep 2007 23:58:07 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9197</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you want to learn about cutting edge technologies, attend the MSDN event tomorrow.&amp;nbsp; If you don't live in GA there might be one close to where you live. You can find the other locations at &lt;a title="http://www.msdnevents.com/" href="http://www.msdnevents.com/"&gt;http://www.msdnevents.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Register for the event if you are going: &lt;a title="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032345140" href="http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032345140"&gt;http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032345140&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;MSDN Events – Silverlight, LINQ and WCF&lt;/h3&gt; &lt;h4&gt;Event ID: 1032345140&lt;/h4&gt; &lt;p&gt;Tuesday, September 11, 2007 1:00 PM - Tuesday, September 11, 2007 5:00 PM Eastern Time (US &amp;amp; Canada)&lt;br&gt;Welcome Time: 12:00 PM &lt;p&gt;Theater - AMC Parkway Pointe &lt;p&gt;3101 Cobb Parkway&lt;br&gt;Atlanta Georgia 30339&lt;br&gt;United States&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9197" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1003.aspx">.NET Community</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1004.aspx">.NET Events</category></item><item><title>Set up SharePoint sites with user profiles and SSP correctly</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/08/9006.aspx</link><pubDate>Sat, 08 Sep 2007 14:58:42 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:9006</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;SharePoint 2007 sites that are created can have many configuration options, due to this some options can be overlooked.&amp;nbsp; Most users are able to set the options that are in the Central Administration without any trouble because all of the options are in one place.&amp;nbsp; The trouble usually comes&amp;nbsp;with setting options for the Site Collection like the search scopes or variation settings.&amp;nbsp; One&amp;nbsp;setting that most people forget to set is the&amp;nbsp;Portal Site Connection setting that we will look at in this post.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Setting the Portal Site Connection values&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;The Portal Site Connection description on the setting page doesn't really make a lot of sense for what it does.&amp;nbsp;&amp;nbsp;In fact from reading the description you may not think you&amp;nbsp;need to set the value.&amp;nbsp; This setting does help set up the site correctly and when&amp;nbsp;using this setting the functionality of some of the pages changes.&amp;nbsp; For instance, with the portal site connection enabled you are providing a link to another portal in the global navigation (Figure 1)&amp;nbsp;and the user profiles show their My Site page (Figure 2).&lt;/p&gt; &lt;p&gt;Want steps to set up a portal site connection? Check out&amp;nbsp;instructions here: &lt;/p&gt; &lt;p&gt;&lt;a title="http://blogs.msdn.com/wael/archive/2007/07/01/how-to-change-the-view-from-userdisp-aspx-to-mysite-view.aspx" href="http://blogs.msdn.com/wael/archive/2007/07/01/how-to-change-the-view-from-userdisp-aspx-to-mysite-view.aspx" target="_blank"&gt;http://blogs.msdn.com/wael/archive/2007/07/01/how-to-change-the-view-from-userdisp-aspx-to-mysite-view.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.devcow.com/blogs/adnrg/images/SetupuserprofileswithSSPcorrectly_8ABE/image.png" target="_blank"&gt;&lt;img alt="image" src="http://www.devcow.com/blogs/adnrg/images/SetupuserprofileswithSSPcorrectly_8ABE/image_thumb.png" border="0"&gt;&lt;/a&gt;&lt;br&gt;Figure 1&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Display Users My Site Page from userdisp.aspx&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Another use for the portal site connection is linking&amp;nbsp;the user profiles to&amp;nbsp;their display&amp;nbsp;page&amp;nbsp;in My Site.&amp;nbsp; However, this will only work&amp;nbsp;if&amp;nbsp;the user has a profile in the Shared Service user profile store.&amp;nbsp;Once the portal site connection is set and assuming the user has a profile,&amp;nbsp;when you click on a user's name, such as &lt;a title="http://sharepoint.devcow.com/_layouts/userdisp.aspx?ID=16" href="http://sharepoint.devcow.com/_layouts/userdisp.aspx?ID=16"&gt;http://sharepoint.devcow.com/_layouts/userdisp.aspx?ID=16&lt;/a&gt;,&amp;nbsp;it will take you to their My Site page.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.devcow.com/blogs/adnrg/images/SetupuserprofileswithSSPcorrectly_8ABE/image_3.png"&gt;&lt;img alt="image" src="http://www.devcow.com/blogs/adnrg/images/SetupuserprofileswithSSPcorrectly_8ABE/image_thumb_3.png" border="0"&gt;&lt;/a&gt; &lt;br&gt;Figure 2&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Display for users without Shared Service Profiles&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Many people have commented that this doesn't work for all of their site users especially FBA users.&amp;nbsp;If you don't have a user profile set up in the Shared Service profile, SharePoint cannot resolve the user for a My Site view.&amp;nbsp; Instead, you will get the standard WSS view that you get&amp;nbsp;for the user profile.&amp;nbsp; You might notice something a little different though -&amp;nbsp;the page shows all of the fields in the display page (userdisp.aspx), but only shows&amp;nbsp;a read only view of the users&amp;nbsp;login and edit columns for user defined columns in the edit page (useredit.aspx).&amp;nbsp; This happens when you add the site to a Shared Service provider because the User Info list is modified to not show those values in the edit mode.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Steps to set up a Site Collection&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Putting this all together now, here are the steps to correctly set up your Site Collection if you are using a Shared Service provider with the web application and also using the user profile store.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Create a web application&amp;nbsp;and create a site collection (&lt;a title="http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=21" href="http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=21"&gt;http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=21&lt;/a&gt;)  &lt;li&gt;Add a Shared Service provider (&lt;a title="http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=18" href="http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=18"&gt;http://www.pptspaces.com/sharepointreporterblog/Lists/Posts/Post.aspx?ID=18&lt;/a&gt;) &lt;li&gt;&lt;strong&gt;This is a key step that is usually missed!&lt;/strong&gt;&amp;nbsp; Setup the Portal Site Connection values (&lt;a title="http://blogs.msdn.com/wael/archive/2007/07/01/how-to-change-the-view-from-userdisp-aspx-to-mysite-view.aspx" href="http://blogs.msdn.com/wael/archive/2007/07/01/how-to-change-the-view-from-userdisp-aspx-to-mysite-view.aspx"&gt;http://blogs.msdn.com/wael/archive/2007/07/01/how-to-change-the-view-from-userdisp-aspx-to-mysite-view.aspx&lt;/a&gt;).&amp;nbsp;&amp;nbsp;In some cases I was able to remove the Portal Site Connection afterwards, or at least point to another site that is really the main Intranet site - such as &lt;a href="http://intranet"&gt;http://intranet&lt;/a&gt;. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;It appears there is a flag or setting&amp;nbsp;that tells the userdisp page to use a Shared Service provider.&amp;nbsp; It may be a bug that the flag does not get set when associated a Site Collection to a Shared Service Provider.&amp;nbsp; Maybe&amp;nbsp;the flag should get set automatically when the Site Collection&amp;nbsp;is added to the Shared Service provider,&amp;nbsp;because the User Info List is modified when it is added.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Community Kit for SharePoint (CKS) - &lt;/strong&gt;&lt;a href="http://www.codeplex.com/CKS/Wiki/View.aspx?title=Internet%2fExtranet%20Edition&amp;amp;referringTitle=Home"&gt;&lt;strong&gt;Internet/Extranet Edition&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;(IEE)&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;If you are interested in user profiles for the Internet or using Forms Based Authentication (FBA),&amp;nbsp;we will have a release of the IEE project soon.&amp;nbsp;&amp;nbsp;This should have some&amp;nbsp;enhancements for storing&amp;nbsp;user profiles with FBA as well as being able to edit them from the user interface.&amp;nbsp; Check out the site&amp;nbsp;&lt;a href="http://www.codeplex.com/cks"&gt;http://www.codeplex.com/cks&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Possible Problems&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; In trying this out, I have come across some bizarre actions.&lt;/p&gt; &lt;p&gt;Here are some of the things I have seen.&lt;/p&gt; &lt;p&gt;1.&amp;nbsp;Setting the Portal Site&amp;nbsp;Connection&amp;nbsp;of a Site Collection without a Shared Service Provider&amp;nbsp;added&amp;nbsp;that site to the Shared Service&amp;nbsp;provider.&amp;nbsp;&amp;nbsp;Prior&amp;nbsp;to&amp;nbsp;changing the Portal Site Connection value&amp;nbsp;the Site Collection did not have a shared service provider associated with it.&lt;/p&gt; &lt;p&gt;2.&amp;nbsp;After setting up the Portal Site Connection&amp;nbsp;and testing that the users display the MySite page, I removed the Portal Site Connection.&amp;nbsp; After&amp;nbsp;I performed these actions, the users with profiles still display the MySite page&amp;nbsp;from the userdisp.aspx page.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=9006" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>Oodles of Trial Software...</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/09/07/8896.aspx</link><pubDate>Fri, 07 Sep 2007 14:20:04 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:8896</guid><dc:creator>Dan Attis</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I stumbled across this &lt;a href="http://www.microsoft.com/technet/downloads/trials/default.mspx" target="_blank"&gt;link&lt;/a&gt; today that I never knew existed.&amp;nbsp; I have always had a hard time locating trial software, but look no more.&amp;nbsp; Here you will find links to download the following products, enjoy!&lt;/p&gt; &lt;h4&gt;Server Products and Technologies &lt;/h4&gt; &lt;p&gt;•BizTalk Server 2006  &lt;p&gt;•Commerce Server 2007  &lt;p&gt;•Windows Compute Cluster Server 2003  &lt;p&gt;•Microsoft Office Communications Server 2007 and Microsoft Office Communicator 2007  &lt;p&gt;•Exchange Server 2007  &lt;p&gt;•Identity Integration Server 2003  &lt;p&gt;•Identity Lifecycle Manager 2007  &lt;p&gt;•SharePoint Server 2007  &lt;p&gt;•Windows Small Business Server 2003 R2  &lt;p&gt;•Speech Server 2004  &lt;p&gt;•SQL Server 2005  &lt;p&gt;•Virtual Server 2005 R2 SP1  &lt;h4&gt;Server Operating Systems&lt;/h4&gt; &lt;p&gt;•Windows Server 2003 R2  &lt;h4&gt;Security Products and Technologies&lt;/h4&gt; &lt;p&gt;•Microsoft Antigen  &lt;p&gt;•Forefront Client Security  &lt;p&gt;•Forefront Security for Exchange Server  &lt;p&gt;•Forefront Security for SharePoint  &lt;p&gt;•Internet Security and Acceleration (ISA) Server 2006 [Standard Edition]  &lt;p&gt;•Internet Security and Acceleration (ISA) Server 2006 [Enterprise Edition]  &lt;h4&gt;System Center Products&lt;/h4&gt; &lt;p&gt;•System Center Configuration Manager 2007  &lt;p&gt;•System Center Data Protection Manager 2006  &lt;p&gt;•System Center Essentials 2007  &lt;p&gt;•Microsoft Operations Manager 2005  &lt;p&gt;•System Center Operations Manager 2007  &lt;p&gt;•Systems Management Server 2003 R2  &lt;h4&gt;Office System Products&lt;/h4&gt; &lt;p&gt;•Live Communications Server 2005  &lt;p&gt;•Office Enterprise 2007  &lt;p&gt;•Office Project Server 2007  &lt;p&gt;•Office Project Professional 2007 &lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=8896" width="1" height="1"&gt;</description></item><item><title>Useful User Groups list for the Atlanta area</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/05/8718.aspx</link><pubDate>Thu, 06 Sep 2007 01:53:39 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:8718</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I don't remember if I&amp;nbsp;posted this list before, but&amp;nbsp;I maintain a list of user groups in the Atlanta area on DevCow.com and thought&amp;nbsp;I would share it with everyone.&amp;nbsp; Each group that we keep up with is listed with a link to their site.&amp;nbsp; I even maintain this list with a flag that shows if it focuses on Microsoft products or not.&amp;nbsp; All of the groups would be helpful to Microsoft developers so only look at that as a guide.&lt;/p&gt; &lt;p&gt;You can even export the list to excel if you really want to.&amp;nbsp; Keep in mind this list doesn't change very often, but if you have one that needs to be added or if one link doesn't work email Brendon at bschwartz[@]devcow.com.&amp;nbsp; We will update the database with the information.&lt;/p&gt; &lt;p&gt;Check out the list at: &lt;a href="http://www.devcow.com/usergroups/"&gt;http://www.devcow.com/usergroups/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=8718" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1003.aspx">.NET Community</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1004.aspx">.NET Events</category></item><item><title>Matt's chapter from the SharePoint 2007 book on Wrox.com</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/05/8714.aspx</link><pubDate>Thu, 06 Sep 2007 01:22:04 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:8714</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you didn't know Me (Brendon), Matt and Dan worked on a SharePoint book this past year.&amp;nbsp;&amp;nbsp;Today part of Matt's chapter, chapter&amp;nbsp;5 (&lt;em&gt;"Programming Windows SharePoint Services"&lt;/em&gt;) was&amp;nbsp;posted on the Wrox website.&lt;/p&gt; &lt;p&gt;You can check it out here: &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.wrox.com/WileyCDA/Section/id-306329.html"&gt;http://www.wrox.com/WileyCDA/Section/id-306329.html&lt;/a&gt;  &lt;p&gt;This is a great read and in fact check out the quote of one of the reviewers on Matt's chapter.&lt;a href="http://www.wrox.com/WileyCDA/WroxTitle/productCd-0470117567.html" target="_new"&gt;&lt;img src="http://www.wrox.com/remcover.cgi?isbn=0470117567&amp;amp;size=80" align="right" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;"This chapter alone would [be] worth the purchase of the whole book"&lt;/strong&gt;&lt;/em&gt;  &lt;p&gt;&lt;a href="http://www.amazon.com/gp/cdp/member-reviews/A3B1A2QIUKJP3N/ref=cm_cr_auth/104-6715820-2791952?ie=UTF8&amp;amp;sort%5Fby=MostRecentReview"&gt;Amazon review of the book&lt;/a&gt;  &lt;p&gt;Awesome job Matt, keep up the good work!  &lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=8714" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>SPWeb.AuthenticationMode always returns WindowsAuthentication</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/09/05/8650.aspx</link><pubDate>Wed, 05 Sep 2007 12:00:19 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:8650</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I am trying to determine what type of authentication&amp;nbsp;the current SharePoint 2007 web site&amp;nbsp;has, but no matter which SharePoint site I checked the AuthenticationMode of the SPWeb always seems to return WindowsAuthentication.&amp;nbsp; The site that I am&amp;nbsp;using is set up with Forms Based Authentication (FBA), and I would think that&amp;nbsp;SharePoint object model&amp;nbsp;would know the current authentication mode&amp;nbsp;should be &amp;nbsp;AuthenticationMode.Forms, but it doesn't.&lt;/p&gt; &lt;p&gt;I am not sure if I am just missing something?&amp;nbsp; Maybe you really do&amp;nbsp;have to go to the WebApplication and the IISSettings to get the actual value.&amp;nbsp; Seems like a long way to go to&amp;nbsp;get what you need.&amp;nbsp; Keep in mind that to get the IISSettings you will also need to know which zone the site is.&amp;nbsp; Using the Alternate URLs this can be done with the URL of the site.&lt;/p&gt; &lt;p&gt;Let me know if you have a better way.&amp;nbsp; For now it looks like this might be a clean way to get what you want.&amp;nbsp; You can also use the current SPWeb instead of hardcoding it, but this is easier for Console Apps and to make it more clear.&lt;/p&gt; &lt;p&gt;using (SPSite spSite = new SPSite(@"&lt;a href="http://fba.devcow.com&amp;quot;))"&gt;http://fba.devcow.com"))&lt;/a&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWeb spweb = spSite.RootWeb;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPWebApplication webApp = spweb.Site.WebApplication;  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPAlternateUrl altURL = webApp.AlternateUrls[spweb.Url];  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPIisSettings iisSettings = webApp.IisSettings[altURL.UrlZone];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(iisSettings.AuthenticationMode);&lt;br&gt;}&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=8650" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1001.aspx">Programming</category><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>DougW created a SharePoint Skinner for SharePoint 2007</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/08/29/7887.aspx</link><pubDate>Thu, 30 Aug 2007 01:25:21 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:7887</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Our good friend Doug Ware&amp;nbsp;has uploaded a free tool that lest you skin a SharePoint 2007 site from within the UI.&amp;nbsp; &lt;/p&gt; &lt;p&gt;This is a good way to get real time feed back on the changes you are making.&amp;nbsp; Go take it for a test spin and let him know what you think.&lt;/p&gt; &lt;p&gt;His blog is over at &lt;a href="http://www.elumenotion.com/Blog/" target="_blank"&gt;eLumenotion&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.elumenotion.com/Blog/" target="_blank"&gt;http://www.elumenotion.com/Blog/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=7887" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>NET Runtime version 2.0.50727.42 - Fatal Execution Engine Error (7A05E2B3) (80131506)</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/08/06/6853.aspx</link><pubDate>Mon, 06 Aug 2007 20:35:14 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:6853</guid><dc:creator>Dan Attis</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;What an obscure title for a blog entry eh?&amp;nbsp; I just want to make sure that if someone else searches for this, they will find it because I was spinning my wheels for 3 hours researching for this fix.&amp;nbsp; At any rate, here is what happened.&lt;/p&gt; &lt;p&gt;I have an Office SharePoint Server 2007&amp;nbsp;virtual machine that I use for private development and user group demos.&amp;nbsp; Well, I opened it up today (to work on a talk for tonight, that is now canceled :)) and saw that there was an update available on Windows update (I had not opened it for about a week).&amp;nbsp; How silly of me to expect that update to have been fully tested, but I digress.&amp;nbsp;&amp;nbsp;I forget exactly what update it was, but that is not&amp;nbsp;as important as the symptom I am about to describe&amp;nbsp;&amp;nbsp; I installed it without thinking about it, although in hindsight, I remembered this exact same issue happening to me earlier this year, on site at a client and going thru the same thing.&amp;nbsp;&amp;nbsp;At any rate,&amp;nbsp;hindsight is 20/20.&amp;nbsp; So, after installing this update, in my case, it seemed that running any ASP.Net 2.0 application, i.e.: a SharePoint site&amp;nbsp;(either Central Admin, your SSP Administration site or any ASP.Net 2.0 site for that matter that uses as an application pool&amp;nbsp;identity one that does not have a profile on the server (built in system accounts are OK I think, although I have not tested this).&amp;nbsp; Generally this means that that account has never actually interactively logged on to the server; the case for almost ALL service accounts.&amp;nbsp; Now that is what I call brilliant design.&amp;nbsp; Clearly Microsoft has received enough calls about this&amp;nbsp;issue and has released Hotfix.&lt;/p&gt; &lt;p&gt;It's available here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/Default.aspx?kbid=913384" target="_blank"&gt;FIX: A .NET Framework 2.0 application that runs under a user account context when no user profile is associated with the user account context may crash, or you may receive an access violation error message&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If the hotfix gives you an error when installing, it has done this for me, simply log on to the machine as the service account.&amp;nbsp; If the machine is also domain controller you will have to manually give that account that privilege in the Domain Controller Security Policy editor.&amp;nbsp; Be sure to remove this policy after the profile gets created!&lt;/p&gt; &lt;p&gt;Without this fix, the CLR just stops.&amp;nbsp; That's right stops dead in its tracks.&amp;nbsp; Nothing was working.&lt;/p&gt; &lt;p&gt;Well, hopefully this will save another poor soul some time.&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;strong&gt;Side note:&lt;/strong&gt;&amp;nbsp; I have used this fix before but it does not seem to be working in my VM.&amp;nbsp; I suspect something else.&amp;nbsp; I read somewhere that the fix is also bundled with Visual Studio 2005 Service Pack 1.&amp;nbsp; I am curious as to why a framework fix would be bundled with a development tool update.&amp;nbsp; At any rate, I am still fighting my virtual machine and entertaining suggestions.&lt;/em&gt;&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=6853" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category></item><item><title>Is Social Networking behind in the Enterprise?</title><link>http://1hourw.devcow.com/blogs/adnrg/archive/2007/08/03/6780.aspx</link><pubDate>Fri, 03 Aug 2007 17:15:46 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:6780</guid><dc:creator>Brendon Schwartz</dc:creator><slash:comments>5</slash:comments><description>&lt;p&gt;The short answer is Yes it is, but there are reasons.&lt;/p&gt; &lt;p&gt;There is a bigger problem than just Social Networking, which is that many enterprises are behind on the Web 2.0 push. I’m not sure they are behind, but there just isn't always a good business reason to push to something that could just be a buzz word. There are two sides to Social Networking that should be looked at (maybe in another post):&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Social Networking for intranets (internal)&lt;/li&gt; &lt;li&gt;Social Networking for business web sites (external) and applications provided by companies&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;I was talking to a friend of mine that works at a large bank, and I told him that the first bank to figure out how to bring Web 2.0 to enterprise banks will have a major advantage. Now, this may never happen because you have to find the business reason for doing this first.&lt;/p&gt; &lt;p&gt;Back to Enterprise Social Networking, and keep in mind I will be looking at it from a SharePoint 2007 point of view. I think there are many large enterprises looking to bring in Social Networking right now. Most large enterprises are probably looking for a way to increase the collaboration they have now. If they weren't, they wouldn't be doing their job.&lt;/p&gt; &lt;p&gt;Some of the reasons preventing the private enterprise sector from adopting Social Networking might be based on a number of factors and challenges that are very different from, and may not affect, the public sector users.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;The governance of the sites, information, and time. You don’t want to have people on the computer all day trying to set up social networks and leaving messages on other people’s walls. This would not be a good use of time.&lt;/li&gt; &lt;li&gt;Cost is one of the biggest factors that I have seen for why a company might not bring in the tools. This includes hardware and software costs. The investment can be very high for enterprise level tools, especially when the number of users starts to climb.&lt;/li&gt; &lt;li&gt;Integration seems to be a problem that has always been a challenge. Some recent challenges have been how to integrate the data from these products. Although it is much easier in SharePoint 2007, this is still a concern for many companies.&lt;/li&gt; &lt;li&gt;There are always features that companies want that they cannot get from a product, and that is where the community has to step up and create them. You need to have a good community of people continually improving the product. The good news for SharePoint users is that it does have great community involvement.&lt;/li&gt; &lt;li&gt;There are always a large number of companies looking to see who “jumps” first and was successful doing so. As soon as there are a number of large companies that are successful, I think there will be a wave of other companies following the trend.&lt;/li&gt; &lt;li&gt;Competition! Many companies don't know what the best solution is yet, and they are still evaluating what is out there. This can be a problem if your product is just like any other product available. For instance, some people use Linkedin and some use Facebook, but when you have free access to both, you can use both. If you had to invest a lot of money into each one, you may be forced to evaluate the cost benefit of each and select only one of them to buy. What would you do if you had to pick just one?&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;I am sure there are many other factors, but I think many customers are getting ready to move and they just need more time and/or resources, one of which being money. It is difficult to change without the availability of these.&lt;/p&gt; &lt;p&gt;Social Networking may be behind right now, but I don't think it will be for very long. I have been talking with some leading enterprise companies, and they are looking at the tools. They are looking not only for productivity, but also as a requirement to attracting good employees. Some of the best and brightest workers have come to expect a certain level of tools at work that help them accomplish their tasks.&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=6780" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/adnrg/archive/category/1029.aspx">SharePoint 2007</category></item><item><title>SharePoint 2007 - Calculated Fields</title><link>http://1hourw.devcow.com/blogs/jdattis/archive/2007/07/30/6719.aspx</link><pubDate>Mon, 30 Jul 2007 17:37:32 GMT</pubDate><guid isPermaLink="false">7624761a-cac8-4c66-bbe8-307089f0376f:6719</guid><dc:creator>Dan Attis</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I was reading thru some blogs, namely that of &lt;a href="http://www.u2u.info/Blogs/Kevin/Lists/Posts/AllPosts.aspx" target="_blank"&gt;Kevin DeRudder&lt;/a&gt;, today.&amp;nbsp; He recently&amp;nbsp;posted some information on calculated fields.&amp;nbsp; I get questions pretty often from clients on the available formulas when creating a calculated field.&amp;nbsp; In his post, Kevin talks about how to reference a yes/no field from a formula inside a calculated field.&lt;/p&gt; &lt;p&gt;I just wanted to expand on his post a little and post this link to &lt;a href="http://office.microsoft.com/en-us/sharepointtechnology/HA011609471033.aspx" target="_blank"&gt;Examples of common formulas&lt;/a&gt;&amp;nbsp;on the Microsoft Office Online site.&amp;nbsp; I frequently complain about the lack of documentation when it comes to SharePoint, but it seems someone had the time this time around and has documented a good deal of the formulas available for calculated fields.&lt;/p&gt; &lt;p&gt;Everything from Conditional Formulas, Date and time formulas, Math formulas, Text formulas and a few others are documented quite nicely.&lt;/p&gt; &lt;p&gt;There is even a page that talks about the &lt;a href="http://office.microsoft.com/en-us/sharepointtechnology/HA011608661033.aspx?pid=CH011711541033" target="_blank"&gt;Calculation operators&lt;/a&gt;.&amp;nbsp; This includes the "Types of operators" available and "The order in which a list performs operations in a formula".&lt;/p&gt; &lt;p&gt;I hope you find this page as useful as I did.&lt;/p&gt;&lt;img src="http://1hourw.devcow.com/aggbug.aspx?PostID=6719" width="1" height="1"&gt;</description><category domain="http://1hourw.devcow.com/blogs/jdattis/archive/category/1035.aspx">SharePoint 2007</category></item></channel></rss>
