Razor Pages introduces a new way to build MVC web applications in ASP.NET Core 2.0 using a file-based routing system instead of actions and controllers, each Razor Page acts as an independent unit with its own model, code-behind logic, and a Razor view, and Razor Pages makes application development easier by reducing the amount of code required.
Presented by: Lin Sun, IBM
Presented at All Things Open 2020
Abstract: Do you really need microservices? The Istio team have made an architecture decision to change the Istio control plane components from microservices to monolithic to simplify Istio. Come and hear why we did it and how it simplifies Istio operation experience, along with many other changes we made to simplify Istio.
The key areas of discussion focus on the following:
• What is available for integration within OpenStack as of the IceHouse release.
• Recent updates for Windows Technologies in Nova, Cinder, and Neutron projects
• An overview of the Hyper-V CI process including sneak peeks into upcoming infrastructure changes for Juno/K Releases
• Technology additions to support Windows within the OpenStack ecosystem.
• Summit Debrief and Juno Planning Outlined.
This talk will focus on a brief overview of Kubernetes, with a brief demo, and then more of an in-depth focus on issues we've faced moving PHP projects into Docker and Kubernetes like signal propagation, init systems, and logging.
Talk from Cape Town PHP meetup on Feb. 7, 2016:
https://www.meetup.com/Cape-Town-PHP-Group/events/237226310/
Code: https://github.com/zoidbergwill/kubernetes-php-examples
Slides as markdown: http://www.zoidbergwill.com/presentations/2017/kubernetes-php/index.md
Introduction to the Container Network Interface (CNI)Weaveworks
CNI, the Container Network Interface, is a standard API between container runtimes and container network implementations. These slides are from the Cloud Native Computing Foundation's Webinar, and explain what CNI is, how you use it, and what lies ahead on the roadmap.
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Red Hat Developers
Did you know that OpenJDK comes with Java Flight Recorder (JFR), an embedded production time profiler? Cryostat provides easy and secure access to JFR across container boundaries so you can profile that performance bottleneck, or find that annoying bug. Join this session to learn about using Cryostat to profile Java applications in production on OpenShift.
Presented by: Lin Sun, IBM
Presented at All Things Open 2020
Abstract: Do you really need microservices? The Istio team have made an architecture decision to change the Istio control plane components from microservices to monolithic to simplify Istio. Come and hear why we did it and how it simplifies Istio operation experience, along with many other changes we made to simplify Istio.
The key areas of discussion focus on the following:
• What is available for integration within OpenStack as of the IceHouse release.
• Recent updates for Windows Technologies in Nova, Cinder, and Neutron projects
• An overview of the Hyper-V CI process including sneak peeks into upcoming infrastructure changes for Juno/K Releases
• Technology additions to support Windows within the OpenStack ecosystem.
• Summit Debrief and Juno Planning Outlined.
This talk will focus on a brief overview of Kubernetes, with a brief demo, and then more of an in-depth focus on issues we've faced moving PHP projects into Docker and Kubernetes like signal propagation, init systems, and logging.
Talk from Cape Town PHP meetup on Feb. 7, 2016:
https://www.meetup.com/Cape-Town-PHP-Group/events/237226310/
Code: https://github.com/zoidbergwill/kubernetes-php-examples
Slides as markdown: http://www.zoidbergwill.com/presentations/2017/kubernetes-php/index.md
Introduction to the Container Network Interface (CNI)Weaveworks
CNI, the Container Network Interface, is a standard API between container runtimes and container network implementations. These slides are from the Cloud Native Computing Foundation's Webinar, and explain what CNI is, how you use it, and what lies ahead on the roadmap.
Profile your Java apps in production on Red Hat OpenShift with Cryostat | Dev...Red Hat Developers
Did you know that OpenJDK comes with Java Flight Recorder (JFR), an embedded production time profiler? Cryostat provides easy and secure access to JFR across container boundaries so you can profile that performance bottleneck, or find that annoying bug. Join this session to learn about using Cryostat to profile Java applications in production on OpenShift.
PRESENTED AT OPENSTACK SUMMIT - BARCELONA 2016
With test driven development, continuous integration/continuous deployment and devops practices now the norm, most organizations understand the importance of testing their applications. But what about the cloud those applications are going to live on? Too many companies miss this critical step, leading to gaps in their operations, which can lead to production issues, API outages, inability to upgrade, and general instability of the cloud. It all begs the question: “Do you even test?" During this session, attendees will learn how Rackspace leverages Red Hat’s Distributed Continuous Integration (DCI) to build a better OpenStack experience for their customers while reducing the time required to not only roll out the latest version of OpenStack to new customers, but also begin upgrading customers within weeks of announcement. In addition to this, the automated testing in DCI raises bugs directly with Red Hat QEs team to shorten the feedback cycle and improve the final product.
直近2回にわたりコンテナ技術にまつわるウェビナーシリーズを開催し、今回はその3回目となります。第1回のウェビナーではコンテナの概要やコンテナ技術を実装するに当たって OS に求められる機能、またコンテナの歴史などについてご紹介致しました。また第2回ではコンテナの数が増加し、それらの連携がより複雑になって来たときにコンテナをどう管理するか、つまり「コンテナ・オーケストレーション」の話をご紹介しました。最終回である今回はコンテナ管理の実践としてコンテナレジストリのデモをご紹介しながら、コンテナを活用した DevOps の実践についてご紹介したいと思います。
JDO 2019: What you should be aware of before setting up kubernetes on premise...PROIDEA
Kubernetes is trendy. There are tons of presentations on how companies saved lots of money by migrating to Kubernetes. Kubernetes is mostly advertised as a cloud service, but there are companies that can't or don't want to migrate their services to the cloud. For them there are solutions to set up Kubernetes on premise. Before you decide to visit that land, I must warn you: there are demons waiting for you, demons that nobody speaks about in public...
OSDC 2018 | Hardware-level data-center monitoring with Prometheus by Conrad H...NETWAYS
SoundCloud <3 Prometheus. However, when it comes down to hardware, getting data into Prometheus isn’t always straight-forward. In this talk, I will provide a look into how we managed to port all our infrastructure monitoring – including SNMP, IPMI and more – to Prometheus, and even improve it along the way.
What's new in python 3.8? | Python 3.8 New Features | EdurekaEdureka!
YouTube Link: https://youtu.be/n9oaN3dVxmE
** Python Certification Training: https://www.edureka.co/data-science-python-certification-course **
This Edureka video on 'What's New In Python 3.8?' covers the new features in python 3.8 added to the new release of Python and other language changes. Following are the topics discussed:
New Features
New Modules
Other Language Changes
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Docker, Inc.
If you want to compromise millions of machines and users, software distribution and software updates are an excellent attack vector. Using public cryptography to sign your packages is a good starting point, but as we will see, it still leaves you open to a variety of attacks. This is why we designed TUF, a secure software update framework. TUF helps to handle key revocation securely, limits the impact a man-in-the-middle attacker may have, and reduces the impact of repository compromise. We will discuss TUF's protections and integration into Docker's Notary software, and demonstrate new techniques that could be added to verify other parts of the software supply chain, including the development, build, and quality assurance processes.
2013-04-14 Portland OpenShift Origin Community Day
OpenShift Origin Internals
Presenters: Bill DeCoste & Krishna Raman
In this talk. Bill and Krishna will dive deep into Origin's internals and architecture. Topics covered include a platform overview of the role Brokers and Cartridges play. An examination of system resources and application containers called "Gears" and "Nodes."
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherNETWAYS
This presentation will show how Cloud Foundry, the popular Platform as a Service framework, is deployed and configured to run in a highly available fashion on Kubernetes. It will show how to avoid single points of failures using Kubernetes features like stateful sets, readiness and liveness probes, etc. This includes how high availability extends to applications deployed by the end users of Cloud Foundry so they don’t have to worry about downtime. The presentation will include a demo of a disruptive agent simulating failures across the Kubernetes nodes and containers, while user applications are still alive and healthy. This presentation shows a real-life production use case for Kubernetes. This can be used as an example and to learn about the high-availability related features of Kubernetes. It also presents how the Kubernetes stack can be extended with Cloud Foundry to also cover the use case of Platform as a Service.
PRESENTED AT OPENSTACK SUMMIT - BARCELONA 2016
With test driven development, continuous integration/continuous deployment and devops practices now the norm, most organizations understand the importance of testing their applications. But what about the cloud those applications are going to live on? Too many companies miss this critical step, leading to gaps in their operations, which can lead to production issues, API outages, inability to upgrade, and general instability of the cloud. It all begs the question: “Do you even test?" During this session, attendees will learn how Rackspace leverages Red Hat’s Distributed Continuous Integration (DCI) to build a better OpenStack experience for their customers while reducing the time required to not only roll out the latest version of OpenStack to new customers, but also begin upgrading customers within weeks of announcement. In addition to this, the automated testing in DCI raises bugs directly with Red Hat QEs team to shorten the feedback cycle and improve the final product.
直近2回にわたりコンテナ技術にまつわるウェビナーシリーズを開催し、今回はその3回目となります。第1回のウェビナーではコンテナの概要やコンテナ技術を実装するに当たって OS に求められる機能、またコンテナの歴史などについてご紹介致しました。また第2回ではコンテナの数が増加し、それらの連携がより複雑になって来たときにコンテナをどう管理するか、つまり「コンテナ・オーケストレーション」の話をご紹介しました。最終回である今回はコンテナ管理の実践としてコンテナレジストリのデモをご紹介しながら、コンテナを活用した DevOps の実践についてご紹介したいと思います。
JDO 2019: What you should be aware of before setting up kubernetes on premise...PROIDEA
Kubernetes is trendy. There are tons of presentations on how companies saved lots of money by migrating to Kubernetes. Kubernetes is mostly advertised as a cloud service, but there are companies that can't or don't want to migrate their services to the cloud. For them there are solutions to set up Kubernetes on premise. Before you decide to visit that land, I must warn you: there are demons waiting for you, demons that nobody speaks about in public...
OSDC 2018 | Hardware-level data-center monitoring with Prometheus by Conrad H...NETWAYS
SoundCloud <3 Prometheus. However, when it comes down to hardware, getting data into Prometheus isn’t always straight-forward. In this talk, I will provide a look into how we managed to port all our infrastructure monitoring – including SNMP, IPMI and more – to Prometheus, and even improve it along the way.
What's new in python 3.8? | Python 3.8 New Features | EdurekaEdureka!
YouTube Link: https://youtu.be/n9oaN3dVxmE
** Python Certification Training: https://www.edureka.co/data-science-python-certification-course **
This Edureka video on 'What's New In Python 3.8?' covers the new features in python 3.8 added to the new release of Python and other language changes. Following are the topics discussed:
New Features
New Modules
Other Language Changes
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
Securing the Software Supply Chain with TUF and Docker - Justin Cappos and Sa...Docker, Inc.
If you want to compromise millions of machines and users, software distribution and software updates are an excellent attack vector. Using public cryptography to sign your packages is a good starting point, but as we will see, it still leaves you open to a variety of attacks. This is why we designed TUF, a secure software update framework. TUF helps to handle key revocation securely, limits the impact a man-in-the-middle attacker may have, and reduces the impact of repository compromise. We will discuss TUF's protections and integration into Docker's Notary software, and demonstrate new techniques that could be added to verify other parts of the software supply chain, including the development, build, and quality assurance processes.
2013-04-14 Portland OpenShift Origin Community Day
OpenShift Origin Internals
Presenters: Bill DeCoste & Krishna Raman
In this talk. Bill and Krishna will dive deep into Origin's internals and architecture. Topics covered include a platform overview of the role Brokers and Cartridges play. An examination of system resources and application containers called "Gears" and "Nodes."
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherNETWAYS
This presentation will show how Cloud Foundry, the popular Platform as a Service framework, is deployed and configured to run in a highly available fashion on Kubernetes. It will show how to avoid single points of failures using Kubernetes features like stateful sets, readiness and liveness probes, etc. This includes how high availability extends to applications deployed by the end users of Cloud Foundry so they don’t have to worry about downtime. The presentation will include a demo of a disruptive agent simulating failures across the Kubernetes nodes and containers, while user applications are still alive and healthy. This presentation shows a real-life production use case for Kubernetes. This can be used as an example and to learn about the high-availability related features of Kubernetes. It also presents how the Kubernetes stack can be extended with Cloud Foundry to also cover the use case of Platform as a Service.
These slides provide an overview of .NET Core and also the changes to ASP.NET Core after the RC2 release. There is also some demos and source code.
This talk was given at the Let's Dev This Roadshow in London, ON on May 26, 2016.
.NET framework vs .net core 3.1 commons & differencesAlina Vilk
Рассказывал о “.NET Framework vs .NET Core 3.1: commons & differences”. Докладчик вместе с участниками разобрали полезные фичи .NET Core 3.1 по сравнению с предыдущими версиями платформы; Сравнили проекты на .NET Framework и .NET Core; Обсудили вопросы миграции существующих проектов с .NET Framework на .NET Сore 3.1.;Рассмотрели особенности сборки и автоматизированного тестирования приложений на .NET Core 3.1.;также уделили внимание особенностям развертывания веб-приложений на ASP.NET Core под Linux и в Docker.
Visual studio 2015 and .net core 5 – get ready to rumbleTadeusz Balcer
Starting from Visual Studio 2015, .NET Framework starts to become open source and cross-platform (!). Besides the newest features of probably the best known IDE, you will see how .NET Framework becomes widely available on Github and how much you can squeeze from .NET on Mac and Linux. We will also look how the most popular packages (like ASP.NET MVC and Entity Framework) try to fit to this announcement and say bye, bye to nightmares with .sln and .csproj files.
NET app modernization and Microsoft Azure
Stack Overflow migrates to .NET Core 3.0 for better performance, faster development, and containerization
“Internal and external developers can independently release microservices at any point in time, which makes development faster and enables a continuous delivery approach completely based on Azure. We have set an astonishing speed for product development.”
One .NET (unified platform) - Single SDK, One BCL.
Cross-platform Native UI - Xamarin Forms.
Cross-platform Web UI – Blazor Web and Blazor Desktop.
Mobile – Xamarin included.
Cloud Native – .NET Orchestration Tools and High-Performance Proxy.
Continual Improvement – Speed, size, diagnostics, and Microsoft Azure services.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Migration and modernization strategies
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Web Forms, WCF Server and Windows Workflow remain on .NET Framework 4.8 only. There are no plans to port these.
Join Scott Hanselman and Scott Hunter to learn about the present and the future of the .NET Platform. We'll take a look at the current state of .NET, it's incredible growth, and the new features of .NET Core 2.1. We'll also show you the exciting direction .NET is headed to help you build cutting edge solutions for the future.
Last month JavaScript latest news:
+ Vue.js 2.5
+ Node v8.7.0, v8.9.0 (LTS) && Node v9.0.0 (Current)
+ Firefox Quantum released
+ WebRender is coming…
+ WebVR and Windows 10 Creators Update
+ Angular 5 Comes & Faster Incremental Compilation
+ Chrome 63 Beta
+ Snyk in Chrome's Lighthouse
+ WebStorm 2017.3
+ V8 Release 6.3
+ Microsoft + Google + Mozilla = Web Documentation
+ Microsoft & multithreading to Node.js
+ NPM Releases New Security Features
+ "Happy Path" to HTTPS
+ Testing Responsive
+ 5 Node.js Alternatives To WordPress
+ Popular Programming Languages of 2017
ASP.NET 5 - Microsoft's Web development platform reimaginedAlex Thissen
Presentation for Dutch Microsoft TechDays 2015:
The ASP.NET Framework is rebuilt from the ground up in version 5. On the surface it might still resemble the ASP.NET you have come to know in the past 13 years. Underneath the covers there are immense changes in the way ASP.NET works. It is designed with modern software development practices in mind and clearly shows the shift in Microsoft's approach to web and cross-platform and open source development. In this session you will see the most important parts of ASP.NET 5 and get a glimpse into the future of .NET as well.
Microsoft .NET 6 -What's All About The New UpdateAdam John
.NET Upgrade Assistant is a command-line tool that can be run on various types of. NET Framework applications. The tool includes the installation of analyzers that can assist with finishing the migration.
Let's Check out What's All About The New Update Microsoft .NET 6 and Get the best Web design and development services from Zenesys. Visit@ https://bit.ly/3EgjJmh
asp.net using c# notes sem 5 ( we-it tutorials ).
Review of .NET frameworks, Introduction to C#, Variables and expressions, flow controls, functions, debugging and error handling, OOPs with C#, Defining classes and class members.
Assembly, Components of Assembly, Private and Shared Assembly, Garbage Collector, JIT compiler. Namespaces Collections, Delegates and Events. Introduction to ASP.NET 4: Microsoft.NET framework, ASP.NET lifecycle. CSS: Need of CSS, Introduction to CSS, Working with CSS with visual developer.
ASP.NET server controls: Introduction, How to work with button controls, Textboxes, Labels, checkboxes and radio buttons, list controls and other web server controls, web.config and global.asax files. Programming ASP.NET web pages: Introduction, data types and variables, statements, organizing code, object oriented basics.
Validation Control: Introduction, basic validation controls, validation techniques, using advanced validation controls. State Management: Using view state, using session state, using application state, using cookies and URL encoding. Master Pages: Creating master pages, content pages, nesting master pages, accessing master page controls from a content page. Navigation: Introduction to use the site navigation, using site navigation controls.
Databases: Introduction, using SQL data sources, GridView Control, DetailsView and FormView Controls, ListView and DataPager controls, Using object datasources. ASP.NET Security: Authentication, Authorization, Impersonation, ASP.NET provider model
LINQ: Operators, implementations, LINQ to objects,XML,ADO.NET, Query Syntax. ASP.NET Ajax: Introducing AJAX, Working of AJAX, Using ASP.NET AJAX
server controls. JQuery: Introduction to JQuery, JQuery UI Library, Working of JQuery
This talk cover the principles and the best practices in creation of flexible Microsoft .NET Core-based applications in connection with Microsoft Azure services, as well as tools and libraries that greatly simplify the development, configuration and deployment of applications. Also, attention paid to some pitfalls that may be encountered while using .NET Core.
This presentation by Andrii Antilikatorov, Consultant at GlobalLogic Kharkiv, was delivered at GlobalLogic Kharkiv MS TechTalk #2 on November 4, 2017.
Entity framework core v3 from sql to no sqlAndrea Tosato
Entity framework core v3, from SQL to NoSql.
Marco Minerva and Andrea Tosato samples: https://github.com/andreatosato/Entity-FrameworkCore3-from-SQL-2-NoSQL
UI Testing, Performance Testing, Load Testing. I test meno utilizzati nel mondo dello sviluppo.
Strumenti ed esempi per lo sviluppo.
Codice disponibile qui: https://github.com/andreatosato/DOH2019
Local session of dotNetConf2019.
News of .NET Core 3.0 and some new feature of .NET Core 3.1.
Blazor, gRPC, SignalR, Compilation Types, Worker Service, Docker images and so on.
More info on cloudgen.it (Cloudgen Verona).
Demo on: https://github.com/cloudgenverona/dotnetconf2019
Come gestire workflow complessi con Azure Durable Functions, un nuovo framework che consente di gestire functions complesse e scalare le proprie applicazioni.
Deploy multi-environment application with Azure DevOpsAndrea Tosato
Nella sessione presentata allo scorso Digital Innovation Saturday di Pordenone (26/01/2019), ho presentato Azure DevOps e le funzionalità principali.
Infine ho mostrato come rilasciare aggiornamenti applicativi e database con un paio di demo.
Materiale presentato al Digital Innovation Saturday di Pordenone (26/01/2019).
Nella presentazione vengono esposti i motivi per utilizzare i Cognitive Service su Container, il tutto corredato da qualche demo disponibile su GitHub.
Azure SignalR Service è il servizio che su Azure ci permette di scalare Signaler, ovvero il nostro framework per l'utilizzo del WebSocket. Il servizio è disponibile anche per applicazioni serverless, seppur con le dovute limitazioni
Pacchetto di estensione per Xamarin e Xamarin.Forms che consente di disegnare nella nostra applicazione grafici. Microcharts sfrutta la funzionalità di Skia per il disegno delle componenti grafiche
Introduzione allo sviluppo cross-platform mobile con Xamarin e Xamarin.Forms. Spiegazione dell'engine di Xamarin e della relazione con (Android, iOS, Windows).
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
10. Click to edit Master title style
Demo
Visual Basic Support
11. 11
.NET Portability Analyzer
https://github.com/Microsoft/dotnet-apiport/releases
• Analysis of a single project, solution, or binaries
• Analysis against multiple .NET platforms simultaneously
• Generation of multiple analysis reports in different formats. Supported formats are:
• JSON
• HTML
• Excel
• Configurable report options in the Options pane
• View and save generated reports in a tool window
12. Click to edit Master title style
Demo
NET Portability Analyzer
13. 13
.NET Core – Supported SO
Già disponibile in tutte le Azure Region. ASP .NET Core viene rilasciato tramite Azure Container Registry
6 nuove piattaforme supportate: Debian Stretch, SUSE Linux Enterprise Server 12 SP2, and macOS High
Sierra.
Supportati Versione Architettura
Windows Client 7 SP1+, 8.1 x64, x86
Windows 10 Client Version 1607+ x64, x86
Windows Server 2008 R2 SP1+ x64, x86
Supportati Versione Architettura
Mac OS X 10.12+ x64
Non più supportati Versione Architettura
Fedora 24 x64
Ubuntu 16.10 x64
openSUSE 42.1 x64
14. 14
.NET Core – Supported SO
Supportati Versione Architettura
Red Hat Enterprise Linux
CentOS
Oracle Linux
7 x64
Fedora 25, 26 x64
Debian 9, 8.7+ x64
Ubuntu
Linux Mint
17.04, 16.04, 14.04
18, 17
x64
openSUSE 42.2+ x64
SUSE Enterprise Linux (SLES) 12 SP2+ x64
15. 15
RyuJIT
RyuJIT is the x86 JIT in .NET Core 2.0
Open Source - RyuJIT is open source. JIT32 is not open source.
Single JIT Codebase - There is now a single codebase for the CoreCLR JIT. This helps everyone who is
working on platform expansion and who is investing in JIT improvements.
An example is Samsung, who is investing in Linux x86 with RyuJIT x86.
Performance - RyuJIT generally takes longer to compile than JIT32, but its optimizer can generate faster
code. The performance difference may not be significant
RyuJIT has more features than JIT32 https://github.com/dotnet/announcements/issues/10
16. 16
dotnet restore
I seguenti comandi vanno a richiamare dotnet restore:
• new
• run
• build
• publish
• pack
• test
17. 17
Raspberry
dotnet publish -c Release -r linux-arm
Per eseguire correttamente una applicazione ARM su Raspberry, è necessario installare i prerequisiti del
sistema.
Per Raspberry (Debian STRETCH):
sudo apt-get install curl libunwind8 gettext
18. 18
Raspberry
This library enables developers to use the various Raspberry Pi's hardware
modules
Pi.Camera Provides access to the offical Raspberry Pi Camera module.
Pi.Info Provides information on this Raspberry Pi's CPU and form factor.
Pi.Gpio Provides access to the Raspberry Pi's GPIO as a collection of GPIO Pins.
Pi.Spi Provides access to the 2-channel SPI bus.
Pi.I2c Provides access to the functionality of the i2c bus.
Pi.Timing Provides access to The PI's Timing and threading API.
Per copiare i file sul sistema Rasperry, è molto utile l’applicazione: WinSCP (https://winscp.net/)
Per accedere ai PIN è possibile utilizzare dei progetti come:
https://github.com/unosquare/raspberryio
Sono presenti altri progetti simili.
Microsoft non ha rilasciato nessuno strumento nativo per accedere ai PIN.
19. Click to edit Master title style
Demo
ARM - IoT support
20. ASP .NET CORE 2
NET CORE
SPA Templates, Kestrel Improvements
Razor C# 7.1, Razor Pages
21. Click to edit Master title style
“ ASP.NET Core is a cross-platform,
high-performance, open-source framework for
building modern, cloud-based, Internet-connected
applications
- Microsoft
30. 30
Additional template
https://github.com/dotnet/templating
https://github.com/dotnet/templating/wiki/Available-templates-for-dotnet-new
http://dotnetnew.azurewebsites.net/
Per verificare i template installati sulla macchina (dotnet new --list)
ASP.NET Core SPA Templates dotnet new -i "Microsoft.AspNetCore.SpaTemplates::*"
ASP.NET Core Boilerplate dotnet new -i "Boilerplate.Templates::*"
Auth0 Templates dotnet new -i "Auth0.Templates::*"
AWS Lambda .NET Core Templates dotnet new -i "Amazon.Lambda.Templates::*"
Cake.Frosting dotnet new -i "Cake.Frosting.Template::*"
DotVVM dotnet new -i "DotVVM.Templates::*"
IdentityServer4.Templates dotnet new -i "identityserver4.templates::*"
Kentico Cloud Boilerplate dotnet new -i "KenticoCloud.CloudBoilerplateNet::*"
Mono Game dotnet new -i "MonoGame.Template.NETCore::*"
MSBuild extension dotnet new -i "MSBuildExtensionTemplate::*"
31. 31
Additional template
NancyFX Template not on nuget.org
NSpec Templates dotnet new -i "dotnet-new-nspec::*"
NUnit 3 Test Project Template dotnet new -i "NUnit3.DotNetNew.Template::*"
Pioneer Console Boilerplate - Boilerplated .NET Core
console application that includes dependency injection,
logging and configuration.
dotnet new -i "Pioneer.Console.Boilerplate::*"
PowerShell Core dotnet new -i "FiftyProtons.Templates.PSCore::*"
Prism Forms QuickStarts - Empty & QuickStart project
Templates for Prism for Xamarin Forms. Requires dotnet
cli 2.0 pre3+
dotnet new -i "Prism.Forms.QuickstartTemplates::*"
Raspberry Pi 3 - C# template for .NET Core 2 IoT
applications.
dotnet new -i "RaspberryPi.Template::*"
ServiceStack dotnet new -i "ServiceStack.Core.Templates::*"
Template templates - Templates to create new project
and item templates. Requires new3.
dotnet new -i "FiftyProtons.Templates.DotNetNew::*"
32. 32
In applicazioni ASP .NET
Classiche, tutto viene
ospitato in IIS Worker
Process (w3wp.exe)
IIS WebServer in vecchie applicazioni
33. 33
Le applicazioni vengono eseguite
in un processo console separato
in cui viene eseguito il
WebServer Kestrel.
Questa infrastruttura ha
pesantemente modificato le
performance.
Kestrel in ASP .NET Core
34. 34
Kestrel in ASP .NET Core 2
Se l'applicazione accetta richieste solo da una rete interna, è possibile utilizzare Kestrel da solo.
Se esegui la tua applicazione su Internet, devi utilizzare IIS, Nginx o Apache come reverse server proxy.
Un server reverse proxy riceve le richieste HTTP da Internet e le trasmette a Kestrel dopo alcune
manipolazioni preliminari.
Uno scenario che richiede un reverse proxy è quando si dispone di più applicazioni che condividono lo stesso
IP e la porta in esecuzione su un singolo server. Questo non funziona direttamente con Kestrel perché non
supporta la condivisione dello stesso IP e della porta tra più processi. Kestrel gestisce tutto il traffico per
quella porta indipendentemente dall'intestazione host
35. 35
HttpSys in ASP .NET Core 2 (ex WebListener)
HttpSys è una alternativa a Kestrel per le sole macchine Windows ed è possibile esporre l’applicazione ad
internet. Può essere usata anche per applicazioni intranet. Non può essere utilizzato con IIS e IIS express.
Non richiede un reverse proxy. HttpSys è una buona
soluzione per applicazioni intranet che richiedono
scenari non supportati da Kestrel, quali: Windows
authentication
HttpSys supports the following features:
• Windows Authentication
• Port sharing
• HTTPS with SNI
• HTTP/2 over TLS (Windows 10)
• Direct file transmission
• Response caching
• WebSockets (Windows 8)
Supported Windows versions:
Windows 7 and Windows Server 2008 R2
and later
36. 36
Kestrel improvement
Miglioramenti sulle performance.
In aggiunta sono state implementate nuove funzionalità come i limits.
• Maximum Client Connections
• Maximum Request Body Size
• Maximum Request Body Data Rate
Limitare il server Kestrel significa servire in maniera efficace i soli client che possono ricevere una risposta in tempi veloci.
“Strozzare” sul nascere le connessioni dei client che non si riesce a servire, garantisce maggior efficacia per il webserver
https://github.com/aspnet/KestrelHttpServer/blob/dev/src/Kestrel.Core/KestrelServerLimits.cs
.UseKestrel(options =>
{
options.Limits.MaxConcurrentConnections = 100;
options.Limits.MaxConcurrentUpgradedConnections = 100;
});
37. 37
Kestrel improvement
Plain text
Plain Text
Intended to highlight the HTTP
efficiency of the server & stack.
Implementations are free to
cache the response body
aggressively and
remove/disable components
that aren't required in order to
maximize performance.
39. 39
Kestrel improvement
Plain Text with HTTP Pipelining
https://blogs.msdn.microsoft.com/dotnet/2017/06/07/performance-improvements-in-net-core/
https://github.com/aspnet/benchmarks
Like the Plain Text
scenario above but with
HTTP pipelining enabled
at a depth of 16. Only
stacks/servers that show
an improvement with
pipelining are included.
40. 40
Kestrel nuova configurazione
Nuova configurazione allo startup
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
41. 41
Performance ASP .NET Core
Gli assembly che fanno parte di ASP.NET Core sono stati pre-JITted, ovvero
sono già pronti in linguaggio macchina per essere immediatamente eseguiti.
Come conseguenza di ciò, l'applicazione ora si avvia in meno tempo ed il
framework riesce a processare una quantità maggiore di richieste al secondo.
43. 43
Migliorati il supporto ad HTTP
Ora è possibile interpretare e utilizzare ETag
o LastModified date sui contenuti trasmessi
var data = Encoding.UTF8.GetBytes(“Sample text from a binary array");
var entityTag = new EntityTagHeaderValue(""MyEtagValue"");
return File(data, "text/plain", "downloadName.txt",
lastModified: DateTime.UtcNow.AddSeconds(-5),
entityTag: entityTag);
44. 44
Razor e C# 7.1
Razor si adegua alla sistassi C# 7.1
Per abilitare la nuova sintassi C# è necessario modificare il .CSPROJ con il tag:
<LangVersion>latest</LangVersion>
46. 46
Razor e C# 7.1
Default Literal Expressions
int i = default(int); // Current
int i = default; // New
var i = default; // Error: no target type
const string S = null;
const string S = default;
const int? NI = null; // error
const int? NI = default; // error
47. 47
Razor e C# 7.1
Default Literal Expressions
void M(MyStruct ms = default) { ... }
bool b = null is T; // allowed, always false
if (0 is int) { ... } // True: 0 is an int
if (default(int) is int) { ... } // True: 0 is still an int
if (default is int) { ... } // Would be false! default(object) is null, which is not an int.
Func<string, bool> whereClause = default(Func<string, bool>);
Si può omettere l’operatore di destra
Func<string, bool> whereClause = default;
48. 48
Razor e C# 7.1
Infer tuple names
Action y = () => M();
var t = (x: x, y);
t.y(); // this might have previously picked up an extension method called “y”, but would now call the lambda.
Tuple Design:
https://github.com/dotnet/roslyn/blob/master/docs/features/tuples.md
int count = 5;
string label = "Colors used in the map";
var pair = (count, label); // element names are "count" and "label"
49. 49
C# 7.1
Async Main
public static void Main()
{
MainAsync().GetAwaiter().GetResult();
}
private static async Task MainAsync()
{
... // Main body here
}
50. 50
C# 7.1
Pattern Matching With Generics
public double Area<T>(T shape) where T : Shape
{
double calculatedArea = 0.0d;
switch (shape)
{
case Circle circle:
calculatedArea = circle.Area();
break;
case Sphere sphere:
calculatedArea = sphere.Area();
break;
}
return calculatedArea;
}
public abstract class Shape
{
public double Radius { get; set; }
public abstract double Area();
}
public class Circle : Shape
{
public override double Area()
{
return Math.PI * Math.Pow(Radius, 2);
}
}
public class Sphere : Shape
{
public override double Area()
{
return 4 * Math.PI * Math.Pow(Radius, 2);
}
}
51. 51
Razor Pages
Ciascuna Razor Page è un'unità autonoma della nostra applicazione web e la si riconosce dalle seguenti caratteristiche:
• Contiene una direttiva @page in cima al file. Questo serve a designarla come una Razor Page e a configurare il routing
affinché sia direttamente invocabile via URL. Una Razor Page situata in /Pages/Products.cshtml sarà raggiungibile dall'URL
/Products;
• Può contenere un blocco @functions all'interno del qual definiremo il code behind della pagina, ovvero proprietà e
metodi che potranno essere richiamati dalla Razor Page. Come in ASP.NET WebForms, il code behind può anche essere
posto in un file di codice separato che ha estensione .cshtml.cs. In questo caso, il file di codice dovrà contenere una classe
che deriva da PageModel;
• I tag helper <form> si arricchiscono degli attributi asp-page e asp-page-handler che permettono di indicare il nome
della pagina che riceverà i dati del form e della function definita in essa;
• Definendo metodi dai nomi speciali come OnGet, OnGetAsync, OnPost o OnPostAsync potremo eseguire del codice
quando la pagina viene richiamata con i metodi HTTP GET o POST. Tali metodi sono equivalenti ad action di ASP.NET
MVC decorate con gli attributi HttpGet o HttpPost;
• Può contenere direttive @inject che usiamo per ottenere istanze di servizi grazie al meccanismo di dependency injection
di ASP.NET Core.
53. 53
Razor Pages – Elementi distintivi
Parametri
@page "{id:int}"
public async Task<IActionResult> OnGetAsync(int id)
{
…
}
https://docs.microsoft.com/en-us/aspnet/core/mvc/razor-pages/
Proprietà del modello
[BindProperty]
public int PageDataID { get; set; }
[BindProperty]
public string Title { get; set; }Tipi di ritorno
return Page();
return RedirectToPage("/");
55. Click to edit Master title style
Demo
Razor Pages e Blog template
56. 56
WebAssembly
MONO Project
We have been experimenting with a couple of approaches to bring Mono to the web using WebAssembly - a
technology that can efficiently and safely execute code in web browsers without being limited to Javascript.
Running code written in C or C++ inside the browser has been a big motivator, but most major programming
languages have plans to target WebAssembly as a platform.
WebAssembly has been out for a few months on desktop computers and Android, and with the introduction of iOS
11 it will become nearly universal.
Miguel de Icaza
http://www.mono-project.com/news/2017/08/09/hello-webassembly/
57. 57
WebAssembly
Blazor
An experimental web UI framework using C#/Razor and HTML, running client-side via WebAssembly
The arrival of WebAssembly creates the possibility of building client-side web applications using languages and
runtimes that are more typically used for native app development. Blazor runs .NET code in the browser via a
small, portable .NET runtime called DotNetAnywhere (DNA) compiled to WebAssembly.
The programming model will be familiar to anyone who's worked with Razor (the C#/HTML page format used by
ASP.NET MVC and ASP.NET Pages).
https://github.com/SteveSanderson/Blazor
60. 60
.NET Standard 2.0
Nuove funzionalità
Bigger API Surface: We have more than doubled the set of available APIs from 13k in .NET Standard 1.6
to 32k in .NET Standard 2.0. Most of the added APIs are .NET Framework APIs. These additions make it
much easier to port existing code to .NET Standard, and, by extension, to any .NET implementation of .NET
Standard, such as .NET Core 2.0 and the upcoming version of UWP.
.NET Framework compatibility mode: The vast majority of NuGet packages are currently still targeting
.NET Framework. Many projects are currently blocked from moving to .NET Standard because not all their
dependencies are targeting .NET Standard yet. That's why we added a compatibility mode that allows .NET
Standard projects to depend on .NET Framework libraries as if they were compiled for .NET Standard. Of
course, this may not work in all cases (for instance, if the .NET Framework binaries uses WPF), but we found
that 70% of all NuGet packages on nuget.org are API compatible with .NET Standard 2.0, so in practice it
unblocks many projects.
Broad platform support. .NET Standard 2.0 is supported on the following platforms:
• .NET Framework 4.6.1
• .NET Core 2.0
• Mono 5.4
• Xamarin.iOS 10.14
• Xamarin.Mac 3.8
• Xamarin.Android 7.5
• UWP is work in progress and will ship later this year.
61. 61
Nuget
"We are happy to announce an update to the NuGet client that comes bundled with Visual Studio 2017
version 15.3 RTW and .NET Core 2.0 SDK,“
NuGet said : "This release introduces support for new scenarios such as .NET Core 2.0/.NET Standard
2.0, some new features, a series of bug fixes and performance improvements."
Microsoft earlier pointed out that a May investigation found some 70 percent of NuGet packages (which
manages more than 87,000 unique packages and more than 960,000 package versions) were compatible
with .NET Standard 2.0.
The vast majority of NuGet packages are currently still targeting .NET Framework. Many projects are
currently blocked from moving to .NET Standard because not all their dependencies are targeting .NET
Standard yet. That's why we added a compatibility mode that allows .NET Standard projects to depend on
.NET Framework libraries as if they were compiled for .NET Standard.
NuGet 4.0+ uses at least two global package locations:
User-specific: %userprofile%.nugetpackages
Machine-wide: %ProgramFiles(x86)%Microsoft SDKsNuGetPackages
65. 65
How does .NET Standard work?
.NET Standard is represented by
• The NuGet package NetStandard.Library which contains
• The reference assembly netstandard.dll
At build time
• .NET Standard bridges references to existing .NET
Framework and PCL assemblies via type forwarding
At runtime
• Each platform provides an implementation for
netstandard.dll that type forwards to its implementation
66. 66
Type Forwarding?
Type forwarding allows you to move a type to
another assembly without having to
recompile applications that use the original
assembly.
https://docs.microsoft.com/en-us/dotnet/framework/app-domains/type-forwarding-in-the-
common-language-runtime
https://www.youtube.com/watch?v=vg6nR7hS2lI
67. Click to edit Master title styleWhat can you reference from .NET Standard?
My Standard Library 2.x
.NET Standard Library .NET Framework LibraryPortable Class Library
.NET FRAMEWORK .NET CORE XAMARIN
Via Portability
Via Compatibility Shim
Legend
Application Type
Is able to reference
68. Click to edit Master title style.NET Standard under the hood - BUILD
TYPE
FORWARDING
netstandard!Object
mscorlib!Object
This happens when you build a .NET Standard-based Library
69. Click to edit Master title style.NET Standard under the hood - LOAD
TYPE
FORWARDING
This happens when you load .NET Standard-based library
71. 71
WCF
Client Proxy
System.ServiceModel.Duplex 4.4.0
WCF
.NET Core
System.ServiceModel.Http 4.4.0
System.ServiceModel.NetTcp 4.4.0
System.ServiceModel.Primitives 4.4.0
System.ServiceModel.Security 4.4.0
WCF
Connected Service Provider
E’ possibile referenziare un servizio WCF.
Non è possibile creare un nuovo progetto di tipo WCF.
Risulta necessario avere un progetto .NET Standard > 2.0
La possibilità di utilizzare e referenziare progetti di tipo WCF è
possibile grazione al WCF Connected Service Provider che ci
consente di generare i proxy per le classi del WCF
https://marketplace.visualstudio.com/items?itemName=WCFCORETEAM.VisualStudioWCFConnectedService
72. Click to edit Master title style
Demo
WCF Service Reference
73. 73
Microsoft.Data.SQLite
Microsoft.Data.Sqlite provides SQLite implementations of the
System.Data.Common interfaces. It is designed to work with the native, C library
"sqlite3" on all platforms where .NET Core and .NET Framework are supported,
including Windows, Linux, macOS, and others.
The good thing about this library is, it’s build for .NET Core, meaning you can
develop and run applications on Windows and non-Windows platform (Mac,
Linux) supporting .NET Core Runtime.
75. 75
Xamarin Roadmap
2.4 Xamarin.Forms for macOS Preview
vNext (est. Q4 2017)
Xamarin.Forms for GTK# Preview
Deprecation of WP8.0 and 8.1
vNext2 (est. Q1 2018)
Xamarin.Forms for GTK#
Xamarin.Forms for macOS
https://forums.xamarin.com/discussion/85747/xamarin-forms-feature-roadmap/p1
76. Entity Framework
Core 2
NET CORE
Context Pool, View, Like function
String interpolations,
Scalar function mapping,
Query filter - soft delete,
Manual compiled queries
78. 78
EF Core
• It would work on all operating systems (Linux, Mac) and platforms (Windows Phone, Windows
Store) supported by .NET Core
• Non-relational databases would also be supported, making it not just an ORM: Azure Table
Storage and Redis were the first to be announced
• Fully extensible and provider-based
• A simplified API that is close to the previous one
• New features: shadow properties, ability to mix SQL with LINQ, transparent client-side function
evaluation, high-low identifier generation, batching of queries, improved SQL generation
Support for providers other than SQL Server (SQL Server Compact Edition, SQLite, InMemory,
PostgreSQL,
MySQL, DB2, MyCat, Oracle)
79. 79
Table splitting
It is now possible to map two or more entity types to the same table where the primary key column(s) will be shared and
each row will correspond to two or more entities.
modelBuilder.Entity<Product>()
.HasOne(e => e.Details)
.WithOne(e => e.Product)
.HasForeignKey<ProductDetails>(e => e.Id);
modelBuilder.Entity<Product>().ToTable("Products");
modelBuilder.Entity<ProductDetails>().ToTable("Products");
80. 80
Owned types
An owned entity type can share the same CLR type with another owned entity type, but since it cannot be identified just
by the CLR type there must be a navigation to it from another entity type. The entity containing the defining navigation
is the owner. When querying the owner the owned types will be included by default.
public class Order
{
public int Id { get; set; }
public OrderDetails OrderDetails { get; set; }
}
public class OrderDetails
{
public StreetAddress BillingAddress { get; set; }
public StreetAddress ShippingAddress { get; set; }
}
modelBuilder.Entity<Order>().OwnsOne(p => p.OrderDetails, cb =>
{
cb.OwnsOne(c => c.BillingAddress);
cb.OwnsOne(c => c.ShippingAddress);
});
public class StreetAddress
{
public string Street { get; set; }
public string City { get; set; }
}
81. 81
Model-level query filters
This feature allows LINQ query predicates (a boolean expression typically passed to the LINQ Where query operator) to
be defined directly on Entity Types in the metadata model (usually in OnModelCreating). Such filters are automatically
applied to any LINQ queries involving those Entity Types, including Entity Types referenced indirectly, such as through
the use of Include or direct navigation property references. Some common applications of this feature are:
1. Soft delete - An Entity Types defines an IsDeleted property.
2. Multi-tenancy - An Entity Type defines a TenantId property.
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
public int TenantId {get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Post>().HasQueryFilter(
p => !p.IsDeleted
&& p.TenantId == this.TenantId );
}
}
Limitations
Navigation references are not allowed.
This feature may be added based on
feedback.
Filters can only be defined on the root
Entity Type of a hierarchy.
82. 82
Scalar function mapping
Once a method has been registered you can use it anywhere in your queries.
1. By convention the name of the method is used as the name of a function (in this case a user defined function)
when generating the SQL, but you can override the name and schema during method registration
2. Currently only scalar functions are supported
3. You must create the mapped function in the database, e.g. EF Core migrations will not take care of creating it
public class BloggingContext : DbContext
{
[DbFunction]
public static int PostReadCount(int blogId)
{
throw new Exception();
}
}
var query =
from p in context.Posts
where BloggingContext.PostReadCount(p.Id) > 5
select p;
83. 83
Self-contained type configuration for code first
In EF6 it was possible to encapsulate the code first configuration of a specific entity type by deriving from
EntityTypeConfiguraiton. In EF Core 2.0 we are bringing this pattern back:
class CustomerConfiguration : IEntityTypeConfiguration<Customer>
{
public void Configure(EntityTypeBuilder<Customer> builder)
{
builder.HasKey(c => c.AlternateKey);
builder.Property(c => c.Name).HasMaxLength(200);
}
}
...
// OnModelCreating
builder.ApplyConfiguration(new CustomerConfiguration());
85. 85
DbContext pooling
If this method is used, at the time a DbContext instance is requested by a controller we will first check if there is an
instance available in the pool. Once the request processing finalizes, any state on the instance is reset and the instance is
itself returned to the pool.
This is conceptually similar to how connection pooling operates in ADO.NET providers and has the advantage of saving
some of the cost of initialization of DbContext instance.
services.AddDbContextPool<BloggingContext>(options =>
options.UseSqlServer(connectionString));
Avoid using DbContext Pooling if you maintain your own state (e.g. private fields) in your derived DbContext class that
should not be shared across requests. EF Core will only reset the state that is aware of before adding a DbContext
instance to the pool.
86. 86
Explicitly compiled queries
Although in general EF Core can automatically compile and cache queries based on a hashed representation of the
query expressions, this mechanism can be used to obtain a small performance gain by bypassing the computation of the
hash and the cache lookup, allowing the application to use an already compiled query through the invocation of a
delegate.
// Create an explicitly compiled query
private static Func<CustomerContext, int, Customer> _customerById =
EF.CompileQuery((CustomerContext db, int id) =>
db.Customers
.Include(c => c.Address)
.Single(c => c.Id == id));
// Use the compiled query by invoking it
using (var db = new CustomerContext())
{
var customer = _customerById(db, 147);
}
87. 87
String interpolation
C# 6 introduced String Interpolation, a feature that allows C# expressions to be directly embedded in string literals,
providing a nice way of building strings at runtime. In EF Core 2.0 we added special support for interpolated strings to
our two primary APIs that accept raw SQL strings: FromSql and ExecuteSqlCommand. This new support allows C# string
interpolation to be used in a 'safe' manner. in a way that protects against common SQL injection mistakes that can
occur when dynamically constructing SQL at runtime.
var city = "London";
var contactTitle = "Sales Representative";
using (var context = CreateContext())
{
context.Set<Customer>()
.FromSql($@"
SELECT *
FROM ""Customers""
WHERE ""City"" = {city} AND
""ContactTitle"" = {contactTitle}")
.ToArray();
}
@p0='London' (Size = 4000)
@p1='Sales Representative' (Size = 4000)
SELECT *
FROM ""Customers""
WHERE ""City"" = @p0
AND ""ContactTitle"" = @p1
88. 88
EF.Functions.Like()
We have added the EF.Functions property which can be used by EF Core or providers to define methods that map to
database functions or operators so that those can be invoked in LINQ queries.
Note that Like() comes with an in-memory implementation, which can be handy when working against an in-
memory database or when evaluation of the predicate needs to occur con the client side.
var aCustomers = from c in context.Customers
where EF.Functions.Like(c.Name, "a%");
select c;
@p0='London' (Size = 4000)
@p1='Sales Representative' (Size = 4000)
SELECT *
FROM ""Customers""
WHERE ""City"" = @p0
AND ""ContactTitle"" = @p1
89. 89
EF Core Power Tools
Reverse Engineer - Generate POCO classes, derived DbContext and mapping for an existing database.
EF Core allows you to use the Scaffold-DbContext or the dotnet ef dbcontext scaffold commands to
reverse engineer a database and create entity and DbContext classes for your database tables.
https://github.com/ErikEJ/SqlCeToolbox/wiki/EF-Core-Power-Tools
(Erik Ejlskov Jensen) ErikEJ
92. 92
Cosa manca?
• View
• Lazy loading
• many-to-many collections and no inheritance strategies, only single table inheritance
• database initializers and the capability to seed the database
• No interception capabilities
• Stored procedures for Create-Update-Delete (CUD) operations is also not yet implemented. It is possible
to use stored procedures for querying
• It is not possible yet to plug our own custom conventions
• Spatial types
• not possible to reverse-engineer (official)
EF Core is not ready for enterprise-level usage
Dapper ServiceStack.OrmLite