Our blog contains the activity stream of Orchard Dojo: general news, new resources or tutorials are announced here.

Featured tags

IIS
API
All tags >

Our full Orchard Core tutorial series, the Dojo Course 3 is here!

After a long wait, the new Orchard Core version of our legendary Dojo Course tutorial series is here, the Dojo Course 3! Are you a newcomer and want to learn Orchard Core from the ground up, both from a user's and a developer's perspective? Are you somewhat familiar with Orchard Core but would like to get up to speed and become an Orchard pro? Look no further, check out Dojo Course 3! Dojo Course 3 guides you from the very basics of Orchard Core all up to be able to write your own themes and modules, utilizing various APIs of Orchard. We're publishing a tutorial video every day for 40 days starting on 1 December. So, this is your 40 days of Orchard :).

Dojo Course 2 has been released!

The first Dojo Course was recorded and released in 2013 (not long after Lombiq Technologies was founded) and now we are happy to announce the arrival of Dojo Course 2! The course material has the same foundation (the Orchard Training Demo Module, which has also been upgraded in the past years), but it's updated for the (then) latest Orchard version (1.10.1) and the production quality is also improved. Just like the first generation, these videos were also recorded as part of a university course, but this time host was the University of Szeged, Faculty of Science and Informatics. Thanks for having us! The first hour of videos is available now on YouTube in the Dojo Course 2 playlist - subscribe to our YouTube channel to get notified of the upcoming videos (we will release a few every 2-3 days)! Update (2017. 12. 27.): All videos are now available.

Thank you for everybody participating in Dojo Course!

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! Dojo Course is over - for now. We'd like to thank everybody for following the course and giving valuable feedback! Here's a quick recap of what this awesome experiment was about.

Last lesson: viewers' requests - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! In the last lesson of the Dojo Course, we look into a few topics asked by you! Let's see Facebook Suite, Antispam and C# scripting! Facebook suite: installation and usage of the several widgets that bring Facebook features into your website! Antispam: Orchard offers a few solutions out of the box to fight spam! They are: JavaScriptAntiSpamPart, ReCaptcha, Akismet and Typepad. C# scripting: how to add C# code on the frontend which can be integrated with other features, e.g. content validation and Workflows! Thank you for your attention in this 3 months and have a very good year filled with awesome Orchard stuff! Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in.

Useful and interesting services to enhance your features - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! Dojo Course is almost over, so we move on to the spicy parts of the Orchard API that enable you to do really interesting things! An in-depth recap on what we did so far in our PersonList feature. Content querying: using Orchard's LINQ-like API, the IContentManager service to retreive content pieces (including usage and optimization points). How to integrate your features into the administration menu? Running code periodically using background tasks. Running code at a specified time using scheduled tasks. Creating system-wide event handlers to be able to communicate with other pieces of logic in an even more loosely tied way. And a little addition to migrations: you can implement an Uninstall method in your Migrations class to add some logic which will run when your feature is being removed from a system (hopefully nobody will use it ;) ). Stay tuned for the (really) last part of the Dojo Course before Christmas! Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in.

Client-side development and a little more of the Orchard API - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! This week on Dojo Course we move on to some frontend-related development and see how to use static resources and other important features provided by MVC and Orchard. After that we return to the server-side to learn something new. How to add your static resources to your templates? Script/Style.Include/Require. Some userful helpers to customize your templates. Dynamically creating and displaying a shape. How to protect yourself against cross-site request forgery attacks? Posting forms and using the MVC model binder to check if the entered data in our editor is valid or not. Some debugging and bug hunting (restarting the system solved the mystery). And now, for something completely different: file management in Orchard using the IStorageProvider. Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in.

End of Dojo Course nearing! What do you want to learn a bit more about?

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! The last two tutorials of Dojo Course will soon come - they are already recorded. This brings us to the project works! There are many of you who enrolled to Dojo Course: it's almost time for you to submit the project work if you'd like to get a certificate of accomplishment! To help you (and so you can also watch the last tutorials of course) we've extended the deadline of the submissions: you now have time until 20th December to submit your work. Remember that you can still request us to review your code as explained in the FAQ. Remember: we can only grade your project and thus issue you a certificate of accomplishment if you submit your work! Also, don't forget about the short presentational video! And now something else: on the last lesson we'll mostly hear the students of the university course present their work; however, we'll have some spare time, about half an hour. If you'd like to learn about something that we haven't covered in the course or would like to see an explanation more in-depth about a topic now it's time for you to chime in: submit your idea in a comment here! We'll evaluate the proposals and pick what is the best for that half an hour (maybe a bit more), then we'll publish this very last tutorial later. Time is short: please submit your ideas in the next 24 hours, at least until Wednesday noon, CET!

Diving into the Orchard API - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! This week on Dojo Course we dive into the Orchard API, use some of the build-in services and extending the capabilities of our module to make it even better! Using LazyField<T> to load data lazily so they are only loaded when we really need them. Using Work<T> to load dependencies lazily so they are only resolved when we really need them. Applying the [Admin] attribute for admin-related Getting to know an other Orchard service: IAuthorizer. Creating our own permissions by implementing the IPermissionProvider. Using the ContentManager so we can finally work with content items! Generating ad-hoc shapes and matching them to an actual template. Implementing the IResourceManifestProvider interface for managing static resources. Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Content Part development continued - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! This week on Dojo Course we are giving life to our content part by adding several Orchard-y code pieces to it, though the result is far from being Frankenstein-like. While doing that, we also discover some interesting and useful pieces of the Orchard API. Creating a migration for our Contents feature. Difference between ContentPartRecord and ContentPartVersionRecord: versioning content parts. Making your content part attachable to content types (on the Admin UI). Creating a content type using migrations and attaching parts to it. Creating a handler for our content part to do some plumbing (e.g. StorageFilter). Creating a driver for our content part to cover server-side part of the the user interface interaction. How displaying a shape works, what is DisplayType? Shape templates (also editors) and using Placement. Using InfosetPart to store a part's data in the content item's XML infoset document. This eliminates content part record lazy loading, providing a significant performance gain. The importance of driver shape factories. How to make your content part support importing and exporting? Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?

Data storage and content part development - Dojo Course

UPDATE (2017-11-22): Dojo Course 2 is released with new, updated videos! How to upgrade my table schema? How to store and retrieve records from my tables? How do I upgrade from using a plain set of records to using a content part? This week on Dojo Course we are moving on to uncover the mysteries of content parts. Making modifications to your Migrations classes: how to use the update methods. Quick recap on Dependency Injection and creating a service class to handle our records. Benedek has problems with typing when he knows he's being watched (actually, Zoltán as well) :). Difference between requiring a single and list of dependencies. How to (and how not to) use IRepository<T> to store and retreive records. Based on what we learned about records, we are starting to develop our first content part. Dividing your module into features (subset of functionalities) and declaring dependencies between them. Assigning pieces of code to specific features using the OrchardFeature attribute. Remember: if you have any questions don't hesitate to ask them by creating a new issue in the Orchard issue tracker with the "discussion" label. Make sure to prefix your thread's title with "Dojo Course - "! We keep an eye on these issues. Also follow us on Twitter to get notified about the latest Dojo Course news, including when a new tutorial is posted. Do you have some feedback about the course? Please send it in. Haven't you enrolled yet? Why not do it some time in the near future like right now?