Martin Fuchs wrote the original explorer for ReactOS 0.2.0, the first release with a graphical user interface. It provided the functionality a user would expect of explorer, with a look and feel mimicking Windows Classic. A lot of needed functionality was unimplemented at the time of its design, leaving explorer to implement missing pieces that should have been provided by other components. Martin had to add many hacks and clever workarounds to get the functionality he wanted. It didn't help that most of it what he needed was undocumented by Microsoft. The project had gained a working shell, but one that was inherently incompatible to Windows.
From the start, it was known that the shell would one day need to be replaced by one compatible with Windows. Developing a new explorer would be a titanic effort. Thomas Bluemel laid the groundwork and wrote a basic shell that worked on Windows. Later on, Andrew Hill refactored the relevant libraries in ReactOS to better fit the needs of the project and the new explorer. Still, this was not enough to match what the old shell provided, or to even have it working properly on ReactOS.
But then you backed the ReactOS Community Edition, and everything changed.
With your backing, the Indiegogo campaign brought in funding to develop ReactOS. Some of that funding was used to hire two developers, Giannis Adamopoulos and David Quintana, to work on the shell and related components. In a third round of development, these two developers made great progress in the shell.
The new shell
The old explorer did a fantastic job presenting a Windows Classic look and feel. At first glance, there's not much different with the new explorer. However, if you take a closer look, you will notice that the start button has bolded text, the toolbars are gone, and some items in the start menu have been removed. This is to be expected, as the focus of this effort was to change the implementation, not the presentation.
As a nice little touch, the banner in the start menu has one of the newer Community logo icons; a small token to the Indiegogo campaign that made this development possible.
Looking at the taskbar properties, the design is much closer to the Windows layout.
Aside from all these visual changes, all the internals have been completely rewritten for compatibility. You wouldn’t believe how much changed! With a Windows-compatible implementation, other software integrates much better: start menu entries, right-click context menus, even third-party shells.
In terms of visible changes, the file explorer has the biggest departure from the old explorer. Its overhaul brings it in line with Windows XP and Windows Server 2003 features and options. A cleaner and easier to use design. See for yourself:
One of the biggest hindrances with the old explorer (right side) was having "Back", "Forward", and "Up" buttons that did not work. These buttons work correctly in the new explorer, making navigation much more convenient and less frustrating.
Copying and moving data has been vastly improved. Thanks to community member Huw Campbell, they can now done asynchronously, allowing explorer to be used while the operation completes in the background. The old explorer did these operations synchronously, meaning it would be unresponsive until it completed the request. No more waiting to move hundreds of megabytes of data before browsing another folder or opening the start menu!
Huw is also responsible for implementing drag and drop support, which works as a complementary feature to the asynchronous operations. Just like in Windows, simply make a selection, drag it to the location you want it in, and drop!
Theming of the shell is important for presentability. It lets a user change the style to better reflect their aesthetics. The old explorer had very limited support for theming. Title bars and buttons would use the theme style, but the taskbar and start menu would not. The new explorer, with its proper implementation, can use a theme’s visual elements across all its components. This is not limited to the project own themes; any theme designed for Windows XP will work, too!
ReactOS includes two visual styles: Classic – what everyone is familiar with – and Lautus. Lautus is a Windows theme designed by community member Maciej Janiszewski. This theme was so well received that design concepts for the Community Edition are based on it.
Many graphical issues have been resolved with updates to the shell and theme. Lautus works substantially better in newer development builds. The taskbar uses the correct theme colors and, after a restart of explorer, the start button icon.
Some theming issues still need to be resolved. As this will be an important feature for the Community Edition, it can be expected that these will be worked on early in the 0.4 series.
There is also an ongoing effort to clean up icons for ReactOS 0.4. Community members Jared Smudde and Henry Tang Ih have been providing the project with newer icons. Many of these improvements may be hard to notice, as it can be as small as rounding edges, improving sharpness, or changing the color. However, these small changes have a big impact on the overall visual quality.
Taking a look at the desktop, we can see some icons that were replaced with newer ones. Can you spot the differences?
On the top is the desktop icons as seen in ReactOS 0.3.17. On the bottom is the newer set of icons used in development builds.
The shell is the cornerstone of the user experience that the Community Edition will deliver. For those of you wondering if the Community Edition will look like these screenshots, don’t worry! It will include its own theme and set of icons that will significantly differentiate itself from the standard ReactOS release. These Community Edition changes will provide the vibrant and beautiful design you got behind.