Download MVC Widgets from the New Marketplace
We have just launched a new MVC Marketplace on DevNet so that you can easily download components made by fellow developers and share your own.
Introducing the New (MVC) Marketplace
The marketplace is a part of DevNet that groups valuable extensions like modules, form controls, and web parts. It has been on DevNet since the beginning and over time collected a lot of valuable submissions, including a web part for infinite scrolling, a module for importing bulk data from spreadsheets, payment gateways, you name it.
The majority of these extensions were built for Web Forms. Now, with MVC taking the lead as the recommended development model, and Page Builder replacing Portal Engine, developers gain more responsibility and are required to do more code than before. That has been our main driver for building a new Marketplace. To help developers exchange code and avoid duplicated work.
We Love Open-Source
In the past, extensions were sometimes delivered as code, sometimes as binaries, sometimes required external registration, and were distributed under various licenses.
We wanted to take a different path. We love open-source. It's so straightforward to just write code and show it to the world. Other developers from the community can help with reviewing and enhancing your component, and you will still be the hero. The new Marketplace allows everyone to see the full source code of submitted extensions. This is the initial way of their distribution. If you like a thing, just clone or download it, and use it in your project. NuGet distribution is also possible, but optional and not required.
Download an MVC Widget
But not just a widget. You might need a section or a template too. They all share the same process. Go to the new DevNet Marketplace and filter the controls to find the one you desire. The link will take you to the respective repository where you will find all code files. Every repository is required to have a descriptive README file to help you with incorporating the control into your project.
Let's take a look at the first MVC widget - Youtube video. The link "Take me to the project" directs you to its GitHub repository. In the README there is an animated GIF showing what the control does. So far, so good. Instructions below the image tell you to copy two projects from this solution to your MVC site and create a reference. After a quick build, you can add videos to Page Builder sections. Yay!
So it definitely pays off to visit our Marketplace before implementing a new control for your website. But what if you don't find a control that fits your scenario? In that case...
Share an MVC Widget
We talked about building an MVC widget in a few previous articles on DevNet. Essentially widgets are very similar to other components like sections and form controls. Their logic is in Controller actions, the database model (that is what the widget needs to store in db) is MVC Model, and HTML output is stored in View.
Many developers repeat this journey from model to view many times. They each create very similar common widgets that are used on almost all websites. Take Google Maps as an example. Nearly every website needs one. If a developer builds a Google Map widget and shares it with the community, others save time by reusing the code. And because someone else may need to create a widget displaying a weather forecast, by sharing it, the whole community benefits.
So where do you start?
MVC Starter Project and Guidelines
If you are starting on a green field, it's easy. Navigate to the GitHub repository, where you will find an MVC starter project. You will need to install a backing Kentico instance, but that takes only a few minutes if you follow the instructions in README. Right after that, you can start creating code files and implement functionality.
If you already implemented an MVC widget or other control that you want to share, that's fine too. We just kindly ask you to follow a few basic guidelines that help us maintain the Marketplace and in the end, ensure submissions are of good quality.
Your control has source code available and is hosted as a public repository.
Your repository has a README and explains to other developers how it should be integrated in their projects. Even if it's a very easy widget or form control, your fellow developers will appreciate your helping hand.
- Functional with the latest major version of Kentico
We aim to keep a high quality of all Marketplace submissions. If a developer downloads your code, we want them to be happy with it. Therefore, please ensure your implementation always works with the latest major version of Kentico.
These are the basics, but you can also take a look at the complete checklist here.
Submitting a Widget to Marketplace
When your control is ready for the world to see, submit it to our Marketplace. Firstly, place the implementation online in a public repository. We use GitHub, but feel free to use any platform you like. If you need a little help, take a look at this article or get in touch with us on Gitter.
The list of controls in the Marketplace is based on a single JSON file in our repository. So how do you add your repository to the list? Fork the repo, adjust the file, and submit a pull request with your change. We will take a look if your repository is public and the extension matches the checklist, then confirm your change. If you haven't created a pull request yet, take a look here. And that's it!
Support and Help
The feeling of submitting that pull request, scheduling an article to be published, moving the ticket to Done, it all feels like a victory, right? And it is! You should be proud of yourself for helping the developer community.
But time flies. As people see your code and want to use it, they may struggle. Sometimes they forget to copy-paste some files, sometimes their project is targeting a different .NET framework, or they need to adjust the HTML output, but don't know how. In these cases, they will seek help.
It's important for us that every developer gets it. If you do not want to support your component yourself (in target repository issues, for example), that's fine, but please state so in the README. Developers can then ask on StackOverflow or Gitter where they will get immediate help if they know where to look for it.
Maintenance and New Versions of Kentico
All the controls in the new Marketplace should be functional with the latest version of Kentico. The README file needs to always contain information about supported versions. When a new version of Kentico gets released, we strive to have all controls compatible with it as soon as possible.
Download, Download, and Download Some More
The new DevNet Marketplace is already released and ready for your visit. As the number of controls grows, your MVC development will get faster and easier. Help us by sending your code and be part of our great developer community. You will love it!