<?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-5717558970438781510</id><updated>2011-07-08T13:08:46.117+02:00</updated><category term='FaultHandlerActivity'/><category term='WF'/><category term='BadCode'/><category term='SendActivity'/><category term='WCF'/><category term='ASP.NET'/><category term='Sharepoint'/><title type='text'>Goffens share-point</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-5632803037641868779</id><published>2009-07-22T15:04:00.004+02:00</published><updated>2009-07-22T15:28:41.639+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='BadCode'/><title type='text'>Bad code alert =)</title><content type='html'>&lt;div&gt;Haha, today a collegue of mine found a very funny piece of code unfortunatly located in on of our products, behold the &lt;a href="http://codepaste.net/yiue3k"&gt;100 repeater-item killer&lt;/a&gt;:&lt;/div&gt;&lt;br /&gt;The asp.net code-behind code is:&lt;br /&gt;&lt;pre name="code" class="C#"&gt;&lt;br /&gt;   List&lt;Guid&gt; list = null;&lt;br /&gt;   foreach (RepeaterItem item in repOngoing.Items)&lt;br /&gt;   {&lt;br /&gt;       HtmlInputCheckBox c = (HtmlInputCheckBox)item.FindControl("chkMark");&lt;br /&gt;&lt;br /&gt;       if (c.Checked)&lt;br /&gt;       {&lt;br /&gt;           HiddenField hfId = (HiddenField)item.FindControl("hfErrandId");&lt;br /&gt;&lt;br /&gt;           ITP1ErrandVO evo = getITP1Errand(new Guid(hfId.Value));&lt;br /&gt;           if (evo.ErrandTypeId == IKConstants.ERRANDTYPE_ITP1_OTHER)&lt;br /&gt;           {&lt;br /&gt;               uncheckErrands();&lt;br /&gt;               lblError.Text = "'Övrigt Ärende' kan ej sättas klar för batch.";&lt;br /&gt;           }&lt;br /&gt;           else&lt;br /&gt;           {&lt;br /&gt;               list = getCheckedErrands();  &lt;br /&gt;           }&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;The page dislaying a repeater which is feed a list of ITP1ErrandVO:s to produce a list which users can edit and then save. This method is invoked when hitting the "save".&lt;/div&gt;&lt;div&gt;First of all it iterates over all repeateritems finding each checkbox and each id. Then a db-query fetches the errand and populates an object with the rows data. If its type is of type ITP_OTHER then it calls the uncheckErrands method:&lt;/div&gt;&lt;br /&gt;&lt;pre name="code" class="C#"&gt;&lt;br /&gt;private void uncheckErrands()&lt;br /&gt;    {&lt;br /&gt;        foreach (RepeaterItem item in repOngoing.Items)&lt;br /&gt;        {&lt;br /&gt;            HtmlInputCheckBox c = (HtmlInputCheckBox)item.FindControl("chkMark");&lt;br /&gt;            c.Checked = false;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;This method also iterate over all items in the repeater finding the checkboxes and unchecking all of them! So in the rest of the iterations the c.Checked is never true. Hence it will call  getCheckedErrands() for all else items. Take a look at getCheckedErrands method&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre name="code" class="C#"&gt;&lt;br /&gt;private List&lt;Guid&gt; getCheckedErrands()&lt;br /&gt;    {&lt;br /&gt;        List&lt;Guid&gt; list = new List&lt;Guid&gt;();&lt;br /&gt;        foreach (RepeaterItem item in repOngoing.Items)&lt;br /&gt;        {&lt;br /&gt;            HtmlInputCheckBox c = (HtmlInputCheckBox)item.FindControl("chkMark");&lt;br /&gt;&lt;br /&gt;            if (c.Checked)&lt;br /&gt;            {&lt;br /&gt;                HiddenField hfId = (HiddenField)item.FindControl("hfErrandId");&lt;br /&gt;                list.Add(new Guid(hfId.Value));&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return list;&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;So for every unchecked checkbox find all checkboxes that is checked and add them to a list and return. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;According to my colleague the errand is very seldom of type ERRANDTYPE_ITP1_OTHER so the list returned from the main-loop will be populated over and over again&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Thank god I dont code like this =)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-5632803037641868779?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/5632803037641868779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=5632803037641868779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/5632803037641868779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/5632803037641868779'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2009/07/bad-code-alert.html' title='Bad code alert =)'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-1213152442199505145</id><published>2009-07-21T08:36:00.009+02:00</published><updated>2009-07-22T15:31:30.597+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SendActivity'/><category scheme='http://www.blogger.com/atom/ns#' term='FaultHandlerActivity'/><category scheme='http://www.blogger.com/atom/ns#' term='WF'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Workflow persistence and FaultHandler</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ILMwr6slZNA/SmVp4YLuPmI/AAAAAAAAAFI/ft1vodWlw5U/s1600-h/faultHandlerBug.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 195px; height: 320px;" src="http://3.bp.blogspot.com/_ILMwr6slZNA/SmVp4YLuPmI/AAAAAAAAAFI/ft1vodWlw5U/s320/faultHandlerBug.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5360807348739653218" /&gt;&lt;/a&gt;&lt;br /&gt;I´m currently working an a quite big project, atm all alone. The purpose of the system im developing is to safely transfer/fetch/push data from business to business (B2B) with web services according to a securityspecification used by many well known insurencebusinesses in Sweden.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem I´ve stumbled into generates no matches on google search. My setup is as follows:&lt;/div&gt;&lt;div&gt;I got a workflow runtime running workflows that each represent a transaction of message between companies. Each workflow has a bunch of SendActivity/ReceiveActivities used to communicate to the other company but also to local so interests (the system takes no interest in what it send/receive).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Of of the many bugs I´ve found is when using a SendActivity or a CodeActivity which throws an MessageSecurityException (the bug is not likely to be restricted to that exception though) and having a FaultHandlerActivity catching the FaultException from the WCF call. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first problem is that the Fault property of the FaultHandler is null making it totaly useless (mind FaultType is not null).. the second problem is when trying to presist the workflow after received exception. The latter generates the following exception:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;Inner exception: System.Workflow.Runtime.Hosting.PersistenceException: Type 'System.ServiceModel.Channels.ReceivedFault' in Assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable. ---&gt; System.Runtime.Serialization.SerializationException: Type 'System.ServiceModel.Channels.ReceivedFault' in Assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.&lt;br /&gt;at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)&lt;br /&gt;at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter)&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)&lt;br /&gt;at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)&lt;br /&gt;at System.Workflow.ComponentModel.Activity.Save(Stream stream, IFormatter formatter)&lt;br /&gt;at System.Workflow.ComponentModel.Activity.Save(Stream stream)&lt;br /&gt;at System.Workflow.Runtime.Hosting.WorkflowPersistenceService.GetDefaultSerializedForm(Activity activity)&lt;br /&gt;at System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService.SaveWorkflowInstanceState(Activity rootActivity, Boolean unlock)&lt;br /&gt;at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation)&lt;br /&gt;--- End of inner exception stack trace ---&lt;br /&gt;at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation)&lt;br /&gt;at System.Workflow.Runtime.WorkflowExecutor.ProtectedPersist(Boolean unlock)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The reason for this problem is according to the exception that serialization is unpossible but why in the world is the SqlPersistenceService trying to save the FaultHandlerActivity? And how can I avoid it?&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the easiest workaround is not to idle (atm I have a DelayActivity and PersistOnIdle="true").&lt;/li&gt;&lt;li&gt;or just dont use FaultHandlerActivity for catching WCF faults - but then I cannot use the SendActivity and has to do all proxymanagement in "workflow behind"&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I´ve also tried to get feedback from WCF Forum in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsworkflowfoundation/thread/e1507773-8d1a-45ed-bb61-a9e48518c748"&gt;this &lt;/a&gt;thread.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Updated!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Ok, I´ve now given up finding a solution to this problem. I now manually create proxys from each workflow and handle the exception in code - making it much much much slower than the proxymanagement available through the ChannelManagerService. Unfortunately one cannot fetch the opened channels from the manager because it only contains internal classes...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-1213152442199505145?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/1213152442199505145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=1213152442199505145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/1213152442199505145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/1213152442199505145'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2009/07/workflow-persistence-and-faulthandler.html' title='Workflow persistence and FaultHandler'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ILMwr6slZNA/SmVp4YLuPmI/AAAAAAAAAFI/ft1vodWlw5U/s72-c/faultHandlerBug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-8121168117563647990</id><published>2009-07-20T16:46:00.006+02:00</published><updated>2009-07-21T08:34:46.802+02:00</updated><title type='text'>Blogg back online!</title><content type='html'>There! First input since ages. After a lot of struggle with the thesis I completed it last year and I can now name myself as an civilengineer. I got a job as an developer at a small company in Umeå Sweden.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;I will continue on this blog to talk about my programming problems and how i solved them - for venting purposes and the possibility that someone might find the same problem as me.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Code will now be syntax highlighted as in:&lt;br /&gt;&lt;pre name="code"  class="c#"&gt;&lt;br /&gt;public void main() {&lt;br /&gt; int a = 2;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="xml"&gt;&lt;br /&gt;&lt;a&gt;&lt;b c="d"&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-8121168117563647990?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/8121168117563647990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=8121168117563647990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/8121168117563647990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/8121168117563647990'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2009/07/public-void-main.html' title='Blogg back online!'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-1749564051714378288</id><published>2008-03-06T16:15:00.004+01:00</published><updated>2008-03-06T20:57:47.125+01:00</updated><title type='text'>Further achivements!</title><content type='html'>Now Im getting somewhere! &lt;br /&gt;&lt;br /&gt;Had a problem today that might interest someone using either DataFormWebPart or SPSiteDataQuery creating querys towards Sharepoint. The problem was with Calendars and retrieving the RecurrentData XML that specified how the event was repeating. In my case when retrieving from the SPList the RecurrentData was empty all the time. I thought first my dataformwebpart xslt was the error but putting the generated XSLT into sharepoint designer revealed no errors. It had to do with the selectcommand of the SPdatasource!&lt;br /&gt;I didnt have a clue but you had to specifiy the column as a &lt;FieldRef Name="field" /&gt; if you actually wanted the RecurrentData to show. But I had a mistake in generating the query: I used &lt;br /&gt;&amp;lt;View&amp;gt;&amp;lt;ViewField&amp;gt;&amp;lt;FieldRef Name=&lt;span class="str"&gt;"field1"&lt;/span&gt; /&amp;gt;&amp;lt;FieldRef Name=&lt;span class="str"&gt;"field2"&lt;/span&gt; /&amp;gt;&amp;lt;/ViewField&amp;gt;&amp;lt;/View&amp;gt; while sharepoint designer used the very strange syntax: &lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;View&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ViewField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FieldRef&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="field1"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FieldRef&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="field2"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ViewField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ViewFields&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FieldRef&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="field1"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FieldRef&lt;/span&gt; &lt;span class="attr"&gt;Name&lt;/span&gt;&lt;span class="kwrd"&gt;="field2"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ViewFields&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;View&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; OBS ViewField&lt;b&gt;s&lt;/b&gt; with the same columns as the ViewField... Microsoft...plz&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-1749564051714378288?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/1749564051714378288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=1749564051714378288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/1749564051714378288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/1749564051714378288'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/03/further-achivements.html' title='Further achivements!'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-1221055890601433381</id><published>2008-02-21T18:04:00.004+01:00</published><updated>2008-02-21T18:19:27.077+01:00</updated><title type='text'>Toolbar complete</title><content type='html'>I've just completed the toolbar for the generic list with some fancy buttons presenting the user with delete buttons for each item in the list or with a form for creating a new item to the list.&lt;br /&gt;&lt;br /&gt;The toolbar was a big pain, it took me probably two-three weeks(!!) to figure out how sharepoint developers are creating their menus! Thats pritty insane, but my only source of information has been blogs and SharePoints insane pile of code.. come on M$ produce some documentation to your API please. Probably they havn't heard that an API without documentation is useless. I've could have completed a menu of my own in half that time or less...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-1221055890601433381?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/1221055890601433381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=1221055890601433381' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/1221055890601433381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/1221055890601433381'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/02/toolbar-complete.html' title='Toolbar complete'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-7724330658329122172</id><published>2008-02-08T18:40:00.000+01:00</published><updated>2008-02-08T19:27:28.752+01:00</updated><title type='text'>Advancement!</title><content type='html'>Hi! Now I have finaly accomplished something, I was able to create a custom sharepoint menu for my application page using FeatureMenuTemplate containing MenuItemTemplate:s. To display them I used a control named toolbar residing in the 12-hive under controltemplates. Then I used SharePoint:Menu as template-buttons reffering to the menutemplates i created earlier. &lt;br /&gt;&lt;br /&gt;Though now i have a problem when trying to inject some javascript into the web part. Its not recognizing it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-7724330658329122172?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/7724330658329122172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=7724330658329122172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/7724330658329122172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/7724330658329122172'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/02/advancement.html' title='Advancement!'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-5138250620308556739</id><published>2008-02-04T11:32:00.001+01:00</published><updated>2008-02-04T20:56:55.008+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>hmm more problems</title><content type='html'>Crap, today i read on a web page regarding the DataFormWebPartthat:&lt;br /&gt;&lt;blockquote&gt;For security reasons, you cannot create Microsoft JScript code in your XSLT code using msxsl:script. All extension code available in your XSLT must either come from standard XSLT code, or from the functions described in this article. &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;That fucks me up quite a bit, because now i cant insert any javascript.&lt;br /&gt;&lt;br /&gt;Hm, nevermind. I'll just insert my javascript in another way using one of &lt;a href="http://www.dpawson.co.uk/xsl/sect4/N9745.html"&gt;these&lt;/a&gt; techniques. I only cant used external javascript files, which would be preferred. &lt;br /&gt;&lt;br /&gt;Anyway I today realized that I will have further problems: The SPDataSource used for populating the DataFormWebPart cannot be used for Create, Delete and Update...Because it will only be rendered to a string and passed along through web services to another web-server, and there being inserted as a widget. But I can create all the forms in the web-part and then only handle receiving from forms and performing an javascript asynchronous web service-request to the list service when for example a list is being edited.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-5138250620308556739?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/5138250620308556739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=5138250620308556739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/5138250620308556739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/5138250620308556739'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/02/hmm-more-problems.html' title='hmm more problems'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-7104161545353076723</id><published>2008-01-31T21:33:00.000+01:00</published><updated>2008-02-04T11:46:18.183+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Xslt creation complete</title><content type='html'>One step closer. The xslt-creating part is now over, a successful copy of the xslt created by sharepoint designer for this particular datasource/list is now complete. To make it dynamic though alot of work is left, but so far this is how it looks when using the web service creating the web part:&lt;br /&gt;&lt;br /&gt;The following features are complete:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The custom web service deployed on the sharepoint server, using code deployed in the GAC&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The service executes an aspx page containing the DataFormWebPart, all code is created in the code-behind for the aspx-page residing in an assembly in the GAC. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;The DataFormWebPart is created in the code-behind, making it very easy to dynamically changing the caml-query used in the datasource&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The xslt-code is all generated from XmlWriter, making it very easy to change any aspect to the transformation. For example adding fields or changing the formatting of the columns&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Forms authentication is used on the sharepoint server, so that extranet user can use it&lt;/li&gt; &lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Next weeks mission is to create menu-controls, using as much functionality as possible from sharepoints. All links thats present in the menu has to receive javascript popups instead of the original forms, because postbacks are evil and will break everything. The question is how the forms in the popups will be created, because they must be very customizable and adaptive regarding to what list's showing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-7104161545353076723?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/7104161545353076723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=7104161545353076723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/7104161545353076723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/7104161545353076723'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/01/xslt-creation-complete.html' title='Xslt creation complete'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-8588756912946238391</id><published>2008-01-31T17:29:00.000+01:00</published><updated>2008-02-04T11:46:18.183+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Questions!</title><content type='html'>Argh, Microsoft sucks on documenting their API. Why even have one if its not documented..&lt;br /&gt;Currently I'm trying to figure out how to configure a webcontrol.NewMenu. Possibly i have to create controls of my own. Something like &lt;a href="http://www.sharepointblogs.com/tanujashares/archive/2008/01/11/customize-the-oob-list-menus-in-sharepoint-2007-lists.aspx"&gt;this&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-8588756912946238391?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/8588756912946238391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=8588756912946238391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/8588756912946238391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/8588756912946238391'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/01/questions.html' title='Questions!'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-6057204501612862483</id><published>2008-01-31T16:01:00.000+01:00</published><updated>2008-02-04T11:46:18.184+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><title type='text'>Writing xslt</title><content type='html'>In the current stage of development for my project I'm trying to use the DataFormWebPart used by SharePoint Designer. To configure the web part some input parameters is going to construct the web part according to what the used needs. My goal is to make it very functional, being able to use any datasource while providing some nice filtering and sorting according to more inputs.&lt;br /&gt;An example for an input could be the following:&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&amp;lt;datasource&amp;gt;&lt;br /&gt;    &amp;lt;protocol&amp;gt;SPList&amp;lt;/protocol&amp;gt;&lt;br /&gt;    &amp;lt;Name&amp;gt;ListName&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;Field&amp;gt;Title, Status, PercentComplete, Priority&amp;lt;/Field&amp;gt;&lt;br /&gt;    &amp;lt;Order Name=&amp;quot;PercentComplete&amp;quot; Ascending=&amp;quot;False&amp;quot; &amp;gt;&lt;br /&gt;&amp;lt;/datasource&amp;gt;&lt;br /&gt;&amp;lt;Formatting&amp;gt;&lt;br /&gt;    &amp;lt;Width&amp;gt;40%&amp;lt;/Width&amp;gt;&lt;br /&gt;    &amp;lt;Menu&amp;gt;True&amp;lt;/Menu&amp;gt;&lt;br /&gt;&amp;lt;/Formatting&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And returned from the web service is a well formated list, spanning 40% of the parent-container, with a menu used for CRUD actions. The CRUD is not implemented so far.&lt;br /&gt;&lt;br /&gt;That is my vision.&lt;br /&gt;&lt;br /&gt;Currently im working with the XmlWriter, used for producing a xsl used for the transformation in the DataFormWebPart.&lt;br /&gt;&lt;br /&gt;A minor problem atm is that writer.writeString is creating html-text from htlm, for example "&lt;" becomes &amp; l t ; but without whitespace between.&lt;br /&gt;&lt;br /&gt;---------&lt;br /&gt;Edit: problem almost solved, used WriteRaw instead, but this way formatting is screwed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-6057204501612862483?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/6057204501612862483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=6057204501612862483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/6057204501612862483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/6057204501612862483'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/01/writing-xslt.html' title='Writing xslt'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5717558970438781510.post-8778962873107507024</id><published>2008-01-30T21:39:00.000+01:00</published><updated>2008-01-30T21:41:37.704+01:00</updated><title type='text'>First post</title><content type='html'>Cool, I've finally realized a blog would fit my project, because the solitude is killing me, I need to think more about what I'm doing regarding my programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5717558970438781510-8778962873107507024?l=goffkock.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://goffkock.blogspot.com/feeds/8778962873107507024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5717558970438781510&amp;postID=8778962873107507024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/8778962873107507024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5717558970438781510/posts/default/8778962873107507024'/><link rel='alternate' type='text/html' href='http://goffkock.blogspot.com/2008/01/first-post.html' title='First post'/><author><name>Goff</name><uri>http://www.blogger.com/profile/11587304830754680965</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_ILMwr6slZNA/R6HsuHi835I/AAAAAAAAABc/NUPW2JYxgUk/S220/goff-h%C3%83%C2%A5rd.jpg'/></author><thr:total>0</thr:total></entry></feed>
