Archive for the ‘Frameworks’ Category
If you love beautiful code and believe that development must be enjoyable, you’ve come to the right place. Let me introduce you Laravel, a web application framework of new generation. Don’t be skeptical, because it deserves to be noticed.
Laravel has become one of the most popular PHP framework. Laravel has changed the way many people write PHP for the better. It is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create beautiful web-apps using elegant and expressive syntax. Currently, it is the most starred PHP project on Github and a lot of companies (including Altabel Group) and people all over the world use it to build amazing applications. In 2015 sitepoint.com conducted a survey to find out the best PHP-framework for developers. Laravel won in nomination of Enterprise Level Framework and Personal Project Framework.
You are here because you want to start your project on Laravel, and don’t know what course to take, right? Let’s get started.
Every framework has its own version history – it’s being maintained and updated. So every new version brings new functionality, some functions are changed or deprecated.
Laravel was created by Taylor Otwell in 2011.
- Laravel 1 was made available in June, 2011. It lacked support for controllers that prevented it from being a true MVC framework.
- Three month later Laravel 2 was released, bringing various improvements from the author and community. As a result Laravel framework became fully MVC-compliant.
- Laravel 3 was released in February 2012 with a set of new features including the command-line interface (CLI) named Artisan.
- Laravel 4, codenamed Illuminate, was released in May 2013. Laravel 4 version was the one which brought big popularity to Laravel framework, but it’s not updated anymore, and also it lacks a lot of functions released in Laravel 5.
There is an important term – LTS version, which stands for Long Term Support. It means that bug fixing for that version is to be provided within 2 years, until the next LTS version is released. For non-LTS versions bug fixing will take only 6 months, unless it’s a security fix which is carried out within1 year after a release date.
The first version to have that status is Laravel 5.1 (June 2015). According to the roadmap released by framework author, there should be a new subversion every half-year: Laravel 5.4 – Winter 2016, Laravel 5.5 – Summer 2017.
It’s quite important to know which version you will be using for your projects. For new ones it’s not advised to use Laravel 4.x version – you should use Laravel 5.x, probably Laravel 5.3 as the newest version at the time of writing this.
- The Laravel framework has a few system requirements: PHP >= 5.6.4, OpenSSL PHP Extension, PDO PHP Extension, Mbstring PHP Extension, Tokenizer PHP Extension, XML PHP Extension. This whole component kit’s presented in Windows OpenServer. Also make sure you have installed Composer on your machine.
- Here are the framework’s main features: bundles, eloquent ORM (object-relational mapping), query builder, application logic, reverse routing, restful controllers, class auto loading, view composers, blade templating engine, IoC containers, migrations, database seeding, unit testing, automatic pagination, form request.
- Using Laravel you can complete massive common tasks such as database migrations, queuing, authentication, routing, sessions, and caching with simplicity.
- Laravel has made processing with database very easy. It currently supports following databases – MySQL, Postgres, SQLite, SQL Server.
If you are familiar with HTML, Core PHP and Advanced PHP; Laravel will make your task easier. It will save you lots of time when you are developing a website from scratch. The website built in Laravel is also secure. It prevents the various attacks that can take place on websites.
Laravel offers a robust set of tools and an application architecture that incorporates many of the best features of frameworks like CodeIgniter, Yii, ASP.NET MVC, Ruby on Rails, Sinatra, and others. Laravel is built using Symfony, Doctrine, Faker, Carbon and other libraries. All of these components work flawlessly with Laravel.
1. Flexibility – there are many ways to complete one task.
2. Excellence – Laravel is the result of a long-term commitment to excellence, best practices, use of solid design principles, and the steady vision of the Taylor Otwell.
3. Evolution – each new Laravel version brings us more and more the new features which are worth trying.
4. Documentation – Laravel has beautifully written and comprehensive documentation. The Laravel forum also has many answers to common problems.
5. Official Packages – The Laravel framework has a number of extremely useful packages that we can add via composer that extend the framework.
Everything has its failings. And Laravel is not an exception.
1. Syntactic sugar – there is too much syntactic sugar in Laravel. Often you can face difficulties trying to maintain a unique build for your project code.
2. Juniors – Laravel attracts lots of newbies who can’t even cope with essentialities: framework documentation, composer and automatic loader.
3. Taylor Otwell – Why? Is it a real minus? Taylor alone determines framework future, e.g. he’s closed issues on Github, or he demands from developers to describe bugs through pull request, and so on. Yes, it’s okay from one side. But from the other – it’s not an open source.
- Forums. It’s the most common way to find an answer to about any problem.
- Podcast. You generally get a behind the scenes look at what’s coming down the road.
- Laracon. Laracon is a conference centered around the Laravel framework, covering its development, uses, and related general software development practices. Laracons are taking place in both United States and Europe, organized primarily by UserScape with additional help provided by a number of sponsors.
I recommend to anyone who wishes to learn the framework to get acquainted with above mentioned resources. It’s worth your time to do it.
I hope that this little introduction to the world of Laravel has shed some light and help you get some insights about it.
Laravel is an awesome framework to work with. It focuses on simplicity, clarity and getting work done. It’s designed to help you get started on building your own apps with Laravel. And Altabel Group will be happy to assist you with it. Remember, coding with Laravel is coding with elegance.
If you have any questions or comments, be sure to post them below and I’ll do my best to answer them!
Thank you for reading.
Business Development Manager
Professional Software Development
Recently Immo Landwerth post about .NET Standard 2.0 appeared in the web. Briefly, it is the unification of three major.NET Framework branches: .NET Framework, .NET Core and Xamarin. Simply saying, it is an API set which will be implemented by all platforms. This will join up the .NET platforms and stave off future fragmentation. This means that developers don’t need to master three different base class libraries to write code that runs across all of them. As long as industry is rapidly changing new .NET features will be designed by Microsoft or someone else.
A significant change is that .NET Standard will replace Portable Class Libraries (PCLs) in order to build multi-platform .NET libraries. Although the gist will be the same for developers, but implementation will be different.
The .NET Standard will include two types of APIs, the ones which are absolutely necessary to be implemented by all platforms, and optional APIs, which are not obligatory to be implemented. The last will be available as individual NuGet packages.
The APIs that can not be implemented on all platforms can be divided into two groups: specific APIs for each runtime and specific APIs for each OS. There are three ways to deal with unrealizable API. The first one is to make API unavailable. Secondly, you can make API available, but throw PlatformNotSupportedException on the platforms where there is no implementation. And also you can simulate API (as Mono does, partially simulating the registry as .ini files).
.NET Standard uses all of these variations and their combination, depending on the situation. Technologies that are available only on certain platforms will be implemented as NuGet packages. If it is unreal to make a stand-alone package, then there are options: throw an exception or simulate API.
In this table the arrows are showing the platform ability to support a higher version of .NET Standard. For example, .NET Core 1.0 supports the .NET Standard version 1.6, which is the reason why arrows point to the right for the lower versions 1.0 – 1.5.
As you can see, the 4.6.1 framework version meets twice. With this version exactly .NET Standard 2.0 will be compatible, as well as future versions of Xamarin and .NET Core. There was a roll back of changes that were included in versions 1.5 and 1.6. This was done in order to support backward compatibility. Newer versions of .NET Standard should contain previous and new features. During the analysis of NuGet.org only 6 packages with .NET Standard 1.5/1.6 target platform were found, the author of which is not Microsoft, so it was decided to take 4.6.1 as a basis, and to offer the authors of these 6-packs to update them.
PCL is replaced by .NET Standard, but you are still able to work with it. You can make a reference from one .NET Standard library to another, or to PCL library.
Graphically, this looks as follows:
In addition, it is possible to make a reference to a conventional .NET library using the compatibility shim.
But it will only work in case all APIs in this .NET library are supported by .NET Standard. In this case it will be much easier to apply the references to existing libraries.
The following image shows the main APIs of .NET Standard 2.0
Opportunities which are likely to appear in .NET Core are quite predictable as long as this brunch has less possibilities than others.
As for Xamarin, many of these APIs have been included in the release of Cycle 8 / Mono 4.6.0
Source: .Net Blog.
What do you think about these new features? Please feel free to share your thoughts with us. Thank you in advance!
Business Development Manager
Professional Software Development
Today, Node.js offers one of the most innovative solutions to building servers and web/mobile applications. Its single-threaded event looping and asynchronous, non-blocking input/output processing feature distinguishes it from other runtime environments. Its scope is increasing fast with valuable contributions from developers’ community and other technology giants. Right now, several performance-driven frameworks are being developed using primary principles and approaches of Node.js. These frameworks have extended the functionality of Node.js to a great extent and have also built newer features.
In this article let’s have a look at the frameworks associated with Node.js so that you can choose the one you like.
Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. With a myriad of HTTP utility methods and middleware at your disposal, creating a robust API is quick and easy. Express provides a thin layer of fundamental web application features, without obscuring Node.js features that you know and love. Many popular frameworks are based on Express.
Sails is the most popular MVC framework for Node.js. Sails makes it easy to build custom, enterprise-grade Node.js apps. It is designed to emulate the familiar MVC pattern of frameworks like Ruby on Rails, but with support for the requirements of modern apps: data-driven APIs with a scalable, service-oriented architecture. It’s especially good for building chat, real-time dashboards, or multiplayer games; but you can use it for any web application project – top to bottom.
Hapi.js is a powerful Node.js web framework for building APIs and other software applications. The framework has a robust plugin system and numerous key features, including input validation, configuration-based functionality, implement caching, error handling, logging and more. Hapi.js is used for designing useful applications, such as Postmile, a collaborative list making tool. Besides, it is used for providing technology solutions by several large-scale websites, such as Disney, Concrete, PayPal, Walmart and more.
Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. Through leveraging generators Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware within core, and provides an elegant suite of methods that make writing servers fast and enjoyable.
Meteor.js is a real-time application designed to build Web apps that constantly synchronize with the server. Your changes to templates and data flow from the server to the browser automatically. The redrawing and the updating are handled directly by the underlying framework. This works, by the way, in both directions. Your browser code can make changes or write data as if the database is right there. The synchronization happens in the background.
Derby.js is a full-stack MVC framework built for establishing a more solid routine towards creating modern web applications without the need to write complicated code. With Derby you can easily build real-time applications that will run simultaneously in the Node.js server and the browser. The Racer Engine that Derby enables for developers to use is a powerful way of synchronizing your browser, server and database data in real-time amongst all three mediums, enabling you and your app users to experience a true real-time experience. Racer supports offline usage and conflict resolution out of the box, which greatly simplifies writing multi-user applications.
Not every application requires full support for a browser. Restify is one of the server-side frameworks designed to serve up data and only data through an API. You fire it up and out comes JSON to everyone who shows up.
Restify places special emphasis on debugging and profiling so that you can drill down and optimize the performance of your server. DTrace is well-integrated and supported to make it possible to watch what happens and when it might go wrong. Restify is available from GitHub under a very basic license that requires little except a notice of copyright.
Web and apps development landscape is changing very fast and developers are shifting to frameworks aiming at quick and clean project delivery. The biggest plus of using node frameworks is that they provide high level readymade structure and you can focus on scaling your application instead of spending efforts in building and defining the basics.
Let us know your experience with Node.js frameworks via comments. Perhaps there are any «new comers» that deserve our attention?
Business Development Manager
Professional Software Development
Introducing ASP.NET Core:
ASP.NET Core is a new open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. It was architected to provide an optimized development framework for apps that are deployed to the cloud or run on-premises. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac and Linux. ASP.NET Core is open source at GitHub.
The framework is a complete rewrite that unites the previously separate ASP.NET MVC and Web API into a single programming model.
Despite being a new framework, built on a new web stack, it does have a high degree of concept compatibility with ASP.NET MVC.
ASP.NET Platform exists for more than 15 years. In addition, at the time of System.Web creation it contained a large amount of code to support backward compatibility with classic ASP. During this time, the platform has accumulated a sufficient amount of code that is simply no longer needed and is deprecated. Microsoft faced a difficult choice: to abandon backward compatibility, or to announce a new platform. They chose the second option. At the same time, they would have to abandon the existing runtime. Microsoft has always been a company focused on creation and launch on Windows. ASP.NET was no exception. Now the situation has changed: Azure and Linux occupied an important place in the company’s strategy.
The ASP.NET Core is poised to replace ASP.NET in its current form. So should you switch to ASP.NET Core now?
ASP.NET Core is not just a new version. It is a completely new platform, the change of epochs. Switching to ASP.NET Core can bring many benefits: compact code, better performance and scalability. But what price will be paid in return, how much code will have to be rewritten?
.NET Core contains many components, which we are used to deal with. Forget System.Web, Web Forms, Transaction Scope, WPF, Win Forms. They no longer exist. For simple ASP.NET MVC-applications changes will be minor and the migration will be simple. For more complex applications, which use a great number of .NET Framework classes and ASP.NET pipeline situation is more complicated. Something may work and something may not. Some part of the code will have to be rewritten from scratch. Additional problems may be caused by WebApi, because ASP.NET MVC subsystems and WebAPI are now combined. Many libraries and nuget-packages are not ready yet. So, some applications simply will not have a chance to migrate until new versions of the libraries appear.
I think we are waiting for the situation similar to the transition from Web Forms to ASP.NET MVC. ASP.NET Framework will be supported for a long time. First, only a small amount of applications will be developed on ASP.NET Core. Their number will increase, but sooner or later everyone will want to move to ASP.NET Core. We still have many applications running on the Web Forms. However, no one comes to mind to develop a new application on the Web Forms now, everybody chooses MVC. Soon the same happens to ASP.NET Framework, and ASP.NET Core. ASP.NET Core offers more opportunities to meet modern design standards.
The following characteristics best define .NET Core:
- Flexible deployment: Can be included in your app or installed side-by-side user- or machine-wide.
- Cross-platform: Runs on Windows, macOS and Linux; can be ported to other OSes (Operating Systems). The supported OSes, CPUs and application scenarios will grow over time, provided by Microsoft, other companies, and individuals.Command-line tools: All product scenarios can be exercised at the command-line.
- Compatible: .NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard Library.
- Open source: The .NET Core platform is open source, using MIT and Apache 2 licenses. Documentation is licensed under CC-BY. .NET Core is a .NET Foundation project.
- Supported by Microsoft: .NET Core is supported by Microsoft, per .NET Core Support.
- As for the “cons” one of the biggest issues are gaps in the documentation. Fortunately most of the things for creating and API are covered, but when you’re building an MVC app, you might have problems.
- Next problem – changes. Even if you find a solution to your problem, it could have been written for a previous version and might not work in the current one. Thanks to open source nature of it, there is also support available on github. But you get same problems there (apart from searching).
- Another thing is lack of support in the tooling. You can forget about NCrunch or R# Test Runner. Both companies say they will get to it when it gets more stable.
- ASP.NET Core is still too raw. Many basic things, such as the Data Access, is not designed for 100%. There is no guarantee that the code you are using now will work in the release version.
- It’s modular. You can add and remove features as you need them by managing NuGet packages.
- It’s also much easier and straightforward to set up.
- WebApi is now part of the MVC, so you can have class UserController, which will return a view, but also provide a JSON API.
- It’s cross-platform.
- It’s open-source.
ASP.NET Core is the work on the bugs of the classic ASP.NET MVC, the ability to start with a clean slate. In addition, Microsoft also aims to become as popular as Ruby and NodeJS among younger developers.
NodeJS and ASP.NET have always been rivals: both – a platform for backend. But in fact, between them, of course, there was no struggle. The new generation of developers, the so-called hipster developers, prefer Ruby and Node. The adult generation, people from the corporate environment, are on the side of .NET and Java. .NET Core is clearly trying to be more youthful, fashionable and popular. So, in future we can expect the .NET Core and NodeJS to be in opposition.
In its advertising campaign, Microsoft is betting on unusual positions for it: high performance, scalability, cross-platform. Do you think that ASP.NET “crawls” on the territory of NodeJS? Please feel free to share your thoughts with us.
Thank you in advance!
Business Development Manager
Professional Software Development
Over the years, PHP has evolved greatly and now it’s not just the most popular server-side scripting language but also the language used to build complex websites and web apps. The same could be told about its frameworks. PHP web frameworks have an ecosystem of their own in the world of web development. PHP frameworks are used to build websites and web applications of all sizes and complexity, ranging from small static websites to large scale complex enterprise content management systems.
Still there are different opinions on the question which PHP framework is the best, as some developers prefer performance, some prefer better documentation, some prefer lots of built-in functions, etc. Perhaps we should have a look at the frameworks depending how popular they are.
Different frameworks have been popular in different time. For instance, CodeIgniter framework remained the top choice for PHP developers from 2011 to mid 2014. However, later in 2014 a new PHP framework Laravel has gained its popularity and became the most used framework in 2015. Now in 2016 it is clear that the Laravel framework will remain at the top, due to the huge interest from developers and clients worldwide.
It’s already been said that Laravel is most famous PHP frameworks nowadays. It is very secure and have a lot of useful libraries like session, authentication, middleware, RESTapi and others are included in it. PHP developers choose to work on the Laravel framework because its large and gradually growing community and very good functionality. You don’t need to write more code because every basic and required code-blocks are pre-build on it. At the same time it’s mostly used by experts.
– Routing and middleware are the best feature of Laravel
– Laravel uses the blade template engine for generating various views
– Inherent Database Version control
– Built-in unit testing and simply readable impressive syntax
– Larger Community catering to thousands of progarmmers
CodeIgniter is the second most popular web framework among PHP developers. It is a lightweight powerful PHP framework that provides simple and elegant platform to create full-featured web applications. Choosing CodeIgniter you get all the tools you need in one little package. It’s easy to understand and to extend.
– Develop using MVC pattern
– No PHP Version Conflicts
– Less Duplication of Code
– Most Active Online Community
– Cache Class
– Security and Encryption
– Little to no server requirements
YiiFramework is the high-performance modern PHP framework. It attracts most of PHP developers due to its features like fast development, caching, authentication and role-based access control, scaffolding, testing, etc.
– Yii adopts the proven MVC architecture
– Yii allows developers to model database data in terms of objects and avoid the tedium and complexity of writing repetitive SQL statements
– With the help of Yii, collecting input extremely easy and safe
– Zero configuration required to let the task easier for you
– Thorough maintenance
CakePHP is also popular among PHP developers due to its lightweight, simplicity, faster and require less code. It is easy to learn with fast and flexible templating. The built-in CRUD feature is very handy for database interaction. The framework also has various built-in features for security, email, session, cookie and request handling. It’s perfectly suited for commercial applications.
– MVC Pattern – Model support data handling, with the model class you can insert, update, delete or read the data from the database.
– ORM features, converting data between incompatible type systems in databases and object-oriented programming languages
– Proper class inheritance
– Easily extend with Components, Helpers, Behaviours, and Plug-ins
No doubt, Symfony is a stable and sustainable PHP framework. It is a flexible, scalable yet powerful. It has a huge community of Symfony fans committed to take PHP to the next level. Symfony has plenty of reusable PHP components that can be used like security, templating, translation, validator, form config and more. It’s easy to install and configure on most platforms and it’s database engine-independent.
– Based on the premise of convention over configuration–the developer needs to configure -only the unconventional
– Compliant with most web best practices and design patterns
– Enterprise-ready–adaptable to existing information technology
– Stable enough for long-term projects
No doubt, some of our readers will either agree, disagree or have other PHP Frameworks, which they consider the best. But that’s already nice that you’ve read this post and perhaps could contribute to it. So please feel free to add a comment or through light why this or that framework is so popular and why it should or shouldn’t be 🙂
Senior Business Development Manager
Professional Software Development
Posted March 15, 2016on:
Whether you’re building apps for the browser, mobile or desktop, Aurelia can enable you to not only create amazing UI, but do it in a way that is maintainable, testable and extensible.
Retrospective and today
Aurelia is a project of Rob Eisenberg, the author of a very popular MV * – framework for Caliburn.Micro XAML-platforms, Durandal. Understanding all the disadvantages of Durandal, Eisenberg engaged in the development of so-called NextGen framework. In 2014 he began to work in Angular team on the second version of the framework. However, several months later, Rob decided to leave the Angular team since the direction of Angular 2, in his opinion, had changed a lot. He gathered a large team and returned to work on the framework of his dreams. And Aurelia is the result of that work.
By using modern tooling Aurelia was written from the ground up in ECMAScript 2016. This means you have native modules, classes, decorators and more at disposal.
Aurelia’s code is open sourced under the MIT License, a very permissive license used by many popular web projects today. The starter kits are available under the Creative Commons 0 license. There is also a Contributor for those who wish to join the team in working on Aurelia. Ultimately, this means that you can use Aurelia without fear of legal repercussions and it can be build in the same confidence.
Benefits of Aurelia
• Convention over Configuration – Simple conventions help developers follow solid patterns and reduce the amount of code they have to write and maintain. It also means less fiddling with framework APIs and more focus on their app.
• Simple, But Not Simplistic – Because of the simple design developers are able to learn a very small set of patterns and APIs that unlock limitless possibilities.
• Promotes the “-ilities” – Testability, maintainability, extensibility, learnability, etc.- Aurelia’s design helps developers to naturally write code that exhibits these desirable characteristics.
• Amazingly Extensible – Aurelia is highly modular and designed to be customized easily, so developers will never hit a roadblock or have to “hack” the framework to succeed.
• Integrates Well with Others – Easily integrated with any 3rd party library or framework: for instance, with jQuery, React, Polymer, Bootstrap, MaterializeCSS and much more.
• TypeScript Support – Each Aurelia library is released with its own d.ts files. There are also official TypeScript beginner kits and production quality starter kits.
• An Official Product with Commercial Support – Being an official product of Durandal Inc., it has commercial and enterprise support available, so you can use Aurelia for building core technology for your business.
Aurelia, Angular and React.js – what’s common and what’s different?
Aurelia vs. Angular
Similarities between Aurelia and Angular 2:
Differences in vision details and options range:
Aurelia vs. React.js
Aurelia vs. Angular and React
It goes without saying why these three frameworks are so popular. They all have a lot of strong advantages. Eventually, I’m favoring Aurelia: there’s solid documentation available and the overall philosophy is the same with Angular 2, but Aurelia is a better choice from the syntax and execution point of view. The architecture and syntax vision of Aurelia team seems to be more clear than the vision of the Angular team. The company and enterprise support of Aurelia is also a big pro.
What is your personal experience with these frameworks? Which one would you choose for your projects and why? What’s your prediction “who” will win the crown in the nearest future? Please feel free to share your thoughts with us.
Thank you in advance!
Business Development Manager
Professional Software Development