Sitecore uses mainly Visual Studio for development. Sitecore Rocks is a fantastic tool commonly used to help with the integration between Visual Studio and Sitecore. Episerver has its own plugin to be installed on Visual Studio to help on the development too. Both have the functionality to work with MVC Framework. Sitecore has a Marketplace where you can find Modules to extend and adapt into your website easily. Reusable components can be used on both systems but in EpiServer might need a developer to customize a component, Sitecore has the Experience Editor where authors with no development experience can move, change styles, columned content and change images directly from the page and for advanced changes can be done using Content Editor.
Sitecore uses roles to grant/reject access to certain areas of the management system the same way it uses roles to manage access to content only. Sitecore can be adapted to work with your domain user groups using LDAP or create your own user provider. EpiServer uses similar security bases, no big difference in this area.
EpiServer uses a workflow process to publish approved changes on the content, with this method the site guarantees that the content has been verified and not accidentally published. Sitecore handles the same way but with a difference that there can be different workflows and approvals depending on the content type. No approvals required is also an option. Sitecore uses a different database for “Published” (Production) and “In Edition”. As for this, Sitecore has different ways to publish and also schedule a time that an item can be published or unpublished.
Since EpiServer is mainly developed using Visual Studio as a .NET web project, it uses the NuGet package to reference EpiServer binaries, it is only to update references to have the system updated. In contrast, Sitecore on its version updates is more complex since sometimes it has big impact changes on the core system and requires to change configuration files as the same to add/replace files on the environment. I would like to have an easy way to upgrade a version on Sitecore.
Searching between pages and other content inside your website can be one of the most frequent problems in a system. Because of this, many CMSs use the support of other software. Lucene is one of the most used and best Search Engines on the web. Sitecore and EpiServer have a built-in integration using Lucene Search which can be customized to search in other fields, or content types not assigned out of the box. Likewise, Sitecore has the capability to use the Solr search engine, which is based on Lucene, but it can have better performance and more options to configure the search. Both have similar capabilities such as facets and base queries. There are some plugins on Sitecore that can be applied to search inside a document (Word, PDF) which can affect the performance during the indexing but will increase the search functionality.
We can see that there are similar capabilities on both systems but we need to consider the user experience when working or making changes to the website. Sitecore has a Microsoft Office-style so it is pretty simple to manage, it might seem to be hard to manage because it has many options or buttons everywhere but these are only for developers. In the end, the editors have a friendly and intuitive system to manage.
Sitecore has more areas to explore, such as Mail Campaign, Marketers, Commerce*, Optimization with A/B/N and multivariate testing, cross-channel tracking and many more. In the long term, when you want to add more functionality and have better tracking on your visitors and better performance on your website, Sitecore is the best option.