I'm wondering about framework choice, for an app I want to maintain for years. By maintain I mean mainly continious developing and upgrading. My problem is that AureliaJS is more friendly and nice to work with tool, comparing to Angular 4. But the current version of Aurelia is mere 0.32 and I worry that in the future there could be a lot of backward incompatibile editions. Could anyone experienced JS developer advice me with that choice? Thanks in advance.
I'm an Angular Developer, I think Angular is Awesome for long-lasting projects for many reasons
Support: it is supported by Google, It use Typescript as a core language for developing your application which is supported by Microsoft.
Huge Community: Angular has big community at the time of writing this answer Angular repository has 27095 star at GitHub, 497 Contributor while Aurelia has 9984 star and just 88 contributor
Cutting Edge Features: By talking about features Angular follow cutting edge trends in front-end world such as AOT: Ahead of Time Compilation , Universal Angular Apps which implement server-side rendering to increase the performance of angular app and bring SEO to Single Page Application.
Angular CLI: Also Angular has cli (Command Line Interface) which make developer life easy by enable scaffolding new application and make components, services and other stuff easier.
Global Events: Angular has Conferences that take place regularly in many countries.
Used by Big Brands: many big up and running web applications use Angular for their Apps such as Freelancer.com
Used to Develop Multi-Platform App: with Angular you can make web applications, webview mbile applications using Ionic native mobile applications using NativeScript, Cross-Platform Desktop Applications using Electron
Regular Versions: Angular has regular versions every 6 months there is new major version, with backward compatibility with old version
I don't have experience in another modern javascript framework so I can't compare angular with another framework, but I think Angular is a Good Choice for the reasons I have Provided
I'm an Angular and React developer at workplace but I have used Aurelia for my personal projects and i can confidently say that the learning curve is easy and fast compared to Angular
If I had to start a project, Aurelia would be my first choice
I also enrolled in Aurelia course at pluralsight which helped me a lot. Another place to look for is www.danyow.net
I hope that corporations start adopting Aurelia just as much as React and Angular
Related
I am newbie to Angular I am going through various documents available online.
Angular.io
Range.io
Angular.io sites says that
Angular is a platform that makes it easy to
build applications with the web. Angular combines declarative
templates, dependency injection, end to end tooling, and integrated
best practices to solve development challenges. Angular empowers
developers to build applications that live on the web, mobile, or the
desktop
Range.io says that
There are many front-end JavaScript frameworks to choose from today,
each with its own set of trade-offs. Many people were happy with the
functionality that Angular 1.x afforded them. Angular 2 improved on
that functionality and made it faster, more scalable and more modern.
Organizations that found value in Angular 1.x will find more value in
Angular 2.
wiki defintion
Angular is a TypeScript-based open-source front-end web application
platform led by the Angular Team at Google and by a community of
individuals and corporations. Angular is a complete rewrite from the
same team that built AngularJS
In some places on web Angular is defined as a javascript framework and some places a platform which one is correct it's a platfrom or a framework I reffered this thread but did not clear my doubt completely could someone shed light on it?
It's both a platform and a framework.
When you use it for web application, you may call it a framework.
But when you use it for web, iPhone, android or any mobile, you may call it a platform. Because you know what is platform. Mobile applications are accelerating both hardware and software for its application system. A web application using angular is also considered as a platform. Because browser specific commands you can use when you develop mobile app. Suppose, you're developing an android app, then you need to test it in desktop browser. You need to accelerate it with hardware command to launch. And it's a platform.
So, when you develop mobile application using any available resources like NativeScript, Cordova, Ionic, etc. and you use angular and in that term angular is a platform.
So, the platform can be defined as a framework which can be used across multiple systems. And angular can be used in any system and it can be termed as a platform.
We are attempting to write a LOB application for a medical device. We expect the application to grow upto > 50k lines of code with a complex state machine, business logic and UI rendering. The choices are
Electron or NW.js using NodeJS, HTML5, CSS3, Angular2, TypeScript
QT
WPF
We have lot of internal javascript libraries and developers skilled with javascript. So our preference is to reuse as much as possible and go with option 1. Is option 1, mature enough to support developing complex desktop applications.
Which would be your preference if you are starting today.
HTML5, CSS3, Angular2, TypeScript For Rich Native (desktop) applications
...
medical device
For what it's worth, this terrifies me. I hope any critical functionality is being handled elsewhere. If anything, because I do not trust anyone to audit all of the code you're about to dump into this and the code of the browser engine that's going to run it.
Is option 1, mature enough to support developing complex desktop applications.
Yes, of course. People do this every day.
We have lot of internal javascript libraries and developers skilled with javascript.
JavaScript doesn't tie you to HTML5. Folks have added QT bindings to Node.js before, as well as other libraries.
We expect the application to grow upto > 50k lines of code
How could you possibly know this right now? You haven't even decided what you're going to write it in.
I have just began to learn MeteorJS and I am really impressed of its concepts, like database client-server sync, and of its easiness of use.
However, the tutorials which I have seen so far, do not speak about the GUI for Meteor-based hybrid apps. I mean visual components / widgets libraries.
I know that there is some integration with Ionic, but it looks too much overhead to include Ionic/Angular MVC framework and the Meteor Node.js in the single app.
May you suggest any lightweight GUI library with native look-n-feel?
Thank you very much in advance,
Ephraim
If you want something superfast in regards to Web UI development Webix is really impressive. Here an integration example: Webix integration with Meteor
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
This has probably been asked in the past, but I can't quite figure out what to Google to get the answer.
I am writing a web application where the entire backend is already available as an API. I am wondering what javascript frameworks would be good for writing the frontend. What javascript frameworks would work well for the frontend development?
I don't need the entire stack like Meteor and Node.js offer, I simply need some logic controllers and views. Is Node.js good for this? Do other frameworks exist? I will likely have business logic on the frontend so having a framework that is good for this would be nice.
20 JavaScript Frameworks Worth Checking Out
Sproutcore
Sproutcore powers a lot of high profile apps including MobileMe amongst others. Sproutcore has a steeper learning curve compared to the other options but makes up for it with developer productivity once he/she has learned the ropes. This framework boasts a UI framework, the market standard MVC architecture and well written documentation.
Related links:
Using SproutCore 2.0 with jQuery UI
Build a Micro-Blog with SproutCore
When To Use SproutCore, and When Not To
Cappuccino
Cappuccino was created by the 280North team, now owned by Motorola. This framework gained significant coverage with the release of the 280Slides — built completely with Cappuccino.
This framework varies dramatically from the others in that a developers doesn’t need to understand or work with any of the front end trifecta — HTML, CSS or the DOM. All you need to master is the framework!
JavaScriptMVC
Built on jQuery, JavaScriptMVC is a veteran in the front end frameworks battlefield, dating back to 2008. Featuring a familiar, and obvious, MVC architecture, this framework is quite full featured with support for code generators, testing and dependency management.
Asana Luna
Luna is one of those hush-hush private frameworks that people have been talking about. And for good reason, I must admit.
The framework features a lot of niceties including an evolved MVC architecture, pubsub, caching, routing and authentication.
Backbone.js
Backbone supplies structure to JavaScript-heavy applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing application over a RESTful JSON interface.
qooxdoo
qooxdoo is a universal JavaScript framework that enables you to create applications for a wide range of platforms. With its object-oriented programming model you build rich, interactive applications (RIAs), native-like apps for mobile devices, light-weight traditional web applications or even applications to run outside the browser.
Spine
Spine is a lightweight framework for building JavaScript web applications. Spine gives you a MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.
ActiveJS
ActiveJS is a JavaScript application framework that provides local and REST based data modeling and pure DOM view construction with back button and history support along with framework agnosticm and lack of external dependencies.
Eyeballs
eyeballs.js is a slim javascript library designed to sit on top of a javascript framework, such as jQuery or Prototype. eyeballs.js can sit on top of an already implemented web app with a well thought out object model. It can also be used to build standalone javascript apps, backed by HTML5 local storage or something like CouchDB.
Sammy
Sammy.js is a tiny JavaScript framework developed to ease the pain and provide a basic structure for developing JavaScript applications. Sammy tries to achieve this by providing a small ‘core’ framework and an ever-growing list of plugins for specific functionality.
Choco
Choco brings the MVC to the client side! A Choco app consists of only one HTML page, all the interactions are managed by Javascript. Your UI only uses HTML and CSS!
Agility
Agility.js is an MVC library for Javascript that lets you write maintainable and reusable browser code without the verbose or infrastructural overhead found in other MVC libraries. The goal is to enable developers to write web apps at least as quickly as with jQuery, while simplifying long-term maintainability through MVC objects.
Angular
Angular supports the entire development process, provides structure for your web apps, and works with the best JS libraries. With angular, the view and data model are always in sync — there is no need for manual DOM manipulation. Angular is small, weighing in at 60kb, is compatible with all modern browsers and works great with jQuery.
ExtJS
Ext JS 4 brings a whole new way to build client applications, by introducing the popular model-view-controller pattern to Ext JS. By allowing the separation of data management, logic and interface elements, Ext JS 4 makes it easier for even large development teams to work independently without worrying about stepping on each other’s toes. Ext JS 4 ships with a helpful MVC guide to get started.
Knockout
Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably.
Jamal
Jamal is a set of conventions and small javascript libraries to archieve a complete separation of html, css and javascript in your web application. Jamal is built on jQuery and inspired by MVC frameworks like Ruby on Rails, CakePHP and its derivatives.
PureMVC
PureMVC is a lightweight framework for creating applications based upon the classic Model, View and Controller concept. Based upon proven design patterns, this free, open source framework which was originally implemented in the ActionScript 3 language for use with Adobe Flex, Flash and AIR, is now being ported to all major development platforms.
TrimJunction
The open source Junction framework is a conventions-over-configuration, synchronizing web MVC framework for JavaScript. TrimPath Junction is a clone or port of the terrific Ruby on Rails web MVC framework into JavaScript.
CorMVC
CorMVC is a jQuery-powered Model-View-Controller (MVC) framework that can aide in the development of single-page, web-based applications. CorMVC stands for client-only-required model-view-controller and is designed to be lowest possible entry point to learning about single-page application architecture.
batman
batman.js is a full-stack microframework extracted from real use and designed to maximize developer and designer happiness. It favors convention over configuration, template-less views, and high performance by simply not doing very much. It all adds up to blazingly fast web apps with a great development process; it’s batman.js.
Source: http://net.tutsplus.com/articles/web-roundups/20-javascript-frameworks-worth-checking-out/
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I've been working as a flex dev for many years, building really complex apps. With all the recent hype, I'm interested in learning HTML5.
What I like about the Flex framework is it's a consistent, coherent, complete stack for building RIA's. I like that it has a broad set of components out-of-the-box, and a framework for extending and building really complex, heavily customized & skinned components.
Are there similar frameworks out in the HTML5 space?
From the searching I've done, I see there's tonnes of useful .js scripts out there which provide nifty components, effects, etc. However, I haven't been able to find a solid js framework with a mature and architected component library.
This worries me that in building a complex application, I may end up writing lots of plumbing code to wire together disparate components.
I know that HTML5 is still in it's infancy, so if there are promising frameworks that I should be keeping an eye on, I'd like to know about 'em.
My shopping list of ideal framework requirements would be as follows:
Solid component architecture (including lifecycle events)
Extensible
Layout managers
Browser agnostic
Support for data binding
Support for complex Skinning
Abstraction of services layers & protocols (ie., SOAP / JSON / XML services are all a type of IRemoteService)
Along with the UI framework itself, what frameworks exist in the Javascript space for
MVC architectures. (Similar to Parsley, or Maté in the Flex world)
Dependency Injection
Unit testing
If you're a Flex dev, then might be be interested in checking out both the desktop and mobile versions of the Sencha Frameworks (my company): Ext JS for desktop apps and Sencha Touch for mobile/tablet apps.
Ext JS is focused on desktop web apps that can work all the way back to IE6, so there's not much room to be "HTML5"y although where we can we are (our new charting stuff uses Canvas, SVG or VML depending on the browser it finds itself on).
Sencha Touch is focused on Android, iOS, Blackberry and IE9(?) mobile browsers, so we get to use all the CSS3, localStorage, etc. etc. that you can shake a stick at. If you're looking for a test case of what you can do when you start with an assumption of a modern browser then this is it.
Ext JS & Sencha Touch is components all the way down. The best overview of both components and layouts is this article that was written for Ext JS 2, although the component and layout model hasn't changed much for Ext JS 3. Layouts are getting a rewrite for Ext JS 4 - which will have its first beta this month - to make them more like the CSS3 flexbox layout system.
Extensibility is the outgrowth of having a proper component model. Ext JS has a bunch of user extension components that can be mixed and matched. A good example of a professional after market component is Ext Scheduler. There's also a good tutorial on how to create components.
Data binding: UI components are bound to stores, so multiple UI elements are updated with new data as it changes. You can read the store API reference to get a sense of how it works.
Complex skinning - Sencha Touch has an excellent theming system which is being ported to Ext JS 4 - but Ext JS 3 and 2 are a little more involved to theme due to IE6 compatibility requirements (you have to generate images)
Services layers are abstracted with data proxy, which is extended for JSON, Http, XML etc.
Sencha Touch and Ext JS 4 have a (simple) MVC architecture. Ext JS 3 and below does not.
Here's a good write-up on dependency injection in Ext JS (but it should generalize to Touch)
For unit testing, we recommend Jasmine - which came out of Pivotal Labs.
Ext JS and Sencha Touch are pretty widely used - Ext JS mostly for corporate apps, but there are lots of big companies using it like Salesforce, Marketo and more for externally focused users. Sencha Touch has a nice gallery of apps from our latest dev contest, you should check it out.
If you care about tooling, we also have a GUI drag and drop Designer and a CSS3 animation tool (the latter in developer preview)
The HTML5 Boilerplate may be interesting to you. http://html5boilerplate.com/
I'm not sure about JS frameworks for MVC or Dependency, but for unit testing Dojo's Harness (due to new user restrictions I can't post a second link, but it should be easy to find) is pretty powerful. I'd take a look at more of Dojo's stuff as they do some pretty cool work with JS
Sproutcore is a javascript application framework. It is fully MVC with a rich key-value observing/binding infrastructure that reduces the amount of plumbing code you need to write, if you use it correctly. It supports most of your requirements:
"Solid component architecture (including lifecycle events)" -- every view has a bunch of lifecycle events.
"Extensible" -- Sproutcore supports mixins, and has its own 'convert prototypal inheritance' to classical inheritance stuff so you feel like you are creating classes in JS.
"Layout managers" -- You lay out your own views, where they are, how big they are. There are SplitViews which you can resize, and nest, but this might be one area where SC does not meet your requirements (although you can easily implement view resizing via observing)
"Browser agnostic" -- it is pretty browser agnostic, like any other JS framework will be.
"Support for data binding" -- very extensive binding infrastructure. If you bind a view field to a model field, it will update when the model is changed.
"Support for complex Skinning" -- skinned via css like any other web app if you don't like the default theme.
"Unit testing" -- SC comes with a qunit test harness in place. When you use the SC command line tool to create a class (be it an M, a V, or a C) the tool creates a test stub for you.
'HTML5' -- sort of a nebulous concept to start. SC definitely supports generating an html5 app manifest in the build tools. There are frameworks available for writing to browser local storage. I think more html5 capabilities will come online in the near future.
The NPR app on chrome app store and this sudoku app are both SC apps.
I think you might like the Sencha Framework which complies with some of the things you are looking for.
I'm in the same boat as you.
All the js frameworks I found require a lot of CSS to make them half as good as native flex.
Most of the newer js frameworks give up on older browsers.
Funding and cool demos may make meteor the long term js framework winner.
I like the simplicity of angularJs
here's a good comparison of some popular ones
http://blog.stevensanderson.com/2012/08/01/rich-javascript-applications-the-seven-frameworks-throne-of-js-2012/