-
Notifications
You must be signed in to change notification settings - Fork 445
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comparison to similar projects #333
Comments
This is awesome @dancancro !! I couldn't agree more. One of the reasons I did not create my own seed was for this very reason. It's why this is simply an extension and compliment to Minko's - because it was already an amazing seed - no need to create yet another distinct seed with it's own special setup. This seed serves 3 primary purposes:
Thank you for taking the time to put this information together, would be great to follow up with an article expanding on your analysis and concluding thoughts 🌮 |
Thanks. I appreciate your agreement. 🌮 I started working on this a few years ago and have written about the situation a few times. I held Google Hangouts for a while with various project leaders and Google people. I have a few conclusions.
My goal also evolved from reducing to a single starting point to sparing people massive amounts of time figuring out what's different between the different starting points. I respect the need to experiment but I also want to ease the path to convergence once the experiments have been conducted. I have already done the bulk of the work to make figuring out differences much easier, but collecting and updating the facts about things is an ongoing chore. If anyone wants to help, the best way would be to comment "YES" (with links please) into the cells of the spreadsheet for benefits provided by technologies you know. |
Really awesome @dancancro! I am a seed user, and contributed a little bit at some point (although I'd love to contribute more, if I had the time or expertise). When I started learning/playing with Angular2, I also bumped into some of those on your list, and ended up using Minko's awesome seed. I then moved to @NathanWalker's advanced-seed for one the primary purposed he mentioned above: multi-platform support. And that is one item missing from your spreadsheet: mobile support. That is what brought me to the seed, the ability to use a single codebase and generate web, desktop and mobile apps. Although you do mention the ability to Just my $0.02 contribution. |
@fourctv Thanks. I'm always open to suggestions. How would you put it? The items above are a subset of all the selling points of all the web dev technologies I've read about over the past couple years - about 1500 at the moment - respecting inheritance of benefits from dependencies to dependents. To keep the above table from being too crazy, I have filtered it to just the important ones with some minimum subjective importance level I've given it. You are welcome to send me a request for access to the spreadsheet and let me know if you think I should add anything, rename anything or give anything more importance points. |
Hi @dancancro my only suggestion at this point be a new row indicating support for "Mobile deployment". Feel free to name it as you please. |
@dancancro , amazing consolidation thank you for sharing it . I also agree with @fourctv, after my research i decided to go with @NathanWalker's advanced-seed because the of ability to have one code base and multi "Front Ends" that compile natively. With Electron you can have the executables for Windows 10, Mac and Linux; that is unimaginable / inconceivable for most developers unless they see it. Then another "wow effect" is the elegant use of NativeScript to allow the app have views that compile natively for Android and Iphone. I think those facts definitely call for another Row on your awesome spreadsheet . |
@OscarAgreda No argument there. Write once run everywhere is holy grail level stuff. I'm going to read more about Electron and NativeScript and try to clarify what benefits they each deliver. In what ways does angular-seed-advanced save you time that you'd otherwise need to spend putting Electron and NativeScript to use in your apps? Also, I'm curious about the structure of this project that uses a 'frameworks' directory. That idea isn't part of the Angular style guide. If you'd like to talk about that, I brought it up in this thread on the ngrx project where file structure is being discussed. |
From my point of view, and @NathanWalker please correct me if I am wrong, the Sure, it is not in Angular's style guide, but maybe that is an oversight of that guide :-), which does not take into account the idea/possibility of sharing code between multiple platforms. That guide does provide support for multiple 'apps' under one project, but it seems to assume all 'apps' are targeted for a single platform (web). |
@dancancro Ok, let’s say we need to architect a multi-tenant software application (like Facebook for example, I am not sure if Facebook has this enterprise architecture but most likely yes), in which each of the millions and millions of users thinks and feels as if the application was specifically built for him/her. That is accomplished by having some type of Identity Server that injects some properties (claims) to each user that when she/he logs in makes the application behaves accordingly based on his/her assigned credentials. Fakebook has a web interface and a Mobile version of the same application, and they use the same Sever Code. (If the developers find a bug, they only need to fix it in one place). So when @NathanWalker and all collaborators decided to go the extra mile by including NativeScrip, they provided a way to use the same server code (back end) and the same angular code (angular modules) for 6 fronts ends (Web, Windows Desktop, Mac Desktop, Linux Desktop, Native Android and Native Iphone) all utilizing the same business logic, nothing changes on the application . As i said, this is unthinkable to most developers. Most people won't believe it is possible , but it is . |
I'm getting into testing and see that this project has given that a ton of thought. I have a couple questions about why things were done the way they are done in this project. I hope this is an ok place to ask them.
|
|
@dancancro Seems you've tested a lot of things, do you mind if i ask how would you persist state through application exit? |
@luchillo17 I don't know how things work without a browser but with a browser you can use the browser's local storage like this for small things like an authentication token or the indexedDB like this for more data. The ngrx example app and others demonstrate it too. I recently read this article about the various kinds of state in an application. I'm still trying to understand it. The author takes an approach that has a reducer making calls to the server which sort of breaks the main rule of Redux. He recommends and uses ngrx in his work but unfortunately he did not in the example code. So I'm working on figuring out how to do that so I can add this to my example app. |
@dancancro As far as i know that's the purpose of |
@luchillo17 That's right. My example app uses lots of |
For now i'm trying to figure NativeScript out, dev builds get me startup times of 12 secs, and trying aot generates error, depending on this i might have to go with ReactNative, which also generates some errors. |
Hello everyone. This is a great project. I entered selling points of this project and I made the following comparison of a few projects to show how they differ. If you have any corrections to make you can do so by commenting in the spreadsheet from which this is generated. If you are wondering why I went to such lengths it's not to promote a particular project. It's because I want people to stop competing and start working together. It is overwhelming to learners who have to pick a starting point and causes unnecessary duplication of work by the disagreeing project owners. Imagine what could happen if everyone worked together!
EDIT: I added alt-texts to the benefits. Hover over (?)s to see them.
EDIT: I added the Dependencies part
The text was updated successfully, but these errors were encountered: