Raven.Studio.Html5 is a replacement of the old Silverlight Studio, built using modern web technologies.
Raven.Studio.Html5 is a single page application (SPA) with no server-side component, communicating only with a Raven server. It uses Durandal.js to partition the app into logical modules, Twitter Bootstrap for a consistent UX, KnockoutJS for data-binding, and RequireJS for loading modules on demand.
The application code is written in TypeScript. TypeScipt 1.0 is required to compile Html5 studio.
- Index.html - this is the single page hosting the app.
- /App/common - app code shared across multiple views
- /App/commands - all communication with the server is done via a command class. Each command should derive from commandBase, which provides support for things like HTTP GET, POST, etc. as well as error handling.
- /App/models - classes that model the data we get back from Raven, e.g. collection, document, etc.
- /App/viewmodels - a class for every view. The class contains data and logic for a view. For example, documents.ts is the viewmodel for the documents page. Shell.ts is of particular interest, as it hosts the application shell, such as the main menu, footer, etc.
- /App/views - HTML page for every location in the app. For example, documents.html is the view for the documents page.
- /App/widgets - Contains custom widgets used in the app. Each widget has its own folder containing a view and view model. For example, the documents grid is a custom widget.
- /Content - images, fonts, CSS/LESS. Of special note is App.less, which contains the styles specific to the app.
- /Scripts - Vendor scripts (jquery, Knockout, etc.)
- /Scripts/typings - TypeScript type definitions for 3rd party libraries.
Running the app
Build and run the Raven.Server project. Launch a web browser to locahost:8080, and the Studio will appear.
To debug the TypeScript inside Visual Studio, set a breakpoint as usual and start debugging in Internet Explorer.