<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6615446690343095019</id><updated>2011-10-11T11:31:51.729-07:00</updated><category term='Russian'/><category term='shared source'/><category term='Localization'/><title type='text'>DV's notes</title><subtitle type='html'>Content management system Sitecore and management thoughts</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-5218110166542425331</id><published>2011-09-29T23:23:00.000-07:00</published><updated>2011-09-29T23:23:41.654-07:00</updated><title type='text'>Sitecore won the ‘Best IT Company of Denmark’ award</title><content type='html'>&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;"&gt;Sitecore won the ‘Best IT Company of Denmark’ award:&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.computerworld.dk/art/197256?a=na&amp;amp;i=1"&gt;http://www.computerworld.dk/art/197256?a=na&amp;amp;i=1&lt;/a&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Calibri, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px;"&gt;it's in Danish, you can use Google translate, but the main point is already in the title of this post :)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-5218110166542425331?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/5218110166542425331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=5218110166542425331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/5218110166542425331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/5218110166542425331'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/09/sitecore-won-best-it-company-of-denmark.html' title='Sitecore won the ‘Best IT Company of Denmark’ award'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-1189613091738157690</id><published>2011-06-01T08:54:00.000-07:00</published><updated>2011-06-01T08:54:24.928-07:00</updated><title type='text'>CaseStudy Azure CMS @ Sitecore</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;br /&gt;Today Microsoft Ukraine has published CaseStudy Azure CMS @ Sitecore (in Ukrainian)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/ukraine/casestudies/casestudy.aspx?id=82"&gt;http://www.microsoft.com/ukraine/casestudies/casestudy.aspx?id=82&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-1189613091738157690?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/1189613091738157690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=1189613091738157690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/1189613091738157690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/1189613091738157690'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/06/casestudy-azure-cms-sitecore.html' title='CaseStudy Azure CMS @ Sitecore'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-6800665322697925317</id><published>2011-05-05T06:35:00.000-07:00</published><updated>2011-05-05T06:36:03.896-07:00</updated><title type='text'>Coninuous Integration for Sitecore projects</title><content type='html'>&lt;div class="MsoNormal"&gt;Continuous Integration in development is gaining its role as an essential part of project efficiency. We are in Sitecore got understanding of that quite some time ago and now even looking for a CI Specialist who will be serving our build framework full-time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;However the goal of this article is not to describe CI in Sitecore, but to find best CI practices for all Sitecore-based solutions.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;What does distinguish Sitecore solutions from the rest of Solutions?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Any solution is an “superstructure” on top of CMS&lt;/li&gt;&lt;li&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;A solution contain not only files, but content items which cannot be just copied as files&lt;/li&gt;&lt;li&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Heavy dependency on underlying CMS version&lt;/li&gt;&lt;li&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Similarity of steps related CMS-base part of a solution&lt;/li&gt;&lt;/ul&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;Let’s see how to make building Sitecore solutions effective. I’ve grouped principles by a few categories depending on where they are applied. We follow these principles in Sitecore.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Hereafter I assume Cruise Control .NET, nAnt and SVN are meant, though the principles below should be valid for any set of tools. Bundle CC.NET+nAnt+SVN looks the optimal since free, easy configurable and being developed further.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Architecture of CI process&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;1.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Separate build server and project scripts, consider build server a live project&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Re-use common operations which are not specific to a particular project, i.e. checkout, cleanup, etc. The best way is to leave this on build machine. This way you not only avoid duplicating appropriate code, but is able to maintain this part separately and is sure it works for any project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Build server is a machine which:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: 'Courier New';"&gt;o&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&amp;nbsp;contains up-to-date build framework&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: 'Courier New';"&gt;o&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;responsible for common actions&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: 'Courier New';"&gt;o&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;calls project build script&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: 'Courier New';"&gt;o&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;evaluates result of project build script execution&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;If you consider build framework a usual project and store in version control system, you will not need take care of deploying changes on build server. Add a project on the build server which builds the build framework. If you make any changes to a source of it, you are it will be picked up by each server and “deployed” locally.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;The same applies to configuration files: store config files in the repository and let CC.NET update own configuration. When you need make changes to server’s configuration, you can do that by committing a new configuration file to a repository.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Aside effect of this approach is a security: you don’t need access to a build server to manage it. Since build servers are dealing with source code, they should protected appropriately. You can store config files in not so secured repository (build server reads it, not vice versa), therefore grant access to more people and not to be a bottleneck or manage server from VPN connection. In details the approach is described at &lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Configure+CruiseControl.Net+to+Automatically+Update+its+Config+File"&gt;http://confluence.public.thoughtworks.org/display/CCNET/Configure+CruiseControl.Net+to+Automatically+Update+its+Config+File&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;2.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Use CC.NET config validation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;When you make build server upgrade own configuration, be sure to validate new config file, otherwise the whole server falls. Ccnet.exe console application has an option –validate, which allows check that CC.NET can be started with such a configuration file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/The+Server+Console+Application"&gt;http://confluence.public.thoughtworks.org/display/CCNET/The+Server+Console+Application&lt;/a&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;3.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Build server scalability&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Updating a build framework by a build server can be assured by having an obligatory configuration for all servers. This can be achieved by separating config files and using include feature.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Imagine the setup:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;svn://server/builds&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|__ ccnet.common.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |__ buildserver1.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |__ buildserver2.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |__ buildserver3.config&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Each buildserver*.config files includes the common configuration config file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Name of the *.config file corresponds to the names of the servers, a build server takes config with proper name.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Adding a new server is restoring it from disk image and committing a new configuration file into the repository.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;4.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Let project build itself, developers are responsible for own project&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Depending on a project size, build process can be either delivered to separate integration team or done by developers. In general a person (team) who is responsible for delivery, should be responsible for building. Assuming size of the Sitecore solutions, passing build script to a separate team is not the most efficient way which leads to slow turnover. Build script is a part of source code and maintained by developers (who are in charge of delivery and know better what should be delivered).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Build infrastructure should be the same in a company and not build for each project separately. I.e. once a company builds the build infrastructure and then developers just use facilities without digging into build servers work, they interact with build infrastructure with according to common rules.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Build script is backed up as a part of source code and therefore never lost.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;When you should get back to a project later or something happens to a build server, you should not assembly parts of a project to resume work on it – everything is one bundle.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;5.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Ensure script run on developers’ PCs&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Good thing of having build script a part of source code, is that you can build a project on any PC with proper environment (e.g. nAnt). A developer can test build script on own machine before committing it to the source repository (like he compiles before commit), debug the script.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;6.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Ensure logic progressiveness&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Each project can be covered by a few of build projects with raising number of steps: &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;short one (cruise), which check that a new piece of code doesn’t break the compilability of a project trunk (or working branch). It runs on each commit and makes minimal compilation to ensure there is sense to run wider steps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;full one (nightly) – the complete build run in the night for a project trunk (or working branch). It passes all the steps necessary for delivery (thanks to Cruise the code is assured to compile), might include running autotests; usually passed to QA for testing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;full one (release) – this one is equal to nightly, but can be run for svn tags. Having separate release build decreases time for switching a sandbox to a new location, also you can force it using other special conditions (like creating a new tag in the repository).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;7.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Include automated tests into CI&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;That is undoubted disaster when QA returns build immediately because of silly errors. Try to include running as many automated tests as possible so developers could see results before QA picks up the build.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Taking into account nightly builds, you shift the tests execution to nights, that saves working time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast"&gt;A separate server can be used for running tests. It includes special test environment and frees build server for other projects. Consider the setup: build script copies the project output to some shared folder over network, the Sitecore installation is installed and test are run (all is possible with usual CC.NET + nAnt).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: .5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;8.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Separate a project and underlying CMS&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;It’s often said that a project should be ready to be run right after checkout. However I cannot agree it’s true for all cases. E.g. upgrade on CMS can lead to extensive changes to source code, while no actually changes to a project done. In case you store your project files only, you can checkout it to any CMS website root folder. Even if you want to tight you code to a specific CMS version – keep it in source code as a ZIP file and make unzip part of a build process.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;The same applies to configuration files – either use include files or patch files during build.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;You can also restore items from serialization during building.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;9.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Share resources&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Create a storage (e.g. SVN repository) which can host resources for using by projects. Great example here is CMS: if a few projects use one CMS version as a base, it’s not efficient to keep it along with each project source code. Also svn operations with binary files (checking for modifications) is slow.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;10.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Build in Sandbox, avoiding unnecessary copying.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;I didn’t make special measurements, but disk operations remain the slowest, especially with huge number of small files. Build in the sandbox and clean it up afterwards – that will be much faster than making a complete copy of a sandbox.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Cleanup can be a part of a build server tasks, not repeated in each script. Build server revert changes in the sandbox before starting building a project itself.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;11.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Special read-only account to access sources&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;To avoid accidental breaking the source code and sharpen security, use special read-only accounts to access source code by build script from build server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;Build server can store cached authorization, so nothing about access credentials is present in the build script.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;12.&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Launching Sitecore during build&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;It’s pretty easy to launch Sitecore during build for executing some operations in Sitecore context and using Sitecore API. Use free development web server from Microsoft &lt;b style="mso-bidi-font-weight: normal;"&gt;WebDev.WebServer.exe &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle"&gt;at some port reserved for build server. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast"&gt;To launch Sitecore and call API, not to use its backend, you don’t need the complete installation, therefore can save time for this step.&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="color: red;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-6800665322697925317?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/6800665322697925317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=6800665322697925317' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/6800665322697925317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/6800665322697925317'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/05/coninuous-integration-for-sitecore.html' title='Coninuous Integration for Sitecore projects'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-7356414259957114782</id><published>2011-02-07T05:09:00.000-08:00</published><updated>2011-02-07T05:10:38.760-08:00</updated><title type='text'>Sitecore Serialization Guide</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I'm glad to see that &lt;b&gt;Sitecore Serialization Guide&lt;/b&gt; is published on the SDN:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp;&lt;a href="http://sdn.sitecore.net/Reference/Sitecore%206/Serialization%20Guide.aspx"&gt;http://sdn.sitecore.net/Reference/Sitecore%206/Serialization%20Guide.aspx &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-7356414259957114782?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/7356414259957114782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=7356414259957114782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7356414259957114782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7356414259957114782'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/02/sitecore-serialization-guide.html' title='Sitecore Serialization Guide'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-7543340730488948136</id><published>2011-01-21T11:11:00.000-08:00</published><updated>2011-01-21T11:11:54.894-08:00</updated><title type='text'>Dreamcore - Sitecore Partner Conference will be this year as well!</title><content type='html'>&lt;br/&gt;&lt;br /&gt;It's becoming an interesting tradition - annual Sitecore Conference for our partners. As for me it shows how highly Sitecore appreciates own Partners.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;Perhaps you will find it interesting for you as well &lt;a href="http://sitecore.net/dreamcore2011" title="Dreamcore 2011"&gt;Dreamcore 2011&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-7543340730488948136?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/7543340730488948136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=7543340730488948136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7543340730488948136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7543340730488948136'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/01/dreamcore-sitecore-partner-conference.html' title='Dreamcore - Sitecore Partner Conference will be this year as well!'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-2754673834625213495</id><published>2011-01-11T08:03:00.000-08:00</published><updated>2011-01-11T08:04:45.405-08:00</updated><title type='text'>.NET CMS Sitecore team - who we are</title><content type='html'>&lt;/br&gt;&lt;br /&gt;Now we have a section on our Sitecore &lt;a href="http://www.sitecore.net/"&gt;web site&lt;/a&gt; about our team. It's just initial state, but be sure UA team will try to describe ourselves as much as possible. :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Who We Are:&lt;/b&gt;   &lt;a href="http://www.sitecore.net/Company/Who-We-Are.aspx"&gt;   http://www.sitecore.net/Company/Who-We-Are.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-2754673834625213495?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/2754673834625213495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=2754673834625213495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2754673834625213495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2754673834625213495'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/01/net-cms-sitecore-team-who-we-are.html' title='.NET CMS Sitecore team - who we are'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-2657547335834371352</id><published>2011-01-04T23:00:00.001-08:00</published><updated>2011-01-04T23:02:25.743-08:00</updated><title type='text'>Sitecore has become one of only 12 partners to have a dedicated presence on the Microsoft Campus</title><content type='html'>&lt;br/&gt;&lt;br /&gt;I don't think I can add something, just share the link&lt;br /&gt;&lt;a href="http://www.cmswire.com/cms/web-cms/sitecore-expands-microsoft-relationship-heads-to-campus-009700.php"&gt;http://www.cmswire.com/cms/web-cms/sitecore-expands-microsoft-relationship-heads-to-campus-009700.php&lt;/a&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-2657547335834371352?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/2657547335834371352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=2657547335834371352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2657547335834371352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2657547335834371352'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2011/01/sitecore-has-become-one-of-only-12.html' title='Sitecore has become one of only 12 partners to have a dedicated presence on the Microsoft Campus'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-6415406103644468347</id><published>2010-11-12T02:54:00.000-08:00</published><updated>2010-11-12T02:54:41.875-08:00</updated><title type='text'>Custom CC.NET plugin and validation</title><content type='html'>I have developed a small custom publisher for CruiseControl.NET (it moves output files instead of copying them, cleans target folder before moving files and fixes a small issue in BuildPublisher).&lt;br /&gt;&lt;br /&gt;Everything went well on the test server, but launching it on live build servers unexpectedly failed.&lt;br /&gt;We are using "ccnet.exe --validate" to prevent crashing a server because of incorrect configuration, and new configuration file simply didn't pass validation. Though the configuration starts and works fine, just validation fails.&lt;br /&gt;&lt;br /&gt;[&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Long unsuccessful searching story is omitted&lt;/span&gt;&lt;/i&gt;]&lt;br /&gt;&lt;br /&gt;The solution: add a key&amp;nbsp;"PluginLocation" into ccnet.exe.config file under AppSettings sections. Even if it points to the ccnet server folder, where, according to the documentation, ccnet server sees all assemblies by default.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-6415406103644468347?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/6415406103644468347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=6415406103644468347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/6415406103644468347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/6415406103644468347'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/11/custom-ccnet-plugin-and-validation.html' title='Custom CC.NET plugin and validation'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-2144932472489447195</id><published>2010-10-26T01:15:00.000-07:00</published><updated>2010-10-26T01:15:50.668-07:00</updated><title type='text'>Prestigious award for Sitecore Ukraine</title><content type='html'>The most popular IT development community portal in Ukraine, &lt;a href="http://developers.org.ua/"&gt;http://developers.org.ua&lt;/a&gt;, has presented Sitecore Ukraine with the Best IT Company Award in the “Mid-sized” category.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;For the first time in history, all IT people in all IT companies across the Ukraine have been asked to rate their employers, according to their job satisfaction and general view of their employer, and we’re so proud that we came out on top! &lt;br /&gt;&lt;br /&gt;The selection for the inaugural award was based on anonymous questionnaires, which makes the win even more impressive. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There were 3 categories: - Small Companies (&amp;lt;50 engineers), Mid-sized Companies (50-200 engineers – including Sitecore) and Large Companies (&amp;gt;200 engineers). There were 8 companies nominated in “the Sitecore group”, and 3 of them were from Dnipropetrovsk&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The winner IS Sitecore Ukraine!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.developers.org.ua/archives/max/2010/10/26/rating-2010-summary/"&gt;http://www.developers.org.ua/archives/max/2010/10/26/rating-2010-summary/&lt;/a&gt;&lt;br /&gt;(sorry, in Russian only so far)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_TTouUwGsAow/TMaOJhoLgyI/AAAAAAAAADA/6M48rlGcrdE/s1600/badge-en-200x150-win.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_TTouUwGsAow/TMaOJhoLgyI/AAAAAAAAADA/6M48rlGcrdE/s1600/badge-en-200x150-win.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Sitecore Ukraine is very proud of this recognition from our own employees. Following common Sitecore Corporation spirit and values we continuously try to build the best possible team. Each Sitecore employee should derive pleasure from working on an excellent team. Naturally, there’s always room for improvement, and we have _people_ who can do just that.&lt;br /&gt;&lt;br /&gt;Big "thanks" goes to everyone in our team!&lt;br /&gt;&lt;br /&gt;Everything is in our hands – everyone is important!&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-2144932472489447195?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/2144932472489447195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=2144932472489447195' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2144932472489447195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2144932472489447195'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/10/prestigious-award-for-sitecore-ukraine.html' title='Prestigious award for Sitecore Ukraine'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_TTouUwGsAow/TMaOJhoLgyI/AAAAAAAAADA/6M48rlGcrdE/s72-c/badge-en-200x150-win.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-8091528677073604626</id><published>2010-09-04T00:08:00.000-07:00</published><updated>2010-09-04T00:09:01.134-07:00</updated><title type='text'>Sitecore Blogs moved to own website</title><content type='html'>It's interesting to note, that a few Sitecore bloggers have moved own blogs to Sitecore website. It definitely introduces some convenience: blogs are structured, gathered in one place and, one of the most important, - search through all Sitecore blogs, which is awesome.&lt;br /&gt;&lt;br /&gt;Just look at the&amp;nbsp;&lt;a href="http://www.sitecore.net/en/Community.aspx"&gt;http://www.sitecore.net/en/Community.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will continue with this host so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-8091528677073604626?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/8091528677073604626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=8091528677073604626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/8091528677073604626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/8091528677073604626'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/09/sitecore-blogs-moved-to-own-website.html' title='Sitecore Blogs moved to own website'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-773108860232005978</id><published>2010-03-25T01:50:00.000-07:00</published><updated>2010-03-25T01:50:42.132-07:00</updated><title type='text'>Some management</title><content type='html'>Maybe an unexpected non-technical post. But my primary role is a manager, though I'm not dropping programming and do some tools or investigations from time to time.&lt;br /&gt;&lt;br /&gt;Have no idea if it's my invention or usual practice. At least I haven't read any "clever" books (I'm sceptical about most of them, but that's another topic).&lt;br /&gt;&lt;br /&gt;Let's see:&lt;br /&gt;&amp;nbsp;&amp;nbsp;- One day a person saw our ads and came to us.&lt;br /&gt;&amp;nbsp;&amp;nbsp;- Now (s)he has own opinion about the Sitecore.&lt;br /&gt;&lt;br /&gt;It makes great sense to ask people say what attracted them in Sitecore ads and what they wouldn't like to see there. Indirect feedback except for just improving the ads, isn't it?&lt;br /&gt;&lt;br /&gt;Proper feedback is a key for everything.&lt;br /&gt;&lt;br /&gt;That's what I have just asked our senior developers to do.&lt;br /&gt;&lt;br /&gt;You are welcome to express your opinion about the idea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-773108860232005978?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/773108860232005978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=773108860232005978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/773108860232005978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/773108860232005978'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/03/some-management.html' title='Some management'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-532293621106677342</id><published>2010-03-10T23:35:00.000-08:00</published><updated>2010-03-10T23:35:03.925-08:00</updated><title type='text'>Web Content Management: get data easy!</title><content type='html'>Web Content Management: one of the difficulties I saw customers faced with were moving data from their existing sites, based on "old" engines or even static, to desired Web Content Management systems, like Sitecore CMS. Often they dropped an idea of upgrading just because didn't want or couldn't put efforts to just moving the existing content.&lt;br /&gt;&lt;br /&gt;I've just seen the demo by Stephen Moore from Kapow - "&lt;a href="http://kapowtech.com/demos/sitecore_aarhus.wmv"&gt;Migrating Web content into Sitecore: 8 Minute Demo&lt;/a&gt;". Now moving data to Sitecore becomes easier. Interesting things that data can be taken even from front-end of the existing site. It worth seeing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-532293621106677342?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/532293621106677342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=532293621106677342' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/532293621106677342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/532293621106677342'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/03/web-content-management-get-data-easy.html' title='Web Content Management: get data easy!'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-7901689710858930447</id><published>2010-02-23T02:08:00.000-08:00</published><updated>2010-02-23T02:08:09.696-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Localization'/><category scheme='http://www.blogger.com/atom/ns#' term='Russian'/><title type='text'>Russian backend (client) for Sitecore 6.2.0</title><content type='html'>It took longer than expected, but it's ready now.&lt;br /&gt;&lt;br /&gt;Take&amp;nbsp;Russian backend (client) for Sitecore 6.2.0 at &lt;a href="http://sdn.sitecore.net/Resources/Sitecore%206/Client_Translations/6,-d-,2,-d-,x.aspx"&gt;Sitecore SDN site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please report any issues (with screenshots) you might find to me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-7901689710858930447?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/7901689710858930447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=7901689710858930447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7901689710858930447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7901689710858930447'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/02/russian-backend-client-for-sitecore-620.html' title='Russian backend (client) for Sitecore 6.2.0'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-2558900001567249971</id><published>2010-01-31T08:28:00.000-08:00</published><updated>2010-01-31T08:29:04.817-08:00</updated><title type='text'>Sitecore content management system knowledge sharing</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;US market is probably the market that grows most rapidly for Sitecore. Large number of partners, solutions and developers. Developers, Solution Architects, etc - i.e. people - are the biggest values always. And Sitecore understands that!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I'm happy to see that Sitecore US will conduct large event for all Sitecore-related people - &lt;a href="http://www.sitecore.net/en/News/NewsAndEvents/2010/04/Dreamcore-2010.aspx"&gt;Sitecore Partner and Developer Conference Dreamcore &lt;/a&gt;- in Boston.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I'm sure all people will have fun :), but I'm also sure in wide knowledge and experience (and ideas as well) sharing. I won't be able to come myself, but this is what I expect personally - get new ideas and hear more feedback on implementations.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;That is a great idea from Sitecore!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-2558900001567249971?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/2558900001567249971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=2558900001567249971' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2558900001567249971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/2558900001567249971'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2010/01/sitecore-content-management-system.html' title='Sitecore content management system knowledge sharing'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-8113101789712010592</id><published>2009-11-18T11:24:00.000-08:00</published><updated>2009-11-18T11:30:56.905-08:00</updated><title type='text'>Connection Pooling</title><content type='html'>Some things after discovering look trivial and clear, but it takes time to find this simple reason. I found a lot of question in Internet, and almost no useful answers.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After SQL server restart you might get the error in your ASP.NET application: "&lt;i&gt;A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) &lt;/i&gt;"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The reason is hiding in SQL Server Connection Pooling&lt;a href="http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx"&gt; http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can do a simple test by adding ;Pooling=false to your connection string to Sitecore databases and now your application will not crash whenever SQL restarts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Impact Connection Pooling on performance for a stand-alone Sitecore installation - is what I will try now to investigate.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-8113101789712010592?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/8113101789712010592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=8113101789712010592' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/8113101789712010592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/8113101789712010592'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2009/11/connection-pooling.html' title='Connection Pooling'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-6672477540980657481</id><published>2009-10-12T07:48:00.000-07:00</published><updated>2009-10-12T08:11:21.312-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Localization'/><title type='text'>Localization of RADControls in Sitecore</title><content type='html'>One can see that there are a few places in Sitecore CMS backend that are not localized. And that's because they fall out usual translation way.&lt;br /&gt;&lt;br /&gt;In particular we are talking about RAD controls: Rich-Text Editor and SpellChecker.&lt;br /&gt;&lt;br /&gt;Telerik supports own way of localization their controls via XML files, but this approach doesn't work in Sitecore out-of-the-box.&lt;br /&gt;&lt;br /&gt;My investigation was primary aimed on finding the easy enablish RAD controls localization without coding. In particular according to code and Reflector setting the setting &lt;strong&gt;CacheLocalization&lt;/strong&gt; in &lt;strong&gt;sitecore\shell\RadControls\Editor\ConfigFile.xml&lt;/strong&gt; to 'true' should help. Especially since direct requiesting the page &lt;strong&gt;sitecore/shell/RadControls/Editor/localization.aspx?type=editor&amp;amp;language=da &lt;/strong&gt;worked perfectly. Unfortunately playing with settings didn't help.&lt;br /&gt;&lt;br /&gt;Thus the last approach was to set Telerik.WebControls.RadEditor.Language property via code.&lt;br /&gt;&lt;br /&gt;I used great &lt;a href="http://sdn.sitecore.net/scrapbook/dynamically%20loading%20web%20stylesheets%20in%20rte.aspx"&gt;article&lt;/a&gt; from Alexey Romaniuha as an example.&lt;br /&gt;&lt;br /&gt;As a result the workaround to enable localization in RAD Controls in Sitecore looks like:&lt;br /&gt;&lt;br /&gt;1. Compile the code and put appropriate DLL into bin:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;using System;&lt;br /&gt;using Sitecore.Web;&lt;br /&gt;&lt;br /&gt;namespace Sitecore.LocalizationEnabling&lt;br /&gt;{&lt;br /&gt;   public class RADSpellWithLangSwitcher : Sitecore.Shell.Controls.RADEditor.RADEditor&lt;br /&gt;{&lt;br /&gt;   new protected void Page_Load(object sender, EventArgs args)&lt;br /&gt;{&lt;br /&gt;      string lang = Sitecore.Context.Language.ToString();&lt;br /&gt;&lt;br /&gt;      if (lang == "en")&lt;br /&gt;      {&lt;br /&gt;         lang = "en-US";&lt;br /&gt;      }&lt;br /&gt;      this.Editor.Language = lang;&lt;br /&gt;&lt;br /&gt;      base.Page_Load(sender, args);&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. Replace in the sitecore\shell\Controls\Rich Text Editor\Default.aspx file&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@ Page Language="c#" Inherits="Sitecore.Shell.Controls.RADEditor.RADEditor"&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@ Page Language="c#" Inherits="Sitecore.LocalizationEnabling.RADSpellWithLangSwitcher" &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;3. Create a folder with language code under \sitecore\shell\RadControls\Editor\Localization\ folder.&lt;br /&gt;&lt;br /&gt;I guess the approach for the SpellCheker is completely the same, just not publishing it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-6672477540980657481?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/6672477540980657481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=6672477540980657481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/6672477540980657481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/6672477540980657481'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2009/10/localization-of-radcontrols-in-sitecore.html' title='Localization of RADControls in Sitecore'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-911109968203345585</id><published>2009-05-22T07:15:00.000-07:00</published><updated>2009-05-22T07:18:58.306-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shared source'/><title type='text'>License Expiration Notifier – scheduled task</title><content type='html'>&lt;span style="font-family:arial;"&gt;I’ve created a simple scheduled task – it check expiration date of the Sitecore license at the installation where it's run and sends warning (or writes to log file) in case expiration date comes in a certain number of days.Should prevent from unexpected license expiration and hence from site downtime.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;In case nobody objects, it will appear at &lt;/span&gt;&lt;a href="http://trac.sitecore.net/"&gt;&lt;span style="font-family:arial;"&gt;http://trac.sitecore.net&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; soon.&lt;/span&gt;&lt;br /&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-911109968203345585?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/911109968203345585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=911109968203345585' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/911109968203345585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/911109968203345585'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2009/05/license-expiration-notifier-scheduled.html' title='License Expiration Notifier – scheduled task'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-8375344083801655819</id><published>2009-02-18T11:55:00.000-08:00</published><updated>2009-02-18T12:02:19.509-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shared source'/><title type='text'>Taking over Product Catalogue sample site</title><content type='html'>As a part of some free-time developing I took over Product Catalogue sample site (which I saw was requested for updating by someone).&lt;br /&gt;The first stage - direct upgrade to Sitecore V6 is done:&lt;br /&gt;&lt;a href="http://trac.sitecore.net/ProductCatalogue"&gt;http://trac.sitecore.net/ProductCatalogue&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have ideas or wishes for this solution, please mail them to me at dv &lt;at&gt;sitecore.net and I will continue improving it with pleasure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-8375344083801655819?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/8375344083801655819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=8375344083801655819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/8375344083801655819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/8375344083801655819'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2009/02/taking-over-product-catalogue-sample.html' title='Taking over Product Catalogue sample site'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-5860581455952416052</id><published>2008-09-30T08:30:00.000-07:00</published><updated>2008-09-30T08:34:48.503-07:00</updated><title type='text'>Sitecore shell in Russian</title><content type='html'>&lt;span style="font-family:arial;"&gt;Finally! I have translated Sitecore shell into Russian. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;On the way I looked at the Office translation, SVN translation and many other books and sites. Main problem was whether some names should be translated at all, e.g. we don't use translation of Layout - we juts pronounce Layout. And the same thing with many other names. I guess that's because Russian is different from European languages.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;Anyway, the first version is ready. I'm going to send it to Sitecore Ukraine firstly to get feedback. After that I'll publish it on SDN into Localization section which is being prepared.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-5860581455952416052?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/5860581455952416052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=5860581455952416052' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/5860581455952416052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/5860581455952416052'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2008/09/sitecore-shell-in-russian.html' title='Sitecore shell in Russian'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-9031782990113202237</id><published>2008-09-02T22:45:00.000-07:00</published><updated>2008-09-02T22:48:16.014-07:00</updated><title type='text'>Google Chrome - web-browser from Google</title><content type='html'>&lt;span style="font-family:arial;"&gt;Google announced own web browser. That's not unexpected news, but I've tried Sitecore and it seems we support it  :) - the same amount of features like in Firefox. At least I was able to do content editing and publishing.&lt;br /&gt;&lt;br /&gt;Google Chrome, Google’s Browser Project: &lt;/span&gt;&lt;a href="http://blogoscoped.com/archive/2008-09-01-n47.html"&gt;&lt;span style="font-family:arial;"&gt;http://blogoscoped.com/archive/2008-09-01-n47.html&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Google on Google Chrome - comic book: &lt;/span&gt;&lt;a href="http://blogoscoped.com/google-chrome/"&gt;&lt;span style="font-family:arial;"&gt;http://blogoscoped.com/google-chrome/&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-9031782990113202237?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/9031782990113202237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=9031782990113202237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/9031782990113202237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/9031782990113202237'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2008/09/google-chrome-web-browser-from-google.html' title='Google Chrome - web-browser from Google'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6615446690343095019.post-7556797487812311410</id><published>2008-07-23T22:12:00.000-07:00</published><updated>2008-07-24T03:56:49.923-07:00</updated><title type='text'>See generated configuration in V6</title><content type='html'>&lt;div&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Recently I've recollected that I could develop and decided renew my skills. There was a good occasion - during one of our technical meeting we discussed new feature of V6 - Auto Include Config files. It's great and very useful, but it seems to be hard to understand the final configuration file after all changes since they are made on a fly. But it's definitely necessary for debugging or discovering issues in the solution.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Here is a quick tool I did: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;1. Install the package onto V6&lt;br /&gt;&lt;a href="http://rapidshare.com/files/132071977/DetailedConfigReport-1.0.0.zip.html"&gt;&lt;span style="font-size:85%;"&gt;http://rapidshare.com/files/132071977/DetailedConfigReport-1.0.0.zip.html&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2. Run the tool:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5226527644395477250" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_TTouUwGsAow/SIhbM4TzmQI/AAAAAAAAAAM/bn0qL2X0O1s/s320/menu.png" border="0" /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;3. See the result:&lt;/span&gt; &lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5226532781701805554" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_TTouUwGsAow/SIhf36RFNfI/AAAAAAAAAAc/KmlYLsvk1Xw/s400/screenshot.jpg" border="0" /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6615446690343095019-7556797487812311410?l=vasilinenko.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vasilinenko.blogspot.com/feeds/7556797487812311410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6615446690343095019&amp;postID=7556797487812311410' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7556797487812311410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6615446690343095019/posts/default/7556797487812311410'/><link rel='alternate' type='text/html' href='http://vasilinenko.blogspot.com/2008/07/see-generated-configuration-in-v6.html' title='See generated configuration in V6'/><author><name>Dmitry Vasilinenko</name><uri>http://www.blogger.com/profile/16464164466773992855</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TTouUwGsAow/SIhbM4TzmQI/AAAAAAAAAAM/bn0qL2X0O1s/s72-c/menu.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
