Customizing ASP.NET Core Part 6: Middleware

See the original posting on DZone Python

Wow, it is already the sixth part of this series. In this post, I’m going to write about middleware and how you can use them to customize your app a little more. I quickly go through the basics about middleware and then I’ll write about some more specials things you can do with middleware.

The Series Topics

About MiddleWares

Most of you already know what middlewares are, but some of you maybe don’t. Even if you’ve used ASP.NET Core for a while, you don’t really need to know any real details about middlewares, because they are mostly hidden behind nicely named extension methods like UseMvc(), UseAuthentication(), UseDeveloperExceptionPage(), and so on. Every time you call a Use-method in the Startup.cs in the Configure method, you’ll implicitly use at least one or maybe more middlewares.

How to Move Your App to a PWA: Here’s All You Need to Know

See the original posting on DZone Python

Progressive Web Apps or PWAs are ruling the tech world. Since their arrival, almost every application is moving towards becoming a progressive web app or is planning to do so. In our previous post on progressive web apps, I explained what a progressive web app is and what goes into testing a progressive web app.

So, let’s move to the next level now.

What a WebView Is and How to Test It

See the original posting on DZone Python

Convenience is something that we can never be fully satisfied with. This is why software developers are always made to push their limits to create a better user experience, without compromising functionality. All for the sake of saving the churn in today’s competitive business. People want convenience and this is why hybrid applications have been welcomed.

What is so unique about hybrid applications? WebViews!

[DZone Research] Games: How They’re Made, and How They Make Money

See the original posting on DZone Python

This article is part of the Key Research Findings from the 2018 DZone Guide to Game Development: Building Immersive Worlds.

Introduction

For our 2018 Guide to Game Development, we surveyed 476 software professionals on various surrounding the practice and craft of game development. In this article, we focus on the data we collected that has to do with languages and platforms used for game development as well as how modern games are monetized. 

The Evolution of the JavaScript Programming Language

See the original posting on DZone Python

When you look around the software development world today, one language that seems to be everywhere is JavaScript. JavaScript has gained a lot of popularity over the years, and, despite facing various stumbling blocks, this language has gone on to become the most popular language in the world today.

For this reason, I am interested in the evolution of the language. The low points, high points, and its strength. Without further ado, let’s dive into it.

How to Test a Progressive Web Application

See the original posting on DZone Python

Developers have been trying to fully implement pure web-based apps for mobile devices since the launch of the iPhone in 2007, but it is only in the last 1-2 years that we have seen headway in this direction. Progressive Web Applications are pure web-based apps that act and feel like native apps. They can be added as icons, opened in full-screen mode (without the browser), have a pure native app kind of user experience, and generate notifications.

On the other hand, they take up nearly no space, are fast, are rich like web apps, and improve the whole process of update and release to change a feature or look and feel.

JSONExport: JSON to Model

See the original posting on DZone Python

JSONExport

With JSONExport, you do not need to understand your JSON structure and create your model manually. Here is a utility to convert your JSON into model to do that. You just need to paste your JSON into the JSON field. First, it will check that JSON is valid and then it will convert it into a model. It will create different files for each class.

How to Use JSONExport

To use this tool, you first need to install it from here.

Material Dashboard Using Angular 6

See the original posting on DZone Python

Introduction

Recently, Angular has released its latest version, Angular 6.0. In the latest version, they have focused more on toolchain, which provides us with a way to quickly get started with our tasks easier, as well as some synchronized versions, such as Angular/core, Angular/compiler, etc.

With the release of Angular 6.0, one of the features which I like the most is Material Dashboard, which is kind of a starter component with a list of dynamic card components.

[DZone Research] Keys to Developing Effective Web and Mobile Applications

See the original posting on DZone Python

To gather insights on the current and future state of web and mobile development we talked to 19 IT executives and we asked, "What are the keys to developing web and mobile applications?" Here’s what they told us:

Business Requirements

  • Mobile can be web, native, progressive, or hybrid, and web can be simple web or responsive. At a general level, the keys to developing web and digital apps are: 1) Alignment on requirements between the product owner/business, developers, and testers. 2) Development process and timelines that sync, so one person/role does not delay the other (dev, test, ops). 3) Tools to support the above-mentioned objectives. 4) Successful implementation of proper continuous testing, integration, and development that is solid, stable. 5) Product status and quality visibility on-demand at all times to serve the various persona objectives (continuous integration dashboards, quality metrics, coverage, developer productivity – defect closure, user stories, implementation, etc.). 
  • Figure out if a mobile app is required or if you can do through the web. Learn what they need. Usability of the phone or sharing information. 
  • The biggest key to developing web apps is to understand your priorities and goals. For example, if SEO is a priority, then you’ll need to focus on server-side rendering and other optimizations.

UX/UI

  • The volume of web to client-server is 10:1. How easy it is to use the platform to build and change apps to meet enterprise needs? Acceleration with pre-built UI components, easy widget for building components, or a backend engine for audit trail analysis. Specifically designed for developers’ needs. Enterprise operations to orchestrate workflow with web APIs to exchange information. EnterpriseOps. 
  • Start with a good technical stack. This makes everyone’s job easier. Let the developer focus on content management, UX, and manage scale. Only a few know how to use well. 
  • Ensure consistent UI across platforms – visually perfect across browsers, web. Make sure when customers use online banking it’s the same across all platforms. Be able to handle multiple languages. Make sure the layout didn’t break as you’ve gone from one language to another. Verify the accuracy of the data for compliance (FDA, financial institutions). Help accelerate the entire delivery process. Shorten the testing cycle by 50 to 94% based on the use case. Reduce development time by 10-15% and much fewer bugs with high levels of coverage and automatic maintenance. In web and mobile development, agility and speed are a critical factor to everyone who develops today. Shorten the release cycle while maintaining quality. 
  • Web and mobile applications must be designed and developed with a focus on user behaviors from day one. User expectations of their experience with an application are higher than ever, especially in the more tactile mobile interactions. This focus needs to start very early and guide application architecture.

Testing

  • Test the app before it goes live. Emulation and simulation are the old school way of testing. Move to a real-world test environment with relative ease. Multi-model device clouds. Whenever you are eliminating issues and bugs a developer faces billions of lines of logs. Only 10-15% of issues matter from a mobile perspective, and those account for 80-90% of mobile issues. Prioritize mobile UX because that impacts the bottom line. There is a lot of focus on digital transformation. Organizations need to focus on mobile within digital transformation. Less digital and more mobile transformation. More precise with how to allocate resources. Invest with precision. 
  • Automate the process, especially testing. Dealing with UI development and testing still one of the tricky ones to automate. Selenium is out there with a ton of mobile testing apps. Still two or three holdouts so it’s hard to do UI testing, you need human judgment, and then databases. If an app is running on the desktop, then the web developer worries less about battery and memory usage. There are constraints on mobile apps with power consumption and memory. Testing comes in here as well you may have to measure post-build. There is a way to do mobile development flow and notifications. United Airlines’s mobile app flight status tab with slider to turn on notification and then a second later a modal dialogue telling you you’ve turned is unnecessary, redundant, and irritating. They’re obviously not thinking about UX, the modal dialogue is a nuisance and unnecessary. 
  • The keys to developing more secure web and mobile applications are developer training and automated security testing, producing fast and actionable results. For example, many mobile developers still struggle with the management of potentially sensitive data on the device. The first step is offering guidance through the use of a data classification policy which should classify sensitive data types with the corresponding level of protection required. Based on mobile application security training course recommendations, perhaps using the iOS KeyChain for “Sensitive” data is acceptable, whereas storage of something considered “Highly Sensitive” is explicitly prohibited.

Other

  • There are many platforms and frameworks. Applications need to connect to CRM and ERP systems. Help understand the mobile landscape. 
  • Make sure you’re using trusted libraries and SDKs. Most people are using a combination of in-house, objective C, Java, commercial SDKs, and third-party code with access to your mobile app data. Make sure third-parties are trusted and you know what they are doing with the data they pull from your app.
  • Do both at once. Internal stack and APIs to build mobile and web apps on top they’re just a client to our framework. Use APIs to hook into the backend to freely integrate with their own apps.
  • The expanding variety of devices with changing technology makes it hard to do mobile. There is a line of demarcation, conceptual and technical, encourage clients to focus on APIs and integrations with internal systems. We handle the front-end user interface.
  • Don’t forget long-term supportability and stability. Take the time up front to create a good architecture that will scale and don’t take shortcuts.
  • Since web and mobile apps involve a myriad of design choices, the keys to successful development naturally depend first and foremost on the developers’ ability to curtail complexity. That can be achieved by selecting tools and frameworks that strike the right balance between flexibility and productivity and match the existing skill sets of the developers on the team. Just as important is the necessity to consider both functional and deployment (quality-of-service) requirements from the get-go, rather than as an afterthought. Specifically, these requirements include security, performance, scalability, monitoring, and maintainability. Choosing tools and frameworks that have been proven in real projects trumps the latest, hot-off-the-press shiny new tools and frameworks.

Here’s who we spoke to:

Customizing ASP.NET Core (Part 5): HostedServices

See the original posting on DZone Python

This fifth part of this series doesn’t really show a customization. This part is more about a feature you can use to create background services to run tasks asynchronously inside your application. Actually, I use this feature to regularly fetch data from a remote service in a small ASP.NET Core application.

The Series’s Topics

About HostedServcices

HostedServices are a new thing in ASP.NET Core 2.0 and can be used to run tasks asynchronously in the background of your application. This can be used to fetch data periodically, do some calculations in the background, or perform some cleanups. This can also be used to send preconfigured emails or whatever you need to do in the background.

How to Make a Cross-Browser Compatible Website

See the original posting on DZone Python

Cross-browser compatibility is important. Very important. We have established that fact in our previous post on the need of a cross browser compatible website. So the next step is, how to make cross-browser compatible websites? How can we make sure that our website provides a smooth and seamless user experience across all browsers that your target audience may have access to, be it Firefox, Chrome, or even Internet Explorer?

While developing a website, normally, you use a combination of JavaScript, CSS, and HTML with CSS3 and HTML5 being the latest.

React Native Development (Part 2): Improving Performance

See the original posting on DZone Python

In the last article in our React Native series, with the help of the architecture diagram we saw that React Native bridges the gap between JavaScript and Native components. The performance of piece of JavaScript code is equivalent if not better than ideal native code. However, that is not the case with the bridge though.

react native app performanceThe JavaScript realm cannot access data from the Native realm just like that because it’s a completely different heap; it’s a completely different address space. Data between the realms is serialized. This serialization is expensive and takes place every time you send stuff between realms inside your app.

Perl6::Math::Matrix (Part 3: When to Use MMD)

See the original posting on DZone Python

In this guide about what to consider when writing a Perl 6 module, we (after Part 1 and Part 2) will reach Perl 6’s great power of signatures. They enable a feature that is very often used in Perl 6 (internally and externally). Here are I look at when the usage of MMD makes the most sense.

In short: Multi Method Dispatch allows you to have multiple methods or subs with the same name but different signatures. When you call the method, the compiler decides according to the type and number of arguments, which actual method is allowed to run (and if no signature fits the call, an error will be thrown — same as with any malformed call). But this is just the technical side. There is also the software engineering/API side. When is it useful to combine different functionalities under the same name and when does it just muddy the waters? To clear up that question, I want to look at three (+1) examples from the module at hand.

Reflecting on TypeScript, Lambdas, and, of Course, Testing

See the original posting on DZone Python

Yet another long-overdue post. The last couple of weeks (or perhaps Sprints) my team has dived into TypeScript for a new project. I like it, really like it. Maybe that’s just because for years I’ve feared JavaScript, haven’t understood enough about how to do unit testing, and found myself writing terrible code and just running it to find the bugs. This is not a very good development methodology.

TypeScript and IDEs

This time around I’m using a great IDE (Visual Studio Code, of course), have type packages for just about everything we are working with, and am writing unit tests. I have persisted for many years just using Vim (in the recent history, mostly for writing Go), and because my job has frequently been quite varied and I’m often too lazy to install plugins or custom editor scripts, it didn’t have anything really helping me with my coding. I think the only times in the last 8 or 9 years I’ve genuinely wanted, needed, and used an IDE has been for writing Flash ActionScript 3.0 and Java (IntelliJ IDEA in both cases). That’s not counting the dabbling in Unity/UnrealEngine where I’ve used MonoDevelop or Visual Studio.

Build Great-Looking Web Apps Fast With WebJars and Wicket

See the original posting on DZone Python

Introduction

WebJars is a well-known project that offers a huge set of client-side web libraries packed as Jars that are ready to be used. Each Jar contains the full distribution of a specific library version, which means that we can easily integrate these libraries with our familiar build tools (like Maven, Gradle, etc..) without the burden of installing and using web development tools like npm, Node, Bower, etc.

Things get even more interesting if we decide to use WebJars to theme our website with one of the many open source templates or themes freely available on the Internet. In this case, WebJars is a self-contained source for front-end libraries, meaning that with a single artifact we get the whole library with all the required dependencies.

Learn Swift With This Hands-On Tutorial

See the original posting on DZone Python

In this Swift tutorial, I am going to introduce you to some of the basic concepts of Swift. But, before moving ahead, I would get you guys familiar with "What is Swift" and how can you install Swift on your system. So, let’s get started now!

Swift Tutorial: What Is Swift?

Swift is a programming language which adopts the best of C and Objective-C and is developed by Apple, Inc. for iOS/OS X development to run on many existing iOS and OS X platforms.

React/JSX as a Server-Side Templating Language

See the original posting on DZone Python

Using React function components to render your website’s skeleton index.html NOTE: This is a cross-post from my newsletter. I publish each email two weeks after it’s sent. Subscribe to get more content like this earlier right in your inbox!

Another note: I’ve been teasing about something big that I have coming. I’m totally not joking. I’m working on something really huge and y’all will be the first to know about it. Stay tuned. It’s weeks away and I think you’re going to love it.

Last week at PayPal, one of my pull requests was merged in an Express codebase which migrated us from a custom template system to using React function components and JSX. The motivation was to reduce the maintenance overhead of knowing and maintaining a custom template system in addition to the JSX we are doing on the front-end.

1 2 3 4 5 134