<?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>Quercus Blogs</title>
	<atom:link href="http://blogs.quercussolutions.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.quercussolutions.com</link>
	<description>A blog hosted by Quercus Solutions, an Edmonton, Alberta based consulting company and Microsoft Gold Certified Partner. We work with our clients to achieve a common goal: streamline your business using innovative IT solutions.</description>
	<lastBuildDate>Tue, 10 Jan 2012 17:04:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Drive: The Surprising Truth About What Motivates People</title>
		<link>http://blogs.quercussolutions.com/index.php/drive-the-surprising-truth-about-what-motivates-people/</link>
		<comments>http://blogs.quercussolutions.com/index.php/drive-the-surprising-truth-about-what-motivates-people/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 17:02:02 +0000</pubDate>
		<dc:creator>paulg</dc:creator>
				<category><![CDATA[Corporate Culture]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1325</guid>
		<description><![CDATA[By Daniel H. Pink Original Source: The RSA Animate: &#8216;DRIVE &#8211; The Surprising Truth About What Motivates Us&#8217;]]></description>
			<content:encoded><![CDATA[<p>By Daniel H. Pink</p>
<p>Original Source: The RSA Animate: <a href="http://www.youtube.com/watch?v=u6XAPnuFjJc">&#8216;DRIVE &#8211; The Surprising Truth About What Motivates Us&#8217;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/drive-the-surprising-truth-about-what-motivates-people/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Focus of Leadership</title>
		<link>http://blogs.quercussolutions.com/index.php/the-focus-of-leadership/</link>
		<comments>http://blogs.quercussolutions.com/index.php/the-focus-of-leadership/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 16:42:20 +0000</pubDate>
		<dc:creator>robbie</dc:creator>
				<category><![CDATA[Corporate Culture]]></category>
		<category><![CDATA[Developing Teams]]></category>
		<category><![CDATA[#leadership #culture #hr]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1322</guid>
		<description><![CDATA[&#160; I first heard of the concept of Convex Leadership during a TEDTalk by R.A. Mashelkar, when he was speaking at TEDIndia in 2009. His talk discussed breakthrough designs for ultra low cost products being developed in India. Borrowing the concept, Gandhian engineering, from Tata Motors, his discussion expanded on the concept of frugality and [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I first heard of the concept of Convex Leadership during a TEDTalk by R.A. Mashelkar, when he was speaking at TEDIndia in 2009. His talk discussed breakthrough designs for ultra low cost products being developed in India. Borrowing the concept, Gandhian engineering, from Tata Motors, his discussion expanded on the concept of frugality and challenging conventional wisdom in technological innovations, engineering and new product development. Getting more, from less, for more&#8230;.. meaning Getting more service, from less resources, for more people. Amazing concept for the manufacturing and production world; especially for a world of depleting resources and a population that can’t afford luxurious overpriced designs.</p>
<p>Going back to the concept of convex leadership, the talk by Mashelkar brought up the idea of how leaders can transform the views and perceptions of those around them to focus and act as one; this type of leadership is needed to take advantage of concepts like Gandhian Engineering. Mashelkar further discusses how he came up with the concept:</p>
<p><span id="more-1322"></span></p>
<p>“Principal Bhave took us out into the sun to demonstrate to us as to how to find the focal length of a convex lens. He had a piece of paper here, a convex lens here and he moved it up and down and there was a point when there was a sharp focus and a bright spot on the paper. He showed the distance between paper and the lens and said that this distance was the focal length. But then the paper started burning. For some reason, he then turned to me, and said, Mashelkar, if you focus your energies like this, you can burn anything in the world.&#8221;</p>
<p>If you think carefully about this story, it tells you about the new model for the society and for the nation. What is the experiment? You have the lens. And what does the lens do? It takes the parallel rays of the sun and then lets them converge. And what is the property of parallel lines? Parallel lines never meet. Parallel rays never meet but the lens actually makes them meet. The “convex lens” brings things together to focus and work together – leadership that brings people together.</p>
<p>Lets bring this back to the world of technology for a minute. Many frameworks and methodologies exist on leadership and project management, but when it comes down to leadership, it really comes down to basics &#8211; team leadership means focusing the team on obtaining a goal. As a company, the same concept can be applied &#8211; focusing the company on common goals; focusing everyones energy on obtaining the same strategic goals is key to obtaining success. Leaders that are able to display the attributes of convex leadership will be able to focus their teams of employees towards achieving the objectives laid out by the company; in some cases this may be in the form of helping employees obtain their own objectives (SMART goals from performance reviews) which thereby result in moving a step forward towards reaching the overall company objectives. In the end, the ability to lead people and converge the parallel lines that represent individual goals, is the true measure of a good leader.</p>
<p>The challenging part is finding those individuals that can lead by using a convex leadership style within a company; these leaders are the ones who understand the true motivators that get people to work in the morning; the difference between intrinsic and extrinsic motivators, Herzberg&#8217;s motivation-hygiene theory and are able to build the culture and team that have chemistry to work together.</p>
<p>So, the question I pose is, do you have a leader that is able to motivate and focus you? Or are you that leader?</p>
<p>&nbsp;</p>
<p>Article source: <a href="http://www.robbiemadan.com/2012/01/04/the-art-of-leadership">http://www.robbiemadan.com/2012/01/04/the-art-of-leadership</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/the-focus-of-leadership/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Video Call Federation with Microsoft Lync to Windows Live Network</title>
		<link>http://blogs.quercussolutions.com/index.php/video-call-federation-with-microsoft-lync-to-windows-live-network/</link>
		<comments>http://blogs.quercussolutions.com/index.php/video-call-federation-with-microsoft-lync-to-windows-live-network/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 21:06:04 +0000</pubDate>
		<dc:creator>Bhavin M</dc:creator>
				<category><![CDATA[Lync]]></category>
		<category><![CDATA[AV]]></category>
		<category><![CDATA[Federation]]></category>
		<category><![CDATA[Live Messenger]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1296</guid>
		<description><![CDATA[I was recently troubleshooting an issue where Lync clients could not connect via video calls with Windows Live Messenger 2011 clients. The users could instant message each other but video calls would never connect. The underlining issue for the disconnect is that Lync requires SRTP encryption by default which the Windows Live network does not [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently troubleshooting an issue where Lync clients could not connect via video calls with Windows Live Messenger 2011 clients. The users could instant message each other but video calls would never connect.</p>
<p>The underlining issue for the disconnect is that Lync requires SRTP encryption by default which the Windows Live network does not support.</p>
<p>Assuming that your federation is working to the Windows Live network, we have to insure that the Lync users have Public A/V connectivity:</p>
<pre>Set-CsExternalAccessPolicy Global -EnablePublicCloudAudioVideoAccess $true</pre>
<p>&nbsp;</p>
<p>The second step is to change the Lync encryption requirement fromt required to supported. The Lync client will still try to negotiate an encrypted session first, but if that fails it will allow the unencrypted session with the Windows Live network to take place:</p>
<pre>Set-CsMediaConfiguration Global -EncryptionLevel SupportEncryption</pre>
<p>&nbsp;</p>
<p>You can also apply these commands to a specific policy that you have created. After these commands are entered on the server, wait a few minutes and then sign out and back in to the Lync client. You can verify that change has taken place by looking at the <strong>PC to PC AV Encryption</strong> in Lync (hold down CTRL and right click the tray icon and select &#8220;Configuration Information&#8221;. The setting should display &#8220;AV Encryption Supported&#8221;.<br />
<a href="http://blogs.quercussolutions.com/index.php/video-call-federation-with-microsoft-lync-to-windows-live-network/capture-2/" rel="attachment wp-att-1298"><img class="alignnone size-medium wp-image-1298" src="http://blogs.quercussolutions.com/wp-content/uploads/2012/01/Capture-300x28.png" alt="" width="300" height="28" /></a></p>
<p>If the encryption level is not changed there will be an error logged on the Front-End server when an A/V call is trying to be established:</p>
<blockquote>
<pre><strong>Start-Line: SIP/2.0 488 Not Acceptable Here</strong>
<strong>ms-client-diagnostics:</strong> 52017;reason="Encryption levels do not match"</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/video-call-federation-with-microsoft-lync-to-windows-live-network/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft LightSwitch – Sending Emails From the Client</title>
		<link>http://blogs.quercussolutions.com/index.php/microsoft-lightswitch-sending-emails/</link>
		<comments>http://blogs.quercussolutions.com/index.php/microsoft-lightswitch-sending-emails/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 17:20:25 +0000</pubDate>
		<dc:creator>paul.patterson</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[LightSwitch]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1291</guid>
		<description><![CDATA[Most of you may have already read an earlier post on how to send emails from LightSwitch (seen here). This post extends what was learned in that previous post, and shows how to wire up a button to send an email on demand.That previous post showed a specific function that would send out an email [...]]]></description>
			<content:encoded><![CDATA[<p>Most of you may have already read an earlier post on how to send emails from LightSwitch (<a title="Send Email from LightSwitch" href="http://www.paulspatterson.com/technology/lightswitch/microsoft-lightswitch-send-an-email-from-lightswitch/">seen here</a>). This post extends what was learned in that previous post, and shows how to wire up a button to send an email on demand.That <a title="Send an Email from LightSwitch" href="http://www.paulspatterson.com/technology/lightswitch/microsoft-lightswitch-send-an-email-from-lightswitch/">previous post</a> showed a specific function that would send out an email when an entity was added to the database. A helper class was created in the Server project of the LightSwitch solution. Then, when the new record was created in the database, that server code was called and an email went out. Here is how  I did that&#8230;<span id="more-1291"></span></p>
<p>The whole process was pretty simple to implement, however it was a good exercise that helped me better understand how LightSwitch separates concerns. It was this knowledge and understanding that helped me implement a solution for another email challenge.</p>
<p>The challenge I have is this; I want functionality that will let me send an email on demand, via a button on a screen, and I don’t want to code some fancy WCF service or custom extension to do the job.</p>
<p>Here is the thing – you can’t call server code from the client. It is in the server code that the email processing occurs. Why? Because the client and common projects are Silverlight based projects and I can’t add the necessary System.Net reference to those projects – otherwise I would have used the System.Net.Mail namespace directly from the client.</p>
<p>But hey, the Server project is a .Net 4 class library project, and I can add the System.Net reference to that project. That is why the actual email processing has to occur in the Server project. Following me so far?</p>
<p>So, here is what I did…</p>
<p>In the Solution Explorer of my LightSwitch project, I switched to File View so that I can get at the Server project…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/8d5e8_LSEmailFromClient001.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2898" title="LSEmailFromClient001" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/8d5e8_LSEmailFromClient001.png" alt="" width="340" height="242" /></a></p>
<p>Knowing that I need to use an external (SMTP) email service to actually send out the email, I decided to store some static information that my email processing can use to process the email; such as stuff for the email service authentication. To do this, I opened the Server project settings.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/8b2a6_LSEmailFromClient002.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2899" title="LSEmailFromClient002" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/8b2a6_LSEmailFromClient002.png" alt="" width="333" height="225" /></a></p>
<p>Next, I added some Application scoped configuration settings…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/04cbd_LSEmailFromClient003.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2900" title="LSEmailFromClient003" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/04cbd_LSEmailFromClient003.png" alt="" width="564" height="382" /></a></p>
<p>…come on, you didn’t actually think that I would post my own credentials did ya…I learned from that mistake already</p>
<p>I made sure to save the updates.</p>
<p>Next, a folder is created within the Server project, and named the folder “UserCode”. Within that folder I created a new Class file and named it “EmailHelper.vb”.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/04c05_LSEmailFromClient004.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2905" title="LSEmailFromClient004" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/04c05_LSEmailFromClient004.png" alt="" width="537" height="369" /></a></p>
<p>This is the code I added to this file…</p>
<pre class="brush:vb">Imports System.Net
Imports System.Net.Mail

Namespace LightSwitchApplication
    Public Class MailHelper

        Private Property SMTPServer As String = My.Settings.SMTPServer
        Private Property SMTPUserId As String = My.Settings.SMTPUserID
        Private Property SMTPPassword As String = My.Settings.SMTPPassword
        Private Property SMTPPort As Integer = My.Settings.SMTPPort

        Private Property MailFrom As String
        Private Property MailFromName As String
        Private Property MailTo As String
        Private Property MailToName As String
        Private Property MailSubject As String
        Private Property MailBody As String

        Sub New(ByVal SendFrom As String,
                ByVal SendFromName As String, _
                ByVal SendTo As String, _
                ByVal SendToName As String, _
                ByVal Subject As String, _
                ByVal Body As String)
            _MailFrom = SendFrom
            _MailFromName = SendFromName
            _MailTo = SendTo
            _MailToName = SendToName
            _MailSubject = Subject
            _MailBody = Body
        End Sub

        Public Sub SendMail()

            Dim SMTPUserAddress = New MailAddress(_SMTPUserId)

            Dim mail As New MailMessage
            Dim mailFrom As New Mail.MailAddress(_MailFrom, _MailFromName)
            Dim mailTo As New Mail.MailAddress(_MailTo, _MailToName)

            With mail
                .From = mailFrom
                .To.Add(mailTo)
                .Subject = _MailSubject
                .Body = _MailBody
            End With

            Dim smtp As New SmtpClient(_SMTPServer, _SMTPPort)
            smtp.EnableSsl = True

            smtp.Credentials = New NetworkCredential(SMTPUserAddress.Address, _SMTPPassword)
            smtp.Send(mail)
        End Sub

    End Class
End Namespace</pre>
<p>So, this class contains some pretty simple code. Instantiating the class requires a bunch of parameters that are later used by the SendMail() method. The SendMail() methid is where the mail message gets created, configured, and sent using the a SmtpClient. As you can see, some class properties are defaulted to the values that are stored in the App.Config file of the Server project (which were added earlier).</p>
<p>Next, I go back into the logical view of the solution.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/04c05_LSEmailFromClient005.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2902" title="LSEmailFromClient005" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/04c05_LSEmailFromClient005.png" alt="" width="338" height="114" /></a></p>
<p>In the logical view, a new table is created. The table name is “ProxyEmail”, and it looks like this…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/91850_LSEmailFromClient006.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2903" title="LSEmailFromClient006" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/91850_LSEmailFromClient006.png" alt="" width="498" height="326" /></a></p>
<p>Now, with this table, I have essentially created a “Model” that I can use in my workaround. Remember, my challenge is to do all this with native LightSwitch features and functionality. I don’t want to create a fancy-smancy WCF service or custom extension for this. I just want to get the job done. By creating this entity, I have, in essence, created a business object that I am going to use to do what I want to do.</p>
<p>Here is the fun part! I can’t call the Server code directly from any screens, however I know that my “entity” can access the server code via its dependencies. For example, my ProxyEmail entity has a method called ProxyEmails_Inserted(), which runs on the server when an entity as added to the table (add to the collection of ProxyEmail entities).</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/91850_LSEmailFromClient007.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2906" title="LSEmailFromClient007" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/91850_LSEmailFromClient007.png" alt="" width="491" height="281" /></a></p>
<p>So, I add some code to this method…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/4bddd_LSEmailFromClient008.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2907" title="LSEmailFromClient008" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/4bddd_LSEmailFromClient008.png" alt="" width="583" height="362" /></a></p>
<p>…and here is the code if you want…</p>
<pre class="brush:vb"> Private Sub ProxyEmails_Inserted(entity As ProxyEmail)
            ' Write your code here.
            Dim sSubject = "Test Email."
            Dim carRtn = Environment.NewLine  Environment.NewLine

            Dim sMessage = "The following email has come from a button on LightSwitch..."  carRtn
            sMessage += "Testing 1, 2, 3!!"

            ' Create the MailHelper class created in the Server project.
            Dim mailHelper As New MailHelper(entity.SenderEmailAddress, _
                                             entity.RecipientName, _
                                             entity.RecipientEmailAddress, _
                                             entity.RecipientName, _
                                             sSubject, _
                                             sMessage)

            ' Let 'er rip!
            mailHelper.SendMail()
        End Sub</pre>
<p>So, this is pretty much the same as the last post. Right, but here is how this similar stuff is used to create a feature that will allow you to send an email on demand, rather than relying only on updates to entities.</p>
<p>I create a new Screen and, using the New Data Screen template, name it “SendAnEmail”, but don’t assign any screen data to it…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/eac04_LSEmailFromClient009.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2908" title="LSEmailFromClient009" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/eac04_LSEmailFromClient009.png" alt="" width="480" height="342" /></a></p>
<p>In the screen designer for the new SendAnEmail screen, I click Add Data Item… and create a Method with a name of “SendMyEmailOnDemand”…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/ef88d_LSEmailFromClient010.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2909" title="LSEmailFromClient010" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/ef88d_LSEmailFromClient010.png" alt="" width="479" height="353" /></a></p>
<p>Back in the screen designer, I expand the Screen Command Bar, and drag and drop the SendMyEmailOnCommand method to the command bar.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/10955_LSEmailFromClient011.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2910" title="LSEmailFromClient011" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/10955_LSEmailFromClient011.png" alt="" width="570" height="346" /></a></p>
<p>I right click the newly added button, and select to Edit Execute Code.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/794f3_LSEmailFromClient012.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2911" title="LSEmailFromClient012" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/794f3_LSEmailFromClient012.png" alt="" width="605" height="350" /></a></p>
<p>I edit the method to this…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/eed62_LSEmailFromClient013.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2912" title="LSEmailFromClient013" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/eed62_LSEmailFromClient013.png" alt="" width="534" height="353" /></a></p>
<p>…and here is the actual code you can use…</p>
<pre class="brush:vb">        Private Sub SendEmailOnCommand_Execute()
            Dim newEmail = DataWorkspace.ApplicationData.ProxyEmails.AddNew()
            With newEmail
                .RecipientEmailAddress = "paulspatterson@hotmail.com"
                .RecipientName = "Paul Patterson"
                .SenderEmailAddress = "paul@selectsystems.ca"
                .SenderName = "Paul Patterson (Select Systems)"
            End With

            DataWorkspace.ApplicationData.SaveChanges()
            newEmail.Delete()
            DataWorkspace.ApplicationData.SaveChanges()
        End Sub</pre>
<p>What this is doing is simply creating a new ProxyEmail entity, settings it’s properties, the committing the insert to the system. The SaveChanges after the setting the properties will cause the ProxyEmails collection to fire that ProxyEmails_Inserted() method that was wired up earlier, which then sends the email from the server code. After that, the newly added entity is deleted because I don’t need it any more.</p>
<p>So, I F5 to test it…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/a288d_LSEmailFromClient014.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2913" title="LSEmailFromClient014" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/a288d_LSEmailFromClient014.png" alt="" width="529" height="250" /></a></p>
<p>… and I click the Send Email On Demand button. Then I go and check my email, and presto…</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/a288d_LSEmailFromClient015.png" rel="slb_group[2896] slb slb_internal"><img class="aligncenter size-full wp-image-2914" title="LSEmailFromClient015" src="http://blogs.quercussolutions.com/wp-content/plugins/rss-poster/cache/a288d_LSEmailFromClient015.png" alt="" width="471" height="325" /></a></p>
<p>Yes!</p>
<p>This may not be the super cool software code monkey way of doing things, but who cares! It does the job, and I did in no time at all.</p>
<p>Hope you find it useful!</p>
<p>Cheers</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Article source: <a href="http://www.paulspatterson.com/technology/lightswitch/microsoft-lightswitch-sending-emails-from-the-client/">http://www.paulspatterson.com/technology/lightswitch/microsoft-lightswitch-sending-emails-from-the-client/</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/microsoft-lightswitch-sending-emails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using InfoPath and Workflows to Computerise the Employees Assessment Process</title>
		<link>http://blogs.quercussolutions.com/index.php/using-infopath-and-workflows-to-computerise-the-employees-assessment-process/</link>
		<comments>http://blogs.quercussolutions.com/index.php/using-infopath-and-workflows-to-computerise-the-employees-assessment-process/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 16:33:41 +0000</pubDate>
		<dc:creator>mohamedr</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Infopath Forms]]></category>
		<category><![CDATA[SharePoint 2010 Workflows]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1184</guid>
		<description><![CDATA[Part 1: The Problem Employees periodic assessment is an important and tedious repetitive process for the HR department. As a leader in Software Development, Quercus Solutions decided to computerise its employees assessment process. I was charged with implementing a simple, affordable, and extensible solution using a non code InfoPath Form and a declarative SharePoint Designer [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><strong><span style="text-decoration: underline;">Part 1: The Problem</span></strong></p>
<p>Employees periodic assessment is an important and tedious repetitive process for the HR department. As a leader in Software Development, Quercus Solutions decided to computerise its employees assessment process. I was charged with implementing a simple, affordable, and extensible solution using a non code InfoPath Form and a declarative SharePoint Designer 2010 Workflow.</p>
<p><strong>Process Description and Security Constraints</strong></p>
<p>Quercus Employees assessment process involves four parties, the employee himself, his coach, the HR department, and the company manager. One big concern is to keep the assessment data completely private and secure.</p>
<p> <span id="more-1184"></span></p>
<p>The assessment  process consists of multiple stages.  The following flowchart shows these stages.</p>
<p>&nbsp;</p>
<div id="attachment_1239" class="wp-caption aligncenter" style="width: 654px"><img class="size-full wp-image-1239" src="http://blogs.quercussolutions.com/wp-content/uploads/2012/01/Assessment.jpg" alt="Assessment Process" width="644" height="273" /><p class="wp-caption-text">Assessment Process</p></div>
<div class="mceTemp mceIEcenter">
<div class="mceTemp mceIEcenter" style="text-align: center;">
<dl>
<dt> </dt>
</dl>
</div>
</div>
<p>To start an assessment, the HR manager should create a new assessment Form. He/she, then, fills a view of the  form that includes some basic parameters such as: employee name, coach name, etc. We plan, in a future release,  to automate this step using a SharePoint employees External List and a Timer Job. When a Form is created, no body Should be given access to it, except the HR Manager.</p>
<p>The second stage starts when the HR manager decides that the process of assessment is ready to go. At this moment an alert is sent  to the coach. It should give him a link to the assessment Form that he should fill. As a part of filling the assessment form, he should decide about a meeting date with the employee to discuss the assessment.</p>
<p>At this second stage,  the coach should be the only person that have write access to the Form. The HR and the company manager should only have read access. Neither the employee himself, nor any other person should be able to access the Form at all.</p>
<p>The third stage starts when the coach signals that he is finished with the assessment. The coach can edit and modify the assessment as many times as he wishes, however, he can&#8217;t modify it once he marks it as ready for the next stage.  An alert is, then, sent to the employee to ask him to revise the assessment and to inform him of the meeting date.  The body of the alert should include a link to the assessment Form. The employee should  be able to navigate to the Form and read his coach assessment. He can enter his comments and specify his future goals for the next period.</p>
<p>While doing so, the employee should not have any write access to the part of the Form containing his coach assessment. However, he should have write access to the part of the Form including his comments and his goals. Any other involved party, even the coach, should have, only, read access to the Form. You may wonder why we don&#8217;t permit the coach to modify his assessment? This is because we don&#8217;t want him to change the Form while the employee is viewing it. Any other person except those involved in the process should not be capable of accessing the Form by any means. In particular, he or she must not have the permission to download the form to his/here computer and open it with an XML editor</p>
<p>The fourth and final stage starts after the employee completes his review. In this stage the coach and the employee meet  together  to discuss the assessment. The coach should be able to change his assessment in case he have new evidence resulting from the meeting. He, also,  should  be able to terminate the assessment process. No other party could be able to modify the Form. Non involved parties, should not, even, be able to access the Form.</p>
<p>Once the coach marks the assessment as completed, no other person except the HR manager and the company manager could  be able to access the Form. This is true even for the coach and the employee.</p>
<p><strong>Outlines of the Solution</strong></p>
<p>The solution is based upon a non code InfoPath Form published to a SharePoint InfoPath Form Library. The Form is accessed with InfoPath  client filler; i.e., the form is not web enabled. The design justification of this choice is the  need to use InfoPath User Rules combined with InfoPath  Views to control access to the different parts of the form. As User Rules are not supported in InfoPath web Forms, we  excluded it in the first implementation. The other rational is that all Quercus employees have InfoPath filler installed on their computer. At the end of this article I will devote a section on how to use InfoPath Web Forms instead of InfoPath filler.</p>
<p>The solution uses also a declarative workflow developed with SharePoint Designer 2010 to alert the involved parties and control the  process flow. It also sets SharePoint items permissions on the Form Library using a workflow Impersonation Step.</p>
<p>In Part 2 of this article I will explain the implementation in details.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/using-infopath-and-workflows-to-computerise-the-employees-assessment-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIIM State of SharePoint in 2011</title>
		<link>http://blogs.quercussolutions.com/index.php/aiim-state-of-sharepoint-in-2011/</link>
		<comments>http://blogs.quercussolutions.com/index.php/aiim-state-of-sharepoint-in-2011/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 19:24:44 +0000</pubDate>
		<dc:creator>mohamedr</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Adoption]]></category>
		<category><![CDATA[SharePoint Governance]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1127</guid>
		<description><![CDATA[The Association for Information and Image Management AIIM recently published  the results of their survey regarding the State of the ECM Industry in 2011. I will summarize here some of the findings concerning SharePoint. About the Survey  The survey covers 650 individual members of the AIIM community between January 28,2011, and February 14, 2011. Survey [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: x-small;"><span style="font-family: Verdana;">The Association for Information and Image Management AIIM recently published  the results of their survey regarding the State of the ECM Industry in 2011. I will summarize here some of the findings concerning SharePoint.</span></span></p>
<p><span style="font-size: x-small;"><span style="font-family: Verdana;">About the Survey</span></span></p>
<p><span style="font-family: Verdana; font-size: x-small;"> </span><span style="font-size: x-small;"><span style="font-family: Verdana;">The survey covers 650 individual members of the AIIM community between January 28,</span></span><span style="font-size: x-small;"><span style="font-family: Verdana;">2011, and February 14, 2011. Survey Participants represent organizations of all sizes. Larger organizations over 5,000 employees represent 35%, with mid-sized organizations of 500 to 5,000 employees at 41%. Small-to-mid sized organizations with 10 to 500 employees constitute 24%. Organizations of less than 10 employees (26) are not included in the report.</span></span></p>
<p><span style="font-family: Verdana; font-size: x-small;"> </span><span style="font-size: x-small;"><span style="font-family: Verdana;">The findings concerning SharePoint are classified in three headings;<span id="more-1127"></span> Adoption, Maturity and Governance, and Strategies.</span></span></p>
<p><span style="font-family: Verdana; font-size: x-small;"> </span><span style="font-size: x-small;"><span style="font-family: Verdana;">Adoption</span></span></p>
<ul>
<li><span style="font-size: x-small;"><span style="font-family: Verdana;">58% of respondents are already using SharePoint, rising to 70% of the largest organizations.</span></span></li>
<li><span style="font-size: x-small;"><span style="font-family: Verdana;">SharePoint 2010 version has attracted 13% of respondents as first time SharePoint users</span></span></li>
<li><span style="font-size: x-small;"><span style="font-family: Verdana;">Only 20%  have no interest in SharePoint.<br />
</span></span></li>
</ul>
<p><span style="font-size: x-small;"><span style="font-family: Verdana;">Maturity and Governance</span></span></p>
<ul>
<li>  <span style="font-size: x-small;"><span style="font-family: Verdana;">27% admit that valuable content is being stored in SharePoint across the organization but there is no real guidance on what/how to store .</span></span></li>
<li>  1<span style="font-size: x-small;"><span style="font-family: Verdana;">8% have stable and well-governed systems.</span></span></li>
<li>  <span style="font-size: x-small;"><span style="font-family: Verdana;">only 5% of users would consider their SharePoint implementation to be fully optimized and integrated with other applications and repositories.</span></span></li>
</ul>
<p><span style="font-size: x-small;"><span style="font-family: Verdana;">Strategies</span></span></p>
<ul>
<li><span style="font-size: x-small;"><span style="font-family: Verdana;">11% of respondents have SharePoint as first document or content management suite. </span></span></li>
<li><span style="font-size: x-small;"><span style="font-family: Verdana;">49% are planning to integrate SharePoint with their existing &#8211; or new &#8211; ECM or records management suites.</span></span></li>
<li><span style="font-size: x-small;"><span style="font-family: Verdana;">24%  have not yet formulated any plans to integrate SharePoint with their existing </span>ECM/DM/RM systems</span></li>
<li><span style="font-size: x-small;"><span style="font-size: x-small;"><span style="font-family: Verdana;">4% are phasing out existing systems in favour of SharePoint</span></span></span></li>
</ul>
<p><span style="font-family: Verdana; font-size: x-small;">For a full version of the report go to </span><a href="http://www.aiim.org/"><span style="color: #0000ff; font-family: Verdana; font-size: x-small;">http://www.aiim.org/</span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/aiim-state-of-sharepoint-in-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft LightSwitch – Championing the Citizen Developer</title>
		<link>http://blogs.quercussolutions.com/index.php/championing-the-citizen-developer/</link>
		<comments>http://blogs.quercussolutions.com/index.php/championing-the-citizen-developer/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 17:30:26 +0000</pubDate>
		<dc:creator>paul.patterson</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[LightSwitch]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1168</guid>
		<description><![CDATA[I recently watched a great webcast by Rich Dudley in which Rich made some very interesting points about what Gartner Research calls “Citizen Developers”. I was immediately intrigued by this Gartner information so I dug a little deeper into this citizen developer thing, and here is what I found… According to Gartner, “Citizen developers will be [...]]]></description>
			<content:encoded><![CDATA[<p>I recently watched a great <a title="Live Meeting Webcast" href="https://www106.livemeeting.com/cc/mseventsbmo/view?id=1032497732role=attendpw=57DE4E5F" target="_blank">webcast</a> by <a title="Rich Dudley - ComponentOne" href="http://c1.ms/richd" target="_blank">Rich Dudley</a> in which Rich made some very interesting points about what <a title="Gartner Research - Rise of the Citizen Developer" href="http://bit.ly/vQQtsA" target="_blank">Gartner Research calls “Citizen Developers”</a>. I was immediately intrigued by this Gartner information so I dug a little deeper into this citizen developer thing, and here is what I found…</p>
<p>According to Gartner, “Citizen developers will be building at least a quarter of new business applications by 2014…”.  That, according to the report titled “Citizen Developers Are Poised to Grow”.</p>
<p>Represented by about 6 million information workers, these “latent” application developers make up that same Microsoft Visual Studio LightSwitch target market.</p>
<p>Very interesting, indeed!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Article source: <a href="http://www.paulspatterson.com/technology/lightswitch/microsoft-lightswitch-championing-the-citizen-developer/">http://www.paulspatterson.com/technology/lightswitch/microsoft-lightswitch-championing-the-citizen-developer/</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/championing-the-citizen-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC vs Web forms? Another opinion&#8230;</title>
		<link>http://blogs.quercussolutions.com/index.php/asp-net-mvc-vs-web-forms-another-opinion/</link>
		<comments>http://blogs.quercussolutions.com/index.php/asp-net-mvc-vs-web-forms-another-opinion/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 16:46:41 +0000</pubDate>
		<dc:creator>robbie</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[aspnetmvc]]></category>
		<category><![CDATA[webforms]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1155</guid>
		<description><![CDATA[We all use development frameworks during the course of our projects. Frameworks help us to be efficient developers by re-using existing components and providing us with avoinding the overhead associated with developing applications. ASP.NET MVC is still a fairly new framework &#8211; the majority of ASP.NET projects use Web Forms and they have been successfully [...]]]></description>
			<content:encoded><![CDATA[<p>We all use development frameworks during the course of our projects. Frameworks help us to be efficient developers by re-using existing components and providing us with avoinding the overhead associated with developing applications.</p>
<p>ASP.NET MVC is still a fairly new framework &#8211; the majority of ASP.NET projects use Web Forms and they have been successfully serving client’s needs for years, but the rise of MVC fills a much needed hole for ASP.NET.</p>
<p>ASP.NET has many strengths and weaknesses:<br />
<span id="more-1155"></span><br />
Strengths:</p>
<ul>
<li>Mature technology</li>
<li>Rapid Application Development</li>
<li>Designer support in Visual Studio</li>
<li>Familiar feel to windows forms development</li>
</ul>
<p>Weaknesses:</p>
<ul>
<li>Tightly coupled logic between presentation and code-behind files</li>
<li>Hard to unit test</li>
</ul>
<p>ASP.NET Web Forms has some major problems in scalability and the ViewState/PostBack model. The ASP.NET MVC framework was initially developed as a alternative form for building web applications. The core part of the framework uses the Model-View-Controller pattern and implements many best practices and object oriented methods; most importantly it allows for loose coupling and efficient use of unit testing.</p>
<p>Strengths:</p>
<ul>
<li>RESTful architecture (I’ll be discussing this one next!)</li>
<li>Doesn’t compromise performance and flexibility</li>
<li>No ViewState and PostBack model</li>
<li>Clear separation of code and presentation</li>
<li>Ability to map URLs logically and dynamically</li>
</ul>
<p>Weaknesses:</p>
<ul>
<li>Not event driven</li>
</ul>
<p>That all being said, which one should you use? My opinion is that both Web Forms and ASP.NET MVC have their places. But ASP.NET MVC has the leg up because it makes me a better developer. Lets face it, a framework should be written with concept of using best practices and also encourage developers to use best practices. But Web Forms doesn’t inherently support any best practices; separation of concerns, loose coupling and testability have to implemented by the developers. ASP.NET MVC implements all these best practices in the framework itself. Separation of concerns makes it easier to manage complexity and make changes on certain isolated parts of the application. Loose coupling is incorporated into the MVC framework itself, enabling developers to swap even the core component of the frameworks with custom replacements to change the behavior of the framework without effecting other components. This makes amazing flexibility and makes working with the best-practice of loose coupling easy. Testability is also relatively easy with the MVC, this best-practice is emphasized by Microsoft since unit-testing is been getting a lot of attention lately.</p>
<p>Responsibility for the overall quality of the application lies with the developers. They have to use the best-practices and make sound decisions when developing, whatever framework they use. Working with the MVC won’t guarantee success, it just makes it easier to be successful.</p>
<p>&nbsp;</p>
<p>Article source: <a href="http://www.robbiemadan.com/2011/12/18/asp-net-mvc-vs-web-forms-another-opinion">http://www.robbiemadan.com/2011/12/18/asp-net-mvc-vs-web-forms-another-opinion</a></p>]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/asp-net-mvc-vs-web-forms-another-opinion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Information Architecture for SharePoint 2010- Part 1</title>
		<link>http://blogs.quercussolutions.com/index.php/information-architecture-for-sharepoint-2010-part-1/</link>
		<comments>http://blogs.quercussolutions.com/index.php/information-architecture-for-sharepoint-2010-part-1/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 17:48:23 +0000</pubDate>
		<dc:creator>mohamedr</dc:creator>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Information Architecture]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[SharePoint Governance]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1129</guid>
		<description><![CDATA[This series of articles are addressed to IT persons who are not necessarily exposed to SharePoint. Those interested in Information Architecture (IA) and Enterprise Content Management would possibly find the subject more beneficiary than others.  SharePoint specialists may be interested in the content from a high level and global perspective. The objective of this series [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: x-small"><span style="font-family: Verdana">This series of articles are addressed to IT persons who are not necessarily exposed to SharePoint. Those interested in Information Architecture (IA) and Enterprise Content Management would possibly find the subject more beneficiary than others.  SharePoint specialists may be interested in the content from a high level and global perspective.</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">The objective of this series of articles is to examine SharePoint capabilities and limitations  in the context of Enterprise Content Management, including Web Content Management. </span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">In Part 1 I am going to discuss the notion of IA and its implications for Content Management Systems. Also, I will discuss the concept of SharePoint Governance and its relation to IA.</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">For the empirical purpose of this article I am going to adopt a very simple and clear definition of IA as:</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">&#8220;The organization of information into coherent structures that optimize its usefulness and enable its efficient navigation and retrieval (search). This usually requires the categorization of information using hierarchical or network artefacts.&#8221;</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">The above definition implies that developing an IA includes the following essential undertakings:<span id="more-1129"></span></span></span></p>
<ul>
<li><span style="font-size: x-small"><span style="font-family: Verdana">Delineating the information to be managed, its boundaries and stockholders,</span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">Identifying the structures that should be used to store information,</span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">Conceiving an appropriate classification spectrum.  </span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">Describing the user interface that will be used to expose the information to users.</span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">Defining the functional and performance requirements of information search (retrieval). </span></span></li>
</ul>
<p><span style="font-size: x-small"><span style="font-family: Verdana">The subsequent articles should clarify theses activities in the context of SharePoint implementation.</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">It is widely agreed that having a solid IA is a predominant factor in building successful Enterprise Content Management system, particularly if the content is highly unstructured and diversified. </span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">A lot of organizations are using- or at least willing to use- SharePoint to implement their Web Content Management and/or Document Management systems. Usually they have serious questions about the capabilities of SharePoint to support such implementation and about its cost effectiveness. We are going to argue that the cost of a SharePoint implementation can be reduced substantially if the organization has developed an appropriate IA, and that the lack of an IA is a big factor  in raising SharePoint Implementation Costs.</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">Another important question is related to the synchronization between SharePoint implementation and IA development; should we proceed sequentially starting with the IA or could we proceed in parallel?</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">Throughout this series of articles I will argue for the following:</span></span></p>
<ul>
<li><span style="font-size: x-small"><span style="font-family: Verdana">The development of an IA cannot be accomplished by SharePoint Architects or developers whatever the size of the SharePoint implementation is going to be (departmental or enterprise wide).</span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">The development of the IA must be done by experienced specialized professionals, in collaboration with SharePoint specialists and with complete user involvement.</span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">All professionals involved in a SharePoint project should have a minimal understanding of how SharePoint store, classify, search and expose information.</span></span></li>
<li><span style="font-size: x-small"><span style="font-family: Verdana">Potential users should be exposed to SharePoint main concepts (content types, managed meta data, sites, lists, libraries) before being actively involved.</span></span></li>
</ul>
<p><span style="font-family: Verdana;font-size: x-small"> </span><span style="font-size: x-small"><span style="font-family: Verdana">SharePoint Governance</span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">SharePoint experiences showed that the implementation and management of SharePoint is far from being a trivial undertaking. This is mostly attributed to the richness of SharePoint, its immense capabilities and its misunderstood limitations. </span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">Some organizations are using a cowboy approach to implementing SharePoint without any proper planning or even understanding of its basic functionalities and boundaries. Not surprisingly they end up with poorly functional systems with humble user adoption. The other side of the story tells us that successful SharePoint implementations are, usually, based on careful planning and solid IA. </span></span></p>
<p><span style="font-size: x-small"><span style="font-family: Verdana">The term &#8220;SharePoint Governance&#8221;  has emerged recently to tackle the challenges posed by SharePoint  implementation and management. SharePoint Governance means simply that SharePoint should be implemented and managed according to a proper plan that specifies cleary the needs of the organization, its infrastructure, and which is consistent with its culture. I wish here to emphasize that SharePoint is mainly a Content Management technology that needs a proper IA planning and governance.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/information-architecture-for-sharepoint-2010-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A SharePoint Blog Rollup Webpart</title>
		<link>http://blogs.quercussolutions.com/index.php/sharepoint-blog-rollup-webpart/</link>
		<comments>http://blogs.quercussolutions.com/index.php/sharepoint-blog-rollup-webpart/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 02:34:00 +0000</pubDate>
		<dc:creator>richardb</dc:creator>
				<category><![CDATA[Enterprise Search]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Software Architecture]]></category>

		<guid isPermaLink="false">http://blogs.quercussolutions.com/?p=1019</guid>
		<description><![CDATA[We use SharePoint 2010 and the MySites functionality for blogging, so to become aware of an Intranet blog post you need to check your MySite to see any updates. It would be great if we had something on our Intranet homepage that shows us latest blog posts instead. After some digging around we were left [...]]]></description>
			<content:encoded><![CDATA[<p>We use SharePoint 2010 and the MySites functionality for blogging, so to become aware of an Intranet blog post you need to check your MySite to see any updates. It would be great if we had something on our Intranet homepage that shows us latest blog posts instead.</p>
<p>After some digging around we were left with the alternative of purchasing a 3<sup>rd</sup> party web part or launching VS 2010 and creating our own. Neither option was very appealing, so we came up with an alternative out of the box solution, with a little configuration thrown in.</p>
<p><span id="more-1019"></span>Here is how it looks:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW1.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW1_thumb.png" alt="011411_0337_BlogRollupW1" width="372" height="232" border="0" /></a></p>
<p>The solution is actually pretty simple. The main challenge is how to get all of the content from multiple SiteCollections to appear in one view. Well… SharePoint Search already does that quite well doesn&#8217;t it?</p>
<p>So, first we create a new search scope targeted directly at Blog posts.</p>
<p>If we log into Central Administrator and click through to the Search Administration screen:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW2.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW2_thumb.png" alt="011411_0337_BlogRollupW2" width="626" height="380" border="0" /></a></p>
<p>The Content Source we need is already there, in fact it&#8217;s the default content source that crawls and indexes all content on our local site:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW3.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW3_thumb.png" alt="011411_0337_BlogRollupW3" width="635" height="114" border="0" /></a></p>
<p>Next click into Scopes and create a new scope. Let&#8217;s call it <strong><em>blogposts</em></strong>. Everything else can be left as is.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW4.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW4_thumb.png" alt="011411_0337_BlogRollupW4" width="631" height="218" border="0" /></a></p>
<p>Now we have a scope created we need to define the rules that will target our Intranet blog posts.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW5.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW5_thumb.png" alt="011411_0337_BlogRollupW5" width="644" height="25" border="0" /></a></p>
<p>Click Add Rule and make it a web address rule. Our MySites are all under something like  <a href="http://intranet/personal">http://intranet/personal</a> so that&#8217;s the web address we used. The behaviour of the rule is to Include any item under the web address. We will restrict it with more rules next.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW6.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW6_thumb.png" alt="011411_0337_BlogRollupW6" width="636" height="254" border="0" /></a></p>
<p>The next rule will restrict the content to a particular Content Type. SharePoint 2010 blogs use the Post content type. We will also set the behaviour of the rule to Require which eliminates all but Posts. Highlight the scope and choose Edit Properties and Rules:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW7.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW7_thumb.png" alt="011411_0337_BlogRollupW7" width="240" height="95" border="0" /></a></p>
<p>From here click New Rule:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW8.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW8_thumb.png" alt="011411_0337_BlogRollupW8" width="634" height="256" border="0" /></a></p>
<p>Enter the Rule details.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW9.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW9_thumb.png" alt="011411_0337_BlogRollupW9" width="645" height="234" border="0" /></a></p>
<p>Finally we need to add a rule to eliminate the default blog post that SharePoint creates for everyone when you first use your blog site as in the example below:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW10.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW10_thumb.png" alt="011411_0337_BlogRollupW10" width="648" height="280" border="0" /></a></p>
<p>To do that we just add another rule like so:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW111.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW11_thumb.png" alt="011411_0337_BlogRollupW11" width="654" height="242" border="0" /></a></p>
<p>This time we set the Behaviour to Exclude. This will remove any blogs that have &#8220;Welcome to your Blog!&#8221; in the title.</p>
<p>When creating these rules, you may find the <strong>ContentType</strong> and <strong>Title</strong> property do not appear in the Property drop down. If that is the case then go to the Metadata Properties link on the left hand side menu:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW121.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW12_thumb.png" alt="011411_0337_BlogRollupW12" width="185" height="244" border="0" /></a></p>
<p>And find the 2 properties, ContentType and Title. When you edit them make sure the option to <em>Allow this property to be used in Scope</em> is turned on.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW13.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW13_thumb.png" alt="011411_0337_BlogRollupW13" width="679" height="319" border="0" /></a></p>
<p>With that our scope is ready. Next kick off a full crawl of the content source and wait for the scopes to be updated on the front end site.</p>
<p>To confirm the Scope is working ok, we can take a look at the Scopes page again, and this time we should see how many items have been picked up. If all is well this should match the number of real blog posts.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW14.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW14_thumb.png" alt="011411_0337_BlogRollupW14" width="636" height="294" border="0" /></a></p>
<p>So, our scope is ready. Now what do we do with it?</p>
<p>It&#8217;s pretty simple actually… just go to the page we want to place the blog rollup and edit the page:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW151.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW15_thumb1.png" alt="011411_0337_BlogRollupW15" width="157" height="161" border="0" /></a></p>
<p>From the Ribbon, choose Insert &#8211; Web Part</p>
<p>Scroll the categories selector to Search and choose the Search Core Results web part. Click Add.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW161.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW16_thumb1.png" alt="011411_0337_BlogRollupW16" width="624" height="190" border="0" /></a></p>
<p>You will now have an empty Search web part on the page.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW171.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW17_thumb1.png" alt="011411_0337_BlogRollupW17" width="628" height="35" border="0" /></a></p>
<p>Choose Edit Web Part from the web part dropdown arrow. We get the following screen.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW181.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW18_thumb1.png" alt="011411_0337_BlogRollupW18" width="320" height="303" border="0" /></a></p>
<p>Open up Location Properties and change the location to <strong>Local Search Results</strong>. Set the scope to the Scope we created earlier – <strong><em>blogposts</em></strong>.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW191.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW19_thumb1.png" alt="011411_0337_BlogRollupW19" width="241" height="396" border="0" /></a></p>
<p>Next open up the Display Properties panel.</p>
<p>Change the default sorting to Modified and set the Results Per Page to 10 say. Also specify what character limits you want in the summary and title URL.</p>
<p>Now the important piece, open up the Results Query Options and set the Fixed Keyword Query to <strong>ContentType:Post</strong>. This tells the search engine to automatically bring back results where the Metadata property ContentType is Post (i.e. blogs).</p>
<p>Eh voila, all our recent blog posts appear:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW20.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW20_thumb.png" alt="011411_0337_BlogRollupW20" width="585" height="181" border="0" /></a></p>
<p>But, it looks a bit crap doesn&#8217;t it? We don&#8217;t want it looking like a search result; we want it to look a little bit nicer, like this:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW11.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW1_thumb1.png" alt="011411_0337_BlogRollupW1" width="375" height="234" border="0" /></a></p>
<p>To do that requires one more change. Edit the Web Part again, and open the Display Properties panel. Uncheck the Use Location Visualization property. This will enable the XSL Editor Button.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW221.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW22_thumb1.png" alt="011411_0337_BlogRollupW22" width="710" height="413" border="0" /></a></p>
<p>Now personally I don&#8217;t like to edit the XSL in the web Text Editor. I copy it all into NotePad++ and go from there.</p>
<p>Always save a backup of the XSL, it is very, very easy to go wrong with it and you could end up having to start the web part from scratch.</p>
<p>The template that shows the search results is called Results.</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW23-11.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW23-1_thumb1.png" alt="011411_0337_BlogRollupW23 (1)" width="627" height="349" border="0" /></a></p>
<p>The first thing is to remove the Icons that search shows:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW241.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW24_thumb1.png" alt="011411_0337_BlogRollupW24" width="602" height="111" border="0" /></a></p>
<p>I just removed the img tags:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW251.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW25_thumb1.png" alt="011411_0337_BlogRollupW25" width="370" height="131" border="0" /></a></p>
<p>Next we want to remove the ugly green URL at the bottom of every result. That is located further down the XSL:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW261.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW26_thumb1.png" alt="011411_0337_BlogRollupW26" width="703" height="228" border="0" /></a></p>
<p>Removing the &lt;XSL:Choose&gt; to &lt;/XSL:Choose&gt; gets rid of the URL.</p>
<p>Save the XSL changes back to the web part and apply the changes. Save the page and refresh. This time we should have a nicer looking results web part like so:</p>
<p><a href="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW12.png"><img style="padding-left: 0px;padding-right: 0px;padding-top: 0px;border-width: 0px" src="http://blogs.quercussolutions.com/wp-content/uploads/2011/12/011411_0337_BlogRollupW1_thumb2.png" alt="011411_0337_BlogRollupW1" width="432" height="270" border="0" /></a></p>
<p>And that&#8217;s it. An out of the box solution to provide rolling, cross site collection blog entries on our homepage.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.quercussolutions.com/index.php/sharepoint-blog-rollup-webpart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

