<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jacqueline van der Holst</title>
	<atom:link href="http://www.jacquelinevanderholst.nl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jacquelinevanderholst.nl</link>
	<description>Link.ToMyThoughts()</description>
	<lastBuildDate>Tue, 20 Dec 2011 19:32:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Session ins and outs of Duet Enterprise Feature Pack 1 on TechDays Netherlands</title>
		<link>http://www.jacquelinevanderholst.nl/2011/12/20/duetenterprisesession/</link>
		<comments>http://www.jacquelinevanderholst.nl/2011/12/20/duetenterprisesession/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 19:32:41 +0000</pubDate>
		<dc:creator>Jacqueline</dc:creator>
				<category><![CDATA[Duet Enterprise]]></category>

		<guid isPermaLink="false">http://www.jacquelinevanderholst.nl/?p=57</guid>
		<description><![CDATA[For the TechDays in the Netherlands I posted a wildcard session, and people can vote to see the session. The session will be about the ins and outs of Duet Enterprise Feature Pack 1. I will address the following topics and more: 1. What will you get when you use Duet Enterprise for communication between [...]]]></description>
			<content:encoded><![CDATA[<p>For the TechDays in the Netherlands I posted a wildcard session, and people can vote to see the session. The session will be about the ins and outs of Duet Enterprise Feature Pack 1. I will address the following topics and more:</p>
<p>1. What will you get when you use Duet Enterprise for communication between SAP and SharePoint?</p>
<p>2. How does this work?</p>
<p>3. What do you need to be able to use it? What do you need to configure?</p>
<p>4. What are benefits and what are challenges?</p>
<p>5. Authentication</p>
<p>6. How can these projects best be done?</p>
<p>7. Oppertunities and lessons learned</p>
<p>8. Development in SharePoint and the BCS</p>
<p>So if you are interested and coming to the techdays, please vote for my session <a href="http://www.techdays.nl/WildcardSessieDetail.aspx?sid=62352">http://www.techdays.nl/WildcardSessieDetail.aspx?sid=62352</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jacquelinevanderholst.nl/2011/12/20/duetenterprisesession/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using ASP.NET MVC 3 framework</title>
		<link>http://www.jacquelinevanderholst.nl/2011/12/05/using-asp-net-mvc-3-framework/</link>
		<comments>http://www.jacquelinevanderholst.nl/2011/12/05/using-asp-net-mvc-3-framework/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 08:13:51 +0000</pubDate>
		<dc:creator>Jacqueline</dc:creator>
				<category><![CDATA[Framework programming]]></category>

		<guid isPermaLink="false">http://www.jacquelinevanderholst.nl/?p=49</guid>
		<description><![CDATA[A couple of weeks ago a colleague asked me what I thought of using the MVC 3 Model in the framework that we were constructing. So that made me think of the advantages of using the MVC 3 framework. So here are the advantages that I saw: &#160; 1. First of all the MVC 3 [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago a colleague asked me what I thought of using the MVC 3 Model in the framework that we were constructing. So that made me think of the advantages of using the MVC 3 framework. So here are the advantages that I saw:</p>
<p>&nbsp;</p>
<p>1. First of all the MVC 3 framework makes it possible to really make a distinction between front-end, data and business logic. In our case for the frontend Razor was used. We used JQuery, AJAX and Json calls. It did remind me a bit of the old ASP. But I think it is a lot cleaner. In the controllers the data is passed through from the models to the front-end views. This also makes everything loosely coupled.</p>
<p>2. Re-usability is another advantage. In a framework this is a very important issue. I was able to create screens that could be used for different puposes in different situation. For example, I was able to create a view for the selection and copying of documents. Where the documents came from or where they were copied to did not matter. I could even use different controller code for different situations.</p>
<p>3. Easy learning for the MVC part. If you already knew the MVC design pattern than it is easy to follow how the MVC 3 framework works. It comes with a lot of examples and standard coding.</p>
<p>4. It was easy to learn Razor. This is because it is based on C# language and Visual Studio includes intellisense for creating the code. Of course you can always decide to use a different view engine.</p>
<p>5. On our project it was easier for someone without knowledge of coding but with knowledge of design to change the design code in the views. This did not touch the code and a lot of the design was stored in a CSS file of course. But for the part that was not in a CSS file it was also easy to change.</p>
<p>6. There is no viewstate and Postback events.</p>
<p>7. There is no Page lifecycle. So you do not have to think about what gets called first. We also did the project with Web forms programming and sometimes we had a lot of hassle with what got called first and where errors were coming from. Here it is pretty clear what happens when.</p>
<p>&nbsp;</p>
<p>There are some things to be careful with if you are using MVC3:</p>
<p>&nbsp;</p>
<p>1. If you are not familiar with JQuery, javascript, Ajax and JSon it will take some time to learn. Personally I think it is worth it and it gives you a lot of control.</p>
<p>2. Even with javascript it is possible to create dependencies between views. This is done for example when in one view you adress a javascript function which is defined in another view. You should be careful by doing so.</p>
<p>3. On the internet some people say that performance is less. In the framework we created the performance with the MVC 3 framework was even better than with the ASP.NET controls.</p>
<p>4. In Web forms programming you have a lot of built-in controls, which you do not have in the MVC model.</p>
<p>5. You should be thinking about how to maintain state before hand. It could be that your forms are working differently than in web form development. For instance it could be necessary to save a form much sooner than you want.</p>
<p>&nbsp;</p>
<p>Keep in mind that it is always possible to write code that is not clean. The MVC framework leads you in a certain direction. But it is still your own responsibility to keep your controller code  and views clean. You still have to think about the architecture beforehand. If you create dependencies that should not be there, because you do not have a lot of time right now, remember that in most cases time is always a problem. The code never gets changed again and it could save time in bug fixing and learning just to take the time to do it in a clean way.<br />
I saw a great advantage in framework programming to use the MVC3 model.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jacquelinevanderholst.nl/2011/12/05/using-asp-net-mvc-3-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a hiërarchy of document library folders and subfolders using SharePoint 2010 Client Object Model</title>
		<link>http://www.jacquelinevanderholst.nl/2011/09/05/creating-a-hierarchy-of-document-library-folders-and-subfolders-using-sharepoint-2010-client-object-model/</link>
		<comments>http://www.jacquelinevanderholst.nl/2011/09/05/creating-a-hierarchy-of-document-library-folders-and-subfolders-using-sharepoint-2010-client-object-model/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 14:45:00 +0000</pubDate>
		<dc:creator>Jacqueline</dc:creator>
				<category><![CDATA[Client Object Model]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.jacquelinevanderholst.nl/?p=13</guid>
		<description><![CDATA[Working with the client object model of SharePoint 2010 I wanted to create a way to be able to create a multiple subfolder structure within a document library. Here I describe the way you can do that. At first a procedure was written to create a subfolder under a folder in the documentlibrary: public void [...]]]></description>
			<content:encoded><![CDATA[<p>Working with the client object model of SharePoint 2010 I wanted to create a way to be able to create a multiple subfolder structure within a document library. Here I describe the way you can do that. At first a procedure was written to create a subfolder under a folder in the documentlibrary:</p>
<p><span style="color: blue;">public void</span> CreateSubFolderForFolder(<span style="color: blue;">string</span> subfolderName, <span style="color: blue;">string</span> folderName)</p>
<p>{</p>
<p style="padding-left: 30px;"><span style="color: green;">//This procedure creates a subfolder for a folder in a documentlibrary list</span></p>
<p style="padding-left: 30px;"><span style="color: blue;">var</span> clientContext = <span style="color: blue;">new</span> <span style="color: lightblue;">ClientContext</span>(Uri);</p>
<p style="padding-left: 30px;"><span style="color: blue;">var</span> list = clientContext.Web.Lists.GetById(ListId);</p>
<p style="padding-left: 30px;"><span style="color: blue;">if</span> (list != <span style="color: blue;">null</span>)</p>
<p>{</p>
<p style="padding-left: 60px;"><span style="color: lightblue;">ListItemCreationInformation</span> newFolder = <span style="color: blue;">new</span> <span style="color: lightblue;">ListItemCreationInformation</span>();</p>
<p style="padding-left: 60px;">newFolder.UnderlyingObjectType = <span style="color: lightblue;">FileSystemObjectType</span>.Folder;</p>
<p style="padding-left: 60px;"><span style="color: green;">//This function gets the complete url to the folder where the subfolder is created for</span></p>
<p style="padding-left: 60px;">newFolder.FolderUrl = GetUrl(folderName);</p>
<p style="padding-left: 60px;">newFolder.LeafName = subfolderName;</p>
<p style="padding-left: 60px;"><span style="color: lightblue;">ListItem</span> item = list.AddItem(newFolder);</p>
<p style="padding-left: 60px;">item.Update();</p>
<p style="padding-left: 60px;">clientContext.ExecuteQuery();</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 0px;">}</p>
<p>In order to create a complete layer of subfolders in a  documentlibrary the function above should be placed in a loop. But how can you  pass a hiërarchical structure to such a function. You can do that for instance by supplying the following structure: /Folder1/Subfolder2/Subfolder3. This states that Subfolder2 needs to be created underneath Folder1 and Subfolder3 needs to be created under Subfolder2. When you pass the structure to the function below this is done:</p>
<p><span style="color: blue;">public void</span> CreateFolderSubFolderStructure(<span style="color: blue;">string</span> relativeFolderPath)</p>
<p>{</p>
<p style="padding-left: 30px;"><span style="color: blue;">string</span> totalFolderName = <span style="color: lightblue;">String</span>.Empty;</p>
<p style="padding-left: 30px;"><span style="color: blue;">string</span>[] folders = relativeFolderPath.Split(&#8216;/&#8217;);</p>
<p style="padding-left: 30px;"><span style="color: blue;">foreach</span> (<span style="color: blue;">string</span> folderName in folders)</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;"><span style="color: blue;">if</span> (!<span style="color: lightblue;">String</span>.IsNullOrEmpty(folderName))</p>
<p style="padding-left: 60px;">{</p>
<p style="padding-left: 60px;"><span style="color: green;">//This checks if the folder already exists</span></p>
<p style="padding-left: 60px;"><span style="color: lightblue;">Folder</span> folder = GetFolder(folderName);</p>
<p style="padding-left: 90px;"><span style="color: blue;">if</span> (folder == <span style="color: blue;">null</span> )</p>
<p style="padding-left: 90px;">{</p>
<p style="padding-left: 120px;"><span style="color: blue;">if</span> (!<span style="color: lightblue;">String</span>.IsNullOrEmpty(totalFolderName))</p>
<p style="padding-left: 120px;">{</p>
<p style="padding-left: 150px;">CreateSubFolderForFolder(folderName, totalFolderName);</p>
<p style="padding-left: 120px;">}</p>
<p style="padding-left: 120px;"><span style="color: blue;">else</span></p>
<p style="padding-left: 120px;">{</p>
<p style="padding-left: 150px;"><span style="color: green;">//This function creates a folder directly under the root</span></p>
<p style="padding-left: 150px;">CreateFolder(folderName);</p>
<p style="padding-left: 120px;">}</p>
<p style="padding-left: 90px;">}</p>
<p style="padding-left: 90px;">totalFolderName += &#8220;/&#8221; + folderName;</p>
<p style="padding-left: 60px;">}</p>
<p style="padding-left: 30px;">}</p>
<p>}</p>
<p>The GetFolder function in the function above checks wether the folder already exists. If it exists than the folder is not created again but</p>
<p>used to create the next folder.  See below:</p>
<p>&nbsp;</p>
<p><span style="color: blue;">private</span> <span style="color: lightblue;">Folder</span> GetFolder(<span style="color: blue;">string</span> folderName)</p>
<p>{</p>
<p style="padding-left: 30px;"><span style="color: blue;">var</span> clientContext = <span style="color: blue;">new</span> <span style="color: lightblue;">ClientContext</span>(Uri);</p>
<p style="padding-left: 30px;"><span style="color: blue;">var</span> list = clientContext.Web.Lists.GetById(ListId);</p>
<p style="padding-left: 30px;"><span style="color: lightblue;">Folder</span> existingFolder = <span style="color: blue;">null</span>;</p>
<p style="padding-left: 30px;"><span style="color: blue;">if</span> (list != null)</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;"><span style="color: lightblue;">FolderCollection</span> folders = list.RootFolder.Folders;</p>
<p style="padding-left: 60px;"><span style="color: blue;">string</span> folderUrl = GetUrl(folderName);</p>
<p style="padding-left: 60px;"><span style="color: lightblue;">IEnumerable</span>&lt;<span style="color: lightblue;">Folder</span>&gt;existingFolders= clientContext.LoadQuery(</p>
<p style="padding-left: 90px;">folders.Include(</p>
<p style="padding-left: 120px;">folder =&gt; folder.ServerRelativeUrl)</p>
<p style="padding-left: 90px;">);</p>
<p style="padding-left: 60px;">clientContext.ExecuteQuery();</p>
<p style="padding-left: 60px;">existingFolder = existingFolders.FirstOrDefault(</p>
<p style="padding-left: 90px;">folder =&gt; folder.ServerRelativeUrl.ToLower() == folderUrl.ToLower());</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;"><span style="color: blue;">return</span> existingFolder;</p>
<p>}</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jacquelinevanderholst.nl/2011/09/05/creating-a-hierarchy-of-document-library-folders-and-subfolders-using-sharepoint-2010-client-object-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

