We've completed the upgrade of cloudscribe to .NET 5 and released a new version of the Visual Studio template. If you try it out, please do leave a review!

See our previous post for some more information and useful links.

And one of the first things we did was upgrade this site to run in .NET 5 - really easy and everything works beautifully so far. We've also upgrade some client projects without problems.

cloudscribecom home page in .NET 5
cloudscribe.com home page in .NET 5

Next we'll work on Bootstrap 5 views, and after that, .NET 6! As always, feedback welcome in the forums or on GitHub.

This is our first post here since our adoption of cloudscribe from Joe Audette! And it's to let people know we're starting the upgrade of all cloudscribe components to .NET 5. This is a significant upgrade, so we expect it to take a few weeks, and we'll post again when it's complete.

Find out more about .NET 5 here, and the list of breaking changes we will have to look out for!

Side by side with this work, for release shortly afterwards if everything goes to plan, we'll be working on a new Bootstrap 5 presentation layer, that will then become the default for a new cloudscribe project built using our Visual Studio project template

We should probably also mention some of the improvements we've made to cloudscribe:-

  • SimpleContent now has more sophisticated handling of versions and drafts, especially when using Content Templates.
  • We gave the TalkAbout Forums product a bit of a makeover, fixed lots of bugs, and added a configurable file upload capability.
  • When using multi-tenancy we added a new mode to help administrators, called "RootUserCanSignInToTenants Mode"  - see the documentation for more details.
  • We've fixed NoDB bugs that prevented using markdown.
  • We improved the registration page experience and fixed a bug that could cause hangs.
  • And we've fixed a load of other niggles and made lots of small improvements thanks to the feedback from cloudscribe users. Please do post in our Forums, comment on any of our documentation pages, or post issues in the various cloudscribe component GitHub repositories!

And of course we've been using cloudscribe components to build some great new applications for clients, such as the York Historic Environment Record. They love that their projects are built on a fully open source stack, and using cloudscribe means we can focus our effort on what's unique about their requirements and deliver best value. If you'd like help building an application on cloudscribe, please feel free to contact us.

City or York Historic Environment Record website, built with cloudscribe

Wow, it has been 11 months since my last blog post. Time flies, and a lot has been accomplished in that time. I really should have been blogging about various things along the way, but today I will try to provide a summary of news and progress for cloudscribe.

Open Source Improvements

Dynamic Authorization Policies is a new open source project from cloudscribe that started life as an add on product but was recently made open source on github. It allows you to manage ASP.NET Core authorization policy requirements from the UI. cloudscribe Core always provided management of user role membership and custom claims, but typically authorization policies are coded up in startup code which means that in order to change them you have to change the code, build, and redeploy your application. So you could create new roles from the cloudscribe core UI but you could not use the new role in a policy without going through build and deploy steps. Dynamic Authorization Policies lets you manage policies from the UI and therefore provides the final piece of the puzzle for managing access to your site content and features.

cloudscribe Core has some new improvements, including support for LDAP authentication, this work was sponsored by Exegesis Spatial Data Management. We also added an option to force only one web browser session per user, and an option to require 2 factor authentication.

PwaKit is a new open source project that facilitates building progressive web apps that work offline and support push notification. This work was sponsored by our friends at Exegesis Spatial Data Management.

A whole new way of doing localized content has been implemented in SimpleContent but needs documentation and a sample project. There is a github issue about it here and it was sponsored by Domain Integrators.

Commercial Products

In addition to our open source progress, we've also shipped several commercial add on features.

cloudscribe Forms and Surveys Solution provides a super user friendly drag and drop form designer, and provides a content template for SimpleContent that allows you to put a form/survey on content pages. This youtube video gives a tour of the product.

cloudscribe "TalkAbout" Comment System provides a self hosted GDPR friendly alternative to 3rd party comment systems such as Disqus. If you use a free service chances are that you and your web visitors are the product. Such services add numerous 3rd party tracking cookies and collect data about you and your users for their own purposes. All these extra tracking cookies complicate your ability to meet GDPR requirements. By using a self hosted comment system instead you can avoid all those 3rd party tracking cookies and more easily achieve GDPR compliance.

cloudscribe "TalkAbout" Forums provides a self hosted, GDPR friendly question and answer style forum to help you build a community. We just launched our Community Support Forum recently using this.

cloudscribe Membership Paywall provides the tools you need to monetize your premium content. You protect your premium content with roles, and users who purchase membership get automatically granted the needed roles to access your content and automatically removed from the roles if their membership expires. It provides automatic membership renewal using stripe for payment processing.

All of our add on products are free to try, and are included in our latest project template for Visual Studio, so you can easily create web apps with the nuget packages for these features all wired up for you. They do have some nag alerts that are shown every few web requests, by purchasing a license file you can remove the nag alerts.

cloudscribe project template for Visual Studio

As the end of 2017 draws near, it is good to look back at how the cloudscribe set of projects is doing. It has been a busy and productive year with continuous improvements across the cloudscribe projects and documentation along with growing adoption. We end the year with 530 stars for cloudscribe core on GitHub, over 328K downloads in aggregate across the 100 packages that make up the cloudscribe ecosystem. There are almost 1600 installs of our project template for Visual Studio and our analytics show about 29 projects are being created per day with cloudscribe libraries.

I would like to thank everyone in the community for providing feedback, bug reports, and for helping to spread the word to other developers. It has been a pretty good year especially considering that we don't have any marketing budget at all so people have found cloudscribe mainly from github, by word of mouth, from this website, and from a few occasional tweets and blog posts. With your help in spreading the word I think 2018 will be a even better! 

I am very happy to announce the availability of project templates that make it much easier to start new projects using cloudscribe components. Specifically, we have a new VSIX extension that provides a project template for Visual Studio 2017 and a NuGet package the provides a project template for the dotnet new command.

Previously, copying a project from the cloudscribe Starter Kits was the best way to get started with a new cloudscribe project, but now with the new project templates you can create projects with configurations that correspond to the different starter kit project configurations simply by using the available project template parameters. See the document "Introduction to cloudscribe" for more details.

Starting New Projects in Visual Studio

You can download the Visual Studio 2017 extension for free from the Visual Studio Marketplace, or from directly within Visual Studio, under Tools > Extensions and Updates > Online

If you download it from the marketplace you need to double click the .vsix file to install it. In both cases you have to restart Visual Studio for it to become available, then you will see a new cloudscribe project template under C# > Web in the new project dialog.

When you create a new cloudscribe project, another small dialog window will appear to let you choose which data storage platform and which cloudscribe features you want.

Starting New Projects with the .NET CLI (Command Line Interface)

The .NET CLI can be used on Windows, Linux, or macOS. You can install the cloudscribe project template NuGet package with this command:

dotnet new -i "cloudscribe.templates::*"

If you later wish to uninstall it, you can use this command:

dotnet new -u cloudscribe

Once you have the cloudscribe project template installed you should enter the following command to see the available parameters that you can pass to the template in order to choose which data storage platform to use and which features to install:

PS C:\_c\scratch> dotnet new cloudscribe --help
Usage: new [options]

  -h, --help          Displays help for this command.
  -l, --list          Lists templates containing the specified name. If no name is specified, lists all templates.
  -n, --name          The name for the output being created. If no name is specified, the name of the current directory is used.
  -o, --output        Location to place the generated output.
  -i, --install       Installs a source or a template pack.
  -u, --uninstall     Uninstalls a source or a template pack.
  --type              Filters templates based on available types. Predefined values are "project", "item" or "other".
  --force             Forces content to be generated even if it would change existing files.
  -lang, --language   Specifies the language of the template to create.

cloudscribe web project template (C#)
Author: Joe Audette
  -T|--Title                  The name of the project which determines the assembly product name.
                              string - Optional
                              Default: Project Title

  -S|--SimpleContent          Include cloudscribe SimpleContent blog and content engine.
                              bool - Optional
                              Default: true

  -C|--ContactForm            Include cloudscribe SimpleContactForm.
                              bool - Optional
                              Default: false

  -K|--KvpCustomRegistration  Include cloudscribe key/value pair custom registration.
                              bool - Optional
                              Default: false

  -I|--IdentityServer         Include IdentityServer4 (fork) integration.
                              bool - Optional
                              Default: false

  -L|--Logging                Include cloudscribe logging and log viewer UI.
                              bool - Optional
                              Default: true

  -D|--DataStorage            The data storage platform you wish to use.
                                  NoDb     - A no-database file system storage
                                  MSSQL    - Microsoft SqlServer storage using Entity Framework Core
                                  pgsql    - PostgreSql storage using Entity Framework Core
                                  MySql    - MySql storage using Entity Framework Core
                              Default: MSSQL

  -H|--HttpsPort              Port number to use to configure SSL in launchSettings.json.
                              integer - Optional

  -Ke|--KestrelPort           Port number to use to configure Kestrel in launchSettings.json.
                              integer - Optional

  -II|--IISExpressPort        Port number to use to configure IIS Express in launchSettings.json.
                              integer - Optional

PS C:\_c\scratch>

As you can see this is much easier than cloning the starter kits repo and copying an existing project. You have full control over the project name and even more configurable options than what the starter kits provide.

I hope you will give the new project templates a try and provide feedback. It would be great if you could provide a review or rating of the Visual Studio extension on the marketplace site.

One thing cool that I have noticed is that the marketplace shows the number of installs, not the number of downloads, so the number goes down if people uninstall it. That gives us a real honest metric for how the extension is doing in terms of popularity over time.  The NuGet package for dotnet new shows download statistics. Note that the Visual Studio extension has the template embedded inside the vsix file so it doesn't affect the downloads from nuget, only installations from the CLI affect the nuget download numbers.

UPDATE 2017-09-26

Feedback on the project templates has been great and I have continued to improve it. Yesterday I released a new version (1.8) with even more configurable options for SimpleContent and also added an option to set the multi-tenant mode to either use folders, host names or just use a single tenant.

cloudscribe project template options