Meteor: Angular2 VS Blaze confusion - meteor

I was enthusiast using Angular2 with Meteor, so I started a project with ng2 and Meteor. But more and more I am asking questions like:
Is ng2 deprecated router the way to go ?
What is the purpose to use ngForm validation if I use collection2 and autoform to do most of my form validation.
What are the benefits of ng2 architecture vs Blaze ?
So at the end, I am not even sure of why I am using ng2. There is not that much recent and relevant discussions on the topic. Is that the question that is already answered, obvious or just not so relevant ?
What are the pros/cons of using Angular 2 versus using Blaze ?
Blaze was raised with Meteor and is probably linked to his success. And ng2 could be as famous as ng1.
To be used in serious projects, which one is going to be 'more maintained and last longer' ?
Regards
PS: Also looking at https://builtwithmeteor.com, Blaze appears to be used more.

The Angular 2 router is deprecated but it's still the only router available to use at the moment.
In the future versions of Angular 2, a new router will be available.
So right now- the deprecated router should be used, and I think that it has all the features that you need from a Router.
You can choose to do the validations of the fields as you like.
Personally, I think that validation should occur in both client and server, so Angular 2 take care of the validations that needed to check in the UI and give feedback in the UI, and the Meteor validations should occur in server side and validate things like duplicates, data logic and such, along with fields validations that done by SimpleSchema.
I think that Angular 2 at the moment provides a better solution for client side development - much of it is because of the decorators that in use, the code is much clearer and easy to understand.
Also, Angular 2 is more that UI binding (which Blaze is...) and give you Dependency Injection, Router, Services and more features that usually required in the UI (in Blaze you need to use external packages for each one of these features).
Keep in mind that few months ago, Meteor team declared that UI developers should consider using another client side framework, and consider migrating from Blaze (they recommended Angular 2 / Angular with angular-meteor.com or React).
If you already have Blaze application, I think that you should consider migrating to Angular 2.
The Angular2-Meteor (www.angular-meteor.com) team is working right now on a full step-by-step tutorial for coexistence and migrating Blaze application to Angular 2.

Related

Using Adyen from a SPA

We are building a marketplace using angular and we want to integrate Adyen payments. Googling for 'Adyen angular' or 'Adyen SPA' or even 'Adyen react' doesn't bring any useful results. NO results whatsoever.
Therefore I am left wondering, why the whole world (including Adyen docs) is not talking about integrating Adyen into a SPA.
It doesn't seem to be more vulnerable to network security attacks to me. At least I can't think of any reasons for that.
Please help me to understand, what I am missing out.
As madesch mentioned, integrating in a SPA shouldn't be too far from other kinds of integrations. Are you having issues with something in particular?
Here can see an integration with Vue, one with React and even one with React Hooks.
The card fields are not being loaded because I'm not using a real originKey, but it should give you an idea about how to do the integration.
I hope it helps!
It seems that I overestimated Adyen popularity and in reality, the truth is that it is just not popular enough to have gotten attention from SPA community. :(
it seems like originKey is deprecated, the current recommendation is to use Web DropIn. But this requires using a server component, as you don't want to expose your API key, right?
So if you don't want to use a deprecated API, you must always add a server component to your stack. A pure SPA does not seem to be possible using current APIs, it seems.
There are now few options available:
Angular support
Vue support
React support
All examples are based on the Web Drop-in approach which renders a checkout component with the supported/requested payment methods.
A basic explanation of the workflow is provided here.

What router and ui-framework to use in meteor?

Just started to discover meteor. created app with DiscoverMeteor book, but misunderstood many moments. then read Your first meteor application and Your first meteor application books. Realized that Todos example is really too simple to cover many important things. And only after that I found the official guide on Meteor.com! now reading about all these complex (for my opinion) things. and have 2 questions:
What router should I prefer to use? I want to create fast app with lots of data loading from the server. Found information that Iron router is deprecated, and Flow router is recommended nowadays, but also found that flow router can not route on server, only on client. And that exactly client routing is the reason why for example soundcloud is really slow. So that is the question - I know nothing about server/client routing, but want to make right decision for the future project.
What ui-framework to use? I read that blaze is easy to start, but react js is really powerful. So: is Blaze enough for serious project (like a popular blog)? Or do I have to learn react js in order not to rewrite code in the future?
I am working with Meteor 1.3.2.4, which is latest in market and believe, you don't have to do anything out of the box to go with experimental UI-Frameworks and stuff.
Blaze template which is handlebars based implementation is best.
Blaze template is very well glued with Socket.io, futures and DDP implementation for cutting edge implementation for asynchronous and reactive behaviour on UI.
Blaze is really good for cumbersome, heavy data websites as well. If you have any doubt, i can skype and show you what i have implemented in just 2 days on development using everything given by Meteor.
React.js, Koa.js (re-written Express framework), express etc are very good and powerful, but I think implementing it at initial level of your grasp is overkill. Go with Blaze first.
There are hundered sitting and developing Meteor.js just for you to be comfortable. I am not at all biased, I am giving you my open opinion.
I worked with Laravel 5.2, Play framework, MEAN.io, DJango in past, but believe there is nothing like pure Meteor js with there own packages. There are many videos on youtube like Meteor nights and stuff where you can find the developers from all around the world developing huge stuff just using stuff given by Meteor js.
For routing flow-router is good, even iron:router is awesome and easily gettable.
This video can guide you very well.
Flow Router is the recommended router by the official Meteor Guide. It's also the popular choice these days, and for a reason: it's a high quality router implementation.
As for MVC, it's really like choosing a religion. React has a huge community, possibly a bright future, and it's not Meteor-only unlike Blaze. But some folks find Blaze templates nicer than JSX files. I think it's easier to get help on StackOverflow if you pick React, but Blaze might be easier to get started.
Maybe this post helps a bit: How to set up React with Meteor?

Meteor.Router vs Iron Router

I want to create a multi-page Meteor web and mobile application. I am therefore looking for routing services.
From research, I gathered Iron Router is what I am looking for. But many tutorials also mention Meteor.Router
What are the differences (if any) between Iron Router and `Meteor.Router`?
iron:router has been the de facto standard routing solution for Meteor for over a year now, you should definitely use it, it's probably the most downloaded atmosphere package.
Please note however that the project has not been updated for several months and another router (FlowRouter) package emerged, focusing only on client-side routing and managing subscriptions, it takes a different approach than iron:router by making the routing code non-reactive by default.
Meteor.Router is a deprecated package that used to be maintained by one of the two main contributors to iron:router, tutorials mentioning this are clearly outdated.
The iron:router guide is a recommended reading to understand some advanced concepts like server-side and client-side routing.

MeteorJS Alternatives: Latency Compensation Frameworks and Libraries?

Effort:
I am building a word game based on a chat web-client where I need to make a server call on input chat text to validate it before broadcasting on the chat.
I am aware of Meteor providing latency compensation out of the box. But given its still in "early preview" makes me seek other alternatives.
What I tried:
Unfortunately my web search for "latency compensation framework library" doesn't yield anything other than Meteor (including non-personalized results).
Question: Are there any other alternatives that provide latency compensation -or- can make the job easier? I am hoping other developers might have encountered something useful/relevant.
Although Meteor is in 'early preview', its code is very close production ready and a lot of startups and other early adopters are using it for production-level code. You aren't going to find anything that gives you wings like Meteor because no such alternative exists.
As a hardcore Meteor convert and someone who's used many other frameworks, I recommend you to just try Meteor out. As they say, it only takes a weekend for you to build an app in Meteor and decide whether it's right for you.
Having said that, I will attempt to answer the question and list the distant-second alternatives to Meteor that you probably won't want to use:
Derby
Sails
What you're seeing right now in the various real-time full-stack Javascript web frameworks is the future of Web development, cutting down dozens of people and thousands of man-hours of work needed to develop a software project. There are some fast boats sailing that are leaving server-side rendering behind, and you should probably just get in one of them and get going.
RethinkDB uses term 'latency compensation'.
I've also tried to gather per-feature alternatives to Meteor
Meteor is a really cool framework. you can build the complex data driven application very easily using meteor.
But, this framework currently supports only the MongoDB as back-end database.
I have recently created full stack framework called Nooljs which is similar to the Meteor. Now I have open sourced it. It support all the database connections including MySql, ms-sql, and MongoDB. The complex data driven application can be created easily using this framework.
This has been developed using well known existing framework such as Angularjs, Node, express-js, and socket-io.
Easy to build complex data driven JavaScript applications with minimum coding.
Support multiple data connections suck as Ms-sql, MySQL, PostgreSQL, and Mondodb.
Real time framework build top of Express-js and Socket-io
The client side is powered by the Angularjs.
The layout can be build using the Angularjs tags and elements.
Modularized layout to simplify the complex web pages.
Can be mixed both Express-js and Socket-io

Combine Meteor and Express

I am evaluating Meteor as an alternative to developing real-time capabilities using socket.io and it looks like awesome framework for single page real-time apps. It is great time saver that enables developer focusing on the business logic of the app, rather than writing boilerplate code. However, I find it still pre-mature for a medium size app with multiple pages/routings and REST api. Plus, number of features like i18n are still not available which requires some time investment to develop by myself.
I think that it would be great if I could combine Meteor and Express and use Meteor in use cases where it really shines.
Is it possible to develop an app using standard Express/Mongo stack and use Meteor for only specific part of the app where I need real time collaboration?
For example, can I share a session between Express/Connect and Meteor?
Thanks!
This does not directly answer your question, but I thought I'd throw it out there:
You should check out the community packages on atmosphere. Specifically, I'd recommend having a look at iron-router and i18n (I'll note I have not used the latter).
I've built a large production app that uses iron-router and it's running smoothly. You may also be able to use its server-side-routing capabilities to implement your REST api.

Resources