This is an official repository for community extensions and controls. Feel free to send us pull requests with your contributions.
- Each control should has its own directory in the
Controlsdirectory (e.g.Controls/Select2). - Each control directory should contain the
srcdirectory. - The
srcdirectory should contain theDotVVM.Contrib.Controls.slnsolution. We plan to create NuGet packages for each control soon. - Each solution should have the
DotVVM.Contrib.Controlsclass library that contains the control itself (e.g.Select2.cs), and the extension method which registers the control congiruration (e.g.Select2Extensions.cswith theRegisterSelect2Configurationmethod). - Each solution should have the
DotVVM.Contrib.Samplesweb app that shows how the control is used, and allows to manually check the control functionality. - Each solution should have the
DotVVM.Contrib.Testsproject with Selenium UI tests (and other unit or integration tests, if necessary). - If the control register some resources, these should have unique names. For example, the
Select2control registers the resourcesselect2(a JS library),select2-css(a CSS file for Select2) anddotvvm-contrib-select2(a JS file that registers Knockout JS binding for the DotVVM control). All controls should follow this convention. - All Knockout bindings should start with
dotvvm-contrib-ControlNameordotvvm-contrib-ControlName-PropertyName, if the binding represents the specific property of the control. - Each control should be registered using the tag prefix
dc(which stands for dotvvm-contrib). - Each control directory should contain the
readme.mdfile which briefly describes the control and shows samples of its usage.
We are very grateful for your contributions. We hope that you'll find this repository useful.