Meet the new love of my life, her name is Aurelia.io

YEZZZZ! I can finally start spreading the love of the goodness that is named Aurelia, with which I’ve secretly been in love with for a while now. I meant to write about her last week, but an NDA contract prevented me from bragging about her beauty before Rob did.

Wait, who’s rob? Who’s Aurelia? What does this have to do with anything? How does it affect me? And you?

Rob…

Rob Eisenberg’s one of the most genius architects of our era. I’ve been a fan of his work since the Caliburn days, a framework he wrote which made MVVM for WPF/SL/WP/… as easy as possible by reducing boilerplate code and using conventions instead.  Over the last couple of years, Rob created an HTML/JS framework named DurandalJS, a masterpiece which never got the credit it deserved.  Well, except from the fine folks at Google, who hired Rob to help build out the next generation of their popular AngularJS framework.

Late 2014 however, Rob left Google because his colleagues were not as visionary as he was (my words, he was more diplomatic in his goodbye message) and started assembling a team of world-renowned experts (and me) to focus on the first of the next-generation javascript frameworks…

Aurelia…

So ok, enough about my man-crush on Rob and his hyperthreaded brain, let’s focus on this beauty of this open-source framework that’s called aurelia. Why would this framework be any better than it’s “competitors”, like EmberJS or the next AngularJS?

I could copy its major strengths from the aurelia.io homepage,  but I’d rather highlight three really important ones (which is not to say you shouldn’t head over to aurelia.io right now to look at her in her full glory):

  1. ES6. If clarification is needed: ES6 is short for EcmaScript 6, the next generation of javascript. It’s just a (finished) specification at this point, since none of the major browsers actually fully support ES6 yet, so aurelia is written in ES6 but then ‘compiled’ into current javascript (ES5).  In the gitter channel, an open chat channel where you are all welcome to discuss anything aurelia, I’ve seen Rob look at the next-next HTML (thus: HTML7) specs, to analyse how we should build the best (most future-compatible) API’s. Long story short: Aurelia is ready for the future, today.
  2. MV* architecture with conventions. Lots and lots of conventions. Aurelia assumes a ton of things out-of-the box, and you can add your own conventions. Got a VM named customer.js and a V called customer.html? Aurelia saw what you were trying to do there. It wasn’t that hard to get either, so why should developers have to write code/configuration to bind those two together? Write code only once and especially: avoid writing unnecessary code (and yes if you don’t like a convention you can always override it). Which seamlessly brings us to the next highlight:
  3. Extensible HTML… As a technology enthusiast, I get a nerdgasm just looking at aurelia. However if one must build large LOB applications, writing HTML all day is too granular to make any kind of progress. However, thanks to aurelia’s extensible HTML compiler, things like <barChart xAxis.bind=”months” yAxis.bind=”sales” /> all the sudden, become valid HTML.

Pause.

Think about that for a moment…

This means that me and you and anyone can write reusable building blocks which are an abstraction level higher than HTML, without actually hiding/losing control over the underlying technology stack!

Me? You?

You and me shared a love for RAD,that’s for sure. And Aurelia is not RAD at all and certainly not a better version of anything like LightSwitch.

Yet.

Aurelia is only the tip of the arrow currently loaded on my bow.

Late last year, three of my LightSwitch customers (and two more are in discussing phase) and I actively started looking at a newer tech stack to phase out LightSwitch if the day would ever come LS is announced ‘dead’.

We looked at so many RAD frameworks and were impressed by a quite a few, but convinced by none. Most RAD frameworks work great for small and simple CRUD apps, but suffer from either poor testability, modularity, scalability, extensibility, most likely all of the above.

Hence, we’re currently building out a super-framework ourselves based on Entity Framework, Web API (CQRS architecture) and aurelia. I use the term super, not only because it is super and kicks ass, but mostly because the intent of our venture is to take all boilerplate and repetitiveness out, and build out applications using a ‘higher abstraction of code’. A super-set of traditional code. Much like LightSwitch used graphical designers as a higher abstraction of all the code goodness it generated “under the hood”, however this time we’ll still have full control of what’s on top of the hood, “under the hood”, and the hood itself.

This’ll keep me very busy during the first part of 2015 (during which I still have LightSwitch projects and will share whenever I can share any LS goodies), then afterwards will undoubtedly be a large part of my future for quite some years to come. Perhaps your future too, as it’ll all be open for your LOB app development pleasures. If you’re in a position where you need a modern, open and future-proof stack for business app development now, please do get in contact so we can work together asap, or at least let me know about your special requirements so I can make sure we can develop this thing as smart as possible.

The future starts today. I haven’t been so excited about tech since a few years ago and am really happy to be a part of, from the start of, this beauty.  Aurelia really is the first of a next generation of frameworks, you owe it to your future self to take her out for a spin. If not today, then tomorrow.

If she looks too high-tech or too granular for you or to make LOB apps today, give it a little bit of time too. We’re at the start of this journey and I’ll put in the effort to make sure she’s worth the venture!

 

Advertisements

29 thoughts on “Meet the new love of my life, her name is Aurelia.io

  1. Oh, well. It surely does not look like a lightswitch replacement. I had looked at the next gen durandal video yesterday, and yes I can see that it’s possible to build data driven sites that way and it (and aurelia) must be a major advance on what’s gone before in the js world. But also you are probably much more of a code head than I am and clearly have many years of exposure to this stuff (micro caliburn etc).

    The kind of complex screens I put together for my clients, I just can’t imagine how I could ever come close to that with these kinds of tools. I do like the model aspect durandal and aurelia; I see good database design as the core to an effective and durable application; but the UIs I am used to creating are so much richer than most web apps. I had hoped that lightswitch would eventually make it there, but at this point it’s obvious that it may not. To enable me to put a complex front end on a complex schema without months of time I need (I think I need) an IDE that is either wysiwyg or works in an outliner metaphor like lightswitch does.

    Anyways thanks for the intro to aurelia and I will certainly check it out. It’s not going to be easy for me to do that as all of what it is about is completely new to me.

    • Hey Lighthoss!
      The outliner metaphor is exactly what I’ll be building on top of aurelia to make sure development is fast and non-repetitive. It’ll be a little while before I’m able to support (documentation etc) other people on the framework, but when I am I want to make sure I can handle your complex screens too. Would you mind sharing a bit more about what makes these screens of yours so complex?
      Thanks!!!
      Jan

      • I come from building fat clients so building rich UIs is ‘normal’. My apps are very popular with my clients because the screens tell them a lot and are very responsive. I am not a specialist in any business domain. At least in my experience, LOB apps can almost always benefit from rich pages/forms.

        With outliner tooling for the UI I can probably get what I need.

        No matter what, I am going to experiment with aurelia. Thanks again for the introduction.

    • Dammit Josh,
      stop being two blog posts ahead of me in my comment section 😀
      You should think about investigative journalism, hah!
      Keep rocking LS (whether that’s LightSwitch or LOBsta ;-))

      • I’ve said it before, Jan – your blogs are truly such a pleasure to read. Just want to keep the pressure on knowing you’ll step up your game…if that’s even possible. Plus, being from Maine, I especially like the name. 🙂

  2. Bit of a let-down Jan. Thought your “announcement” was going to be LS related. Been following your LS journey since way back. LS has provided RAD, at least for LOB and I’ve dived(attempted) into the Silverlight (although the Web killed/killing that one) and more recently the HTML client (which I thought was going in the right direction). Now a new framework.!?
    I miss the old days – learn C or C++ or VB; that was it (or COBOL if you worked for a bank 🙂 )! Learning new tech these days is like playing Russian roulette; another framework to get to know – miss it and you’re dead! 😦

    I watched the video on the new (Aurelia) framework, and I don’t know. I thought things were supposed to get easier with age! Seems like I have to start from scratch again (or maybe not?). LS seems a lot easier to access data and represent it.

    So I suppose, bottom line question, where do you now stand with regards to Lightswitch?

    • Hey ‘Doc’ James!

      LightSwitch, and thus my blog, has attracted a large range of developers ranging from code heads like myself to people that absolutely shy angle brackets. I know for a part of my followers, this’ll be a big let-down because it seems hard at first. There are some RAD environments that might work for you, although I personally haven’t given up on LS completely yet, not even for new development.
      However the thing with LS is that it’s only the right tool if the application is simple and CRUDdy, and in my opinion we need more tools to be able to build all applications.

  3. Nice framework Jan! LightSwitch was nice, but like you said, if you are building serious enterprise applications it has quite some shortcomings. I am glad Aurelia is open source and definitely will give it a spin. Looking forward to more blog articles on this one.

    P.S. In Nederland alles prima 🙂

    • Hey Bas!

      LightSwitch was nice, and had such a great potential. If only they only went some iterations more… Meanwhile, I’m feeling great with my current aurelia-web api-EF stack, makes the missing less painful 🙂

      PS:
      Man man man, patatje oorlog, wat mis ik dat aan ons kleine landjes! 🙂

  4. Hi Jan,

    Congratulations to you, Rob and the rest of the team. Aurelia looks fantastic. I’m even more intrigued to hear about how you plan to bring EF and WEB API into the picture. Are you thinking of a LightSwitch like GUI foe desinging the backend? What about fir the front-end?

    • Hey Delordson!
      Thanks for the congrats!!
      I’m currently not thinking about LightSwitch GUI’s (designers) but instead trying to keep the code extremely, but I really mean extremely, simple. Some of the issues with the designers is that they hide the underlying technology, are slower, are hard to build and cause a lot of TFS/GIT merging headaches. (EF7 also no longer has visual designers for some of the same reasons…)

  5. Any chance from the outset that your EF connection, data model “understanding”, (non-C#/JS tech here – SQL Server specialist) will understand a Stored Procedure ONLY paradigm? Company Policy that I don’t disagree with. LS never delivered an out-of-the-box SP to View solution, so I had to can any LS endeavors, sadly. I’m really hoping that your joint efforts produce a toolset that can be picked up quickly to develop back-office-style, infrastructure-table setup and maintenance apps… Not LOB Apps, but essential for the Support Team – we have too many T-SQL scripts as workarounds for the lack of Apps!

  6. Many thx Jan.
    Personally I would be interested in a LightSwitch v Aurelia Shootout. My understanding is that LightSwitch is very scalable so will Aurelia Apps be better or worse in that and various other respects. You’re in a unique position to produce a brief document that would assist those of us who are prepared to make the jump and have faith that Aurelia will become the tool that we can trust to produce reliable LOB Apps. I certainly plan to try reproducing one of my simple LightSwitch Apps so that I can get a feel for this approach but I wonder if you have a simple SQL based app that you could briefly cover so that we LightSwitch developers can get a good idea of the differences in approach to get the same or a similar result. IOW the pros & cons in terms of productivity, reduced code, increased scaleability, maintainability, extensibility, ease of deployment, RWD support and any other important factors you can think of.

    I’ve been promoting LightSwitch solutions to customers and it’s a Microsoft product. This automatically gives it degree of respectability. If I’m now promoting a tool that might well be superior in many respects and be a worthy successor to LightSwitch I need to checkbox off LightSwitch capabilities and highlight where and why Aurelia would be a letter development tool at a more ‘executive summary’ level. Some sort of onramp for those of us hauling LightSwitch would be much appreciated I suspect.

    Most of us in the community have now lost confidence in Microsoft’s ability to make LightSwitch what it could be and that’s almost regardless of whether they ever do ‘engage with the community’ again or not. The way Microsoft are now treating it’s developer community indicates to me that they just don’t care about us any more. I say that after almost two decades of partnership with Microsoft and with considerable sadness 😦

  7. Thanks Jan for your enthusiasm and this sounds very interesting but the main reason I went with LightSwitch was the belief in easily generating the standard “3 Tier” (Client/Business Rules/Entity Database) projects that most businesses seem to require. I realize that it is getting more and more complicated to write good software for Web, Mobile, Standalone, Cloud, etc. and had hoped that you were coming up with a solution that might focus in on a HTML/CSS/Java development system that would have WYSIWYG drag and drop client side Java Controls, easy methods for generating Business Rule Classes and Server Side Entities (similar to LightSwitch) against Microsoft SQL Server, Oracle, etc. databases. In other words a “Super Java LightSwitch” tool so that for once, we could have a single language (Java), WYSIWYG Client (all WEB pages is OK), WYSIWYG Entity Builder that businesses can afford to develop, lends itself to easy maintenance, lends itself to the Web and Mobile environment and can easily be published locally or to the cloud.

    Briefly looking at “Wakanda” looks like they are on the right track but maybe you can improve upon this by using “Aurelia”.

    I listened to the Walmart video and the last thing I think we want to go through is “Memory Leaks” again as they were a big problem in the early days of Microsoft’s Object Oriented programming. Too many other vendor’s tools, mixed and matched with Aurelia to get your final “super tool” will bring about similar problems. You mention downloading Node.JS, GULP, JSPM, GITHUB. These don’t seem to be a part of Aurelia and makes me wonder if we are at the mercy of anyone of these having problems and not controlled by Aurelia and through Aurelia’s releases.

    Anyway, it would be nice to have that perfect “super” tool that works with little effort, everywhere, every time and is what we all dream about. Again, thank you for all your help using LightSwitch, it meant a lot us all, and Aurelia may be the super tool for us in the not too distant future. We will follow you along this path and wishing you the best…
    Edward

  8. @lloydDerbyshire
    Pardon my chiming in, but as much as I like LightSwitch, it is certainly *not* scalable, at least in terms of the number of database tables and development abilities. My application has about 100 tables and any changes to the database structure were quite painful in LS.

    Whatever RAD I find to supersede LS will not have this limitation. BTW: these 100 tables were an intimately connected legacy system. I always rankles me when the “next best thing” comes along and assumes you can build your system from scratch. 🙂 I wish Aurelia.IO the best and fervently hope that a decent RAD can be built upon it.

    • Yeah I left out the word *not*. There have been many complaints about scaleability so I’m hoping that Aurelia will be at least as capable based on it’s architecture. Hopefully more capable. It’s early days so I’m trying to get some idea whether it’s worth a further investment of my time to learn.

      I don’t think that anyone should be too surprised to find that LightSwitch doesn’t scale to 100+ tables based on it originally being touted as a citizen developer tool. The tool was poorly marketed from the start and quickly became schizophrenic when the HTML Client was added. It was buggered up the same as Access when they regressed to Web-form designers with a macro language in a belated desperate attempt to embrace the Internet. If they’d been honest they would have created another tool with a new name rather than tack the HTML Client onto the Silverlight tool. I’d rather develop with something that knew what its mission was when it was born.

      Personally I’m not sold on the Universal Apps concept and neither am I sold on App Stores. I want to develop apps that I can just deploy and have that app respond to whatever screen size it finds itself on. Now that the rugs been pulled out from under us it looks like we’ll have to move out of the Microsoft camp in order to find the right tool. Learning a new tool is a big investment so I’m not about to jump ship into shark infested waters without the feeling that there’s a genuine chance that I won’t find myself on the Mary Celeste again.

  9. Probably still a lot of work, but anyhow you are starting from the right foundations: ecmascript 6.
    Javascript 6 has so much brilliant things to offer, and I’m discovering them now day by day:
    destructuring, rest params, spread, templates, classes, super, overrides, arrow functions, comprehensions, generators, iterators, (weak)map and set, native promises, proxies, a real module system (import/export). Many of these features are even not available in c# !

    All my (moral) support Jan !
    Thanks buddy.

  10. For people who were building mid size enterprise applications, I would recommend the MS Dynamics platform. It has a similar RAD experience as lightswitch and is easily scalable.

    • Yes- CRM Dynamics is like lightswitch on steroids. Easy to make table structures and have everything generated for you. And a comprehensive security/class structure, and integrated reports (based on SSRS) – and extendable using c# -but it sure is expensive.

  11. Jan, I am not sure how to contact you, but here are a few things I would put on your list. Feel free to drop me a line.

    0. Look to LightSwitch for its many good ideas and implementations. Scrap the compromises (kludges) they made to try to fit the HTML client with the Silverlight client. I really liked their page design model once I got used to it.
    1. Some design/tools that would make it easier to port LS apps to your LOB-RAD.
    2. Don’t assume the DB is new, or even correctly or full normalized. E.g. select boxes should be possible even if there is not foreign key on the table. A primary key, sure, but you can’t expect much beyond that.
    3. Plenty of hooks in the data pipeline, and well documented. Automatic data validation hooks on both the client and server sides.
    4. Plays nice with other packages, like EaselJS on the same page.
    5. Open Source, of course, and affordable.
    6. TypeScript support (LS announced it, but never tested it in their development environment… gads!)
    7. The ability to work with CMS like Subversion (LS does this, but poorly)
    8. Simple hooks for authentication and authorization. Don’t try to bake it in with Wizards, as every client of mine does it differently.

    I have been building LOB apps for over 40 years. I am still hoping for some good news about LS, but in the meantime I am willing to help you test, provide feedback, and document.

    Cheers,
    Dan

  12. Jan, it’s been three months. Anything to report? It is amusing how much expectation I had waiting for you to post about ‘whatever it was’ prior to this post, and what a blow it was to find that it was all about a new js framework. It would still be of extreme interest if Aurelia will eventually be complimented by a framework that typical lightswitch devs can get traction with.

    Or if anyone has lightswitch level frameworks to recommend I’d be interested.

  13. Hi Jan, I’m really interested in Aurelia, this really feels like something we’ve been waiting for, now Silverlight is well and truly dead, LightSwitch is following the same path and the likes of IronSpeed code generators are not great and stuck in the dark ages (CodeOnTime is supposed to be a lot better but I have never used it).

    I’d really like to get involved in porting one of my Iron Speed projects to WebAPI, CQRS, EF & Aurelia – It’s not overly time sensitive and it would be a good learning project with a well used LOB application. The thought of continuing to use Iron Speed makes me weep. Drop me a line if you can share anything yet.

    Thanks

  14. Hi Jan,
    I’ve came across this post on building a “super” framework on top of aurelia / etc as a result of certain frustration about Lightswitch. This captured my attention as we’re at Haulmont have been going same path for over 6 years now. We have developed internally a high level (or “super”) rich web framework for LOB apps development on top of Java stack tech with built-in WYSIWYG designer, security, bpm, reporting, etc. It has just been released to public this year at http://www.cuba-platform.com So I thought you might be interested to check it out as another LS alternative for your projects.

  15. Hi, Jay, you’ve wrote “We looked at so many RAD frameworks and were impressed by a quite a few, but convinced by none.”
    If you still have your notes, could you please share them? What is good, what is bad for each tool you evaluated? It will help many people who need to choose RAD framework?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s