<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-32525647</id><updated>2012-02-03T04:53:04.138+01:00</updated><category term='NUnit'/><category term='TestDriven.net'/><category term='Finalbuilder'/><category term='ferie tyrkiet'/><title type='text'>Livet set fra Odense fjord</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-32525647.post-1807870965662410134</id><published>2010-12-09T21:44:00.002+01:00</published><updated>2010-12-09T22:19:32.087+01:00</updated><title type='text'>Projektledelse &amp; SQL Azure</title><content type='html'>Det er godt nok ved at være lang tid siden jeg sidst har blogget, men arbejdet har de sidste måneder lagt en begrænsning på den tid jeg har til rådighed til teknisk udforskning.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Selv om der er blevet prioriteret hårdt, har jeg valgt at deltage i decembers møde i erfa-gruppen for projektleder under IT-ForumFyn. Emnet var processen omkring valg af projektstyringsværktøj, hvor de havde kigget på Microsoft Project og ProjectFlow. Oplægsholderne, Ebbe og Pia fra Orifarm, fortalte om hvilke behov der drev deres søgning. I deres tilfælde var det i særdeleshed et behov for at skabe overblik over den samlede projektportefølje, idet man søsatte for mange projekter i forhold til de forhåndenværende ressourcer.&lt;/div&gt;&lt;div&gt;Selv om strategiske projekter med ledelsens bevågenhed har bremset den organisatoriske forankring i virksomheden, mener de at virksomhedens projektmodenhed er vokset betragteligt i de sidste par år. Planerne for de kommende år er at alle projekter er registreret i &lt;a href="http://www.projectflow.dk"&gt;ProjectFlow&lt;/a&gt;, at de forventede ressourcetræk er indlagt samt at medarbejderne løbende registrerer tidsforbruget på projekterne, således at det vil være muligt at lave opfølgning på estimaterne, både indenfor tid og økonomi.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ugens andet arrangement var &lt;a href="http://onug.dk/"&gt;ONUGs&lt;/a&gt; TechDay, hvor jeg desvære kun havde mulighed for at deltage i &lt;a href="http://www.performanceduo.com/"&gt;Martin Schmidts&lt;/a&gt; oplæg om SQL Azure. Jeg har stor respekt for folk, som både har styr på deres stofområder og samtidig forstår at bringe denne viden ud til tilhørerne. Martin er helt tydeligt en af disse!  Super godt oplæg, mange tak.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-1807870965662410134?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/1807870965662410134/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=1807870965662410134' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/1807870965662410134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/1807870965662410134'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2010/12/projektledelse-sql-azure.html' title='Projektledelse &amp; SQL Azure'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-3749814235194217654</id><published>2010-08-28T11:12:00.002+02:00</published><updated>2010-08-28T12:15:41.215+02:00</updated><title type='text'>SharePoint + VS2010 : file not found exception</title><content type='html'>To gange inden for den sidste måneds tid er jeg løbet ind i et virkeligt godt eksempel på en Gotcha:&lt;br /&gt;&lt;br /&gt;På min udviklingsserver skulle jeg gennemløbe alle webs i et SPSite:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; (&lt;span style="color: rgb(43, 145, 175);"&gt;SPSite&lt;/span&gt; site = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;SPSite&lt;/span&gt;(&lt;span style="color: rgb(163, 21, 21);"&gt;"http://sharepointapp01/sandbox"&lt;/span&gt;))&lt;br /&gt;{&lt;br /&gt;// the stuff happens here&lt;br /&gt;}&lt;br /&gt;men jeg fik smidt en FileNotFound exception i hovedet, selv om jeg har andre projekter på den samme server, der fungerer fint med samme kode, underligt.&lt;br /&gt;&lt;br /&gt;Ergo måtte problemet ligge i det konkrete projekt, og ganske rigtigt:&lt;br /&gt;&lt;br /&gt;Da jeg arbejder op imod SharePoint 2010 der som bekendt er en 64-bit app, og build setting på det pågældende projekt stod til x86, så tror pokker at det jeg fik en exception. Any CPU løste problemet&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="data:image/png;base64,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" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-3749814235194217654?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/3749814235194217654/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=3749814235194217654' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3749814235194217654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3749814235194217654'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2010/08/sharepoint-vs2010-file-not-found.html' title='SharePoint + VS2010 : file not found exception'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-6520033769041245504</id><published>2010-08-03T22:54:00.005+02:00</published><updated>2010-08-04T14:16:59.388+02:00</updated><title type='text'>Så simpelt er det at vise medlemmerne i Google Maps</title><content type='html'>Formanden for den lokale gymnastikforening (som tilmed er min bedre halvdel) spurgte om det var muligt at få at visualisere hvor medlemmerne bor, således at omdelingen af katalogerne kunne optimeres.&lt;br /&gt;Jeg har tidligere arbejdet en del med &lt;a href="http://digitaliser.dk/group/334445"&gt;AWS (Adresse web servicen)&lt;/a&gt; og viste derfor at blot jeg havde en adresse, så burde det være muligt at fremfinde de tilhørende koordinater. Disse skal blot flettes ind i en &lt;a href="http://code.google.com/apis/kml/documentation/kml_tut.html"&gt;KML fil&lt;/a&gt;, og derefter indlæses i Google Maps, Google Earth eller blot indsættes på &lt;a href="http://display-kml.appspot.com/"&gt;http://display-kml.appspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Rent praktisk indlæses filen (husk iso-8859-1 encoding af hensyn til æøå), adresserne parses til vejnavn, husnummer, postnummer og evt. en kort tekstbeskrivelse af medlemmet.&lt;br /&gt;Når dette er på plads vil et kald til web servicen &lt;a href="http://www.ebst.dk/findaddressservice"&gt;FindAddressAccess&lt;/a&gt; give adgang til northing og easting for den pågældende adresse.&lt;br /&gt;Da Google ikke kan arbejde med UTM ETRS89 er det nødvendigt at omsætte koordinatet til længde og bredde (WBS84) via et kald til en af de mange REST service som IT- og Telestyrelsen stiller til rådighed på &lt;a href="http://oiorest.dk/danmark/documentation/eksempler.aspx"&gt;http://oiorest.dk/danmark/documentation/eksempler.aspx&lt;/a&gt;. I dette tilfælde bruger jeg servicen &lt;span style="font-style: italic;"&gt;wgskoordinater&lt;/span&gt;&lt;br /&gt;Sidste opgave er at flette koordinaterne ind i en KML struktur, og en &lt;a href="http://www.manfridayconsulting.it/index.php?option=com_content&amp;amp;view=article&amp;amp;id=31:generate-kml-file&amp;amp;catid=8:c&amp;amp;Itemid=22"&gt;artikel &lt;/a&gt;på http://www.manfridayconsulting.it demonstrer hvorledes det skal gøres.&lt;br /&gt;&lt;img src="data:image/png;base64,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" alt="" /&gt;&lt;br /&gt;Resultatet er en KML struktur som du enten kan hente ind i maps, earth eller KML visningsværktøjet nævnt i starten af dette indlæg.&lt;br /&gt;Koden kommer op på CodePlex i løbet af ugen og hvis du har spørgsmål er du velkommen til at skrive til mig.&lt;br /&gt;Rettelse: Koden er nu tilgængelig på &lt;a href="http://hvorbormedlemmerne.codeplex.com/"&gt;http://hvorbormedlemmerne.codeplex.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-6520033769041245504?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/6520033769041245504/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=6520033769041245504' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6520033769041245504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6520033769041245504'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2010/08/sa-simpelt-er-det-at-vise-medlemmerne-i.html' title='Så simpelt er det at vise medlemmerne i Google Maps'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-2448832555595872331</id><published>2010-07-24T18:59:00.004+02:00</published><updated>2010-07-26T21:07:55.401+02:00</updated><title type='text'>Document management: Google Apps vs SharePoint Online</title><content type='html'>Resently I have been looking into the options currently available in the document management space, as the members of the local landowners association needs a place to share and collaborate documents.&lt;br /&gt;The requirements are as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;cheap, preferably for free&lt;/li&gt;&lt;li&gt;should handle MS Office docs&lt;/li&gt;&lt;li&gt;5-10 user accounts&lt;/li&gt;&lt;li&gt;very easy user interface&lt;/li&gt;&lt;li&gt;web based&lt;/li&gt;&lt;li&gt;File versioning would be nice&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;This narrows the candidates to just &lt;a href="http://basecamphq.com/"&gt;Backpack&lt;/a&gt; from 37Signals, &lt;a href="http://www.google.com/apps/intl/en/business/index.html"&gt;Google Apps&lt;/a&gt; and &lt;a href="http://www.microsoft.com/online/sharepoint-online.mspx"&gt;SharePoint online&lt;/a&gt;, as both MS Skydrive  and Google Docs are just a File Share in the cloud and do not offer any collaboration features.&lt;br /&gt;&lt;br /&gt;Since I have not been able to locate a free Backpack nor SharePoint offering the Google Apps solution looks like the obvious choice. However I have signed up for a trial version of both Backpack and SharePoint, and I will soon revert with the verdict :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-2448832555595872331?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/2448832555595872331/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=2448832555595872331' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2448832555595872331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2448832555595872331'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2010/07/document-management-google-apps-vs.html' title='Document management: Google Apps vs SharePoint Online'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-7192265187756026162</id><published>2009-09-17T22:14:00.003+02:00</published><updated>2009-09-17T22:33:15.017+02:00</updated><title type='text'>Iværksætteren findes endnu, gudskelov</title><content type='html'>Det er rart at se at der stadig findes rigtige iværksættere som får en god idé samt evner at få den længere end idéstadiet.&lt;br /&gt;I august var Odense .Net User Group, som jeg er medlem af, på besøg hos softwarehuset &lt;a href="http://www.ecreo.dk/"&gt;ECreo&lt;/a&gt; hvor ejerne Casper Stendal og Anders Wind bl.a. fortalte om et joint venture som de gik ind i for et par siden, og som i dag er kendt som &lt;a href="http://www.ekvittering.dk/"&gt;eKvittering&lt;/a&gt;&lt;br /&gt;Ideen bag firmaer er egenlig død simpel: når du køber dine varer i butikken og får en kvittering så sendes en kopi af kvitteringen op på et website, så du til enhver tid kan finde den igen, hvis der kommer en reklamation eller du af en anden grund får behov for at bevise at du har købt varen.&lt;br /&gt;&lt;br /&gt;Citybank i USA var vist en af de første som forsøgte noget lignende tilbage i 1960'erne, men de var vist en anelse for tidligt ud :-)&lt;br /&gt;&lt;br /&gt;Nu ser det imidlertid ud til at tiden er moden til denne service, og der er vel også på tide. Jeg har ihvertfald skyndt mig at få meldt mine kreditkort til løsningen, således at jeg langt om længe får styr på alle de forbistrede kvitteringer. Hov, jeg glemte vist at nævne at forretningsmodellen er bygget således, at det er butikkerne der betaler for servicen, som almindelig forbruger er det gratis at melde sit dankort ind i ordningen.&lt;br /&gt;&lt;br /&gt;Disclaimer: jeg har ikke penge eller andre interesser i firmaet, men jeg synes blot at det er en smadder god idé.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-7192265187756026162?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/7192265187756026162/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=7192265187756026162' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7192265187756026162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7192265187756026162'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/09/ivrkstteren-findes-endnu-gudskelov.html' title='Iværksætteren findes endnu, gudskelov'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-349875552480259799</id><published>2009-08-02T15:23:00.006+02:00</published><updated>2009-08-03T08:11:55.990+02:00</updated><title type='text'>Updating a SPListItem on Item Added in a Document List</title><content type='html'>Yesterday a colleague of mine at &lt;a href="http://www.flowit.dk/page.asp?sideid=158&amp;amp;zcs=2"&gt;Flowit &lt;/a&gt;was working on an Event Handler in a Document Library, and the idea was to add some information from the site to the SPListItem when a new document was added.&lt;br /&gt;Since there was no need for validation it sure looked like the event to use should be the ItemAdded event, but then all hell broke loose.&lt;br /&gt;When calling Item.Update() SharePoint threw an exception :&lt;br /&gt;&lt;span lang="EN-GB"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Microsoft.SharePoint.SPException: Document Locked&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;The document you are attempting to edit is locked and cannot be updated.&lt;span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Since this happened in the ItemAdded event we had to assume that the sequence was something like:&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;span lang="EN-GB"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Create new SPListItem&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Attach document to the SPListItem&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="EN-GB"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;Release document&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span lang="EN-GB"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;We checked whether the AttachmentAdded event was triggered but is was not.&lt;br /&gt;We found a &lt;a href="http://weblogs.asp.net/jan/archive/2004/05/02/124706.aspx"&gt;posting&lt;/a&gt; from Jan Tielens (U2U) from back in 2004, but the solution he used was more like a hack so we really didn't liked it.&lt;br /&gt;&lt;br /&gt;Some time ago I read some of the documentation for SPList and noted the description for SPList.SystemUpdate() :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;Updates the database with changes made to the list item, without effecting changes in the Modified or Modified By fields.     &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Back in the day I worked a lot with systems based on optimistic concurrency control and the only reason for SystemUpdate() that I could see, was to bypass the concurrency control!!!!&lt;br /&gt;&lt;br /&gt;But in this case that bypass proved to be very handy, as it solved the issue:&lt;br /&gt;call .SystemUpdate() rather then .Update() and the ListItem is updated as planned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-349875552480259799?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/349875552480259799/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=349875552480259799' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/349875552480259799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/349875552480259799'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/08/updating-splistitem-on-item-added-in.html' title='Updating a SPListItem on Item Added in a Document List'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-9201238389688437147</id><published>2009-08-02T11:22:00.006+02:00</published><updated>2009-08-02T15:22:51.057+02:00</updated><title type='text'>Adresse Web Service - Del III - TDD i praksis</title><content type='html'>En af de almindeligste fejl i forbindelse med TDD er, at man midt i et "rød, grøn, refactor" forløb får en god idé til forbedring af designet og så straks begynder at implementere denne idé. Ergo man bliver ikke færdig med det igangværende forløb, samt at man begynder at implementere ny kode uden at skrive testen først.&lt;br /&gt;Måden til at undgå dette er, at udvikleren løbende noterer idéer til nye funktioner/klasse på en TO-DO liste, og så holder fokus på det igangværende arbejde. Jeg prøvede 2-3 forskellige TO-DO programmer men for mig er løsningen nu noget så lavpraktisk som en kuglepen og en notesblok.&lt;br /&gt;&lt;br /&gt;Codeplex' IssueTracker dækkede rigeligt behovet for at holde styr på feature requests, men samtidig var det absolut nødvendig, for den var medvirkende til at jeg holdt fokus på een feature af gangen, frem for at flagre fra det ene område til det andet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-9201238389688437147?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/9201238389688437147/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=9201238389688437147' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/9201238389688437147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/9201238389688437147'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/08/adresse-web-service-del-iii-tdd-i.html' title='Adresse Web Service - Del III - TDD i praksis'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-131410973996180345</id><published>2009-06-17T17:35:00.002+02:00</published><updated>2009-06-17T19:13:13.721+02:00</updated><title type='text'>Adresse Web Service - Del II</title><content type='html'>Adresse WebService-projektet er nu ved at være klar til Release 0.1.&lt;br /&gt;&lt;br /&gt;Projektet går i alt sin enkelthed ud på at demonstrere nogle af de mange måder man kan bruge de gratis web services som du finder på &lt;a href="http://www.ebst.dk/aws"&gt;http://www.ebst.dk/aws&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;CodePlexprojektet finder du her: &lt;a href="http://awsloaderdk.codeplex.com/"&gt;AdresseWebServiceEksempler&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hvis du har spørgsmål eller kommentarer skal du være velkommen til at skrive i debatområdet på projektet, samme gælder naturligvis hvis du har ideer til en ny feaure request, dog skal disse logges i projektets Issue Tracker.&lt;br /&gt;&lt;br /&gt;Et andet sted af interesse kunne være &lt;a href="http://digitaliser.dk/group/334445"&gt;AWS-gruppen&lt;/a&gt; på digitaliser.dk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-131410973996180345?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/131410973996180345/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=131410973996180345' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/131410973996180345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/131410973996180345'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/06/adresse-web-service-del-ii.html' title='Adresse Web Service - Del II'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-3010323062033526641</id><published>2009-05-30T11:46:00.004+02:00</published><updated>2009-05-30T11:58:40.175+02:00</updated><title type='text'>XOBNI</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VQ5_FrCGEz8/SiEBo3K3LOI/AAAAAAAAAFA/7guW-8XnU44/s1600-h/xobni.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 118px; height: 320px;" src="http://2.bp.blogspot.com/_VQ5_FrCGEz8/SiEBo3K3LOI/AAAAAAAAAFA/7guW-8XnU44/s320/xobni.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5341552434554023138" /&gt;&lt;/a&gt;&lt;br /&gt;En af mine kollegaer viste mig i denne uge en af de sjoveste (og nyttige) Add-ins til Outlook jeg nogensinde har set.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Som du kan se til venstre viser &lt;a href="http://www.xobni.com/"&gt;XOBNI&lt;/a&gt; informationer fra et hav af kilder (Outlook, Facebook, LinkedIn, Skype osv.) og det virker rigtig overbevisende.&lt;br /&gt;En anden meget nyttelig funktionalitet er, at du kan se de personer som din valgte person nogensinde har skrevet til (hvor du også var med på mailen). &lt;br /&gt;&lt;br /&gt;XOBNI ( Inbox stavet bagfra) er gratis og noget du helt klar bør overveje :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-3010323062033526641?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/3010323062033526641/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=3010323062033526641' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3010323062033526641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3010323062033526641'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/05/xobni.html' title='XOBNI'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VQ5_FrCGEz8/SiEBo3K3LOI/AAAAAAAAAFA/7guW-8XnU44/s72-c/xobni.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-3907548215912071096</id><published>2009-05-17T20:30:00.009+02:00</published><updated>2009-05-22T11:39:38.905+02:00</updated><title type='text'>Adresse Web Service - Del I</title><content type='html'>Erhvervs- og Byggestyrelsen, Kort &amp;amp; Matrikelstyrelsen og IT- og Telestyrelsen igangsatte i 2006 et projekt som går ud på at give adgang til de officielle adressedata ved hjælp af webservices:&lt;br /&gt;• Ca. 2,4 mio. adgangsadresser (dvs. hoveddørsadresser)&lt;br /&gt;• Ca. 3,0 mio. enhedsadresser (dvs. entredørsadresser inkl. evt. etage- og dørbetegnelser)&lt;br /&gt;• Ca. 108.000 vejnavne samt&lt;br /&gt;• 1078 postnumre og 98 kommuner&lt;br /&gt;&lt;br /&gt;I marts 2009 fik de første udvalgte udviklere adgang til de gratis web services på &lt;a href="http://www.ebst.dk/aws"&gt;http://www.ebst.dk/aws&lt;/a&gt; og jeg har fået kigget lidt på mulighederne.&lt;br /&gt;&lt;br /&gt;Den første idé som falder folk ind når man snakker om adreser er, at der nu burde være mulighed for at få valideret de tusindevis af adresser som er glemt i kunder- og leverandørdatabaserne. Dette er bestemt også noget man bruge AWS til, men jeg har valgt at se mulighederne fra en anden vinkel:&lt;br /&gt;Frem for at validere eksisterende data vil jeg sikre at de nye data er korrekte fra starten af.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VQ5_FrCGEz8/ShCJZFgetGI/AAAAAAAAAE4/OdtU3ZZ0ZkU/s1600-h/Adresse-vaelger.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 183px; height: 162px;" src="http://1.bp.blogspot.com/_VQ5_FrCGEz8/ShCJZFgetGI/AAAAAAAAAE4/OdtU3ZZ0ZkU/s320/Adresse-vaelger.JPG" alt="" id="BLOGGER_PHOTO_ID_5336916622502179938" border="0"&gt;&lt;/a&gt;&lt;font style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Databaseschema til adresser&lt;/font&gt;&lt;br /&gt;Mange har en struktur med postnummer, postdistrikt, adresse1, adresse2, evt. husnummer. Dette er en meget logisk løsning, som tilmed passer fint til den måde vi tænker på adresser på i dagligdagen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En helt anden måde at håndtere adresser på er, at gemme de nøgler som tilhører adresserne. Det er nok kun et fåtal som kender disse nøgle:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;kommunenummer, hver komunne har et firecifret id-nummer &lt;/li&gt;&lt;li&gt;vejkode, her tænkes på de kommunale vejkoder. Hver vej i komunnen har et firecifret id-nummer.&lt;/li&gt;&lt;li&gt;husnummer, Husnummer incl. et valgfrit bogstav&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I OIO-termer hedder de hhv. &lt;a href="http://digitaliser.dk/resource/6540"&gt;MunicipalityCode&lt;/a&gt;,&lt;a href="http://digitaliser.dk/resource/1222"&gt;StreetCode&lt;/a&gt;,&lt;a href="http://digitaliser.dk/resource/3661"&gt;StreetBuildingIdentifier &lt;/a&gt;og er dokumenteret på &lt;a href="http://digitaliser.dk/"&gt;http://digitaliser.dk &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Når du har fået disse tre nøgler ned i databasen har du ikke alene fået en helt entydig adresse, men du har også fået adgang til at berige dine adresseoplysninger med f.eks. geokodning af selve adressen. En af basisoplysningerne på en adresse er dens Northing og Easting, hvilket er koordinatsættet for selve adressen (ikke længde- og breddegrader).  Så vidt jeg husker er hverken Google Maps og Virtual Earth i stand til at bruge Northing og Easting, så de skal konverteres til Lat/Long inden da. Kort- og Matrikelstyrelsen har en konverteringsværktøj, men dette vender jge tilbage til i en af de kommende posts.&lt;br /&gt;&lt;br /&gt;Fremfor at hente listerne med f.eks. kommunenavne og tilhørende kommunenumre direkte fra web servicen når jeg skal bruge dem, har jeg valgt en strategi hvor jeg efter behov, henter alle basisoplysningerne (kommuner, veje og husnumre) og gemmer dem i en lokal database. &lt;br /&gt;Jeg arbejder pt. stadig med koden men håber på at frigive den på codeplex indenfor de nærmeste uger.&lt;br /&gt;&lt;br /&gt;Pt. er jeg løbet ind i nogle udfordringer. Ifølge Kristian K. Hansen i Erhvervs- og Byggestyrelsen understøtter de nuværende web services ikke at man henter alle basisoplysningerne (kommuner, veje og husnumre). "Servicene er pt. ikke bygget med komplette download for øje - de er mere ment som en mulighed for at parse, validere og hente enkelte adresser. - Jeg vil dog tage dit ønske med til overvejelse i fremtidige versioner."&lt;br /&gt;&lt;br /&gt;Jeg ser naturligvis frem til at Erhvervs- og Byggestyrelsen udvider web servicen med de nødvendige kald, så vi fremover kan arbejde med valide adressedata.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-3907548215912071096?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/3907548215912071096/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=3907548215912071096' title='6 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3907548215912071096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3907548215912071096'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/05/adresse-web-service-del-i.html' title='Adresse Web Service - Del I'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VQ5_FrCGEz8/ShCJZFgetGI/AAAAAAAAAE4/OdtU3ZZ0ZkU/s72-c/Adresse-vaelger.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-2530665956391409519</id><published>2009-05-14T20:14:00.002+02:00</published><updated>2009-05-14T20:27:29.030+02:00</updated><title type='text'>Adgang til dine bookmarks overalt</title><content type='html'>Da jeg i forbindelse med reinstallation af min arbejdsamaskine flere gange har mistet hele min bookmarksamling begyndte jeg at kigge efter en løsning hvor alle bookmarks blev opbevaret uden for den lokale maskine. &lt;br /&gt;Den bedste løsning som jeg kunne finde var FoxMarks der, som havdet antyder, kun virker på Firefox. Konceptet er at alle bookmarks løbende synkroniseres med en central server, så jeg har adgang til dem fra en hvilken som helst maskine, blot der er installeret Firefox. &lt;br /&gt;Det var som sagt situationen for godt et år siden. Fornyligt skiftede Foxmarks navn til &lt;a href="http://www.xmarks.com/"&gt;XMarks&lt;/a&gt; idet løsningen nu også findes i både en safari- og IEversion, så nu har jeg nøjagtigt de samme bookmarks i både FF og IE!! Nåh ja, det hele er selvsagt gratis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-2530665956391409519?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/2530665956391409519/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=2530665956391409519' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2530665956391409519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2530665956391409519'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/05/adgang-til-dine-bookmarks-overalt.html' title='Adgang til dine bookmarks overalt'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-6873666884421251506</id><published>2009-03-15T22:52:00.005+01:00</published><updated>2009-03-16T08:38:00.909+01:00</updated><title type='text'>Active Directory på 8 timer</title><content type='html'>Hos min arbejdsgiver &lt;a href="http://flowit.dk"&gt;Flowit&lt;/a&gt; arbejder vi via SharePoint op imod kundernes eksisterende Active Directory, og det har ofte været en blandet oplevelse. Disse AD'er har ofte mange år på bagen og været gennem mange fussioner og udspaltninger, så de kan være ret vanskelige at gennemskue.&lt;br /&gt;For at klæde os bedre på til opgave entrerede vi med &lt;a href="http://www.globalknowledge.dk/"&gt;Global Knowledge&lt;/a&gt;, som i samarbejde med os sammensatte et superkoncentreret AD-kursus i firmaregi.&lt;br /&gt;Det er virkelig imponerende så megen viden, som Bjørn Hansen fra Globalknowledge kunne presse ind i vore hoveder på en enkelt dag. Dette skyldes vel primært at han har en stor og bred viden om både AD og de omkringliggende teknologier. At vi så tilmed var særdeles motiverede, har vel kun gjort opgaven lettere. &lt;br /&gt;Herfra skal der lyde en tak til Bjørn for en faktastisk dag, og vi er nu klar til at tackle de AD-udfordringer som helt sikkert vil komme lige rundt om hjørnet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-6873666884421251506?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/6873666884421251506/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=6873666884421251506' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6873666884421251506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6873666884421251506'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/03/active-directory-pa-8-timer.html' title='Active Directory på 8 timer'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-7133057137805822519</id><published>2009-01-10T14:34:00.013+01:00</published><updated>2009-01-11T20:47:45.863+01:00</updated><title type='text'>Egne underpunkter i SharePointlisters menuer</title><content type='html'>Jeg har i løbet af den sidste måneds tid kigget på hvordan man kan tilpasse menupunkterne i en SharePointliste.&lt;br /&gt;&lt;br /&gt;I dette tilfælde ønskede man at tilføje et menupunkt til "New" sektionen på et dokumentbibliotek, således at brugeren kan vælge en dokumentskabelon fra en central liste, frem for at liste samtlige 45 skabeloner i downdown'en.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VQ5_FrCGEz8/SWimQVuVZvI/AAAAAAAAAEA/DDufllA0At0/s1600-h/CDB_1.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 265px; height: 170px;" src="http://1.bp.blogspot.com/_VQ5_FrCGEz8/SWimQVuVZvI/AAAAAAAAAEA/DDufllA0At0/s320/CDB_1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289660561986250482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jeg viste fra et tidligere SharePointkursus at jeg skulle ændre i featurelisten under 12'er folderen for at tilpasse menuerne. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MSDN har en glimrende artikel om &lt;a href="http://msdn.microsoft.com/en-us/library/ms473643.aspx"&gt;emnet&lt;/a&gt; som jeg brugte som udgangspunkt. Resultatet af denne artikel er at du har nye menupunkter på alle de steder du kunne ønske det.&lt;br /&gt;&lt;br /&gt;Et webcast der viser stort set det samme kan du finde &lt;a href="http://download.microsoft.com/download/6/c/7/6c7afcaa-bd18-472c-85ad-2133ab05d395/WinVideo-VSTO-SharePointMenu.wmv"&gt;her&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Da kunden specifikt havde ønsket at et klik på "New" skulle aktivere det specielle menupunkt kiggede jeg på hvordan jeg kunne sikre dette. Tilsyneladende kan man ikke direkte angive hvilket af de underliggende menupunkter der aktiveres når man klikker på "New", det vil altid det første menupunkt der aktiveres.&lt;br /&gt;&lt;br /&gt;Løsningen på dette kundeønske var i dette tilfælde at fjerne evt. contant types således at der ikke længere findes en default content type. "Allow management of content types" under "Advanced Settings" skal være slået til, for eller dukker der automatisk en default content type op. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Uden Folder&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SWjBRibP1HI/AAAAAAAAAEQ/ZcAI4jGPKcw/s1600-h/CDB_3.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 94px;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SWjBRibP1HI/AAAAAAAAAEQ/ZcAI4jGPKcw/s320/CDB_3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289690269389673586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Om brugeren skal have mulighed for at skabe nye foldere er helt op til dig, det påvirker ikke den ønskede funktionalitet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Med Folder&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VQ5_FrCGEz8/SWjB-w69K6I/AAAAAAAAAEY/dvTU9-FvZEg/s1600-h/CDB_4.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 262px; height: 151px;" src="http://3.bp.blogspot.com/_VQ5_FrCGEz8/SWjB-w69K6I/AAAAAAAAAEY/dvTU9-FvZEg/s320/CDB_4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289691046374878114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jeg er endnu ikke kommet helt i mål, selv om mit nye menupunkt er det eneste under "new" så er det ikke en content type og vil derfor ikke blive aktiveret når brugeren klikker på "New". I dette tilfælde er den fundne løsning sandsynligvis tilstrækkelig idet et klik på "New" blot vil åbne den underliggende menu, hvor brugeren så kan vælge det korrekte menupunkt :-)&lt;br /&gt;&lt;br /&gt;Af ukendte årsager indeholder artiklens eksempel ikke attributen ImageUrl som specificerer ikonet som du ønsker at vise i forbindelse med dit menupunkt, f.eks. ImageUrl="/_layouts/images/ICEML.GIF", og så ser det sådan ud.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SWjFQns77nI/AAAAAAAAAEg/ab_6FXbQu4Q/s1600-h/CDB_5.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 254px; height: 108px;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SWjFQns77nI/AAAAAAAAAEg/ab_6FXbQu4Q/s320/CDB_5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289694651672686194" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-7133057137805822519?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/7133057137805822519/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=7133057137805822519' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7133057137805822519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7133057137805822519'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2009/01/egne-underpunkter-i-sharepointlisters.html' title='Egne underpunkter i SharePointlisters menuer'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VQ5_FrCGEz8/SWimQVuVZvI/AAAAAAAAAEA/DDufllA0At0/s72-c/CDB_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-4763889872422478114</id><published>2008-11-09T23:33:00.008+01:00</published><updated>2008-11-10T19:19:45.287+01:00</updated><title type='text'>An easy intro to building your first WebPart</title><content type='html'>This is part 2 of my "how to get going with SharePoint development", and this time I'll shown how easy it is to create a brand new WebPart using VS 2008. &lt;br /&gt;As long as you have a Windows server 2003, WSS or MOSS, VS2005/8 and the WSS extensions it is easy as pie. &lt;br /&gt;&lt;br /&gt;In english:&lt;br /&gt;&lt;a href="http://www.screencast.com/t/ZIj3rhRr"&gt;WebPartUK2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In danish:&lt;br /&gt;&lt;a href="http://www.screencast.com/t/vcrdZr8nhM"&gt;WebPartDevelopmentInSharepoint_dk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-4763889872422478114?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/4763889872422478114/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=4763889872422478114' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/4763889872422478114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/4763889872422478114'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/11/easy-intro-to-building-your-first.html' title='An easy intro to building your first WebPart'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-3551406009572640226</id><published>2008-11-08T15:49:00.007+01:00</published><updated>2008-11-20T22:39:06.728+01:00</updated><title type='text'>One of many ways to set up an environment for sharepoint development</title><content type='html'>Disclaimer: I have only been in the SharePoint business for 3 months, so now you are warned :-)&lt;br /&gt;&lt;br /&gt;I have mostly done backend development and never worked with ASP.NET so SharePoint was a completely new beast for me.&lt;br /&gt;&lt;br /&gt;Since I had no idea how to set up my dev environment I did some research on the net and came up with a environment that makes sense to me. Since I haven't been able to find any webcast actually descriping the optimal dev environment I have taken a shot at it.&lt;br /&gt;The basic setup is a complete dev environment on a virtual image:&lt;br /&gt;&lt;br /&gt;English version&lt;br /&gt;&lt;a href="http://www.screencast.com/t/oPKkkKfExA"&gt;One of many ways to do sharepoint development.ppt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Danish version&lt;br /&gt;&lt;a href="http://www.screencast.com/t/SWaI3itsC"&gt;Opsaetning af udviklingsmiljoe til SharePoint.pptx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-3551406009572640226?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/3551406009572640226/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=3551406009572640226' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3551406009572640226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/3551406009572640226'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/11/one-of-many-ways-to-set-up-environment.html' title='One of many ways to set up an environment for sharepoint development'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-5198271535230662395</id><published>2008-09-21T17:35:00.005+02:00</published><updated>2008-09-21T17:46:47.471+02:00</updated><title type='text'>Så er den sejr i hus !!!!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VQ5_FrCGEz8/SNZqrtW00HI/AAAAAAAAADo/0N_O4UP9dWU/s1600-h/medalje.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_VQ5_FrCGEz8/SNZqrtW00HI/AAAAAAAAADo/0N_O4UP9dWU/s320/medalje.jpg" alt="" id="BLOGGER_PHOTO_ID_5248499714889142386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Jeg har en meget privat liste med de ting som jeg &lt;span style="font-weight: bold;"&gt;VIL&lt;/span&gt; når inden jeg fylder 40 år, og idag kom en af dem i hus:&lt;br /&gt;Jeg løb i dag de 42,2 km i HCAndersen-marathon i tiden 4t13,54m hvilket er meget tilfredsstillende, specielt i betragtning af den ankelskade som har driller mig under fortræningen.&lt;br /&gt;&lt;br /&gt;Og hvis du har hørt at man bliver øm af at løbe så langt, så er det en fed løgn: Man får vildt ondt i samtlige muskler, og jeg forventer ikke at kunne gå normalt før onsdag/torsdag :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SNZrY-AItJI/AAAAAAAAAD4/X0H9xNGmz9o/s1600-h/HCA-kasper.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 565px; height: 259px;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SNZrY-AItJI/AAAAAAAAAD4/X0H9xNGmz9o/s320/HCA-kasper.JPG" alt="" id="BLOGGER_PHOTO_ID_5248500492451493010" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-5198271535230662395?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/5198271535230662395/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=5198271535230662395' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5198271535230662395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5198271535230662395'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/09/s-er-den-sejr-i-hus.html' title='Så er den sejr i hus !!!!'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VQ5_FrCGEz8/SNZqrtW00HI/AAAAAAAAADo/0N_O4UP9dWU/s72-c/medalje.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-8787153605083946809</id><published>2008-06-13T19:03:00.002+02:00</published><updated>2008-06-13T19:08:39.672+02:00</updated><title type='text'>Eksempel på brug af teststubbe (NUnit)</title><content type='html'>Ovre på &lt;a href="http://onug.dk"&gt;ONUG&lt;/a&gt; har jeg udgivet et lille &lt;a href="http://onug.dk/post/2008/06/Eksempel-pa-brug-af-teststubbe-(NUnit).aspx"&gt;screencast&lt;/a&gt; der viser hvordan man kan teste metoder som læser og/eller skriver i en database.&lt;br /&gt;&lt;br /&gt;Det er kun ment som et oplæg til diskussion, der er sikkert mange andre gode måde at håndtere dette problem på.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-8787153605083946809?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/8787153605083946809/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=8787153605083946809' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/8787153605083946809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/8787153605083946809'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/06/eksempel-p-brug-af-teststubbe-nunit.html' title='Eksempel på brug af teststubbe (NUnit)'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-4410794347399643771</id><published>2008-06-06T01:12:00.002+02:00</published><updated>2008-06-06T01:15:04.101+02:00</updated><title type='text'>Eksempel på opsætning af testprojekt i vs2008</title><content type='html'>Jeg har her lavet et lille screencast der viser hvordan jeg sætter projekter med NUnit tests op. Jeg er langt fra sikker på at det er den optimale måde, men det virker da :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="498"&gt; &lt;param name="movie" value="http://content.screencast.com/bootstrap.swf"&gt;&lt;/param&gt; &lt;param name="quality" value="high"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/media/48723187-0c22-4b0d-8078-a3df23dfa811_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_Thumbnail.gif&amp;content=http://content.screencast.com/media/01e10913-f2b4-4a98-9ea1-3513329cef08_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_SetupNUnitInVS2008.swf&amp;width=640&amp;height=498"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="scale" value="showall"&gt;&lt;/param&gt; &lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;  &lt;embed src="http://content.screencast.com/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="640" height="498" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/media/48723187-0c22-4b0d-8078-a3df23dfa811_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_Thumbnail.gif&amp;content=http://content.screencast.com/media/01e10913-f2b4-4a98-9ea1-3513329cef08_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_SetupNUnitInVS2008.swf&amp;width=640&amp;height=498" allowFullScreen="true" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-4410794347399643771?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/4410794347399643771/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=4410794347399643771' title='4 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/4410794347399643771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/4410794347399643771'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/06/eksempel-p-opstning-af-testprojekt-i.html' title='Eksempel på opsætning af testprojekt i vs2008'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-825012363838445655</id><published>2008-06-04T00:02:00.003+02:00</published><updated>2008-06-04T00:27:39.093+02:00</updated><title type='text'>Hvorfor bruger vi tid på ANUG, ONUG, KNUG osv?</title><content type='html'>Hvad er det der får os til at bruge tonsvis af timer på at blogge, lave screencasts og arrangere møde i de forskellige brugergrupper?&lt;br /&gt;Det kan næppe være for pengenes skyld, for dem er der vist ingen af. Er det for at pudse egoet af, måske. Det er da rigtig rart når en anden udvikler roser ens arbejde, men det kan næppe være hele forklaringen.&lt;br /&gt;&lt;br /&gt;For mit eget vedkommende er drivkraften lysten til at lære nye og bedre teknikker, men det rykker først rigtigt, når jeg har fået fortalt teknikken videre til kollegaerne og kan se effekten i det daglige arbejde.&lt;br /&gt;&lt;br /&gt;De sidste par år har jeg været primus motor på implementering af Subversion og brugen af NUnit hos min arbejdsgiver, og i dag kan vi høste frugterne af den lange seje kamp. Dét er den slags der virkelig fryder den professionelle udvikler, der gemmer sig et eller andet sted dybt nede i mig.&lt;br /&gt;&lt;br /&gt;Jeg formoder, at det er af samme grund at I også er med på vognen, men hvorfor har vi den trang, hvad er det der gør at vi ikke kan lade være? Guderne må vide det, for jeg ved det ihvertfald ikke..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-825012363838445655?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/825012363838445655/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=825012363838445655' title='2 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/825012363838445655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/825012363838445655'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/06/hvorfor-bruger-vi-tid-p-anug-onug-knug.html' title='Hvorfor bruger vi tid på ANUG, ONUG, KNUG osv?'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-7413298688703632446</id><published>2008-05-31T00:16:00.003+02:00</published><updated>2008-05-31T00:25:28.404+02:00</updated><title type='text'>Odense .Net User Group er nu i luften</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Odense .Net User Group er nu officielt gået live.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Du kan finde os på &lt;a href="http://onug.dk/"&gt;ONUG.DK&lt;/a&gt; hvor du også kan tilmelde dig gruppen.&lt;br /&gt;&lt;br /&gt;Hvis du arbejder med .Net eller systemudvikling generelt synes jeg at du bør tilmelde dig til gruppen eller evt. blot tilmelde dig til feedet, således at du holdes underrettet om kommende arrangementer. Vi forventer naturligvis ikke at du dukker op til alle arrangementer, så du skal være mere end velkommen til blot at dukke op lejlighedsvist.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-7413298688703632446?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/7413298688703632446/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=7413298688703632446' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7413298688703632446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7413298688703632446'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/05/odense-net-user-group-er-nu-i-luften.html' title='Odense .Net User Group er nu i luften'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-580278717788130493</id><published>2008-05-25T20:23:00.003+02:00</published><updated>2008-06-02T13:07:04.614+02:00</updated><title type='text'>Test Driven Development, del 1</title><content type='html'>Dette er først screencast i en serie om Test Driven Development som jeg har planlagt.&lt;br /&gt;&lt;br /&gt;I de kommende indslag har jeg tænk mig at komme ind på:&lt;br /&gt;*Selv arbejdsgangen i TDD.&lt;br /&gt;*Brugen af Mock object for at håndtere eksterne datakilder (sensorer, web services, databaser)&lt;br /&gt;*Hvor TDD hører hjemme i det store billede, herunder brug af BuildServere, versionsstyring mm.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.screencast.com/t/JlyfSqJqKj"&gt;http://www.screencast.com/t/JlyfSqJqKj&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="498"&gt; &lt;param name="movie" value="http://content.screencast.com/bootstrap.swf"&gt;&lt;/param&gt; &lt;param name="quality" value="high"&gt;&lt;/param&gt; &lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt; &lt;param name="flashVars" value="thumb=http://content.screencast.com/media/36765334-a50c-4ebf-80bc-3d8b899029c1_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_Thumbnail.gif&amp;amp;content=http://content.screencast.com/media/9d8e1545-2485-4b06-8ba9-d91051ba6ff3_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_TDD%20video.swf&amp;amp;width=640&amp;amp;height=498"&gt;&lt;/param&gt; &lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt; &lt;param name="scale" value="showall"&gt;&lt;/param&gt; &lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;  &lt;embed src="http://content.screencast.com/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="640" height="498" type="application/x-shockwave-flash" allowscriptaccess="always" flashvars="thumb=http://content.screencast.com/media/36765334-a50c-4ebf-80bc-3d8b899029c1_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_Thumbnail.gif&amp;amp;content=http://content.screencast.com/media/9d8e1545-2485-4b06-8ba9-d91051ba6ff3_8401a6b5-c63e-4742-abb5-9937b7d6ced5_static_0_0_TDD%20video.swf&amp;amp;width=640&amp;amp;height=498" allowfullscreen="true" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;For god ordens skyld bør det nævnes at jeg har fået størstedelen af inspirationen og videnen om TDD ved at deltage i fagpakken Programmering af store objekt orienterede system, som er en del af diplomuddannelsen på Århus Universitet. Hermed også en tak til underviseren &lt;a href="http://www.imhotep.dk/"&gt;Henrik Bærbak&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-580278717788130493?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/580278717788130493/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=580278717788130493' title='4 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/580278717788130493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/580278717788130493'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/05/test-driven-development-del-1.html' title='Test Driven Development, del 1'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-5616959380918020555</id><published>2008-05-22T20:13:00.003+02:00</published><updated>2008-11-07T05:01:07.594+01:00</updated><title type='text'>Integrationstest, review af koncept</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SDW8AiPqsRI/AAAAAAAAACk/FQ8NIWrt6DA/s1600-h/WeNeedYou.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/SDW8AiPqsRI/AAAAAAAAACk/FQ8NIWrt6DA/s320/WeNeedYou.jpg" alt="" id="BLOGGER_PHOTO_ID_5203271661875015954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Kender du situationen hvor dit projekt kører perfekt, alle unit tests er grønne og testerne har ikke fundet nogen alvorlige fejl i testmiljøet de sidste to-tre dag.&lt;br /&gt;Nu skal det bare sættes op i produktionsmiljøet, og det burde være smertefrit.&lt;br /&gt;Doh, det hele kollapser 100%, en eller anden DBA har ændret schemaet og DU er ikke blevet informeret, #%!&lt;br /&gt;&lt;br /&gt;Den situation har jeg prøvet og det var ikke sjovt!&lt;br /&gt;&lt;br /&gt;Så nu skal det være slut. Ideen er, at Nightly build henter schemaen fra PROD, laver en ny db ud fra dette schema og smider vore predefinerede testdata ind.&lt;br /&gt;Nu burde det være muligt at køre samtlige unit tests mod denne database.&lt;br /&gt;Hvis et eller andet kikser i dette forløb vil det også kikse når du skal sætte det i produktion, men nu ved du at problemet eksisterer allerede dagen efter rettelsen er foretaget.&lt;br /&gt;&lt;br /&gt;Inden jeg begynder at kaste for mange kræfter efter dette projekt vil jeg gerne høre, om I har en altertiv løsning eller ideer til forbedring af oplægget.&lt;br /&gt;&lt;br /&gt;Sig frem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-5616959380918020555?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/5616959380918020555/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=5616959380918020555' title='2 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5616959380918020555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5616959380918020555'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/05/integrationstest-review-af-koncept.html' title='Integrationstest, review af koncept'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VQ5_FrCGEz8/SDW8AiPqsRI/AAAAAAAAACk/FQ8NIWrt6DA/s72-c/WeNeedYou.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-1058502219243458313</id><published>2008-05-16T21:51:00.004+02:00</published><updated>2008-05-17T17:18:46.747+02:00</updated><title type='text'>Odense .Net User Group</title><content type='html'>I onsdags var jeg til &lt;a href="http://blogs.activedeveloper.dk/deldy/post/Geek-Dinner-Odense.aspx"&gt;geek dinner her i Odense&lt;/a&gt;. Ud over en snak om AJAX og omgivende emner blev vi enige om at Fyn er stor nok til at have sin egen .Net user group.&lt;br /&gt;Vi regner med at starte Odense .Net User Group i forbindelse med &lt;a href="http://blogs.msdn.com/danielmf/archive/2008/04/23/community-arrangement.aspx"&gt;Community Arrangementet&lt;/a&gt; den 29. maj.&lt;br /&gt;Uanset om du er en .Net haj eller nybegynder skal du være velkommen til at kigge forbi vores &lt;a href="http://www.facebook.com/group.php?gid=14208629386"&gt;facebook side&lt;/a&gt; eller kontakte enten &lt;a href="http://blogs.activedeveloper.dk/deldy/"&gt;Jesper Blad Jensen&lt;/a&gt; eller undertegnede.&lt;br /&gt;&lt;br /&gt;Det er vigtigt for os, at så mange som muligt får at vide, at der faktisk findes en brugergruppe, så du skal være meget velkommen til at sprede nyheden :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-1058502219243458313?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/1058502219243458313/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=1058502219243458313' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/1058502219243458313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/1058502219243458313'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/05/geek-dinner-i-odense.html' title='Odense .Net User Group'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-6075160212227434931</id><published>2008-04-05T16:52:00.009+02:00</published><updated>2009-03-29T12:46:57.353+02:00</updated><title type='text'>Pragmatisk projektledelse -del 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/R_eS_QupDaI/AAAAAAAAACc/oeXWMJs85oc/s1600-h/spsg.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/R_eS_QupDaI/AAAAAAAAACc/oeXWMJs85oc/s320/spsg.jpg" alt="" id="BLOGGER_PHOTO_ID_5185775111460425122" border="0" /&gt;&lt;/a&gt;Jeg har tidligere her på bloggen skrevet om Steve McConnells Code Complete som jeg er meget begejstret for, så det bør vel ikke være den store overraskelse at hans projektledelsesmetoder også falder i min smag.&lt;br /&gt;Bogen behandler ikke de store mastodontprojekter, "kun" små og mellemstore projekter.&lt;br /&gt;McConnells hovedtese er at projektet opdeles i en række delafleveringer hvor et bestemt område af applikationen udvikles helt færdig og installeres hos kunden. Der er to grunde til at han anbefaler at man ligefrem installerer hos kunden:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Når kunden ser en fuldt funktionelt (i dybden, ikke i bredden) udgave af applikationen kommer der typisk en byge af change requests, ikke bare til den udviklede funktionalitet, men til flere dele af applikationen. Jo tidliger disse change request fanges, des "billigere" bliver de at implementere&lt;/li&gt;&lt;li&gt;Den funktionalitet som afleveres i de første "drops" skal være de områder som har den største betydning for kunden, eller som udgør de største risikomomenter. Derved får både teamet, ledelsen og kunden et reelt billede af projektets status.&lt;/li&gt;&lt;/ol&gt;Efter hvert drop  er afleveret har teamet mulighed for at sammenligne den reviderede projektplan med det faktiske tidsforbrug, og derefter overveje korrigerende handlinger. Denne mulighed er det langt fra sikkert at du har i et projekt som forsøger at aflevere hele applikationen i et hug. Den primære grund er, at man ikke løbende kender projektets faktiske tilstand, for modulerne er f.eks. meldt 95% færdige. Dette betyder jo som regel at koden næsten er færdig, men problemet er ofte af integrationen med de andre moduler ikke er på plads endnu. Erfaringen viser at integrationen ofter står for 25 - 45% af tidforbruget. Ergo, vi kender ikke projektets faktiske status.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-6075160212227434931?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/6075160212227434931/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=6075160212227434931' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6075160212227434931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6075160212227434931'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/04/pragmatisk-projektledelse-del-1.html' title='Pragmatisk projektledelse -del 1'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VQ5_FrCGEz8/R_eS_QupDaI/AAAAAAAAACc/oeXWMJs85oc/s72-c/spsg.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-5434259908969401393</id><published>2008-03-02T23:37:00.003+01:00</published><updated>2008-11-07T05:01:08.403+01:00</updated><title type='text'>Code Complete 2nd edition</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VQ5_FrCGEz8/R8ssdso7T9I/AAAAAAAAACU/IXWCULtuRbw/s1600-h/cc2e-cover-small.gif.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_VQ5_FrCGEz8/R8ssdso7T9I/AAAAAAAAACU/IXWCULtuRbw/s320/cc2e-cover-small.gif.jpg" alt="" id="BLOGGER_PHOTO_ID_5173277485675794386" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.amazon.co.uk/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1204498649&amp;amp;sr=8-1"&gt;Code Complete 2nd editon&lt;/a&gt; er suverent den bedste bog om softwareudvikling jeg har læst til dato.&lt;br /&gt;Steve McConnell behandler både de brede emner, så som at du ikke koder til maskinen men til dine kollegaer, så koden &lt;span style="font-style: italic;"&gt;skal&lt;/span&gt; være læsbar, også for de udviklere som ikke er helt så "smart" som dig.&lt;br /&gt;Han kommer også helt ned i detaljen, så som at dine if - then bør være struktureret således at den oftest forekommende tilstand skal komme først.&lt;br /&gt;Alt i alt kommer McConnell rundt om de emner der virkelig betyder noget for  kvaliteten af den software du skriver.&lt;br /&gt;&lt;br /&gt;Alle udviklere burde læse den, specielt når de har fået et par års erfaring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-5434259908969401393?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/5434259908969401393/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=5434259908969401393' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5434259908969401393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5434259908969401393'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/03/code-complete-2nd-edition.html' title='Code Complete 2nd edition'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VQ5_FrCGEz8/R8ssdso7T9I/AAAAAAAAACU/IXWCULtuRbw/s72-c/cc2e-cover-small.gif.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-6426620411496013084</id><published>2008-02-20T11:52:00.006+01:00</published><updated>2008-11-07T05:01:08.723+01:00</updated><title type='text'>The Pragmatic Programmer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VQ5_FrCGEz8/R7wQ9hpIoyI/AAAAAAAAACM/jjpE09yd7OQ/s1600-h/pragmatic.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_VQ5_FrCGEz8/R7wQ9hpIoyI/AAAAAAAAACM/jjpE09yd7OQ/s320/pragmatic.jpg" alt="" id="BLOGGER_PHOTO_ID_5169025121503453986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I løbet af de sidste par uger har jeg arbejdet mig igennem &lt;a href="http://www.pragprog.com/the-pragmatic-programmer"&gt;The Pragmatic Programmer&lt;/a&gt;.&lt;br /&gt;Jeg er tilsyneladende ikke pragmatisk nok til helt at værdsætte de gode råd og anvisninger fra The Pragmatic Programmer, for bogen "tabte" mig i perioder. Grunden er nok, at jeg ikke kommer fra samme tradition som de herrer Hunt og Thomas, så alle deres tips og tricks om perl scripts og make filer faldt på gold jord.&lt;br /&gt;Dermed ikke sagt at bogen er dårlig eller ligegyldig, bestemt ikke. Ca. 85% af bogen omhandler de metoder, som bogens forfattere på baggrund af mange års erfaring i branchen kan anbefale, og her er der virkelig mange guldkorn at hente.&lt;br /&gt;Hvis du koder på egen hånd er det begrænset hvor mange af rådene du kan bruge, men hvis du arbejder i teams vil jeg bestemt anbefale at du læser bogen. Bemærk at du ikke bør nøjes med at læse den én gang. Læs den nu, og en gang til om et ½ år og evaluer situationen igen. God fornøjelse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-6426620411496013084?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/6426620411496013084/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=6426620411496013084' title='2 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6426620411496013084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/6426620411496013084'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/02/pragmatic-programmer.html' title='The Pragmatic Programmer'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VQ5_FrCGEz8/R7wQ9hpIoyI/AAAAAAAAACM/jjpE09yd7OQ/s72-c/pragmatic.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-2237067776849598327</id><published>2008-01-20T16:51:00.000+01:00</published><updated>2008-01-21T14:09:06.419+01:00</updated><title type='text'>Udvikling af add-in til MS Office 2007 i VS2008</title><content type='html'>Hvis du tidligere har arbejdet med eller bare snusset til, hvordan man kunne lave add ins til MS office har du sikkert haft samme erfarring som jeg; det er bøvlet som bare f.....&lt;br /&gt;&lt;br /&gt;De to VSTO (Visual Studio Tools for Office) pakker til VS2005 var da et par skridt i den rigtige retning, men hvis du skal lave add ins til MS Office 2003/2007 kan jeg nu kun se een værktøj : &lt;span style="font-weight: bold;"&gt;VS2008&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Ikke alene kan disse add-ins nu distribueres via Click-Once deployment (stort fremskridt) men der er vigtig mange forbedringer, herunder dokumentationen.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://channel9.msdn.com/showforum.aspx?forumid=38"&gt;Channel 9&lt;/a&gt; indeholder en sand guldgrube af screencasts om Officeudvikling i VS2008, jeg vil specielt gerne fremhæve de screencasts som &lt;a href="http://www.danielmoth.com/Blog/"&gt;Daniel Moth&lt;/a&gt; har lavet, link &lt;a href="http://channel9.msdn.com/showuserthreads.aspx?userid=33347"&gt;her&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;God fornøjelse&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-2237067776849598327?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/2237067776849598327/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=2237067776849598327' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2237067776849598327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2237067776849598327'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2008/01/udvikling-af-add-in-til-ms-ofiice-2007.html' title='Udvikling af add-in til MS Office 2007 i VS2008'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-8161404172395464508</id><published>2007-11-25T10:54:00.000+01:00</published><updated>2008-11-07T05:01:09.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TestDriven.net'/><category scheme='http://www.blogger.com/atom/ns#' term='NUnit'/><title type='text'>Super nem unit tests</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VQ5_FrCGEz8/R0lLF4APRUI/AAAAAAAAABE/4CBrsQRgteY/s1600-h/testdriven.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_VQ5_FrCGEz8/R0lLF4APRUI/AAAAAAAAABE/4CBrsQRgteY/s400/testdriven.JPG" alt="" id="BLOGGER_PHOTO_ID_5136719414297576770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Siden jeg opdagede &lt;a href="http://www.testdriven.net/overview.aspx"&gt;TestDriven.net&lt;/a&gt; er det blevet meget nemmere at lave &lt;a href="http://www.xprogramming.com/xpmag/test_first_intro.htm"&gt;"test first"&lt;/a&gt; programmering, hvilket tidligere har være en stor mundfuld for mig, gamle vaner er svære at komme af med.&lt;br /&gt;TestDriven.net er en add-in til Visual Studio som giver mulighed for at køre sine unittests direkte i IDE'en.&lt;br /&gt;&lt;br /&gt;Outputtet fra dine test cases bliver vist i Output, og evt. fejl vises naturligvis.&lt;br /&gt;&lt;br /&gt;PS: De grønne ikoner på filerne stammer fra Visual SVN som er det add-in til Subversion som jeg bruger.&lt;br /&gt;&lt;br /&gt;Se iøvrigt &lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/12/VisualStudioAddins/default.aspx"&gt;"top 10 Add-ins til VS2005"&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/R0lMvYAPRXI/AAAAAAAAABc/Yba9ndgv6GA/s1600-h/testrunner.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/R0lMvYAPRXI/AAAAAAAAABc/Yba9ndgv6GA/s320/testrunner.JPG" alt="" id="BLOGGER_PHOTO_ID_5136721226773775730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_VQ5_FrCGEz8/R0lMhIAPRWI/AAAAAAAAABU/DL3ONL9NqQQ/s1600-h/testrunnerError.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_VQ5_FrCGEz8/R0lMhIAPRWI/AAAAAAAAABU/DL3ONL9NqQQ/s400/testrunnerError.JPG" alt="" id="BLOGGER_PHOTO_ID_5136720981960639842" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-8161404172395464508?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/8161404172395464508/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=8161404172395464508' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/8161404172395464508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/8161404172395464508'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2007/11/super-nem-unit-tests.html' title='Super nem unit tests'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VQ5_FrCGEz8/R0lLF4APRUI/AAAAAAAAABE/4CBrsQRgteY/s72-c/testdriven.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-8924768486764730712</id><published>2007-11-24T12:56:00.000+01:00</published><updated>2007-11-24T13:13:43.864+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NUnit'/><category scheme='http://www.blogger.com/atom/ns#' term='Finalbuilder'/><title type='text'>FinalBuilder</title><content type='html'>Jeg har tidligere snusset til de forskellige buildtools som internettet er så rigt på, men hver gang er jeg vendt tilbage til &lt;a href="http://finalbuilder.com/"&gt;FinalBuilder&lt;/a&gt;. Selv om jeg inderst inde nærer et dyb mistillid til applikationer lavet i Delphi (har tidligere brændt mig på Borlandprodukter) må jeg indrømme at FinalBuilder både er meget brugervenligt og har de features som jeg har brug for i mit buildtool.&lt;br /&gt;Et typisk build indebærer at:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Head revisionen hentes i Subversion&lt;/li&gt;&lt;li&gt;Versionsnummeret på projektet opskrives&lt;br /&gt;&lt;/li&gt;&lt;li&gt;koden bygges&lt;/li&gt;&lt;li&gt;mine  NUnit test cases køres&lt;/li&gt;&lt;li&gt;Kodeændringerne (versionsnummeret) gemmes i Subversion.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;installerprogrammet pakker det hele i en MSI pakke&lt;/li&gt;&lt;li&gt;installationsprojektet kopieres til "klar til afskibning" folderen&lt;/li&gt;&lt;li&gt;der sendes en mail med besked om hvordan bygget gik.&lt;/li&gt;&lt;/ol&gt;Alt dette indpakket i en lækker brugergrænseflade til              $379 ~ 1908 DKK, det er da billigt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-8924768486764730712?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/8924768486764730712/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=8924768486764730712' title='2 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/8924768486764730712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/8924768486764730712'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2007/11/finalbuilder.html' title='FinalBuilder'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-2814694959586930462</id><published>2007-07-07T14:00:00.000+02:00</published><updated>2008-11-07T05:01:09.706+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ferie tyrkiet'/><title type='text'>En uge i Marmaris</title><content type='html'>Vi er lige kommet hjem efter en fortrinlig uge i &lt;a href="http://maps.google.dk/maps?ie=UTF8&amp;ll=36.967449,28.905029&amp;amp;spn=6.309509,7.679443&amp;z=7&amp;amp;om=1"&gt;Marmaris&lt;/a&gt; . Tidligere har vi været i &lt;a href="http://www.cesme.dk/"&gt;Cesme&lt;/a&gt; som ligger en 2 -300 km nord for Marmaris, men denne gang havde vi valgt Marmaris, bl.a. fordi Apollo ikke længere havde Cesme i kataloget samt at vi efter 3 ture til Cesme trængte til at se noget nyt.&lt;br /&gt;Marmaris er ret præget af at der kommer mange engelske turister. Jeg ved ikke hvorfor men en ret stor del af englænderne må være høreskadede, for der skal åbenbart altid spille vildt høj på de barer hvor de holder til. Men hvis man holder sig lidt på afstand af englænderne er Marmaris en dejlig by; noget større end Cesme så der er flere specialbutikker og markedet er ret stort.&lt;br /&gt;Jeg er ikke helt sikker på, om den optiker vi handlede solbriller med, tørrede os så det fløjtede eller om de briller vi købte i år bare er en del dyrere: Jeg fik et par nye Ray-Ban solbriller med styrke ( -3,5 og bygningsfejl) for 330 YTL, ca 1470 DKK. Tina fik et par Ralph Lauren solbriller ligeledes med styrke for 300 YTL ( 1340 DKK).&lt;br /&gt;Brillerne bestilte vi om søndagen og hentede dem onsdag aften, sådan !&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VQ5_FrCGEz8/Ro-Jp5zxq9I/AAAAAAAAAA8/2p1CY00ar5c/s1600-h/g%C3%B8kova1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_VQ5_FrCGEz8/Ro-Jp5zxq9I/AAAAAAAAAA8/2p1CY00ar5c/s320/g%C3%B8kova1.jpg" alt="" id="BLOGGER_PHOTO_ID_5084433857310206930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Efter rapportene fra Ole hjemme på kontoret var det rigtigt ferievejr hjemme i lille Danmark; 17 grader og øsende regnvej. Vi havde en anelse bedre vejr: 35- 40 grader og høj sol. Eneste undtagelse var søndag aften, hvor Marmaris fik en tordenbyge. De lokale var lamslåede, regn i Marmaris i juli, utroligt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-2814694959586930462?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/2814694959586930462/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=2814694959586930462' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2814694959586930462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/2814694959586930462'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2007/07/en-uge-i-marmaris.html' title='En uge i Marmaris'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VQ5_FrCGEz8/Ro-Jp5zxq9I/AAAAAAAAAA8/2p1CY00ar5c/s72-c/g%C3%B8kova1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-5560995301196391471</id><published>2007-06-17T19:23:00.000+02:00</published><updated>2008-11-07T05:01:10.296+01:00</updated><title type='text'>Rocky på besøg i Seden Strandby</title><content type='html'>&lt;A HREF='http://3.bp.blogspot.com/_VQ5_FrCGEz8/RnVuL54gjnI/AAAAAAAAAAc/SSed6wWowlA/s1600-h/100_2857.jpg'&gt;&lt;IMG SRC='http://3.bp.blogspot.com/_VQ5_FrCGEz8/RnVuL54gjnI/AAAAAAAAAAc/SSed6wWowlA/s320/100_2857.jpg' border=0 alt='' id='BLOGGER_PHOTO_ID_' style='clear:both;float:left; margin:0px 10px 10px 0;'&gt;&lt;/A&gt;&amp;nbsp;&lt;br /&gt;&lt;A HREF='http://3.bp.blogspot.com/_VQ5_FrCGEz8/RnVuL54gjoI/AAAAAAAAAAk/wlAvQvYxtjE/s1600-h/100_2826.jpg'&gt;&lt;IMG SRC='http://3.bp.blogspot.com/_VQ5_FrCGEz8/RnVuL54gjoI/AAAAAAAAAAk/wlAvQvYxtjE/s320/100_2826.jpg' border=0 alt='' id='BLOGGER_PHOTO_ID_' style='clear:both;float:left; margin:0px 10px 10px 0;'&gt;&lt;/A&gt;&amp;nbsp;&lt;br /&gt;&lt;A HREF='http://4.bp.blogspot.com/_VQ5_FrCGEz8/RnVuMJ4gjpI/AAAAAAAAAAs/NtD5Uas_yD8/s1600-h/100_2827.jpg'&gt;&lt;IMG SRC='http://4.bp.blogspot.com/_VQ5_FrCGEz8/RnVuMJ4gjpI/AAAAAAAAAAs/NtD5Uas_yD8/s320/100_2827.jpg' border=0 alt='' id='BLOGGER_PHOTO_ID_' style='clear:both;float:left; margin:0px 10px 10px 0;'&gt;&lt;/A&gt;&amp;nbsp;&lt;br /&gt;&lt;A HREF='http://1.bp.blogspot.com/_VQ5_FrCGEz8/RnVuMZ4gjqI/AAAAAAAAAA0/WmyW5-8V0HU/s1600-h/100_2828.jpg'&gt;&lt;IMG SRC='http://1.bp.blogspot.com/_VQ5_FrCGEz8/RnVuMZ4gjqI/AAAAAAAAAA0/WmyW5-8V0HU/s320/100_2828.jpg' border=0 alt='' id='BLOGGER_PHOTO_ID_' style='clear:both;float:left; margin:0px 10px 10px 0;'&gt;&lt;/A&gt;&amp;nbsp;&lt;div style='clear:both; text-align:LEFT'&gt;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-5560995301196391471?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/5560995301196391471/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=5560995301196391471' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5560995301196391471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/5560995301196391471'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2007/06/rocky-p-besg-i-seden-strandby.html' title='Rocky på besøg i Seden Strandby'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VQ5_FrCGEz8/RnVuL54gjnI/AAAAAAAAAAc/SSed6wWowlA/s72-c/100_2857.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-7078044656775542663</id><published>2007-02-15T23:37:00.000+01:00</published><updated>2008-11-07T05:01:10.391+01:00</updated><title type='text'>Extended document properties</title><content type='html'>Når man gemmer en email som MSG i en sagsmappe kan man ikke umiddelbart se hvem mailen er fra og til uden at åbne filen.&lt;br /&gt;&lt;br /&gt;I sidste uge fik jeg så til opgave at sørge for at MSG filen på en eller anden måde indikerer "fra" og "til". &lt;br /&gt;&lt;br /&gt;Mulighedene var umiddelbart enten at lave en slags "MSG file previewer" eller at sætte "Til" og "Fra" på filens egenskaber. Efter en tur på Google viste det sig hurtigt at Previewerløsningen sandsynligvis var en overordenlig kompliceret opgave, idet MSG formatet ud over at være binært også var dårligt dokumenteret.&lt;br /&gt;Løsningen med at ændre på en af de Document Properties som MS office filene er udstyret med syntes mere fremkommelig.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VQ5_FrCGEz8/RdTm6EABKJI/AAAAAAAAAAM/fprjzLjbABw/s1600-h/folder.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_VQ5_FrCGEz8/RdTm6EABKJI/AAAAAAAAAAM/fprjzLjbABw/s320/folder.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5031900568860305554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For at komme til disse Extended document properties skulle jeg blot tilføje DSOfile.dll til mit projekt,se &lt;a href="http://support.microsoft.com/kb/224351"&gt;http://support.microsoft.com/kb/224351&lt;/a&gt; og voila..&lt;br /&gt;&lt;br /&gt;Nej, nej så let går det ikke. Det viste sig hurtigt at DSOfile.dll ikke ville samarbejder og blot smed "Permission denied" i hovedet på mig.&lt;br /&gt;Denne gang kunne Google groups så fortælle mig at DSOfile.dll indeholdt en bug; Hvis ikke MSG filen allerede indeholdt en Extended Properties så smed koden blot "Permission denied", se &lt;a href="http://jeolmeun.blogspot.com/2006_02_01_jeolmeun_archive.html"&gt;http://jeolmeun.blogspot.com/2006_02_01_jeolmeun_archive.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Når jeg bruger Jeolmeuns rettende Dll kører det som smurt, takker mange gange.&lt;br /&gt;&lt;br /&gt;Kasper&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-7078044656775542663?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/7078044656775542663/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=7078044656775542663' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7078044656775542663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/7078044656775542663'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2007/02/extended-document-properties.html' title='Extended document properties'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VQ5_FrCGEz8/RdTm6EABKJI/AAAAAAAAAAM/fprjzLjbABw/s72-c/folder.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-32525647.post-116740721576603282</id><published>2006-12-29T16:34:00.000+01:00</published><updated>2007-01-08T00:13:22.543+01:00</updated><title type='text'>Continuous Build using CruiseControl &amp; Visual Studio 2005</title><content type='html'>In order to make sure that my projects are always up-to-date I spend a couple of days this month to figure out how to set up a Continuous Build system.&lt;br /&gt;&lt;br /&gt;Since this is just a hobby project of mine I had to use open source software, so MS Team System was not a option ( I am not even sure whether Team System is up to the challange ).&lt;br /&gt;&lt;br /&gt;In the past I used Team Coherence as my Source Control system of choise, but resently I changed to Subversion which is a great tool. I have used NUnit on most of my projects the last year so the question was how to set up a system that would:&lt;br /&gt;1) Check out the tip/head revision from Subversion&lt;br /&gt;2) Build the thing&lt;br /&gt;3) Run the unit test&lt;br /&gt;4) Report back&lt;br /&gt;&lt;br /&gt;I soon realized that CruiseControl.NET was the tool that should control the flow. Below is the XML file (ccnet.config) that specifies the steps that CruiseControl controls:&lt;br /&gt;&lt;br /&gt;&lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;"&lt;&lt;/span&gt;&lt;span class="t"&gt;cruisecontrol&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;project&lt;/span&gt;&lt;span class="t"&gt; name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;Persolit Kalkulation udvikling&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;triggers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;intervalTrigger&lt;/span&gt; &lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;continuous&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; seconds&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;600&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  buildCondition&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;ForceBuild&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;scheduleTrigger&lt;/span&gt; &lt;span class="t"&gt;time&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;23:05&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; buildCondition&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;ForceBuild&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;  /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;triggers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;sourcecontrol&lt;/span&gt;&lt;span class="t"&gt; type&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;svn&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\Programmer\Subversion\bin\svn.exe&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;trunkUrl&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;file:///C:/Subversion/PersolitKalkulation&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;trunkUrl&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;workingDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\System udvikling\C#\Persolit  Kalkulation&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;workingDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;sourcecontrol&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;tasks&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;exec&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\Programmer\Subversion\bin\svn.exe&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;buildArgs&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;checkout file:///C:/Subversion/PersolitKalkulation  d:/build2&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;buildArgs&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;buildTimeoutSeconds&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;100&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;buildTimeoutSeconds&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;exec&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;nant&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\Programmer\Nant\bin\nant.exe&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;baseDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;d:/build2/Persolit Kalkulation&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;baseDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;nant&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;tasks&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;publishers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;email&lt;/span&gt;&lt;span class="t"&gt; from&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;an email adress&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; mailhost&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;smtp&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;users&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;user&lt;/span&gt; &lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;BuildGuru&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  group&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;buildmaster&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; address&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;kasperbolarsen@gmail.com&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;users&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;groups&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;group&lt;/span&gt; &lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;buildmaster&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  notification&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;change&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;groups&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;email&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;xmllogger&lt;/span&gt; &lt;span class="m"&gt;/&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;publishers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;project&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;project&lt;/span&gt;&lt;span class="t"&gt; name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;ContainerCheckCipher&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;triggers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;intervalTrigger&lt;/span&gt; &lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;continuous&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; seconds&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;600&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  buildCondition&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;ForceBuild&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;scheduleTrigger&lt;/span&gt; &lt;span class="t"&gt;time&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;23:05&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; buildCondition&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;ForceBuild&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;  /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;triggers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;sourcecontrol&lt;/span&gt;&lt;span class="t"&gt; type&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;svn&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\Programmer\Subversion\bin\svn.exe&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;trunkUrl&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;file:///C:/Subversion/ContainerCheckTool&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;trunkUrl&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;workingDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\System  udvikling\C#\ContainerCheckTool&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;workingDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;sourcecontrol&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;tasks&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;exec&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\Programmer\Subversion\bin\svn.exe&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;buildArgs&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;checkout file:///C:/Subversion/ContainerCheckTool  d:/ContainerCheckTool&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;buildArgs&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;buildTimeoutSeconds&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;100&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;buildTimeoutSeconds&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;exec&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;nant&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;C:\Programmer\Nant\bin\nant.exe&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;executable&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;baseDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;d:/ContainerCheckTool/ContainerCheckCipher&lt;/span&gt;&lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;baseDirectory&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;nant&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;tasks&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;publishers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;email&lt;/span&gt;&lt;span class="t"&gt; from&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;an email adress&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; mailhost&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;smtp&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;users&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;user&lt;/span&gt; &lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;BuildGuru&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  group&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;buildmaster&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; address&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;kasperbolarsen@gmail.com&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;users&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;groups&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;group&lt;/span&gt; &lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;buildmaster&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  notification&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;change&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;groups&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;email&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;xmllogger&lt;/span&gt; &lt;span class="m"&gt;/&gt;&lt;/span&gt;  &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;publishers&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;project&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;/span&gt;&lt;span class="t"&gt;cruisecontrol&lt;/span&gt;&lt;span class="m"&gt;&gt;"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Every 300 seconds CC.net will do a ForceBuild&lt;br /&gt;In the Task - Exec section I have specified the path to the Subversion executable which will use the buildArgs "checkout file:///C:/Subversion/PersolitKalkulation d:/build"&lt;br /&gt;(Note: spaces in the project name made it very difficult for me to get the syntax right, none of my future Subversion project will contain any spaces that is for sure)&lt;br /&gt;This will check out the Head revision of the PersolitKalkulation project to the folder D:\build&lt;br /&gt;Then I ask the NAnt executable to "do its magic" in the specified folder. NAnt will look for any file named *.build in that folder and use that file as arguments ( the   *.build file is off cause saved as part of the solution in Subversion.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The NAnt build file contains the instructions needed to run MSbuild against the solution file (sln) in the project, then I copy the app.config file to the build folder, in this case both the Debug and Release folders.&lt;br /&gt;&lt;br /&gt;Most blogs suggests that the build and running the Unit Tests should be carried out in the Nant process rather than the CruiseControl process, and I have to agree. I tried to make it work from the CC process but had to give in after spending some 6 hours on that issue.&lt;br /&gt;&lt;br /&gt;Now that the build is complete I call the NUnit2 section in order to run the unit test in the exe file. In bigger project I would prefer to place the unit tests in a separate project within the same solution, but since this is just a small project I have chosen to place the tests in the main assembly.&lt;br /&gt;&lt;br /&gt;Whenever the build status changes I get an email but I usual starts CCTray (included  in the package from CruiseControl) which will notify me each time a build have been completed (or failed).&lt;br /&gt;&lt;br /&gt;I have not yet been able to get a full report in the CruiseControl dashboard about the unit tests but I guess I'll update this post once the build configuration has been put to the test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32525647-116740721576603282?l=odensefjord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://odensefjord.blogspot.com/feeds/116740721576603282/comments/default' title='Kommentarer til indlægget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=32525647&amp;postID=116740721576603282' title='30 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/116740721576603282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/32525647/posts/default/116740721576603282'/><link rel='alternate' type='text/html' href='http://odensefjord.blogspot.com/2006/12/continuous-build-using-cruisecontrol.html' title='Continuous Build using CruiseControl &amp; Visual Studio 2005'/><author><name>Bedre softwareudvikling og alt andet</name><uri>http://www.blogger.com/profile/06855566615384491424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>30</thr:total></entry></feed>
