The SOLID best practice principles are frequently applied to object-oriented designs, but they have a place in any development. Emma Garland takes us on a deep dive on SOLID and how to apply it to CMS Development in Umbraco.
Issue No 35
Overworking ourselves is a common thing in development, especially with the dreaded crunch time! Tim has some great advice on how to recognize when you're reaching burnout, mitigating it before it hits that point, and what to do when it's too late.
Issue No 34
Many of our clients have the need for more accessible websites, either to comply with regulations or to improve the ability of potential customers to access and use their sites. Accessibility is a complex topic, but Dominique and Catherine show us ways to make our Umbraco sites more accessible from the beginning, keeping the impact to clients minimal while allowing more users to access them.
Three years ago, Jeavon Leopold showed us how Crumpled Dog's projects were structured and why they were structured that way. Three years is an eternity in the web, so now he's come back to show how they've changed their process and the new tools and structure to show us all how to get up to date.
Issue No 33
The grid has been a great tool for Umbraco since its release in 7.2 right out of the box. But it's with the creation of your own custom grid editors that its true power shows. Anders shows us how to create our own property and grid editors with minimum effort to make the most of this powerful feature.
Sometimes, back-end developers don't want to bother with Visual Studio and sometimes front-end developers would like to do a build without having Visual Studio even installed. This can be done! Inspired by a virtual meeting with GLUUG, Janae talks us through setting up Grunt to run MS Build with some VS Code tricks on the side so you (almost) never have to touch Visual Studio again.
Issue No 32
Almost every worker in our industry has pushed themselves a little too far chasing that addictive rush of solving a problem with code, working too long of hours and living too little in the process. This holiday season Pete shares with us his past struggles and how he keeps that dopamine rush from making him a workaholic.
The EU's General Data Protection Regulation is coming in 2018, and with it guidelines on how to protect the personal data of European citizens. If you're making a website visited by Europeans, it applies to you and your site. Jeffrey has taken a hard look at the GDPR and what changes Umbraco and its community of developers should make to meet these guidelines.
Issue No 31
The Grid is great for giving content editors options for controlling their content, but migrating content into it from existing properties elsewhere on your site can be a painful experience. Jason shares their pain, and shows how to lessen it through the use of hybrid grid editors.
It can be difficult to decide on the best way to implement Inversion of Control in Umbraco. Emma shows us how, and why, the ultra lightweight IoC container LightInject might be the right solution for this kind of problem.
Issue No 30
The biggest challenge we all face as developers is time. Malcolm shows us one way to help manage time by drastically decreasing the time involved in the deployment process using Continuous Integration and Continuous Deployment with Jenkins and Github.
Umbraco Cloud is a great choice for new Umbraco sites. It's even better when it's integrated into an automated team development workflow. Paul and Ryan show us the build and development workflow they've established for this using Bitbucket, TeamCity, and OctopusDeploy.
Issue No 29
For an organization in a utopian society the user interface of Star Trek's Starfleet's user interface sucks. A lot. Taking a look at the lessons that can be learned by examining the shortcomings and challenges that such interfaces would create, anne gibson encourages us to think about our own interfaces, and where to start in making them usable in our era, let alone the future.
Umbraco is all about community. But "the Friendly CMS", like any group, possesses introverts who can feel their internal batteries draining at social events like CodeGarden and other meetups. Christie Pearson discusses introverts in our community and starts a conversation on easing the challenges for introverts in an industry reliant on collaboration.
Issue No 28
We might be Umbraco specialists, but when it comes to organizing local community events most of us are novices all over again. Callum helps us eliminate some of the pain points with solid advice on the important phase of preparing for a conference, using his experience in organizing The Cogwork's Umbraco UK and Umbraco Poland festivals.
When we're stumped by a particularly pernicious bug in our code, or can't get a design to gel properly, sometimes the best solution is to step away from the problem (and maybe even your desk) altogether and put our minds to something completely different to reset and gain a new perspective. Chriztian shares his experience doing just that, turning the dreaded YSOD into a song in the process.
Issue No 27
We live in a world where WordPress powers more than 27% of all web pages. As such, many clients have expectations formed from their Wordpress experiences, thinking that a great website is only a few plugins away with minimal fuss. Josh helps us examine what kind of expectations clients may have, and how to challenge those and show how experts with Umbraco can make a better web experience.
There are always several ways to accomplish the same task in Umbraco. And it's not always clear which is the right one. Querying content is one of the biggest examples of this, with many different techniques and levels of performance as a result. Tim walks us through the methods available and testing which is best.
Issue No 26
Unit testing Umbraco when doing test driven development can be challenging. But Gary guides us through how to write testable code much more easily thanks to his Umbraco Context Mock package.
Implementing Single Sign On in Umbraco using SAML is an effective way to integrate Umbraco into a larger estate of IT systems, making new sites for corporate clients of all sizes easier for their internal users to access securely. And with Paul showing us how, we can learn how easy it is to implement.
Issue No 25
Umbraco Forms is highly extendable with the ability to add both custom form controls and custom workflows. Richard walks us through his experiences and lessons learned, giving tips and tricks on how to get the best uses out of Forms for your business needs.
Sometimes you just want to override the Umbraco backoffice's functionality for a client, like adding a custom button into the content editing view. But you don't want to modify the core and it's not a feature to put in a pull request. What do you do? Dave is here to help, showing how you can override core functionality without the mess of touching core code.
Issue No 24
Making a delightful experience for content editors is one of the primary functions of Umbraco. With that in mind, Anders teaches us how to pull the primary colors from images and use a custom property editor to select which colors to use on their pages straight from the back office.
The websites we create can cause unintended consequences for our users, as some may encounter points of friction from barriers and setbacks that we may be unaware of from our own life experience. Kyle shares his recent challenges with eating, and how that has made him more thoughtful about the human cost of decisions we make with our code and design.
Issue No 23
Ismail has a good deal of experience with Examine and Umbraco's search and is partnering up with Umbraco HQ to provide the new Umbraco Examine course. In this article he shares his history with Umbraco and Examine, and what you can learn about in the upcoming course.
40% of people will abandon a website that takes more than three seconds to load. That could be a lot of missed conversions for your company or client! Google's Accelerated Mobile Pages (AMP) can help with that, and Alex Vilmur is here to help us get up to speed with AMP.
Issue No 22
The Umbraco community, with its tight-knit nature, can be fairly intimidating at first glance for those on the outside looking in. But as Carole learned last year in her first CodeGarden attendance the community is great once you give it a chance, and she's here with advice on how to break the ice and get involved, and for veterans on how to approach newbies looking to join.
The grid, one of our favorite tools, gets better by making it beautifully strongly typed, more extensible, and incredibly searchable. Anders is here to walk us through how to set up our models, render them, extend them, and use them with Examine.
Issue No 21
As the force behind the Umbraco UK and Umbraco Poland festivals, The Cogworks has learned a lot about what is needed to run an Umbraco Festival. Their very own Sam Bailey shares their experiences in running festivals, the role of community in them, and gives advice for those looking to operate their own.
It's a new year, and that means a new round of festivals to plan on attending. Erica walks us through why festivals are important, how you benefit from attending them, and tips on how to convince your boss to send you (or why you should send yourself!).
Issue No 20
Umbraco lets us build sites virtually any way we please, which can be both a blessing and a curse with an overwhelming range of choices. Nicholas is here to help with a technique he thinks virtually everybody can make use of: making websites with widgets using Archetype and Ditto.
The simplicity of Umbraco's backoffice UI can be quickly lost when we step outside of standard website content and into custom territory and "bespoke" development where inconsistent Bootstrap-based UIs and buggy editors raise their ugly heads. Thankfully, UI-O-Matic, now at version 2.0, is here to help, with Matt showing how we can all save us from ourselves.
Issue No 19
Adding personalisation to your site can be hard, creating an obstacle of time and money that keep many from attempting it. Ondrej walks us through some of the difficulties and shows us how to quickly set up A/B testing in Umbraco-hosted sites using Personalisation Groups and uSplit.
Adding an eCommerce store to an Umbraco website has become even easier thanks to FastTrack, a starter kit for Merchello, the open source ecommerce solution. Lee Messenger takes us through the steps to get a store quickly up and running using these two packages.
Issue No 18
Importing custom icons into the Umbraco backoffice isn't difficult, but updating your icon fonts can be a tedious procedure. Søren shows us how to use the Gulp task runner to do the heavy lifting when creating and maintaining your custom icon fonts.
Issue No 17
Working remote can seem like a dream to a cubicle coder. No commute. No pants. No boss over your shoulder. But when you work where you live, your "office" and your life can become a cluttered mess. Janae gives practical advice on how to declutter your remote work life in order to safeguard both your productivity and sanity.
Lars-Erik thinks developers might be too addicted to mapping content to view models, creating headaches in the process that we could avoid by using the adapter pattern instead. Follow along as he makes his case, showing how we can use adapters and stop mapping in Umbraco.
Issue No 16
Sometimes a project's Umbraco back office requires a good deal of extra functionality. So much so that you'd like it to have its own section. But how? Anders walks us through adding custom sections and trees step by step, with a little help from some familiar Umbraco animals.
What is the "Managed Extensibility Framework"? How do you use it with Umbraco? And will it make your life easier as a developer? Michael has the answers to all these questions, showing how this composition framework can simplify your code.
Issue No 15
Optimizing your site's web performance can be intimidating and sounds difficult. But as Matt shows us, there's several techniques that you and your organization can start implementing today to improve performance and make a faster, better web.
Umbraco Migrations aren't new, but since v7.3.0 custom migrations have allowed for more exciting use of them. Follow along as Jamie describes how fellow Umbraco community members inspired and helped him in the creation of his Umbraco Migrations Viewer package to track custom migrations without logging into a server.
Issue No 14
For some potential clients, the perception can exist that open source software's value is as low as its free price. Andy helps turn around that misunderstanding by describe the real source of value in products like Umbraco to clients.
As Darren Ferguson found out the hard way, there's been breaking changes in authenticating to Umbraco using the Active Directory since 7.3. Fortunately, his pain is our gain, as he outlines how to accomplish it in our brave, new world.
Issue No 13
Deserialization is hard, with a lot of tricky situations that can arise. Nicholas Westerby has walked through this dark land and faced its dangers firsthand, and fortunately for us he's willing to share the techniques he used to defeat the deserialization beast.
Third party solutions can make unit testing a painful experience for any developer. Umbraco is no different in this regard. But thanks to Umbraco's open source nature, there are some less restrictive solutions available than in many other projects, and Sam Sussman shows us how to make them.
Issue No 12.5
Coming all the way from Oxfordshire to San Diego, GrowCreate's Adam Weston shares some of the highlights from the sessions he attended at this year's uWestFest.
From boots on the ground in San Diego, to the pre-party, and summaries of the sessions she attended, Kendra shares with us her first experience attending uWestFest from the attendee perspective, as well as from the perspective of the coordinating organization, Scandia.
Issue No 12
There's something about code and a life in development that makes us strive for perfection. Sometimes, however, that way of thinking just makes us miserable. Pete shares how to find peace with yourself and put aside the craft of the industry to get projects out the door and have a happier view of your own measure.
It's no secret that many developers twitch at the thought of working with an SEO agency, and Tim won't deny it either. But what he will show you is how to painlessly set up an Umbraco site to be friendly towards these agencies and minimize their pain (and yours) when optimizing in Umbraco.
Issue No 11
We Umbracians love our community. But on the local level, are we practicing what we preach? Heather Floyd shares her lessons learned in co-running an Umbraco meetup in NYC with advice that you can apply to bring Umbraco to your community.
Creating an Umbraco project with separate authoring and delivery environments is no easy task. But once accomplished, it provides clients with benefits such as added security and quick recovery from a site being compromised. Thankfully, Brittany Dufort is here to walk us through the process step by step, telling us why, what, and how to set it up.
Issue No 10
As we face challenges and accumulate failures, it can be easy (especially in the dark winter season) to become negative, both to ourselves and to others. Chriztian Steinmeier shares his technique for combating this mentality, by collecting his successes and speaking positively.
In the U.S., 74% of elementary girls are interested in STEM. By the end of high school, less than 1% plan on pursuing a CS career. Sydney Cole shares her experience helping establish a junior high girls robotics club, and its incredible results, illustrating the impact that STEM role models and the removal of obstacles can have.
Issue No 9
Manually building a package to share your snazzy code with the Umbraco community can be a major pain. Thankfully, Tom is here in time for the holidays to show us how to automate the package process using grunt-umbraco-package.
The Skrift Team interviews LUX* Resorts & Hotels' online development manager Fuji Kusaka about what its like being an Umbraco developer in the Indian Ocean nation of Mauritius.
Issue No 8
Kyle shows us how to make a custom property value converter, which makes it easy to implement the values from a custom property editor in the razor with strongly typed models without having to manually parse the JSON. It's easier than sacrificing a chicken and ten times more effective!
Tim runs us through some of the dos and don'ts when it comes to upgrading Umbraco sites. He offers advice on common gotchas and pitfall, advice on when to upgrade versus when to scrap and rebuild, and resources from others who've been there, done that.
Issue No 7
Jeffrey takes a deep look at the User section in Umbraco, offering a detailed proposal on an overhaul to improve its security features and usability.
Lotte puts forward the case of using HTML Helpers when using strongly typed models in Umbraco, explaining why the extra keystrokes involved are a worthwhile investment.
Issue No 6
Many Umbracians don't work in agencies, and instead are part of companies where software isn't directly making the money. As such the team is often small, even just one person toiling all alone. Kevin teaches us how to survive as a lone Umbraco wolf.
You've mastered how to code in Umbraco, creating complex websites with an easy-to-use back office experience. But do you know how to sell them? Theo dives into the strategy behind selling Umbraco to clients, from one business to another.
Issue No 5
Every project has a starting point, and Jeavon gives back to the Umbraco community by sharing Crumpled Dog's project structure and starting process for anyone to use.
Deploying Umbraco sites can be a pain thanks to content in the database that is outside of source control. Aaron introduces Chauffeur, an Umbraco CLI that can help automate and improve your Umbraco deployments.
Issue No 4
The assistant organizer of the London Umbraco Meetup, Ravi Motha discusses the combination of passion, hard work, and craziness that it takes to operate a meetup for the Umbraco community.
Personalisation of website content is a theme Andy is hearing more and more from both his clients and in his project team conversations. Whether it be an e-commerce site looking to put the right products in front of customers or a charity looking to lead with the appropriate content for a given user persona, there's regularly a need to go beyond just a single view of content per page.
Kyle talks about his fledgling experience with travel and its connections to Umbraco, and his interest in the experience of Umbraco developers outside of America and Europe.
Issue No 3
Ditto is a new Umbraco package for providing strongly typed models for your MVC views. James South shows us how to use it and shares why he thinks it's the right tool for the job.
The remote working style is not for everyone. Some of us live it, some of us desire it, and some of us are skeptical of it. Bob Baty-Barr breaks down a typical day in his life, and why it's the right fit for him.
Skrift's Erica Quessenberry talks about how her international experiences drove her to want to improve people's lives, and her realization about how the web industry does it every day.
Issue No 2
The Grid editor is one of the biggest new features to be added to the Umbraco 7 backend, providing flexibility for content editors. As one one of the creators of the Grid editor, Antoine Giraud walks us through lessons on using the grid through the experience of developing ten client sites with it. He also shows us LePainter, a new package that provides the ability to preview Grid editor content in the backend.
At Skrift we can't get enough of what it means to be in a community as connected and friendly as Umbraco's. Our own Janae Cram discusses her own past struggles to find a group to belong to, and what community, especially the Umbraco community, means personally to her.
Issue No 1
Back before Umbraco 7, uComponents provided us with a cornucopia of useful datatypes and features. However, Umbraco 7's new backend ended uComponents' reign, and with it the handy tools many had come to rely upon. Dave Woestenborghs will show us that not all is lost, though, thanks to the nuPickers package and its new set of property editors.
The best years of our lives are spent doing work. But is the work we're doing satisfying, or are we just working for money? The most common regret people have at the end of their lives is to not have had the courage to live a life life true to themselves. Doug Robar shares his own struggle with transforming a busy life into a meaningful one, in the process sharing advice we can all learn from.
Kyle talks about one of his experiences with the Umbraco community and introduces both Skrift and its crew.