EPiServer

Year in Review

This is perfect timing for a busy people like us in IT industry to stop by and look back on the path that has been walked and some good things accomplished. Below is a short summary of things that I hope you will find useful and beneficial in your own way. This is an experience had this year within my lovely industry, company I'm working in and with people around me. Github Move I was using git and GitHub particularly as open source project repository quite a while. Once you…

Keep reading

Update EPiServer Commerce SKU price in lightweight way - Service Api

Lately I've been playing around EPiServer Service API. I found these interfaces really simple and lightweight way to manipulate with your catalog's content and characteristics of the items in the catalog. This blog post will show you the way how you can update SKU prices via these services using REST client library called "Refit". There are tons of various style and type REST client frameworks for accessing and consuming REST services. I do not have any interest in promoting "Refit" here, but found it really convenient way to work with.…

Keep reading

Row support added to Bootstrap ContentArea

With helpful support from Huilaaja (@huilaaja) Bootstrap aware ContentArea renderer (or in other words - EPiBootstrapArea) got row markup support. Originally row support documentation for ContentArea you can find in author's blog post. With author's permission now row support is added to Bootstrap aware content area renderer package. Enable Row Support For backward compatibility and general idea of Bootstrap content area renderer - row support is disabled by default. You need to enable it explicitly. If you want to enable row markup support "globally" on every content area, you should…

Keep reading

What's new in FeatureSwitch?

It's been while since last FeatureSwitch library release. Just pushed out a bit of stuff held under the hood. Some of them are requested by my lovely consumers :) Here are enlisted some of the latest version features in the library. 1) EPiServer Site Strategy. Now you can use EPiServer's site strategy to enable or disable feature per particular EPiServer site. With example below feature ThisFeatureIsOnlyForSite1 will only be enabled if request is made against site named "Site1", otherwise - feature will be disabled. [EPiServerSite(Key = "Site1")] public class ThisFeatureIsOnlyForSite1 : BaseFeature…

Keep reading

Creating EPiServer Site Menu out of Block Driven Content

For one of our great customers we needed to make site out of just only few pages and lots of blocks. It reminds sort of single page application, just there is no client-side behavior as original SPA projects have. Anyway, in the middle of the project we came to task to make site menu. As we know it's quite easy to build site menu out of the pages and subpages and children pages of these subpages. But this time, we had almost no page structure in CMS, but instead, we…

Keep reading

Asp.Net Mvc Areas - Packed as NuGet

If you would want to add Asp.Net Areas support to your EPiServer site, you would need to copy some files from my previous blog post. Copying files from someone's blog posts seems to be good idea, but it's a bit problematic in case of updates or changes. If so, then we share common vision that by installing NuGet package, your project gets up-to-date support for Asp.Net Mvc Areas. For that reason I packed up Asp.Net Mvc Areas support into NuGet package, for you guys. You may just…

Keep reading

Asp.Net Mvc Areas in EPiServer - Part 2

Asp.Net Mvc Areas is a great way to organize and structure your EPiServer site. Once you have multi-tenant site where the same EPiServer installation with the same set of libraries, styles, script set and other assets is handling more than single site - Asp.Net Mvc Areas become really handy to group particular site's specific assets and other stuff together under single folder. This also gives developers more obvious and more clear picture of the project setup. However we all know that there is no native support for Asp.…

Keep reading

Content Area - Under the Hood, Part 3

This is last blog post in series under the hood of Content Area. In this blog post we will take a look at how and what exactly could be customizable while content area is being rendered. Where and how developer can hook in, what can be overridden and controlled. Parts in this series: – Part 1: Registration and Discovery – Part 2: Template Selection – Part 3: Extensibility Overview Following parts and pieces can be customizable, changeable or replaced by other code completely: Change renderer - It's possible to change they guy who…

Keep reading

Content Area - Under the Hood, Part 2

This is second post in series of EPiServer Content Area feature. This time we will take a look at how render templates are selected. In the first part we looked closer on how templates get discovered and registered in Template Model Repository. Selection of the template is one of the most important fragment of whole rendering pipeline for the content area. This part of the process may turn out to be one of the most non-understandable and kind of black box component (reviewing questions on the EPiServer World forum). But…

Keep reading

Content Area – Under the Hood, Part 1

Lately I was visiting and revisiting content area, code and functionality around this feature in EPiServer and decided to revisit it once again and take a closer look at what’s really inside. So the blog post is not about what content area is, but how it works, how responsible party for rendering and templating is selected when EPiServer needs to render this one of the most powerful content editing feature. This is a multi-part blog post series about what happens under ContentArea property in EPiServer. Parts in this series:…

Keep reading

Switch Content Language Everywhere in EPiServer

Nowadays lot of sites are localized or globalized (depending from which point of view you are looking at). Usually it means that developer has to provide some sort of language switcher for the end-user to pick another content language. This blog post is about small trick that I’m using when need to provide switcher on web sites driven by EPiServer. I’ll not dig into details on how to get started with globalization and how localization engine and services are working (you can find lot of information in SDK)…

Keep reading

Bootstrap aware Content Area for EPiServer 8.0

I got pull request from Mathias Nohall on GitHub asking for adding support for EPiServer v8.0. This is what we call open-sourcing :). I was thinking this is good moment to introduce some breaking changes in EPiBootstrapArea plugin and give you fresh package compatible with v8.0 of EPiServer and also cleaned-up from some left-overs (mainly pointed out by Mark’s pull request). Changes Here is list of changes that has been applied for this release: New referenced EPiServer NuGet package is version 8.3; DDS stored DisplayModeFallback is now…

Keep reading

EPiServer DDS Strategy for FeatureSwitch

Thanks to Paul Smith for adding some more EPiServer integration for FeatureSwitch library. Now FeatureSwitch EPiServer integration library is equipped with DDS storage strategy. This was pretty easy to implement: public class EPiServerDatabaseStrategyImpl : BaseStrategyImpl { public override bool Read() { var store = typeof(FeatureState).GetStore(); var definition = store.Items<featurestate>().FirstOrDefault(d => d.Name == Context.Key); return definition != null && definition.Enabled; } public override void Write(bool state) { var store = typeof(FeatureState).GetStore(); var definition = store.Items<featurestate>().FirstOrDefault(d => d.Name == Context.Key) ?? new…

Keep reading

Add Community to your site created via VS Extensions

Set the playground After you have successfully followed Ted’s tutorial on how to create a site using almost nothing else than Visual Studio. Next thing what is in your work queue is to add EPiServer Community functionality on top of this. Add Community via Deployment Center One of the way is old-school – via Deployment Center. First of all you may even be able not to see your site there (regardless that you have added it to IIS). While surfing of EPiServer source code using surfboard with Reflector sticker on…

Keep reading

Chasing for NullReferenceException in EPiServer Relate+

This is a blog post telling a short story about one of the developer’s nightmare beast hunting case – System.NullReferenceException. Hunting Game Starts Once up on a time I received an interesting issue regarding user authentication in one of the projects. Issue description was telling that it was not possible for the users to login to the site. We were using EPiServer Relate+ in that particular area of the application. At least I had something for the exceptional case on production server. Following message was observed in local Windows…

Keep reading

Initializable modules without EPiServer

EPiServer initialization modules is a great feature to provide plugin facilities for the hosting application. I find initialization modules pretty handful in cases when you need to initialize some library, configure some stuff or do whatever needed at application start-up. However there are times when you have to develop site without wonderful backup platform that takes all boring boilerplate code away and provides with much awesome stuff and features. Let’s switch to ordinary Asp.Net Mvc application initialization code: [assembly: OwinStartupAttribute(typeof(WebApplication1.Startup))] namespace WebApplication1 { public partial class…

Keep reading

Eliminate Wrapping Element for EPiServer Content Area Item

This blog posts describes some new features added to latest EPiBootstrapArea plugin library. Register New Display Mode from Code Using EPiBootstrapArea plugin it’s possible to rely on some of the automatically generated display modes. Those are covering almost all portions of the area (starting from whole width ending with one-quarter). However not always default fallback modes suited well for various projects. In latest 1.2 version you may register new display mode by code in EPiServer init module using Registrar. Following code registers new display mode named “The real…

Keep reading

Pragmatic problem solving – Answer to the EPiServer forum question

At some point I was questioned about how I’m learning and finding the answers. Generally for the learning process a huge inspiration came from “Pragmatic Thinking and Learning: Refactor Your Wetware” by Andy Hunt. Software development happens in your head. Not in an editor, IDE, or design tool. You’re well educated on how to work with software and hardware, but what about wetware—our own brains? Learning new skills and new technology is critical to your career, and it’s all in your head. Walk-through learning and research…

Keep reading

Update to EPiServer Responsive Tables

Initially responsive tables plugin was based on pure CSS implementation transposing table from table view into a block stacking cells vertically. Solution based on CSS rules is good enough to reduce markup and style tables based on style sheets. However this approach seems to be not really reliable. For me as back-end developer CSS seems to be one of the most fragile thing on the web – any browser, any device and any device + screen size combination may render your stat-of-art web page unpredictably. The same case came to responsive tables…

Keep reading

ImageResizer.Plugin.EPiServerBlobReader

Overview ImageResizer is one of top choice library when it comes to optimizing media assets in web context. EPiServer 7.5 introduced really cool feature Asset and media. You need to thank and follow Martin Pickering hard work to get both of these worlds working together which involves a bit of hacking here and there. Recently I got sick of repeating these steps from project to project and came up with a package of NuGet. Package gently modifies your web.config file in order to add new plugin to the…

Keep reading