Beginning SOLID Principles and Design Patterns for ASP.NET DevelopersThis book teaches you all the essential knowledge required to learn and apply time-proven SOLID principles of object-oriented design and important design patterns in ASP.NET 5 applications. You will learn to write server-side as well as client-side code that makes use of proven practices and patterns.
SOLID is an acronym used to describe five basic principles of good object-oriented design - Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation and Dependency Inversion. This book covers all five principles and illustrates how they can be used in ASP.NET 5 applications.
Design Patterns are time proven solutions to commonly occurring software design problems. The most well-known catalog of design patterns comes from Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, the so-called GoF patterns (Gang of Four patterns). This book contains detailed descriptions of how to apply Creational, Structural and Behavioral GoF design patterns along with some P ...
Ember.js in ActionEmber.js is a JavaScript MVC framework that handles important tasks like managing code modules, maintaining state, and expediting reliable data flow. It provides the patterns, components, and scaffolding you need to build ambitious web applications.
Ember.js in Action introduces the Ember.js framework and shows you how to build full-featured, desktop-quality web applications. You'll begin with the basic architecture: client- and server-side MVC and how to integrate Ember.js with your favorite back end. Then you'll explore the amazing Handlebars templating engine that automatically updates your apps when the data behind them changes. Along the way, you'll develop a complete Ember.js application and learn how to deploy, administer, and update it efficiently. ...
Raspberry Pi Computer Architecture EssentialsWith the release of the Raspberry Pi 2, a new series of the popular compact computer is available for you to build cheap, exciting projects and learn about programming.
In this book, we explore Raspberry Pi 2's hardware through a number of projects in a variety of programming languages. We will start by exploring the various hardware components in detail, which will provide a base for the programming projects and guide you through setting up the tools for Assembler, C/C++, and Python. We will then learn how to write multi-threaded applications and Raspberry Pi 2's multi-core processor. Moving on, you'll get hands on by expanding the storage options of the Raspberry Pi beyond the SD card and interacting with the graphics hardware. Furthermore, you will be introduced to the basics of sound programming while expanding upon your knowledge of Python to build a web server. Finally, you will learn to interact with the third-party microcontrollers.
From writing your first Assembly Langua ...
Learning Network Programming with JavaNetwork-aware applications are becoming more prevalent and play an ever-increasing role in the world today. Connecting and using an Internet-based service is a frequent requirement for many applications. Java provides numerous classes that have evolved over the years to meet evolving network needs. These range from low-level socket and IP-based approaches to those encapsulated in software services.
This book explores how Java supports networks, starting with the basics and then advancing to more complex topics. An overview of each relevant network technology is presented followed by detailed examples of how to use Java to support these technologies.
We start with the basics of networking and then explore how Java supports the development of client/server and peer-to-peer applications. The NIO packages are examined as well as multitasking and how network applications can address practical issues such as security. ...
Monitoring ElasticsearchElasticSearch is a distributed search server similar to Apache Solr with a focus on large datasets, a schema-less setup, and high availability. This schema-free architecture allows ElasticSearch to index and search unstructured content, making it perfectly suited for both small projects and large big data warehouses with petabytes of unstructured data.
This book is your toolkit to teach you how to keep your cluster in good health, and show you how to diagnose and treat unexpected issues along the way. You will start by getting introduced to ElasticSearch, and look at some common performance issues that pop up when using the system. You will then see how to install and configure ElasticSearch and the ElasticSearch monitoring plugins. Then, you will proceed to install and use the Marvel dashboard to monitor ElasticSearch. You will find out how to troubleshoot some of the common performance and reliability issues that come up when using ElasticSearch. Finally, you will analyze your clu ...
OpenShift for DevelopersKeen to build web applications for the cloud? Get a quick hands-on introduction to OpenShift, the open source Platform as a Service (PaaS) offering from Red Hat. With this practical guide, you'll learn the steps necessary to build, deploy, and host a complete real-world application on OpenShift without having to slog through long, detailed explanations of the technologies involved.
OpenShift enables you to use Docker application containers and the Kubernetes cluster manager to automate the way you create, ship, and run applications. Through the course of the book, you'll learn how to use OpenShift and the Wildfly application server to build and then immediately deploy a Java application online. ...
Functional Web Development with Elixir, OTP, and PhoenixElixir and OTP provide exceptional tools to build rock-solid back-end applications that scale. In this book, you'll build a web application in a radically different way, with a back end that holds application state. You'll use persistent Phoenix Channel connections instead of HTTP's request-response, and create the full application in distinct, decoupled layers.
In Part 1, start by building the business logic as a separate application, without Phoenix. Model the application domain with Elixir functions and simple data structures. By keeping state in memory instead of a database, you can reduce latency and simplify your code. In Part 2, add in the GenServer Behaviour to make managing in-memory state a breeze. Create a supervision tree to boost fault tolerance while separating error handling from business logic.
Phoenix is a modern web framework you can layer on top of business logic while keeping the two completely decoupled. In Part 3, you'll do exactly that as you build a web in ...
Test-Driven Development with Python, 2nd EditionBy taking you through the development of a real web application from beginning to end, the second edition of this hands-on guide demonstrates the practical advantages of test-driven development (TDD) with Python. You'll learn how to write and run tests before building each part of your app, and then develop the minimum amount of code required to pass those tests. The result? Clean code that works.
In the process, you'll learn the basics of Django, Selenium, Git, jQuery, and Mock, along with current web development techniques. If you're ready to take your Python skills to the next level, this book—updated for Python 3.6—clearly demonstrates how TDD encourages simple designs and inspires confidence.
Dive into the TDD workflow, including the unit test/code cycle and refactoring; Use unit tests for classes and functions, and functional tests for user interactions within the browser; Learn when and how to use mock objects, and the pros and cons of isolated vs. integrated tests; Te ...
Continuous Delivery in JavaWith the release of Java 9 and the increasing maturity of web/microservice frameworks such as Spring Boot and Eclipse MicroProfile, there's never been a better time to design and implement Java-powered applications. But Java is only a small piece of the puzzle when it comes to continuously delivering working applications to a production environment.
This practical book charts the journey for establishing the practices and tooling to develop, operate and use a continuous delivery build pipeline for Java applications that will be deployed to a platform such as Kubernetes, AWS Lambda, and other cloud-based services. Each chapter focuses on a key practice within continuous delivery, and outlines appropriate tooling and describes how this should be utilized.Understand the process of continuous delivery, from setting up a local development environment through to deploying into production, and explore how this impacts the skills required from a modern Java application developer; ...
Real-Time Web Application DevelopmentDesign, develop, and deploy a real-world web application by leveraging modern open source technologies. This book shows you how to use ASP.NET Core to build cross-platform web applications along with SignalR to enrich the application by enabling real-time communication between server and clients. You will use Docker to containerize your application, integrate with GitHub to package the application, and provide continuous deployment to Azure's IaaS platform.
Along the way, Real-Time Web Application Development covers topics including designing a Materialize CSS theme, using a test-driven development approach with xUnit.net, and securing your application with the OAuth 2.0 protocol. To further your understanding of the technology, you will learn logging and exception handling; navigation using view components; and how to work with forms and validations. The rich code samples from this book can be used to retrofit or upgrade existing ASP.NET Core applications. ...