First quarter's product goals
Few weeks ago we published a short overview of Q4 last year’s achievements and milestones like the sensenet 7 stable release. Of course we continue improving the product but another important project is to build a stronger, larger, more active community and to provide useful materials for newcomers in the form of code samples, tutorials and videos. We appreciate every feedback and we strongly recommend to report issues concerning the product or its components and send pull request in case you have any suggestion to improve sensenet 7. Our goal is to build the best development platform for our communnity, and for this, we need your help.
For growing the community we need some experienced and talented developers already working with sensenet. Fortunately we have many people like this in-house. We started a project where every developer needs to achieve some milestones by answering questions on Stack Overflow and sending pull requests like bug fixes or product improvements on GitHub.
For tracking the results and to check other’s statuses achieving these goals we created an in-house website. Here our developers can see every sensenet related open question on Stack Overflow and non-resolved issues reported on GitHub. GitHub and Stack Overflow accounts are connected to this site, so we all have up to date info about our progress achieving these goals.
In the beginning of this new project we are collecting feedback from our developers and improving the system if required. The goal is to have a helpful and active community with strong in-house contributors who are the most experienced sensenet developers on Earth.
The DMS MVP already introduced in our recent post have a bright future as we will publish the package as a working solution as soon as possible so you’ll be able to test and improve it by reporting issues or sending pull requests. We appreciate every feedback and suggestions.
As sensenet 7 could be a robust content repository for every one page app (like DMS MVP above), we created two collections of UI components and controls for sensenet written in our favourite JS frameworks, namely ReactJS and Aurelia. In Q1 2018 we plan to publish a 1.0 version of these packages and provide some documentation as well so it will be easier for you to start working with SN7 using one of these frameworks.
Refactor search module
Search module refactor is also a high priority task for Q1. The two main missions in this topic are the following:
- Make a generalized layer for information retrieval operations (indexing and querying). This will decouple search operations from the underlying technology.
- Lucene Search service: create a standalone, separately deployable service based on the current Lucene indexing implementation. This is important in a cloud environment, where you cannot have a local index on the web server.
Messaging and caching
As the current MSMQ messaging implementation is not feasible in the cloud, we will implement a more modern server-to-server communication architecture that will help operators use sensenet in an auto-scalable cloud environment. Cloud compatibility is a must have feature these days, that’s why we are working on solutions like Lucene search service mentioned above or the replacement of the MSMQ messaging, so sensenet could go to the cloud in the near future.
As SN7 introduced a new era, our developers who are working with sensenet day by day, also need to learn some new skills to take advantage all the features of the product using modern programming languages. These in-house trainings involve the following skills
- TypeScript, ES6+
- ReactJS, Redux, Aureliajs
- sn-client-js, sn-redux and other sn related frontend packages
- tools: testing, CI, documentation, linters
These materials will be mostly in written format but video tutorials will be published as well, for example about the sensenet 7 install process.
Most of our components are available as npm packages like sn-client-js. Introducing “sensenet” scope in our naming conventions is a must, so our packages will be well organized, and also because npm treats these grouped packages a bit differently than regular unscoped packages.
In the next few months we would like to make some optimizations on these packages as well. Split them into smaller ones if neccessary and carry out a massive code decoupling and refactor. A strict review on our 3rd party dependencies and to allow client functions to work with immutable objects are also amongst our goal for the first quarter of 2018.
SN7 stable release was a huge achievement for the team but we cannot stop here. Components available in previous versions of sensenet like preview generator, document viewer or adsync need some modifications to work flawlessly in the new SN7 environment. Our plan is to publish these updated components as soon as possible and work on new components as well, first the Azure Blob Provider. When these components will be available, we can start thinking about the migration of current projects to sensenet 7, because all of the features (except some retiring ones) will be available in the new version.