Comments (8)
Based on team discussions, we will start this effort once the F release branch has been made, and work on the G release starts.
from manageiq-ui-service.
The biggest blocker would be getting an angular 2 version of angular patternfly. We could determine which angular patternfly directives are actually use and see what it would take to convert them to angular 2 components. It would be a good kick start to an Angular 2 version of Angular Patternfly.
from manageiq-ui-service.
Just my perspective after starting an Angular 2 project at my last job:
Pros:
Improved rendering performance
Component testing is spectacular
Typescript (if you like it)
ES6 syntax support - improves the quality of your JavaScript
Community momentum behind Angular 2 is very solid, means it's easier to get support for issues and the skills learned are not wasted
Cons:
No Angular-Patternfly support yet
It's a full rewrite
There is a fairly steep learning curve to move over to it - the principles of Angular 1 do not always apply, it feels like learning a brand new framework in a lot of ways
from manageiq-ui-service.
My observations echo much of what other folks are saying.
Uses typescript and es 6
Uses components to simply app architecture and modularity
Much simpler architecture for defining services. Instead of having
Factory,Service,Provider,Constant,Values you have one way of defining services.
Performance improvements - Build from the ground up to be more performant on mobile , this has benefits for any desktop browser as well.
Yes it is a rewrite but sitting down and being realistic about our code bases long term maintainability lets think about this .
- Currently we don't have almost any unit tests and coverage so a ground up rewrite with a much easier testable framework would allow us to enforce testing from ground zero and make for more maintainable code in the future.
- Moving to typescript has its advantages and syntactically makes javascript a little easier to read and write.
- Angular 1 will reach end of life at some point soon since it is a drastic departure from Angular 2 architecture. So at some point we will have a framework that will no longer be receiving updates. I know a lot of angular 1 code exists all over the net but when folks abandon a project (especially google) it tends to really abandon projects quickly and it sometimes leaves folks high and dry for critical updates and support.
- As for the learning curve, no matter what direction we head in, we will need to have a learning curve. It is better to bite the bullet now rather than later since Angular 2 is finally GA. Whether its React or Angular or any other framework, there will be a learning curve. No way to escape it.
- I guess the biggest con is figuring out when it is a good time to start this process but I have learned there is never a thing as a perfect time to start a migration like this. Just draw the line in the sand and get it done.
from manageiq-ui-service.
I concur with Dana and Jeff. The (IMO) longer term goal of Patternfly is to do all 'widgets' as Web Components, then provide client javascript framework wrappers around them (Angular2, react, etc). This way a PF core component can be written once as a Web Component, and then easily ported to many of the modern javascript frameworks.
I'm not sure project teams are going to be able to wait for the long term PF solution. Personally, I think a shorter term solution of converting angular-patternfly to Angular 2 can be accomplished in a much shorter timeframe, but it may suffer as 'throw away' code when the PF Web Component solution is rolled out.
from manageiq-ui-service.
@chriskacerguis so we are doing this for sure for sure?
Disclaimer: I have not migrated a project from angular 1 to 2 before. 💥 Said it, now everyone knows something I don't (yet) know!
My general concerns are these in no particular order:
- mature supporting dependencies
- patternfly is a blocker
- angular-drag-and-drop-lists is a blocker, good news, will be rendered unnecessary by ng2, bad news, means that goooooood portion of the blueprints will be hairy to overhaul (or 🍰 , I can't quite tell at first glance)
- we'll have to find a new progress bar, or make one
- ui-router-ng2 looks mature enough to support
- ngb is in alpha, which won't help our patternfly blocker, but what can ya do 🙏
- alignment of this change with product needs
- keeping up with the jones is 🆒 and 🏆 but do the advantages listed above matter to any users? align with any product asks?
- keeping up with the jones is 🆒 and 🏆 but do the advantages listed above matter to any users? align with any product asks?
- anything else I forgot
So given the unknowns buried in the above, and that I believe we are collectively in agreement that this is no small undertaking, my principal concern is switching to ng2 could consume a yuge chunk of the next release work.
My ultimate position on the matter, if we're going to do it eventually, we might as well start now. 🤘
from manageiq-ui-service.
@AllenBW Right now, we're just looking at things. We'll have to go to Angular 2 at some point, but right now I'm just looking for feedback and thoughts.
from manageiq-ui-service.
Moved here: https://www.pivotaltracker.com/story/show/134431321
from manageiq-ui-service.
Related Issues (20)
- CVE-2022-31129 (High) detected in moment-2.24.0.tgz - autoclosed HOT 1
- Upgrade or remove Angular code. HOT 3
- CVE-2022-25869 (Medium) detected in angular-1.8.3.tgz HOT 1
- WS-2022-0284 (High) detected in moment-timezone-0.4.1.tgz, moment-timezone-0.5.33.tgz HOT 3
- WS-2022-0280 (High) detected in moment-timezone-0.4.1.tgz HOT 1
- WS-2022-0322 (High) detected in d3-color-1.4.1.tgz HOT 4
- CVE-2022-3517 (High) detected in minimatch-3.0.4.tgz - autoclosed HOT 1
- prepare the development environment to make code changes HOT 5
- CVE-2022-24999 (High) detected in qs-6.5.2.tgz - autoclosed HOT 1
- Unable to open a Native Console for a RHV VM in the Service UI
- CVE-2022-25881 (Medium) detected in http-cache-semantics-4.1.0.tgz - autoclosed HOT 1
- CVE-2023-28155 (Medium) detected in request-2.88.2.tgz - autoclosed HOT 1
- CVE-2023-26117 (Medium) detected in angular-1.8.3.tgz HOT 1
- CVE-2023-26118 (Medium) detected in angular-1.8.3.tgz HOT 1
- CVE-2023-26116 (Medium) detected in angular-1.8.3.tgz HOT 1
- CVE-2022-25883 (High) detected in semver-7.3.8.tgz - autoclosed HOT 1
- CVE-2020-23064 (Medium) detected in jquery-3.4.1.tgz, jquery-3.2.1.tgz - autoclosed HOT 1
- Opening the service ui results in downloading app.js over and over HOT 2
- CVE-2024-21490 (High) detected in angular-1.8.3.tgz
- CVE-2023-42282 (Critical) detected in ip-2.0.0.tgz - autoclosed HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from manageiq-ui-service.