Orchard Harvest conference, day 2
Just as on the first day we're reporting in live from the 2017 Orchard Harvest conference! This blogpost will be updated as we go, so make sure to check back!
Bertrand is doing the same thing again, so make sure to check out his blog for updates too. Antoine again as well, so also check out his blog.
Theming in Orchard Core CMS by Steve Taylor
- Steve is from Avastec and works extensively with client-side technologies.
- He'll live code a new Orchard Core theme based on the Masonic Wordpress theme.
- A sneak peek into the new Orchard theming, also the casual use of Razor Tag Helpers for including resources, displaying a menu and a zone.
- The theme makes use of a Gulp pipeline for asset building.
- A sneak peek into the database storage format of Orchard Core and creating theme settings.
- Highway to the pager zone. (Sorry. Hate Salute Benedek for the joke.)
- Topic of the day: Statue of Liberty. We should have a Statue of Orchard. It could be a large monolith. (That, when you look closer, is built of beautifully crafted small, loosely coupled bricks.)
- Setting up indexing and adding a search box. Quite similar to Orchard 1.x.
- Taking a look at some of the familiar Orchard concepts from the admin to the extent needed for a theming demo: managing content types, adding menu items, widgets...
- If you use a lot of stuff the cool kids do like Angular and Knockout there's something for you.
Present and future of Localization in Orchard by Benedek Farkas
- Benedek is from Lombiq, leading the development of Orchard client-projects and contributing bugfixes.
- He also asked us to take pictures.
- Lombiq does a lot of things with Orchard, so we'll refrain from listing those 96 things here, you can see for yourself. Benedek does a lot of things with Orchard too, including catering for the translation packages.
- How is "orchard" in various languages? Turns out probably we're best off with the English one.
- Word of the day: eltöredezettségmentesítőtlenítetthetetlenségtelenítőtlenkedhetnétek. You should only drink as long as you can pronounce this.
- When in doubt, use T-strings: Wrapping your user-facing labels into
T()is the bare minimum. But it's easy to defeat the purpose, so here are some tips.
- Extracting T-strings from code with Vandelay Industries. Unfortunately the module is only compatible with Orchard 1.6, so please personally and repeatedly nudge Bertrand to update it. He'll appreciate the moral support. The module supports 1.10.x.
- Translating UI strings on Crowdin, for built-in and third-party modules. Klingons are really behind on translating Orchard. Head over to Crowdin and contribute some translation, Orchard needs you!
- Translating content items on the example of the Atlantis Programs & Pedalheads website. Also including some synchronization features to sync some data from the master item to the localized versions. Similar improvements are coming to Orchard itself too.
- Localizing Taxonomies and content fields, the new way.
- Design notes on improving localization.
Building Client-side Apps and Components for Orchard by Daniel Stolt
- Daniel from IDeliverable returns.
- What's a client-side component? Shifting from the server-side to the client side.
- When do you want to use a client-side component? Mainly if you want a modern UX without page reloads.
- Various ways to create such components in Orchard, the simplest being a Layout Snippet.
- Demo of a component displaying stock market information. You wouldn't want that delay page load.
- Utilizing Orchard's Gulp pipeline for client-side assets. Do we put output files into source control? It depends, but preferably not.
- Configuring a client-side asset build pipeline with Gulp.
- If you don't know Browserify, check it out, it's good for you.
- Angular routing and how to combine it with Orchard's routing.
- Ways of runtime module loading. It will be awesome with HTTP 2.
YesSql, what's that and why do I like it? by Sebastien Ros
- An ad-hoc, unplanned session by Sebastien about YesSql.
- It's a document database layer using SQL as the data store, so you get the best of both worlds: A trusted, tested storage with a fancy flexible data model.
- YesSql is also the data layer of Orchard Core.
- The plural of "index" is "indices". Learn this and you can look educated among your peers. Bonus: Do the same for "medium" and "matrix".
- Demo of the various use-cases you'd expect from such a data access layer by looking at the tests. Interesting clever querying and indexing concepts.
What's next for .NET Core and C#? by Bertrand Le Roy
- Bertrand from Microsoft gives some insights into the future as we know it.
- It's multi-platform, which is a good thing. You'll need VS 2017 if you're using VS, which is bad thing. Project.json is dead and csproj is back, which is kind of a mixed thing. But this csproj is not the same csproj!
- One project system across all platforms: Now a bearded guy with a Linux laptop, a hipster with a MacBook and a cool engineer with an awesome Windows laptop can walk into a bar and be one .NET development team, not the start of a joke.
- We've seen some XML templates, but since it's XML no one will ever want to look at it, so whatevs.
- There's the One SDK running behind all IDEs, which is awesome.
- The .NET command line got even better, so you can feel like a Hollywood hacker. Even the Orchard command line could be part of the .NET CLI.
- The solution file format hasn't changed, which is sad.
- Introducing .NET Standard: one .NET API to use across all platforms, when writing .NET Framework, .NET Core or Xamarin apps.
- .NET Standard 2.0 will contain all the APIs .NET Framework has (minus the Windows-specific stuff). See for yourself on https://apisof.net/.
- What's up with C#? Everybody uses C# and everybody loves C#. No further questions.
- Bertrand just showed an array initialization that could be the prime exhibit in the Museum of Strange Brace Styles. And remember there's a thing called Pico.
- What's new in C# 7? Here's a recap.
- Pattern matching can be familiar from functional languages, but it has always long been a part of hardware description languages (and the wider concept in logic circuit design). And with Hastlayer you can create hardware from .NET!
- The holy trinity of C# language principles: expressiveness, convenience, performance, safety. Well, this was four.
- Some exotic things possibly coming up with C# 8.
Orchard Core CMS by Sebastien Ros
- The goals of Orchard Core are like new year's resolutions you actually can keep: be worse at everything. Just kidding.
- Major changes: Built on ASP.NET Core, document-oriented storage (with YesSql, see above).
- The admin theme uses Bootstrap and there is no bug.
- The admin menu is now also a standard menu, so it's extensible in a better way.
- You can also configure the admin theme as easily as the frontend theme, neat!
- The basic content editing UI is in principle the same as in Orchard 1.x so you won't be confused.
- Content parts can be attached to a content type in multiple instances.
- Various things have changed a bit or a lot (even if not too apparent from the UI): Blogs use the Lists feature (so blogs are just a Lists configuration, not a feature written from scratch), widget layer rules can contain C# (and widgets can be dragged between zones from the UI)...
- New content type: Flows. These are basically widget pages, plus more.
- Recipes are now in JSON, not XML, and can use dynamic placeholders evaluated during cook time.
- The thing is fast, even without caching. >2000 request/s on a dev machine while debugging fast. And uses much less memory too.
- See the roadmap to get an idea of when Orchard Core will be ready.
Panel with Daniel Stolt, Sipke Schoorstra and Zoltán Lehóczky
- Merging localization-related changes: Will mostly be done on dev, because breaking changes are allowed there.
- What about the new frontend theme? It's on Ryan Drew Bernett's branch (or maybe in a branch in the official repo). The design goals are mostly satisfied, but theme settings are not implemented.
- Are there any goals to make Orchard competitive against e.g. Wordpress? More themes and out-of-the-box site solutions would make content editors happy. That's true, but Wordpress is just a blog engine, even a lot of Orchard devs use Wordpress for their blogs. Orchard is mostly targeted at businesses.
Antoine Griffard said
YesSql doesn't run under Orchard Core => it is Orchard Core that uses YesSql for the datastore.
Zoltán Lehóczky said
Thanks Antoine, that was the intention with that sentence. Made it clearer.
Vandelay supports recent Orchard builds. Just get it from GitHub, not the gallery. Also, it's octopuses.
Zoltán Lehóczky said
Fixed it. And you're right about octopuses, so added an actual example.