This blog post provides information about opportunities in the Jamstack for .NET developers. There are doubtless other opportunities for .NET developers in the service-oriented software economy. If you have additional suggestions to share, please comment on this blog post.
Introduction
In general, Jamstack refers to technologies used to manage websites that consist of static HTML that uses JavaScript to invoke web services from the browser. Because it generates HTML dynamically, ASP.NET Core may at first appear as a bad fit for Jamstack, but in fact it can have several advantages.
- Take advantage of the benefits of .NET including strong typing, compile-time error detection, robust testing and deployment infrastructure, performance, existing code libraries, and great developer productivity in Visual Studio.
- Leverage existing .NET developer skillsets.
Generating HTML with ASP.NET Core Razor Pages
For Jamstack solutions that use headless CMS, one of the advantages of .NET is that you can use ASP.NET Core Razor Pages to generate HTML dynamically in previewing environments for CMS users, and then crawl the published pages generated by that same code to generate static files that you can deploy to the website as a Jamstack solution. The ASP.NET Core Razor Pages component architecture lets developers edit HTML components directly and can make it easy for CMS users to select presentation components to use on a page. This blog contains prototypes for a razor pages architecture and a static file exporter using the Contentstack SaaS headless CMS.
- Headless CMS ASP.NET Razor Pages Partial View Component Architecture – Deliverystack.net
- Code Dump: Contentstack .NET Static Site Exporter – Deliverystack.net
- ASP.NET Razor Page Component Model Overview – Deliverystack.net
While possibly not strictly Jamstack, a .NET developer could use the ASP.NET Core Razor Pages to render HTML dynamically.
Whether rendered statically or dynamically, the HTML generated by a Razor Page can use Jamstack technologies, such as to use React (a JavaScript library), to invoke services and render additional features on the client.
Other Jamstack Opportunities and Suggestions for .NET Developers
While they will likely spend more time working with JavaScript, there are several things that ASP.NET developers can do for Jamstack solutions that do not involve generating HTML.
- Implement services for Jamstack applications to support form submissions, gating content, security, search, to expose any internal systems, or for any other logic.
- Use ASP.NET to implement webhook listeners for integrating service-oriented applications.
- Implement public service APIs for consumption by external Jamstack applications.
- Implement ASP.NET infrastructure for use by other (headless CMS) developers.
Of these, most developers working with .NET and headless CMS would likely focus on the first two.
Developers working with .NET may want to focus on related skills for Azure, where ASP.NET may be more common than with other cloud providers.
Developers in general should target “serverless” models that simplify deployment and hosting of ASP.NET applications.
Some .NET resources discuss using JavaScript frameworks used with Jamstack in the context of single-page applications, which is an overly narrow perspective.