Domain-Specific Language for Web Applications
The source code repositories have been migrated to github:
https://github.com/webdsl/webdsl https://github.com/webdsl/webdsl-editor
Eclipse zips are now maintained again in our buildfarm:
http://buildfarm.metaborg.org/view/WebDSL/job/webdsl-eclipsegen/lastSuccessfulBuild/artifact/dist/
The webdsl.org site’s ancient CSS has been replaced with Bootstrap components.
For WebDSL compiler and editor building and testing we are now using Jenkins at http://buildfarm.metaborg.org/.
Latest compiler jar can be downloaded from:
http://webdsl-2015.ewi.tudelft.nl/compiler/webdsl.zip
Latest Eclipse updatesite is still at:
I’ve added some more detailed instructions in the manual on installing a WebDSL application and its requirements on an Ubuntu server or VPS.
Nightly builds of the WebDSL Eclipse plugin are available through the update site http://webdsl.org/update/nightly. This provides easy access to the latest developments.
WebDSL Eclipse Plugin 1.2.9 has been released:
New syntax for page and template defines (old syntax still supported):
page root(){}
, template main(){}
, ajax template foo(){}
Added db=h2 and db=h2mem options for using H2 database engine
WebDSL Roadmap: http://yellowgrass.org/roadmap/WebDSL
WebDSL Eclipse Plugin 1.2.8 has been released, new features:
override
modifier when redefining a built-in page/template, such as errorTemplateInput
errorTemplateForm
errorTemplateAction
validation templates, accessDenied
pagenotfound
pagesif(e1) e2 else e3
Version 1.2.7 has been released, noteworthy features:
More information about bugs fixed in this release can be found on the WebDSL Roadmap: http://yellowgrass.org/roadmap/WebDSL
Version 1.2.6 of the WebDSL Eclipse plugin has been released, this update includes the following changes:
generated spans
In previous versions, spans were generated around template calls. The span elements received a class attribute containing the template name. The no-span
template modifier disabled this behavior. no-span
is now the default, to avoid cluttering page source with spans. Add the span
modifier to templates that were previously using it for matching CSS rules. Since no-span
is the default, it no longer has any effect, therefore using it will trigger the following warning:
“warning: The ‘no-span’ modifier is obsolete, spans are no longer added by default.”
immutables
Arguments (non-ref) and for
loop iterators can no longer be assigned to, this reduces the overhead of lifting (reference argument is not necessary), and it is also a common source of errors (e.g. when forgetting “this.” and assigning to argument in a setter method). Assigning to such variables will show an error:
“Assignment to this variable is not allowed.”
built-in templates
table
, row
, column
, group
(= fieldset
containing a table
), groupitem
(= row
)
Tables no longer automatically generate rows and columns. This behavior was not very reliable, especially when working with ajax. This change also affects group
, which uses a table
inside. A common pattern was to have a label
with input
in a groupitem
, which automatically generated separate columns for label
and input
, this can be reconstructed by replacing label
with labelcolumns
:
labelcolumns("input i: "){ input(i) }
->
<td><label for="123">input i: </label></td>
<td><input id="123" /></td>
menu
The String
argument of the menubar
template has been removed. menuitems
must be added to applications that were previously using built-in menu templates:
menubar{
menu
{
menuheader{ ... }
--> menuitems{ <---
menuitem{ ... }
menuitem{ ... }
--> } <---
}
}
The Event Planner application tutorial is now available: Tutorials page
We have just released version 1.2.2 of the WebDSL plugin for Eclipse (download here). There have been numerous improvements over the last few months:
We are now more actively using the roadmap feature of Yellowgrass, for keeping track of WebDSL improvements and releases: http://yellowgrass.org/roadmap/WebDSL
WebDSL Eclipse plugin version 1.1.5 includes improvements to the new project wizard. This wizard will now generate a Tomcat server configuration with settings for increased JVM heapspace and permgenspace, avoiding errors when redeploying. A project build will also automatically start the server and open a browser on the root page when the application is deployed. The new convert project wizard allows converting projects that contain WebDSL code to a proper WebDSL plugin project. It can also be used to repair the project configuration files.
We’ve released a new plugin version 1.1.1. The main features of this release are:
Update your installation using the Eclipse Update Manager.
Please provide any bugs, issues and feedback on Yellowgrass.
Manually editing databases, removing database constraints or system crashes can break database integrity. References may break and unique columns may no longer be unique. As of the latest plugin (trunk), WebDSL offers an integrity checker. Targeted at those developers in favor of a little manual database tweaking. Click the ‘Database Integrity Check’ button and you will get a SQL script that prints all database integrity violations. Useful for debugging integrity errors, for reapplying database constraints, or simply for sanitizing your database.
Plugin version 1.0.12 is available, main improvement in this version:
‘build automatically’ no longer has to be enabled in Eclipse, the plugin invokes the Eclipse Java compiler instead of relying on automatic build. Another benefit is that Java compilation errors are more visible (no longer hidden under the ‘problems’ view). If you run into java compilation errors, please report an issue on http://yellowgrass.org/project/WebDSL
The plugin has been updated to version 1.0.10. This update includes recent bug fixes in the WebDSL compiler, and also a new code generation cache optimization implemented by Nathan Bruning.
The plugin (full) build now generates three Ant files with a single task, to make the common build operations more convenient to use:
clean-project
full-build
build-code-only
For more information, go to the plugin page: WebDSLplugin
WebDSL now has its own issue tracker on YellowGrass. It can be found at:
http://yellowgrass.org/project/WebDSL
If you find any bugs, have suggestions for improvements or have any questions, feel free to post an issue.
The WebDSL Eclipse plugin is now available, it includes the WebDSL compiler.
The plugin will be used in the Model-Driven Software Development course for Computer Science MSc students at Delft University of Technology.
If you encounter any issues, or want to give feedback, please use the mailing list:
https://mailman.st.ewi.tudelft.nl/listinfo/webdsl
“The Big Scheme of Things” is a series of screencasts that illustrates the use of WebDSL, by building a (to-do list) web application from scratch. In the first episode I keep it really simple and create a single page app that allows us to add and remove tasks. First I show how to get an even simpler “Hello web!” app running.
http://blog.eelcovisser.net/index.php?/archives/115-The-Big-Scheme-of-Things-Episode-1.html
The main entry point of applications used to be the home() page, but has been renamed to root(), which maps to the / URL. E.g. for an application that is deployed to http://localhost:8080/myapp, the URL http://localhost:8080/myapp/ now dispatches the root() page instead of redirecting to the /home page, which it did before.
If your application does not have a page named root, with no arguments defined, it will give an error message.
WebDSL applications now (svn revision 2922) explicitly use Unicode (utf-8) characters instead of relying on defaults (which often resulted in latin-1, e.g. in a Mysql database). A tool is provided to convert old databases:
1 backup your database (in case the script needs a fix) with:
mysqldump -u dbuser -p dbname > file
2 install the new webdsl and run:
webdsl cleanall build convert-to-unicode
3 deploy the webdsl app:
webdsl deploy
Some random characters: Ωжன்其भुῶنَб
Uploaded a new style for WebDSL.org today. Although WebDSL has some styling abstractions, this was done using a custom CSS. WebDSL templates are automatically surrounded by spans with the template name as class, so it is easy to hook CSS to specific templates.
Released a data migration tool to automatically migrate WebDSL databases along evolving WebDSL applications. Acoda takes two versions of a WebDSL application and a WebDSL database as input and yields a new WebDSL database conforming to the new application.
Welcome to the new WebDSL.org. This site will be the main source of information about WebDSL, a domain-specific language for developing dynamic web applications with a rich data model.