How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiqueDenis Voituron
Le Model View ViewModel (MVVM) est une architecture et une méthode de conception utilisée dans le génie logiciel. Apparu en 2004, MVVM est adapté pour le développement des applications basées sur les technologies Windows (desktop, tablette ou mobile), mais également Web/HTML5. Cette méthode permet de séparer la vue de la logique et de l'accès aux données en accentuant les principes de binding et d’événement. Une bonne vue générale a été donnée par Laurent Bugnion, le père du MVVMLight, dans le podcast #11 de DevApps (http://devapps.be/podcast/11).
http://www.meetup.com/fr-FR/micbelgique/events/228368909/?eventId=228368909
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
This document provides an agenda and overview for a presentation on building Windows Store apps using XAML and C#. The presentation will demonstrate the Kona project, a sample Windows Store app, and how to build and test a Windows Store app using Team Foundation Build. It will also cover globalization, logging, MVVM pattern, navigation, and visual state support in Windows Store apps. The presentation aims to provide tips and best practices for enterprise product development of Windows Store apps.
This document discusses taking web apps offline by caching user data and assets. It covers using localStorage and IndexedDB to store user data locally in the browser. It also covers using the AppCache manifest to cache static assets so the app works without an internet connection. The document provides examples of storing, retrieving, updating and deleting data from localStorage and IndexedDB. It also demonstrates how to define the files and fallback pages to cache in an AppCache manifest.
Buyers appreciate the catalog experience; they certainly don’t miss the avalanche of item listings. Sellers also like providing catalog experiences; their items get more exposure. With eBay’s built-in product definitions, sellers don’t need to take valuable time writing product descriptions or item specifics or even providing photos—eBay’s built-in product definitions take goods quickly to market. New this year: creating your own product listing within the eBay catalog using UPC codes and brand MPNs.
HTML5 est un pas de géant dans la bonne direction: il apporte plusieurs fonctionnalités dont les développeurs avaient besoin pour créer plus facilement de meilleures expériences web. Il a aussi fait naitre un débat sans fin: applications natives ou applications web! Lors de cette présentation, Frédéric Harper vous montrera comment le web ouvert peut vous aider à créer des applications mobiles de qualités. Vous en apprendrez plus sur des technologies telles que les WebAPIs, ainsi que les outils qui vous permettront de viser un nouveau marché avec Firefox OS et le web d’aujourd'hui.
Designing Capital One's iPhone and iPad AppSabrina Ngai
Sabrina Ngai and Adey Salyards from Capital One share their team's experience overhauling Capital One's mobile apps to work seamlessly on both iPad and iPhone - aka making it a universal app.
Developing your first application using FI-WAREFermin Galan
This document provides instructions for developing a first application using FI-WARE by connecting sensors to the FI-WARE IoT backend. It discusses connecting a basic Z-Wave sensor pack to the backend using FIGWAY software on a Raspberry Pi. The steps include including sensors in a Z-Wave network, editing registration and observation scripts to specify sensor IDs and callback URLs, registering sensors using fizway_register, and running fizway to interconnect sensors to the backend. Configuration files and ports for different sensor types like switches are also outlined. The goal is to enable sharing sensor data in FI-WARE's IoT Challenge HUB spreadsheet by connecting low-cost hardware to FI-WARE open APIs.
The document discusses the Indexed Database API which allows web applications to store and retrieve structured data in a client-side database. It provides examples of how to open a database, define object stores, add and retrieve data from the object stores. The Indexed Database API provides a more powerful alternative to Web Storage for client-side storage of larger amounts of structured data.
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiqueDenis Voituron
Le Model View ViewModel (MVVM) est une architecture et une méthode de conception utilisée dans le génie logiciel. Apparu en 2004, MVVM est adapté pour le développement des applications basées sur les technologies Windows (desktop, tablette ou mobile), mais également Web/HTML5. Cette méthode permet de séparer la vue de la logique et de l'accès aux données en accentuant les principes de binding et d’événement. Une bonne vue générale a été donnée par Laurent Bugnion, le père du MVVMLight, dans le podcast #11 de DevApps (http://devapps.be/podcast/11).
http://www.meetup.com/fr-FR/micbelgique/events/228368909/?eventId=228368909
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
This document provides an agenda and overview for a presentation on building Windows Store apps using XAML and C#. The presentation will demonstrate the Kona project, a sample Windows Store app, and how to build and test a Windows Store app using Team Foundation Build. It will also cover globalization, logging, MVVM pattern, navigation, and visual state support in Windows Store apps. The presentation aims to provide tips and best practices for enterprise product development of Windows Store apps.
This document discusses taking web apps offline by caching user data and assets. It covers using localStorage and IndexedDB to store user data locally in the browser. It also covers using the AppCache manifest to cache static assets so the app works without an internet connection. The document provides examples of storing, retrieving, updating and deleting data from localStorage and IndexedDB. It also demonstrates how to define the files and fallback pages to cache in an AppCache manifest.
Buyers appreciate the catalog experience; they certainly don’t miss the avalanche of item listings. Sellers also like providing catalog experiences; their items get more exposure. With eBay’s built-in product definitions, sellers don’t need to take valuable time writing product descriptions or item specifics or even providing photos—eBay’s built-in product definitions take goods quickly to market. New this year: creating your own product listing within the eBay catalog using UPC codes and brand MPNs.
HTML5 est un pas de géant dans la bonne direction: il apporte plusieurs fonctionnalités dont les développeurs avaient besoin pour créer plus facilement de meilleures expériences web. Il a aussi fait naitre un débat sans fin: applications natives ou applications web! Lors de cette présentation, Frédéric Harper vous montrera comment le web ouvert peut vous aider à créer des applications mobiles de qualités. Vous en apprendrez plus sur des technologies telles que les WebAPIs, ainsi que les outils qui vous permettront de viser un nouveau marché avec Firefox OS et le web d’aujourd'hui.
Designing Capital One's iPhone and iPad AppSabrina Ngai
Sabrina Ngai and Adey Salyards from Capital One share their team's experience overhauling Capital One's mobile apps to work seamlessly on both iPad and iPhone - aka making it a universal app.
Developing your first application using FI-WAREFermin Galan
This document provides instructions for developing a first application using FI-WARE by connecting sensors to the FI-WARE IoT backend. It discusses connecting a basic Z-Wave sensor pack to the backend using FIGWAY software on a Raspberry Pi. The steps include including sensors in a Z-Wave network, editing registration and observation scripts to specify sensor IDs and callback URLs, registering sensors using fizway_register, and running fizway to interconnect sensors to the backend. Configuration files and ports for different sensor types like switches are also outlined. The goal is to enable sharing sensor data in FI-WARE's IoT Challenge HUB spreadsheet by connecting low-cost hardware to FI-WARE open APIs.
The document discusses the Indexed Database API which allows web applications to store and retrieve structured data in a client-side database. It provides examples of how to open a database, define object stores, add and retrieve data from the object stores. The Indexed Database API provides a more powerful alternative to Web Storage for client-side storage of larger amounts of structured data.
The Web beyond "usernames & passwords" (OSDC12)Francois Marier
Identity systems on the Web are a bit of a mess. Surely in 2012, we would have something else than usernames and passwords for logging into websites. A solution that doesn't require trusting a central authority with a privacy policy that can change at a whim.
It turns out that solving the general identity problem is very hard. Some of these solutions require complicated redirections, an overwhelming amount of jargon and lots of verbose XML. The technology has been around for a long time, but implementing it properly (and safely) is often incredibly difficult. It's a lot to ask of the millions of part-time developers out there that are building sites out of some quick HTML, a MySQL database and some PHP Code samples.
This talk will explore the challenges of the existing Web identity solutions and introduce the choices that we made during the development of Persona, a new Open Source federated identity solution from Mozilla, designed and built to respect user privacy.
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22Frédéric Harper
Firefox OS is a new operating system for mobile phones to bring web connectivity to those who can not get top-of-the-line smartphones. By harvesting the principles of what made the web great and giving developers access to the hardware directly through web standards it will be the step we need to make a real open and affordable mobile web a reality. In this talk, Frédéric Harper from Mozilla will show how Firefox OS works, how to build apps for it and how end users will benefit from this open alternative to other platforms.
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...Frédéric Harper
The mobile web got a bad reputation. In reality, it's the platform to bet on if you care about reach and sustainability of your product. In this talk, Frédéric Harper will show you how you can use HTML and JavaScript to build amazing mobile applications as to brush up what you previously published. Learn about the open web technologies, including WebAPIs and tools designed to get you started developing HTML apps for Firefox OS and the web. In the end, HTML is not just for desktops..
Persona: in your browsers, killing your passwordsFrancois Marier
Introduction to Persona, a new cross-browser login system for the web that's built entirely in Javascript. Powered by node.js on the backend, it pushes most of the crypto to the browser in order to create a secure and privacy-sensitive experience.
My Slides about creating web sites which could also be useable even if you are not online! From Web Storages to Service Workers.
Presented at Mobiletech Conference in Munich March 2017
The document appears to be a presentation about using jQuery with SharePoint. It discusses open wireless access being available and encourages attendees to tweet about the session and blog. It then provides information about the presenter and their background as well as an outline of the topics to be covered in the presentation, including what jQuery is, how to deploy and develop with it, interacting with SharePoint and the DOM, reading and writing list data, using third party libraries, and demos.
Passwords suck, but centralized proprietary services are not the answerFrancois Marier
Passwords are a big problem online and a lot of websites have turned to centralized services to handle logins for them. It's a disturbing trend from a privacy/surveillance point of view, but from a software freedom point of view, it's also turning these proprietary services into core dependencies.
That's why Mozilla is building Persona, a new federated and cross-browser system which makes identity a standard part of the browser. It's simple, privacy-sensitive and entirely free software.
The document describes an API for an e-commerce site. It allows users to browse products, view product details, add products to a shopping cart, purchase products by creating an order, and process payments. The API uses HAL (Hypertext Application Language) format and links to allow navigation between resources. It includes examples of HTTP requests and responses for common operations like retrieving a product, adding it to a cart, checking out, and processing a payment.
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Frédéric Harper
This document discusses Firefox OS, an open source mobile operating system built on HTML5. It notes that Firefox OS is constructed using HTML5, CSS3 and JavaScript APIs to build applications. It highlights some of the benefits of using HTML5 like distribution through the web and standards-based technologies. It provides examples of Firefox OS devices and discusses how to build hosted and packaged applications for Firefox OS using HTML5, manifest files and various web APIs.
This document summarizes a workshop on building a product shopping application using jQuery Mobile. It describes creating an account on Codiqa to build the application interface, making an AJAX call to populate a list view with product data from an API, and uploading the application to Google App Engine so it can be accessed from mobile devices. Code examples are provided for resetting the list view, adding individual product items to the list, and configuring the App Engine deployment.
Building Progressive Web Apps for Android and iOSFITC
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Simon MacDonald, Adobe
Overview
Progressive Web Apps are the new hotness with Google pressing hard to make them the defacto choice for building mobile applications but what’s to be done about iOS where many of the key API’s are not supported. That’s where Apache Cordova/PhoneGap comes in by polyfilling the missing functionality. In this talk Simon will show you how to create a PWA that runs on the web, Android and iOS from a single code base. Take advantage of some new tools to easily deploy and test your PWA.
Beginning with a brief overview of Progressive Web Apps, what features make your web app progressive and which API’s you can take advantage of, Simon will discuss the availability of these API’s on various platforms, taking care not to completely dump on Apple for falling behind. No, that’s a lie, he will jokingly take Apple to task.
He will introduce Apache Cordova/PhoneGap, explaining how you can use Apache Cordova/PhoneGap to deploy a web application to Android and iOS; explaining how Cordova plugins allow us to polyfil the missing functionality on iOS.
Simon will demo a PWA running on the desktop in Chrome, Android in Chrome and as a compiled hybrid app on iOS all from the same codebase.
Objective
To introduce developers to building progressive web apps for all platforms.
Target Audience
Web application developers
Five Things Audience Members Will Learn
What are Progressive Web Apps
How to build a progressive web app
The differences between PWA’s on Chrome and Safari
How to use a single code base to target web, Android and iOS
How to deploy a PWA on iOS as an app
This document discusses OpenSocial and how it can be used in enterprises. Some key points:
- OpenSocial allows for integration between different enterprise applications through the use of gadgets, which are small web applications that can display and interact with data from multiple sources.
- Gadgets are defined using an XML specification file and core JavaScript APIs. They provide benefits like easy development, security, and the ability to write once and display across different systems.
- Challenges include issues with enterprise readiness like single sign-on, deployment behind firewalls, and immaturity as OpenSocial 1.0 is still in progress.
- The future of OpenSocial includes finalizing the 1.0 specification, a
Need for Speed: Removing speed bumps in API ProjectsŁukasz Chruściel
No one wants their app to be slow! Yet, we all may end up with not optimal solutions that may slow down responses of API Platform-based applications. During this speech, together, we will discover typical pitfalls and how to spot them and address them.
This presentation will focus on the application-level things we may change to improve our response times.
This document provides an overview of Backbone.js and how it can be used to build dynamic web applications. It discusses the main Backbone components:
- Models represent single data objects and can be validated.
- Collections hold ordered sets of models and can fetch data from the server.
- Views handle the display and interaction of data from models and collections.
- Routers map URLs to functions that control the application flow.
The document then gives an example of using Backbone to build a simple shopping cart application with Products and Cart views, demonstrating how the components work together.
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Frédéric Harper
The mobile web got a bad reputation. In reality, it's the platform to bet on if you care about reach, and sustainability of your product. In this talk, Frédéric Harper will show you how you can use HTML5, CSS3, and JavaScript to build amazing mobile applications as to brush up what you previously published. Learn about the open web technologies, including WebAPIs, and tools designed to get you started developing HTML apps for Firefox OS, and the web.
Educate 2017: Customizing Authoring: How our APIs let you create powerful sol...Learnosity
Watch the video of the presentation: https://youtu.be/3pumspJ34_E?t=1s
High-quality content is more likely to yield high-quality learning outcomes. But how can you make world-class assessments without stretching your resources to their limits?
Get the insights you need from our authoring experts, and learn how to gain maximum value from Learnosity by utilizing the full range of author customization capabilities at your disposal.
Find out more around the benefits of configurable authoring tools, creating your own question templates, and how to quickly build minimal authoring experiences that look and perform exactly as you want them to.
Parse London Meetup - Cloud Code Tips & TricksHector Ramos
The document provides an overview of Cloud Code in Parse and discusses several tips and tricks for using Cloud Code. Some key points include:
- Cloud Code allows running JavaScript code on Parse's servers to perform actions like validating data, running background jobs, and sending push notifications.
- Functions like beforeSave and afterSave hooks allow running code anytime an object is saved to validate data, clean values, and perform other actions.
- Background jobs can run long-running processes on a scheduled basis, like cleaning up business name values over time.
- Push notifications can be sent from afterSave to keep client apps updated in real-time, such as notifying users of new comments.
Welcome to the (state) machine @ ExploreDDD 2019Mauro Servienti
Stateless all the thing, they say. In the last few years we’ve been brainwashed: design stateless systems, otherwise they cannot scale, they cannot be highly available, and they are hard to maintain and evolve. In a nutshell stateful is bad. However complex software systems need to do collaborative processing, that is stateful by definition. Stateless myth busted! Collaborative domains deal with long running business transactions and need to interact with distributed resources. The traditional distributed transactions approach, even if tempting, is a time bomb.
This is when Sagas come into play. Sagas allow to model complex collaborative domains without the need for distributed transactions and/or orchestration across multiple resources. Join Mauro on a journey that aims to disclose what sagas are, how they can be used to model a complex collaborative domain, and what role they play when it comes to designing systems with failure and eventual consistency in mind.
(It’s all right, I know where you’ve been)
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsMauro Servienti
Ultimamente ci hanno stressato come non mai che stateful è il male. Tutto deve essere stateless, altrimenti non scala, non può essere altamente disponibile, ed è complesso da manutenere ed evolvere. Nonostante questo i sistemi software complessi, essendo basati su processi collaborativi, sono per natura stateful. I processi collaborativi, noti anche come long running business transactions, necessitano di interagiscono con risorse distribuite. L’approccio tradizionale basato su transazioni distribuite, anche se allettante, è una bomba pronta ad esplodere.
Pane quotidiano per le Saghe. Le Saghe consentono di modellare sistemi complessi senza la necessità di transazioni distribuite e coordinamento esterno. Vedremo cosa sono le Saghe, come possono essere usate per modellare domini complessi, e che ruolo giocano quando progettiamo sistemi basati sui concetti di “design for failures” e “eventual consistency”
(It’s all right, I know where you’ve been)
More Related Content
Similar to Designing a ui for microservices @ .NET Day Switzerland 2019
The Web beyond "usernames & passwords" (OSDC12)Francois Marier
Identity systems on the Web are a bit of a mess. Surely in 2012, we would have something else than usernames and passwords for logging into websites. A solution that doesn't require trusting a central authority with a privacy policy that can change at a whim.
It turns out that solving the general identity problem is very hard. Some of these solutions require complicated redirections, an overwhelming amount of jargon and lots of verbose XML. The technology has been around for a long time, but implementing it properly (and safely) is often incredibly difficult. It's a lot to ask of the millions of part-time developers out there that are building sites out of some quick HTML, a MySQL database and some PHP Code samples.
This talk will explore the challenges of the existing Web identity solutions and introduce the choices that we made during the development of Persona, a new Open Source federated identity solution from Mozilla, designed and built to respect user privacy.
HTML for the Mobile Web, Firefox OS - All Things Open - 2014-10-22Frédéric Harper
Firefox OS is a new operating system for mobile phones to bring web connectivity to those who can not get top-of-the-line smartphones. By harvesting the principles of what made the web great and giving developers access to the hardware directly through web standards it will be the step we need to make a real open and affordable mobile web a reality. In this talk, Frédéric Harper from Mozilla will show how Firefox OS works, how to build apps for it and how end users will benefit from this open alternative to other platforms.
HTML, not just for desktops: Firefox OS - Congreso Universitario Móvil - 201...Frédéric Harper
The mobile web got a bad reputation. In reality, it's the platform to bet on if you care about reach and sustainability of your product. In this talk, Frédéric Harper will show you how you can use HTML and JavaScript to build amazing mobile applications as to brush up what you previously published. Learn about the open web technologies, including WebAPIs and tools designed to get you started developing HTML apps for Firefox OS and the web. In the end, HTML is not just for desktops..
Persona: in your browsers, killing your passwordsFrancois Marier
Introduction to Persona, a new cross-browser login system for the web that's built entirely in Javascript. Powered by node.js on the backend, it pushes most of the crypto to the browser in order to create a secure and privacy-sensitive experience.
My Slides about creating web sites which could also be useable even if you are not online! From Web Storages to Service Workers.
Presented at Mobiletech Conference in Munich March 2017
The document appears to be a presentation about using jQuery with SharePoint. It discusses open wireless access being available and encourages attendees to tweet about the session and blog. It then provides information about the presenter and their background as well as an outline of the topics to be covered in the presentation, including what jQuery is, how to deploy and develop with it, interacting with SharePoint and the DOM, reading and writing list data, using third party libraries, and demos.
Passwords suck, but centralized proprietary services are not the answerFrancois Marier
Passwords are a big problem online and a lot of websites have turned to centralized services to handle logins for them. It's a disturbing trend from a privacy/surveillance point of view, but from a software freedom point of view, it's also turning these proprietary services into core dependencies.
That's why Mozilla is building Persona, a new federated and cross-browser system which makes identity a standard part of the browser. It's simple, privacy-sensitive and entirely free software.
The document describes an API for an e-commerce site. It allows users to browse products, view product details, add products to a shopping cart, purchase products by creating an order, and process payments. The API uses HAL (Hypertext Application Language) format and links to allow navigation between resources. It includes examples of HTTP requests and responses for common operations like retrieving a product, adding it to a cart, checking out, and processing a payment.
Firefox OS: HTML5 sur les stéroïdes - HTML5mtl - 2014-04-22Frédéric Harper
This document discusses Firefox OS, an open source mobile operating system built on HTML5. It notes that Firefox OS is constructed using HTML5, CSS3 and JavaScript APIs to build applications. It highlights some of the benefits of using HTML5 like distribution through the web and standards-based technologies. It provides examples of Firefox OS devices and discusses how to build hosted and packaged applications for Firefox OS using HTML5, manifest files and various web APIs.
This document summarizes a workshop on building a product shopping application using jQuery Mobile. It describes creating an account on Codiqa to build the application interface, making an AJAX call to populate a list view with product data from an API, and uploading the application to Google App Engine so it can be accessed from mobile devices. Code examples are provided for resetting the list view, adding individual product items to the list, and configuring the App Engine deployment.
Building Progressive Web Apps for Android and iOSFITC
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Simon MacDonald, Adobe
Overview
Progressive Web Apps are the new hotness with Google pressing hard to make them the defacto choice for building mobile applications but what’s to be done about iOS where many of the key API’s are not supported. That’s where Apache Cordova/PhoneGap comes in by polyfilling the missing functionality. In this talk Simon will show you how to create a PWA that runs on the web, Android and iOS from a single code base. Take advantage of some new tools to easily deploy and test your PWA.
Beginning with a brief overview of Progressive Web Apps, what features make your web app progressive and which API’s you can take advantage of, Simon will discuss the availability of these API’s on various platforms, taking care not to completely dump on Apple for falling behind. No, that’s a lie, he will jokingly take Apple to task.
He will introduce Apache Cordova/PhoneGap, explaining how you can use Apache Cordova/PhoneGap to deploy a web application to Android and iOS; explaining how Cordova plugins allow us to polyfil the missing functionality on iOS.
Simon will demo a PWA running on the desktop in Chrome, Android in Chrome and as a compiled hybrid app on iOS all from the same codebase.
Objective
To introduce developers to building progressive web apps for all platforms.
Target Audience
Web application developers
Five Things Audience Members Will Learn
What are Progressive Web Apps
How to build a progressive web app
The differences between PWA’s on Chrome and Safari
How to use a single code base to target web, Android and iOS
How to deploy a PWA on iOS as an app
This document discusses OpenSocial and how it can be used in enterprises. Some key points:
- OpenSocial allows for integration between different enterprise applications through the use of gadgets, which are small web applications that can display and interact with data from multiple sources.
- Gadgets are defined using an XML specification file and core JavaScript APIs. They provide benefits like easy development, security, and the ability to write once and display across different systems.
- Challenges include issues with enterprise readiness like single sign-on, deployment behind firewalls, and immaturity as OpenSocial 1.0 is still in progress.
- The future of OpenSocial includes finalizing the 1.0 specification, a
Need for Speed: Removing speed bumps in API ProjectsŁukasz Chruściel
No one wants their app to be slow! Yet, we all may end up with not optimal solutions that may slow down responses of API Platform-based applications. During this speech, together, we will discover typical pitfalls and how to spot them and address them.
This presentation will focus on the application-level things we may change to improve our response times.
This document provides an overview of Backbone.js and how it can be used to build dynamic web applications. It discusses the main Backbone components:
- Models represent single data objects and can be validated.
- Collections hold ordered sets of models and can fetch data from the server.
- Views handle the display and interaction of data from models and collections.
- Routers map URLs to functions that control the application flow.
The document then gives an example of using Backbone to build a simple shopping cart application with Products and Cart views, demonstrating how the components work together.
Firefox OS, fixing the mobile web - FITC Toronto - 2014-04-28Frédéric Harper
The mobile web got a bad reputation. In reality, it's the platform to bet on if you care about reach, and sustainability of your product. In this talk, Frédéric Harper will show you how you can use HTML5, CSS3, and JavaScript to build amazing mobile applications as to brush up what you previously published. Learn about the open web technologies, including WebAPIs, and tools designed to get you started developing HTML apps for Firefox OS, and the web.
Educate 2017: Customizing Authoring: How our APIs let you create powerful sol...Learnosity
Watch the video of the presentation: https://youtu.be/3pumspJ34_E?t=1s
High-quality content is more likely to yield high-quality learning outcomes. But how can you make world-class assessments without stretching your resources to their limits?
Get the insights you need from our authoring experts, and learn how to gain maximum value from Learnosity by utilizing the full range of author customization capabilities at your disposal.
Find out more around the benefits of configurable authoring tools, creating your own question templates, and how to quickly build minimal authoring experiences that look and perform exactly as you want them to.
Parse London Meetup - Cloud Code Tips & TricksHector Ramos
The document provides an overview of Cloud Code in Parse and discusses several tips and tricks for using Cloud Code. Some key points include:
- Cloud Code allows running JavaScript code on Parse's servers to perform actions like validating data, running background jobs, and sending push notifications.
- Functions like beforeSave and afterSave hooks allow running code anytime an object is saved to validate data, clean values, and perform other actions.
- Background jobs can run long-running processes on a scheduled basis, like cleaning up business name values over time.
- Push notifications can be sent from afterSave to keep client apps updated in real-time, such as notifying users of new comments.
Similar to Designing a ui for microservices @ .NET Day Switzerland 2019 (20)
Welcome to the (state) machine @ ExploreDDD 2019Mauro Servienti
Stateless all the thing, they say. In the last few years we’ve been brainwashed: design stateless systems, otherwise they cannot scale, they cannot be highly available, and they are hard to maintain and evolve. In a nutshell stateful is bad. However complex software systems need to do collaborative processing, that is stateful by definition. Stateless myth busted! Collaborative domains deal with long running business transactions and need to interact with distributed resources. The traditional distributed transactions approach, even if tempting, is a time bomb.
This is when Sagas come into play. Sagas allow to model complex collaborative domains without the need for distributed transactions and/or orchestration across multiple resources. Join Mauro on a journey that aims to disclose what sagas are, how they can be used to model a complex collaborative domain, and what role they play when it comes to designing systems with failure and eventual consistency in mind.
(It’s all right, I know where you’ve been)
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsMauro Servienti
Ultimamente ci hanno stressato come non mai che stateful è il male. Tutto deve essere stateless, altrimenti non scala, non può essere altamente disponibile, ed è complesso da manutenere ed evolvere. Nonostante questo i sistemi software complessi, essendo basati su processi collaborativi, sono per natura stateful. I processi collaborativi, noti anche come long running business transactions, necessitano di interagiscono con risorse distribuite. L’approccio tradizionale basato su transazioni distribuite, anche se allettante, è una bomba pronta ad esplodere.
Pane quotidiano per le Saghe. Le Saghe consentono di modellare sistemi complessi senza la necessità di transazioni distribuite e coordinamento esterno. Vedremo cosa sono le Saghe, come possono essere usate per modellare domini complessi, e che ruolo giocano quando progettiamo sistemi basati sui concetti di “design for failures” e “eventual consistency”
(It’s all right, I know where you’ve been)
All our aggregates are wrong @ NDC Copenhagen 2019Mauro Servienti
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule.
In this talk, we’ll analyze what appears to be a straightforward e-commerce shopping cart. We’ll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we’ll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
Be like water, my friend @ Agile for Innovation 2019Mauro Servienti
L’acqua è quasi inarrestabile, basta un pertugio e si propaga. Basta un po’ di pressione e con facilità il pertugio diventa una voragine e lascia spazio ad una piena. La conoscenza e l’esperienza in un team possono essere come l’acqua. Il sapere deve poter scorrere senza freni, con solo degli argini che lo guidino al fine di evitare un’inondazione.
È possibile strutturare un’organizzazione al fine di garantire la diffusione del sapere? Quali sono i processi e gli strumenti che possiamo mettere in campo per essere certi che conoscenza ed esperienza siano diffuse, ma anche che non vi sia un’inondazione?
Lasciatevi trasportare da Mauro nei meandri di Particular Software, per scoprire come una realtà “dispersa” su 17 time zone gestisce collaborazione e condivisione del sapere. Analizzeremo sia i processi, che ci siamo creati, che gli strumenti digitali che usiamo quotidianamente.
Microservices architecture is it the right choice to design long-living syste...Mauro Servienti
Microservices all the thing! they say. Nowadays it seems that if architectures are not microservices based they are not worth the name. Is it really true? Do we really need a (micro)services based architecture?
We should design our systems with longevity, manutenability, and evolution simplicity in mind. Not hype. Long living systems are our primary goal. We'll analyze most common errors and we'll see how architecture can be a game changer in systems design.
Join Mauro in a journey that aims to disclose what it means to build a distributed system based on a (micro)services oriented architecture.
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019Mauro Servienti
Sei uno studente che deve presentare una tesi? Un manager che deve presentare un report ai colleghi? Un esperto che deve presentare i risultati di uno studio ad una conferenza? O semplicemente avresti voglia di parlare al mondo di ciò che ti appassiona ma non sai da dove cominciare?
Living organizations, particular software @ do IT Better ParmaMauro Servienti
Siamo così abituati ad organizzazioni basate sul tradizionale organigramma che diamo per scontato che sia l'unica opzione.
Un approccio differente è possibile?
Quando sono entrato in Particular, era un'organizzazione tradizionale, sebbene distribuita. Avevamo manager e una gerarchia. Un anno dopo la decisione di rivoluzionare tutto. La miglior decisione di sempre. Intraprenderemo un viaggio che ci permetterà di scoprire che un modello organizzativo diverso è possibile, che un processo decisionale dall'alto verso il basso non è l'unica opzione e che possiamo organizzare la vita lavorativa intorno a quella privata in funzione di un ottimo life-work balance.
Welcome to the (state) machine @ Crafted SoftwareMauro Servienti
Stateless all the thing, they say. In the last few years we’ve been brainwashed: design stateless systems, otherwise they cannot scale, they cannot be highly available, and they are hard to maintain and evolve. In a nutshell stateful is bad. However complex software systems need to do collaborative processing, that is stateful by definition. Stateless myth busted! Collaborative domains deal with long business transactions and need to interact with distributed resources. The traditional distributed transactions approach, even if tempting, is a time bomb. This is when Sagas come into play. Sagas allow to model complex collaborative domains without the need for distributed transactions and/or orchestration across multiple resources. Join Mauro on a journey that aims to disclose what sagas are, how they can be used to model a complex collaborative domain, and what role they play when it comes to designing systems with failure and eventual consistency in mind. (It’s all right, I know we’re you’ve been)
PO is dead, long live the PO - Italian Agile Day 2018Mauro Servienti
Cosa succederebbe se i prodotti non fossero gestiti dai manager? O addirittura, cosa se i manager non ci fossero proprio? Chi si prenderebbe la responsabilità di definire la priorità nel backlog? In Particular Software non c’è una struttura gerarchica. La gestione dei prodotti, intesa come vera e propria product ownership, è responsabilità di tutti. Sembra quasi che gli internati siano anche i gestori del manicomio. Non è proprio distante dalla realtà. Oggigiorno sempre più aziende si stanno orientando verso strutture organizzative fluide. Che cosa si può fare per abilitare chiunque a prendere decisioni a qualsiasi livello? C’è un modo per condividere il processo decisionale? Guarderemo come è strutturata Particular Software al fine di abilitare tutto ciò. Analizzeremo come vengono risolti i problemi e quali processi e strumenti utilizziamo per prendere decisioni. Tutto senza infermieri, ooops, senza manager.
Design a UI for your Microservices @ Do IT BetterMauro Servienti
How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
Microservices and pineapple on pizza what do they have in common - dos and ...Mauro Servienti
Microservices è una delle buzzword del momento. Sembra quasi che un'architettura a microservices sia fondamentale. È veramente così? Faremo un tortuoso viaggio tra le buzzword del momento cercando di districarci tra cosa è bene e cosa è meno bene, ma soprattutto perché. Obiettivo è quello di comprendere quali sono i limiti di certe scelte architetturali e quali gli errori da non commettere. Il tutto nell'ottica di garantire ai nostri sistemi 'lunga vita e prosperità' (cit.)
All our aggregates are wrong (ExploreDDD 2018)Mauro Servienti
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule. In this talk, we'll analyze what appears to be a straightforward e-commerce shopping cart. We'll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we'll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
How do we design a UI when the back-end system consists of dozens (or more) microservices? We have separation and autonomy on the back end, but on the front end this all needs to come back together. How do we stop it from turning into a mess of spaghetti code? How do we prevent simple actions from causing an inefficient torrent of web requests? Join Mauro in building a Composite UI for Microservices from scratch, using .NET Core. Walk away with a clear understanding of what Services UI Composition is and how you can architect front end to be Microservices ready.
Cosa succederebbe se i prodotti non fossero gestiti dai manager? O addirittura, cosa se i manager non ci fossero proprio? Chi si prenderebbe la responsabilità di definire la priorità nel backlog? In Particular Software non c’è una struttura gerarchica. La gestione dei prodotti, intesa come vera e propria product ownership, è responsabilità di tutti. Sembra quasi che gli internati siano anche i gestori del manicomio. Non è proprio distante dalla realtà. Oggigiorno sempre più aziende si stanno orientando verso strutture organizzative fluide. Che cosa si può fare per abilitare chiunque a prendere decisioni a qualsiasi livello? C’è un modo per condividere il processo decisionale? Guarderemo come è strutturata Particular Software al fine di abilitare tutto ciò. Analizzeremo come vengono risolti i problemi e quali processi e strumenti utilizziamo per prendere decisioni. Tutto senza infermieri, ooops, senza manager.
Shipping code is not the problem, deciding what to ship it is!Mauro Servienti
This document discusses an organization's approach to prioritizing work and developing software. It emphasizes focusing on solving clear problems rather than executing on estimates or deadlines. Work is organized into buckets or strategies, each with a dedicated squad prioritizing issues. Issues go through an intake process to clearly define the problem before being selected for a cross-functional task force to implement a solution. The goal is for squads to proactively address problems rather than reactively execute work.
GraphQL - Where are you from? Where are you going?Mauro Servienti
GraphQL, inventato da Facebook per risolvere un problema molto specifico, è diventato uno standard. Le applicazioni client lo utilizzano per leggere e manipolare i dati esposti dai server back-end. È così flessibile che recentemente GitHub l'ha adottata per tutte le sue API. Il paradigma è semplice e tuttavia potente tale da consentire la manipolazione flessibile e la loro composizione da molte fonti diverse. Mauro offre in questo intervento un'introduzione a GraphQL, partendo da una breve storia e poi analizzando come GraphQL risolva i tipici problemi in cui i progettisti API e i loro consumer si possono imbattere.
Dall'idea al deploy un lungo viaggio che passa per git flow e semverMauro Servienti
Parliamo tanto di DevOps e ci concentriamo sui tool senza soffermarci a pensare che DevOps è principalmente una metodologia. Lo scopo è rendere l'intera filiera il più fluida e lineare possibile, rimuovendo impedimenti e cercando di prevenire e anticipare problemi.
Possiamo costruire tutto il processo di sviluppo, partendo dai vagiti iniziali del backlog per finire che il deploy fisico in ottica DevOps? Il processo ha impatto sulle scelte tecniche? Pratiche come SemVer e GitFlow hanno invece un impatto sul backlog?
Analizzeremo l'intero processo di sviluppo di Particular Software, dalla gestione del backlog al deploy automatico in produzione, con lo scopo di evidenziare come pratiche che sembrano disconnesse abbiano invece impatto su tutta la filiera.
This document discusses different approaches to designing a user interface for a microservices architecture. It begins by proposing a domain model decomposition with individual services owning pieces of product data. However, this poses issues for users who need an aggregated view. An alternative presented is to have individual services cache normalized data and compose a view model at the edge. Later approaches incorporate client-side messaging, hosting the composition engine in MVC, and using view components to give services more ownership over vertical slices of the UI. The key takeaways are that the UI structure can be defined at the edge while still keeping domain responsibilities clear across services.
The road to a Service Oriented Architecture is paved with messagesMauro Servienti
One of the options on the table when implementing a Service Oriented Architecture (SOA), or the communication style across multiple microservices, is based on messages and a service bus. This talk will drive you through the basic SOA building blocks, introduce message based architectures, and will connect the dots between technology and architectural principles through some samples using NServiceBus.
The document discusses how a service-oriented architecture is built on a message-based infrastructure and outlines some of the benefits of using messaging patterns between services rather than direct integration. Messages allow for loose coupling between services, autonomous components that respect boundaries, and easy scalability through asynchronous communication and competing consumers. Transaction handling becomes simpler with messages since each operation is independent rather than spanning multiple systems.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
Malibou Pitch Deck For Its €3M Seed Roundsjcobrien
French start-up Malibou raised a €3 million Seed Round to develop its payroll and human resources
management platform for VSEs and SMEs. The financing round was led by investors Breega, Y Combinator, and FCVC.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
SOCRadar's Aviation Industry Q1 Incident Report is out now!
The aviation industry has always been a prime target for cybercriminals due to its critical infrastructure and high stakes. In the first quarter of 2024, the sector faced an alarming surge in cybersecurity threats, revealing its vulnerabilities and the relentless sophistication of cyber attackers.
SOCRadar’s Aviation Industry, Quarterly Incident Report, provides an in-depth analysis of these threats, detected and examined through our extensive monitoring of hacker forums, Telegram channels, and dark web platforms.
14. It's a reporting and integration issue
• We're crossing a “boundary”
• Data flow out of each service to the user
• Users are already pulling things on demand
• let's benefit of that
mauroservienti
40. Vertical ownership
Catalog Sales Shipping Warehouse
Doc DB
+
HTTP
DB DB
back-end back-end
Web
Proxy
API
API
Proxy to
3° party
API
1 month
cache
24 hours
cache
No cache10 minutes
cache
User Interface
mauroservienti
41. Vertical ownership
Catalog Sales Shipping Warehouse
Doc DB
+
HTTP
DB DB
back-end back-end
Web
Proxy
API
API
Proxy to
3° party
API
User Interface
composition gateway
Catalog
Handler
Sales
Handler
Shipping
Handler
Warehouse
Handler
mauroservienti
42. The elephant in the room
Catalog Sales Shipping Warehouse
Doc DB
+
HTTP
DB DB
back-end back-end
Web
Proxy
API
API
Proxy to
3° party
API
User Interface
composition gateway
Catalog
Handler
Sales
Handler
Shipping
Handler
Warehouse
Handler
mauroservienti
44. Branding
• It's the technical authority owing the UI contract
• Services that want to display data implement it
• UI structure is defined as a “monolith”
mauroservienti
47. UI Composition
•UI defines only high level structure
•Highly coupled with the presentation technology
•Branding is less important
•The more “magic” the less Branding
•Services own the whole vertical slice
mauroservienti
50. Full vertical ownership
mauroservienti
Catalog Sales Shipping Warehouse
Doc DB
+
HTTP
DB DB
back-end back-end
Web
Proxy
API
API
Proxy to
3° party
API
User Interface
composition gateway
Catalog
Handler
Sales
Handler
Shipping
Handler
Warehouse
Handler
51. Full vertical ownership
client shell
mauroservienti
Catalog
Components
Sales
Components
Shipping
Components
Warehouse
Components
Catalog Sales Shipping Warehouse
Doc DB
+
HTTP
DB DB
back-end back-end
Web
Proxy
API
API
Proxy to
3° party
API
composition gateway
Catalog
Handler
Sales
Handler
Shipping
Handler
Warehouse
Handler
52. Every year is getting shorter never seem to find the time…
ViewModel Composition Demos
bit.ly/dnd19-composition
Udi Dahan about Service Modelling
go.particular.net/dnd19-composition
mauroservienti
56. • Boundaries are key to success
• Mental model can badly influence design
• Users/Business analysts tend to think in term
of data presentation
mauroservienti
Takeaways
Demos: bit.ly/dnd19-composition
Videos: go.particular.net/dnd19-composition
58. Mauro Servienti
Solution Architect @ Particular Software
the makers of NServiceBus
mauro.servienti@particular.net
@mauroservienti
//github.com/mauroservienti
//milestone.topics.it
mauroservienti
59. Thank you!
Join me at the Particular booth
Demos: bit.ly/dnd19-composition
Videos: go.particular.net/dnd19-composition
mauroservienti
Editor's Notes
I’m a remote worker
We live in a small flat, thus I have a small office
I enjoy going to the office by bike
And I enjoy bananas for my breaks
Bike riding and bananas in the backpack are not a great idea, so…
While showing ownership in overlay....Lots of components, or in SOA lingo services, each one owing different data. Otherwise it's a clear violation of responsibilities.