<?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>Branded3 &#187; .Net</title>
	<atom:link href="http://www.branded3.com/blogs/tag/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.branded3.com</link>
	<description>Digital and SEO Agency</description>
	<lastBuildDate>Wed, 19 Jun 2013 10:59:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>A .NET CMS comparison and review</title>
		<link>http://www.branded3.com/blogs/a-net-cms-comparison-and-review/</link>
		<comments>http://www.branded3.com/blogs/a-net-cms-comparison-and-review/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:58:44 +0000</pubDate>
		<dc:creator>Steven Shaw</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[CMS Matrix]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[EpiServer]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Sitecore]]></category>
		<category><![CDATA[Sitefinity]]></category>
		<category><![CDATA[Umbraco]]></category>
		<category><![CDATA[WYSIWYG]]></category>

		<guid isPermaLink="false">http://www.branded3.com/?p=4346</guid>
		<description><![CDATA[Our .NET development team have worked with quite a few CMS platforms over the past years and it seems like a new one is released each month, but recently there seems to be a few that are stealing the limelight and offering that little bit more than the others. In this article I&#8217;m going to]]></description>
			<content:encoded><![CDATA[<p>Our <a href="/services/development/">.NET development</a> team have worked with quite a few CMS platforms over the past years and it seems like a new one is released each month, but recently there seems to be a few that are stealing the limelight and offering that little bit more than the others.</p>
<p>In this article I&#8217;m going to take a look at some of the top CMS platforms we&#8217;re working with, and the pros and cons they all bring.</p>
<p><span id="more-4346"></span>The CMS platforms I&#8217;ll be comparing are:</p>
<ul>
<li><a href="http://www.episerver.com/">EPiServer CMS</a></li>
<li><a href="http://www.sitecore.net/">Sitecore</a></li>
<li><a href="http://www.sitefinity.com/">Sitefinity</a></li>
<li><a href="http://umbraco.com/">Umbraco</a></li>
</ul>
<p>I&#8217;ll start off by taking a look at each of the platforms and producing a summary for each one focusing on its benefits and features.</p>
<h3>EPiServer CMS</h3>
<p>An excellent enterprise-level CMS that focuses on robustness and simplicity to manage page level content, supported by their tag line: &#8220;Power through Simplicity&#8221;. It contains access control levels, user management, and business workflows to ensure that content is added and maintained in a controlled manner through its ability to closely integrate with Active Directory.</p>
<p>Its simplistic WYSIWYG interfaces allow administration from users with varying levels of technical ability. EPiServer contains some nice functionality to create visitor groups, meaning that you can segment and group content to specifically target certain visitors; out-of-the-box this includes geo-IP, visited pages and visitor groups.</p>
<p>EPiServer has a suite of add-ons which allow it to create a more integrated platform:</p>
<ul>
<li>Web Content Management (CMS)</li>
<li>E-Commerce</li>
<li>Social media and community (Relate+)</li>
<li>Campaign and e-mail marketing</li>
<li>Search-engine optimization (SEO)</li>
</ul>
<p>Linking with Relate+, EPiServer can be configured to build a branded community; functionality includes forums, user groups and the ability for user-generated content to be implemented.</p>
<p>EPiServer can be extended to integrate with Microsoft Dynamics CRM or Salesforce allowing it to have seamless integration with lead management, client account history and contacts.</p>
<h3>Sitecore</h3>
<p>Sitecore is an enterprise-level CMS platform that has been developed over the past 10 years to become one of the industry leading CMS platforms. The CMS uses an easy to use WYSIWYG editor to create and manage content, this also features a Windows-like interface which makes working with the CMS that little bit easier.</p>
<p>Sitecore offers its fully integrated “Customer Engagement Platform” which allows seamless integration between its major components.</p>
<ul>
<li>Web Content Management (CMS)</li>
<li>Customer Engagement Platform</li>
<li>Digital Marketing System</li>
<li>E-Commerce services</li>
<li>Intranet Portal (Additional license required)</li>
<li>Foundry Multisite Solution (additional license required)</li>
</ul>
<p>The out-of-the-box functionality allows for full tracking and reporting on user behaviour, as well as close integration with the sales and marketing platforms, meaning that engagement automation of communications with customers across all channels can help maximise efficiency of moving prospects through the sales funnel.</p>
<p>The digital marketing platform helps to create an understanding of campaigns and site performance and helps you gain the insight needed to improve conversion rates and generate more qualified leads through web, email, mobile and social channels.</p>
<h3>Sitefinity</h3>
<p>The Sitefinity CMS has been developed by Telerik, a team responsible for some great Microsoft .net products and solutions such as RadControls. The core ethos of Telerik has always been to make software development easier and more enjoyable. Sitefinity uses .net standards such as MasterPages and Controls for template management all of which makes setting up the front end of the site is straight forward.</p>
<p>From an SEO perspective, Sitefinity has some simple yet effective ways of optimising a site from managing the URL structure, extension-less pages and meta information management. The URL routing and infrastructure is based on the Microsoft MVC engine.</p>
<p>Some of the enterprise features of Sitefinity comparable to the other platforms:</p>
<ul>
<li>Form builders</li>
<li>Blogs</li>
<li>Ecommerce</li>
<li>Multi lingual</li>
<li>Workflow management</li>
<li>CMS Role management</li>
</ul>
<h3>Umbraco</h3>
<p>Umbraco is a leading open-source CMS platform that has been developed using Microsoft .NET. The open-source licensing model means that the platform is supported by an active developer community who are constantly updating and adding to the main source code. Umbraco provides a full-featured web content management system that is easy to use, simple to customise, and robust enough to run the largest sites such as wired.co.uk and asp.net.</p>
<p>Umbraco focuses its offering on the ability to customise and extend its core platform. This functionality is realised through its easy to use APIs, ability to use commercial .NET controls, and support for DLR compatible languages; all of this means that the Umbraco solutions created are highly scalable but may require more investment to get the initial platform up and running.</p>
<p>In order to reduce the overhead of development there are already a large number of components such as galleries, calendars and back-office integration that can be added and customised to an Umbraco installation.</p>
<h3>Feature comparison</h3>
<p>To start off I did a simple check on our old favourite <a href="http://cmsmatrix.org">CMS compare tool CMS Matrix</a> to see how the CMS platforms stack up against each other in terms of out-of-the-box or features from a standard install. CMS Matrix is a great tool that lists all the core features that are available across CMS platforms, and segments them into handy groupings: System Requirements, Security, Support, Ease of Use, Performance, Management, Interoperability, Flexibility, Built-in Applications and Commerce (Commerce is excluded on this post as all the platforms require an add on). The features are then evaluated and given a rating of Green (Fully available), Amber (Partial Feature or Add-On Required) and Red (Feature not available at all), below is a summary table of the ratings given for each of the platforms across the 126 possible features:</p>
<table style="margin: 0 0 20px 20px;" border="0" cellspacing="2" cellpadding="2" width="500">
<tbody>
<tr style="border-bottom: solid 1px #cccccc;">
<th style="font-weight: bold; font-size: 1.1em;" scope="col">Feature Level</th>
<th style="font-weight: bold; font-size: 1.1em;" scope="col">EpiServer CMS</th>
<th style="font-weight: bold; font-size: 1.1em;" scope="col">Sitecore 6</th>
<th style="font-weight: bold; font-size: 1.1em;" scope="col">Sitefinity</th>
<th style="font-weight: bold; font-size: 1.1em;" scope="col">Umbraco</th>
</tr>
<tr>
<td style="color: #00cc00;">Green</td>
<td>96</td>
<td>94</td>
<td>94</td>
<td>77</td>
</tr>
<tr>
<td style="color: #ff0000;">Red</td>
<td>18</td>
<td>7</td>
<td>25</td>
<td>28</td>
</tr>
<tr>
<td style="color: #ff9900;">Amber</td>
<td>12</td>
<td>25</td>
<td>7</td>
<td>21</td>
</tr>
<tr>
<td>Overall score</td>
<td>108</td>
<td>119</td>
<td>101</td>
<td>98</td>
</tr>
</tbody>
</table>
<p>As you can see from the above table, the leader in terms of out-of-the-box core features is EpiServer CMS by just 2 features, closely followed by Sitecore and Sitefinity. However, if we look at the overall ability to offer the full range of CMS features is Sitecore which makes up its difference in base features with freely available add-ons.</p>
<p>So, looking at the stats it seems Sitecore gives the strongest platform for a full-featured CMS and for options in the future. It&#8217;s worth pointing out though, this is all only relevant if you need all of the features.</p>
<p>The Branded3 process is always to identify the objectives and requirements of a project and select the right tools for the job (including if a CMS is required!), so if you don&#8217;t need all of the features then it&#8217;s not worth investing in such an intense system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.branded3.com/blogs/a-net-cms-comparison-and-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Applying the Pareto principle to software testing</title>
		<link>http://www.branded3.com/blogs/applying-the-pareto-principle-to-software-testing/</link>
		<comments>http://www.branded3.com/blogs/applying-the-pareto-principle-to-software-testing/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 09:57:49 +0000</pubDate>
		<dc:creator>Sanjay Zalke</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Pareto]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[TFS]]></category>

		<guid isPermaLink="false">http://www.branded3.com/?p=4163</guid>
		<description><![CDATA[It&#8217;s interesting to look at how much we copy learn from nature, duplicate implement others work, and sometimes overlook and ignore fantastic findings. Whilst producing software, we come across the classic dilemma of how much and how long to design, create and test the functionalities. The solution is found in a completely different world -  the]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s interesting to look at how much we <span style="text-decoration: line-through;">copy</span> learn from nature, <span style="text-decoration: line-through;">duplicate</span> implement others work, and sometimes overlook and ignore fantastic findings. Whilst producing software, we come across the classic dilemma of how much and how long to design, create and test the functionalities.</p>
<p>The solution is found in a completely <a title="Pareto Principle" href="http://en.wikipedia.org/wiki/Pareto_principle" target="_blank">different world</a> -  the world of economics &#8211; in the principle of 80-20 by Italian economist <a title="Vilfredo Pareto" href="http://en.wikipedia.org/wiki/Vilfredo_Pareto" target="_blank">Vilfrodo Pareto</a>.</p>
<p><span id="more-4163"></span>To quote Wikipedia:</p>
<blockquote><p><em>&#8220;The Pareto principle states that, for many events, roughly 80% of the effects come from 20% of the causes.&#8221;</em></p></blockquote>
<p>This principle in the business world shows up in several different aspects:</p>
<p style="background: #eee; padding: 20px;"><span style="margin-left: 80px; font-size: 20px;">80% of your profits come from 20% of your customers</span><br />
<span style="margin-left: 24px; font-size: 24px;">80% of your complaints come from 20% of your customers</span><span style="margin-left: 8px; font-size: 11px;">80% of your profits come from 20% of the time you spend</span><br />
<span style="margin-left: 56px; font-size: 16px;">80% of your sales come from 20% of your products</span><span style="margin-left: 14px; font-size: 18px;">80% of your sales are made by 20% of your sales staff</span></p>
<p>Therefore, many businesses have an easy access to the answer to making dramatic improvements in profitability, by focusing on the most effective areas and eliminating, ignoring, automating, delegating or re-training the rest, as appropriate.</p>
<h3>Industry Applications</h3>
<p>Whether knowingly or not, industries implement some variation of Pareto Principles for optimisation efforts. Some of the variation used in industries are <a title="Gini index" href="http://en.wikipedia.org/wiki/Gini_index" target="_blank">Gini coefficient</a>, <a title="Hoover index" href="http://en.wikipedia.org/wiki/Hoover_index" target="_blank">Hoover index</a>, <a title="Theil index" href="http://en.wikipedia.org/wiki/Theil_index" target="_blank">Theil index</a>, etc.</p>
<p>Microsoft noted that by fixing the top 20% of the most reported bugs, 80% of the errors and crashes would be eliminated. Any developers dream would to write a bug-less code, but in reality, this can&#8217;t happen.</p>
<p>To find out how much effort should be added to achieve desirable quality, we can refer to <a title="Pareto efficiency" href="http://en.wikipedia.org/wiki/Pareto_efficiency" target="_blank">Pareto efficiency</a>.</p>
<blockquote><p><em><a href="http://upload.wikimedia.org/wikipedia/commons/d/df/Production_Possibilities_Frontier_diagram.jpg"><img class="      alignright" title="Production Possibilities Frontier diagram" src="http://upload.wikimedia.org/wikipedia/commons/d/df/Production_Possibilities_Frontier_diagram.jpg" alt="Production Possibilities Frontier diagram" width="178" height="133" /></a></em></p>
<p><em> </em><em>Looking at the <a title="Production-possibility frontier" href="http://en.wikipedia.org/wiki/Production-possibility_frontier">Production-possibility frontier</a>, shows how productive efficiency is a precondition for Pareto efficiency. Point A is not efficient in production because you can produce more of either one or both goods (Butter and Guns) without producing less of the other. Thus, moving from A to B, C or D enables you to make one person better off without making anyone else worse off (rise in Pareto efficiency).</em></p></blockquote>
<p>This concept can be applied in various different aspects of software engineering, mainly:</p>
<ul>
<li>How much tolerance is allowed without affecting the quality or functionality of products</li>
<li>How much efforts should be added to achieve desired quality</li>
<li>Cost required to achieve desired results</li>
<li>Value of risk involved in specific approach taken</li>
</ul>
<h3>Software testing</h3>
<p>Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective and independent view of the software, to allow the business to appreciate and understand the risks of software implementation.</p>
<p>Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software bugs (errors or other defects).</p>
<p>There are various tools, techniques and methods available, not all are applicable, capable and feasible of achieving 100% of the desired quality, code testing, etc. So most of the time everyone ends up using a mix and match of various different tools and techniques. In the last decade or so, a tool set around web testing has been built and is constantly growing.</p>
<p>Nowadays, it is very hard to find a developer who has not written any unit test. To keep the article simple, I will write the approach but all the technology variants are available for all tools discussed.</p>
<ul>
<li>Unit testing : <a title="junit" href="http://www.junit.org/" target="_blank">junit</a>, <a title="nunit" href="http://www.nunit.org/" target="_blank">nunit</a> or a <a title="Microsoft test" href="http://msdn.microsoft.com/en-us/library/bb385901.aspx" target="_blank">Microsoft test</a> in visual studio. Code snippet to test a piece of code or discreet functionality.</li>
<li><a title="Selenium" href="http://seleniumhq.org/" target="_blank">Selenium</a> : Firefox browser based plugin and server to test the user actions and data flow. This records the user click actions and key entries to replicate the test. Limited to test the UI behaviour in web applications.</li>
<li><a title="watin" href="http://watin.org/" target="_blank">WaitN</a> : Automated html element testing tool for web applications. Handles popup, ajax and Java script calls. Works with various different browsers. Again limited to web applications.</li>
<li><a title="rhino mocks" href="http://hibernatingrhinos.com/open-source/rhino-mocks" target="_blank">Rhino mocks</a> : This is a mocking object framework for .net platform and used to test little under the skin functionality. This testing technique used to replicate the interactions of objects involved in use case functionality.</li>
<li>Writing your own : You can write your own similar tests using <a title="HTTP Simulator" href="http://haacked.com/archive/2007/06/19/unit-tests-web-code-without-a-web-server-using-httpsimulator.aspx" target="_blank">HttpSimulator</a>.</li>
</ul>
<h3>Automated testing</h3>
<p>There are other commercial testing suits available and major software houses are using these suits. To achieve the functionality of a commercial testing suit, you can implement various techniques readily available separately.</p>
<p>I am going to use Team Foundation Server (TFS) and a .NET project to explain the approach.</p>
<ul>
<li>Enable TFS for continuous integration using CCC + nant or TFS build.</li>
<li>Add TFS rule to run code analysis before check-in, thus improving quality of code.</li>
<li>Create MS unit test or nunit test for all the code functionality unit tests.</li>
<li>Record these unit tests as test work items in TFS</li>
<li>Add check-in policy to run these unit tests, thus preventing any bug passing in build code.</li>
<li>Set automated builds and deploy to a staging / testing server</li>
<li>Run unit tests once the automated build is successful</li>
<li>Update the test work items status after every build and record their status</li>
<li>Send summary notifications for failed build and deployment status.</li>
</ul>
<p>Each of these steps can be written more in depth, but I&#8217;ll include this in another post, and save 80% of my efforts for 20% of quality articles!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.branded3.com/blogs/applying-the-pareto-principle-to-software-testing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grabbing Page Titles with F#</title>
		<link>http://www.branded3.com/blogs/grabbing-page-titles-with-f/</link>
		<comments>http://www.branded3.com/blogs/grabbing-page-titles-with-f/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 16:28:07 +0000</pubDate>
		<dc:creator>Julian Kay</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[How to...]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Branded3]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[Twitition]]></category>

		<guid isPermaLink="false">http://www.branded3.com/?p=2067</guid>
		<description><![CDATA[Through experience, my favourite language for the .NET Framework is probably F#. True, it doesn&#8217;t fit into every situation; I don&#8217;t fancy writing a website with it for example. But for scripts and utilities, there&#8217;s nothing better. You can run things interactively using F# Interactive or you can compile something up and use it as]]></description>
			<content:encoded><![CDATA[<p>Through experience, my favourite language for the .NET Framework is probably <a href="http://msdn.microsoft.com/fsharp/">F#</a>. True, it doesn&#8217;t fit into every situation; I don&#8217;t fancy writing a website with it for example. But for scripts and utilities, there&#8217;s nothing better.</p>
<p>You can run things interactively using F# Interactive or you can compile something up and use it as a normal executable. It’s super-fast to prototype with, which is great when you&#8217;re just throwing ideas around the office like we often do at Branded3.</p>
<p><span id="more-2067"></span></p>
<p>I thought I&#8217;d start simple and share a little script which I&#8217;ve used to grab the titles from websites and output the results to the screen:</p>
<div class="wp_syntax">
<pre class="code"><span style="color: blue">open </span>System
<span style="color: blue">open </span>System.IO
<span style="color: blue">open </span>System.Net
<span style="color: blue">open </span>System.Web
<span style="color: blue">open </span>System.Text.RegularExpressions

<span style="color: blue">let </span>http (url:string) =
   <span style="color: blue">try
        let </span>req    = WebRequest.Create(url)
        <span style="color: blue">use </span>resp   = req.GetResponse()
        <span style="color: blue">use </span>stream = resp.GetResponseStream()
        <span style="color: blue">use </span>reader = <span style="color: blue">new </span>StreamReader(stream)
        <span style="color: blue">let </span>html   = reader.ReadToEnd()
        html
    <span style="color: blue">with
        </span>| :? UriFormatException <span style="color: blue">-&gt; </span>String.Empty
        | :? WebException       <span style="color: blue">-&gt; </span>String.Empty

<span style="color: blue">let </span>title (html:string) =
    <span style="color: blue">let </span>r = <span style="color: blue">new </span>Regex(<span style="color: maroon">"(&lt;title[&gt;])(.*){1}(&lt;\/title&gt;)"</span>)
    <span style="color: blue">let </span>m = r.Matches(html)
                |&gt; Seq.cast
                |&gt; Seq.map (<span style="color: blue">fun</span>(m:Match) <span style="color: blue">-&gt; </span>m.Groups.[2].Value)
    <span style="color: blue">match </span>m <span style="color: blue">with
        </span>| _ <span style="color: blue">when </span>Seq.isEmpty(m) <span style="color: blue">-&gt; </span>String.Empty
        | _                     <span style="color: blue">-&gt; </span>Seq.head(m)

<span style="color: blue">let </span>websites = [ <span style="color: maroon">"http://www.branded3.com/"</span>;
                 <span style="color: maroon">"http://www.twitition.com/"</span>; ]

websites |&gt; List.iter (<span style="color: blue">fun</span>(u) <span style="color: blue">-&gt; </span>printfn <span style="color: maroon">"%s" </span>(title (http u)))
</pre>
</div>
<p>Now, you can’t tell me that doesn’t look pretty? You can see that we&#8217;ve got a function called <code>http</code>; a function called <code>title</code>; and a list of strings called <code>websites</code>. Both functions and values are set using the <code">let</code> keyword, and subsequent lines are indented to show where they belong. No extra curly braces here!</p>
<p>The last line is my favourite part. The websites value is piped through to <code>List.iter</code> which will iterate through each of the URLs in the list and run the supplied function on them. In this case, that supplied function is an anonymous function which takes in the URL and prints out the title.</p>
<p>The final output is a printed list of titles:</p>
<div class="wp_syntax">
<pre class="code">
Branded3 is a leading SEO, Web Design &amp; Development Agency
twitition  - sign petitions using twitter
</pre>
</div>
<p>Naturally you can expand this by adding functions for using text files to get the URLs or write the output. Or even new functions that take the URL and get the HTTP status code or website structure, then output each line to a CSV file. But I&#8217;ll save those functions for future posts&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.branded3.com/blogs/grabbing-page-titles-with-f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

 Served from: www.branded3.com @ 2013-06-19 16:06:40 by W3 Total Cache -->