.NET Core is a new open source, cross-platform version of .NET that is optimized for cloud scenarios. It consists of a new runtime called CoreCLR and a new base class library called CoreFX that are modular and package-based. .NET Core is a subset of the .NET Framework and aims to provide independent release cycles for the runtime, base class libraries, and applications. It uses NuGet packages and reference assemblies to provide compatibility while allowing platform-specific implementations.
Slides for my video on how .NET Standard works under the covers.
https://www.youtube.com/watch?v=vg6nR7hS2lI&t=13s&list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY&index=4
Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.
But, we will also take a look at the first framework implementation on top op .NET Core for the Web: ASP.NET Core 1.0. You will learn about ASP.NET Core 1.0 and how it is different from ASP.NET 4.6. This will include Visual Studio 2015 support, cross-platform ASP.NET Core and command-line tooling for working with ASP.NET Core and .NET Core projects.
After this session you know where Microsoft is heading in the near future. Be prepared for a new .NET Platform.
Slides for my video on how .NET Standard works under the covers.
https://www.youtube.com/watch?v=vg6nR7hS2lI&t=13s&list=PLRAdsfhKI4OWx321A_pr-7HhRNk7wOLLY&index=4
Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.
But, we will also take a look at the first framework implementation on top op .NET Core for the Web: ASP.NET Core 1.0. You will learn about ASP.NET Core 1.0 and how it is different from ASP.NET 4.6. This will include Visual Studio 2015 support, cross-platform ASP.NET Core and command-line tooling for working with ASP.NET Core and .NET Core projects.
After this session you know where Microsoft is heading in the near future. Be prepared for a new .NET Platform.
Future of .NET - .NET on Non Windows Platforms. .NET has been so far targeted towards Windows only. Now Microsoft created a subset of .NET called .NET Core that would run on Linux and OS X apart from Windows.
Users expect a robust, yet flexible base infrastructure layer for NFV; but systems integration is hard. OPNFV is here to help: OPNFV provides system integration for NFV as a community-led effort. Based on a discussion of the build and composition philosophy of OPNFV, the presentation approaches the benefits of OPNFV for users from different angles: OPNFV as a reference building block to install, test and deploy NFV; OPNFV as reference system integration to get your own use-cases integrated into; OPNFV as a foundation to evolve and further develop NFV – privately or as part of the community.
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsArnaud Porterie
Anusha Ragunathan and Arnaud Porterie present different ways to extend the Docker Engine in increasing level of effort required: through the user-facing API, through plugins, and finally through execution drivers.
Symfony Camp 2013 UA.
Continuous Integration and Automated Deployments for Symfony-based projects
P.S. Original PPTX presentation contains a lot of notes
The OPNFV collaborative development project has now delivered its second release, Brahmaputra. While the project continuous to grow, some confusion remains around what it is that the OPNFV community actually does. This session outlines and discusses the objectives and activities of the OPNFV community, the key values this provides to the industry and importantly activities the community avoids. In the context of the activity and challenges faced during Brahmaputra, as the community worked to integrate 38 parallel projects for the release, the session outlines the intentions activities and outcomes of this work; hard lessons learnt, achievements and future plans.
The session was given at ONS 2016.
Moving 1,000 Users & 100 Branches into StreamsPerforce
MathWorks has approximately 100 products derived from a single large code base, with over 1,000 developers contributing changes to almost one million source files. Their products are used to develop safety-critical systems, so managing a continuous influx of changes while guaranteeing quality and correctness is challenging. Learn how MathWorks, unable to use a simple model of “component as a directory,” created an elegant system using virtual streams and the Perforce broker in their ongoing efforts to modularize their code base.
In this talk, we will give an overview of the state of the Xen Project, trends that impact the project, see whether challenges that surfaced last year have been addressed and how we did it, and highlight new challenges and solutions for the coming year.
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioNovell
For many .NET developers today, the learning curve to port applications to Linux is prohibitively high. Now using Mono Tools for Microsoft Visual Studio, you can quickly and easily port your .NET applications to Linux, UNIX and Mac OS X, from entirely within your Visual Studio integrated development environment. You can also use it to build .NET software appliances. Attend this session to learn how you, too, can use Mono Tools for Visual Studio to fulfill your cross-platform needs, build .NET software appliances, and run your .NET applications on Linux using SUSE Linux Enterprise Mono Extension.
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...GlobalLogic Ukraine
This webinar by Ruslan Bilovol (Associate Manager, Engineering Consultant, GlobalLogic) was delivered at Embedded Community Webinar #13 on June 17, 2021.
We discussed the following topics:
- high-level review of the Linux Kernel contribution process,
- what is important and what is not in the process
- insights and best practices
- demo bug fixes and install the Linux kernel patch in Open Source
More details and video: https://www.globallogic.com/ua/about/events/embedded-community-webinar-13/
Committing to a company-wide software change is no small feat, but if you’re already sweating at the mere thought of checking code in and out, it’s time to plan your escape route.
So, break free and join Tom Tyler, Senior Consultant at Perforce and in-house ClearCase specialist to map out:
- Baseline-and-branch vs. detail history import strategies
- Porting
- Integrations for defect trackers, training, and tooling
- Cutover strategies
Future of .NET - .NET on Non Windows Platforms. .NET has been so far targeted towards Windows only. Now Microsoft created a subset of .NET called .NET Core that would run on Linux and OS X apart from Windows.
Users expect a robust, yet flexible base infrastructure layer for NFV; but systems integration is hard. OPNFV is here to help: OPNFV provides system integration for NFV as a community-led effort. Based on a discussion of the build and composition philosophy of OPNFV, the presentation approaches the benefits of OPNFV for users from different angles: OPNFV as a reference building block to install, test and deploy NFV; OPNFV as reference system integration to get your own use-cases integrated into; OPNFV as a foundation to evolve and further develop NFV – privately or as part of the community.
DockerCon US 2016 - Extending Docker With APIs, Drivers, and PluginsArnaud Porterie
Anusha Ragunathan and Arnaud Porterie present different ways to extend the Docker Engine in increasing level of effort required: through the user-facing API, through plugins, and finally through execution drivers.
Symfony Camp 2013 UA.
Continuous Integration and Automated Deployments for Symfony-based projects
P.S. Original PPTX presentation contains a lot of notes
The OPNFV collaborative development project has now delivered its second release, Brahmaputra. While the project continuous to grow, some confusion remains around what it is that the OPNFV community actually does. This session outlines and discusses the objectives and activities of the OPNFV community, the key values this provides to the industry and importantly activities the community avoids. In the context of the activity and challenges faced during Brahmaputra, as the community worked to integrate 38 parallel projects for the release, the session outlines the intentions activities and outcomes of this work; hard lessons learnt, achievements and future plans.
The session was given at ONS 2016.
Moving 1,000 Users & 100 Branches into StreamsPerforce
MathWorks has approximately 100 products derived from a single large code base, with over 1,000 developers contributing changes to almost one million source files. Their products are used to develop safety-critical systems, so managing a continuous influx of changes while guaranteeing quality and correctness is challenging. Learn how MathWorks, unable to use a simple model of “component as a directory,” created an elegant system using virtual streams and the Perforce broker in their ongoing efforts to modularize their code base.
In this talk, we will give an overview of the state of the Xen Project, trends that impact the project, see whether challenges that surfaced last year have been addressed and how we did it, and highlight new challenges and solutions for the coming year.
How to Port Your .NET Applications to Linux Using Mono Tools for Visual StudioNovell
For many .NET developers today, the learning curve to port applications to Linux is prohibitively high. Now using Mono Tools for Microsoft Visual Studio, you can quickly and easily port your .NET applications to Linux, UNIX and Mac OS X, from entirely within your Visual Studio integrated development environment. You can also use it to build .NET software appliances. Attend this session to learn how you, too, can use Mono Tools for Visual Studio to fulfill your cross-platform needs, build .NET software appliances, and run your .NET applications on Linux using SUSE Linux Enterprise Mono Extension.
Embedded Webinar #13: "From Zero to Hero: contribute to Linux Kernel in 15 mi...GlobalLogic Ukraine
This webinar by Ruslan Bilovol (Associate Manager, Engineering Consultant, GlobalLogic) was delivered at Embedded Community Webinar #13 on June 17, 2021.
We discussed the following topics:
- high-level review of the Linux Kernel contribution process,
- what is important and what is not in the process
- insights and best practices
- demo bug fixes and install the Linux kernel patch in Open Source
More details and video: https://www.globallogic.com/ua/about/events/embedded-community-webinar-13/
Committing to a company-wide software change is no small feat, but if you’re already sweating at the mere thought of checking code in and out, it’s time to plan your escape route.
So, break free and join Tom Tyler, Senior Consultant at Perforce and in-house ClearCase specialist to map out:
- Baseline-and-branch vs. detail history import strategies
- Porting
- Integrations for defect trackers, training, and tooling
- Cutover strategies
.NET Core, ASP.NET Core Course, Session 3aminmesbahi
Session 3,
Introducing to Compiler
What is the LLVM?
LLILC
RyuJIT
AOT Compilation
Preprocessors and Conditional Compilation
An Overview on Dependency Injection
1. What laid behind of creation?
2. About .NET Core
3. Everything is a package
4. .NET Framework, .NET Standard and .NET Native: what’s the difference
5 . .NET Core vs.NET Framework for server apps
6 . What's under the hood? Understanding CoreCLR and IL
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)citizenmatt
After the initial excitement of .NET Core wore off (Cross platform! Open source!), we realised there were a few things missing. APIs, mostly.
Oh, and compatibility with a lot of your favourite libraries and packages. Fortunately, the .NET Standard is here to fix all of this, adding back APIs, restoring compatibility and even replacing PCLs. This talk is all about the How and the Why, mixed in with a healthy dose of Why Should I Care. We'll even have a little geek out over the technical details. If type forwarding can't restore your excitement levels to fever pitch, I don’t know what will!
(Slides from NDC London 2017)
Overview of the new .NET Core and .NET Platform StandardAlex Thissen
Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.
Tamir Dresher - Demystifying the Core of .NET CoreTamir Dresher
.NET Core has revolutionized the way we build applications. Today, you can write .NET code once and run it anywhere using the tools, practices, and techniques that .NET community known and loved for years. In this session, you'll learn about architecture of .NET Core and .NET Standard which allows it to run on any platform like Linux, OSX and windows. And you will explore how to integrate the different utilities, libraries and concepts to maximize your .NET skills in the new world of cross-platform .NET.
Microsoft advises that .NET Core 3.0 is the future of the ecosystem and that programmers should use it for all new development projects. They’re making a ton of innovative changes to .NET Core, adding more workloads, helping you in your applications, be more productive, quicker, faster and better. In this presentation we look forward to what's new in .NET and C# for 2019
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.
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.
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
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
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.
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/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
2. This is Matt Ellis
He works for Microsoft, and is a developer on
the .NET Core team.
This is not me.
3. This is Matt Ellis
He works for JetBrains, and is an interested
amateur in .NET Core.
This is me.
4. What is .NET Core?
New .NET stack - CLR + BCL
Open Source
Cross platform
(eventually)
Standalone -
per-application installs
Factored for modularity -
“cloud optimised”
Everything ships as
NuGet packages,
including the runtime
Not finished…
5. .NET Core != .NET Framework
NOT a new version of the .NET Framework
• .NET Framework is going nowhere
• .NET Core is 5.0
.NET Framework is 4.6
• .NET Core is a fork of the .NET Framework
Code merged back to TFS
• .NET Core is (currently) a strict subset of
the .NET Framework
• Missing pieces in .NET Core
Windows: WinForms, WPF, COM, etc.
Platform: AppDomains, Remoting,
Reflection.Emit, etc.
• Different constraints:
Ship cycles, compatibility, system wide install
11. How do I get it?
DNX - Dot Net Execution Environment
DNX maintained by asp.net team
Stable builds on nuget.org
Unstable on myget.org
.NET Core, .NET Fx and ASP.NET teams maintain own .NET Core builds…
dnvm install latest -r coreclr -u
14. .NET Native
Alternative runtime
• AOT compilation
• Compiles all dependencies
Tree shaking
• Reflection? Via xml!
• Windows Store apps only
• Closed source
• LLILC - LLVM based JIT/AOT (OSS)
16. dotnet/coreclr
JIT compiler (RyuJIT), Garbage Collector, Platform Abstraction Layer - C++
mscorlib (tightly coupled to runtime) - C#
PAL - OS and platform differences. E.g. exception handling, threads, etc.
P/Invoke to OS, FEATURE #ifdefs
Book of the Runtime!
Mirror back to TFS
18. dotnet/corefx
Factored for modularity - each solution/assembly is a package
Some platform specific implementations, e.g. System.Console,
Process.Interop.Unix.cs, etc.
Might throw PlatformNotSupportedException
(e.g. Console.get_ForegroundColor )
Build is based on project.json, packages as references
Mirrored to TFS + .NET Framework
High compatibility bar for changes, transparent API review process
Console.get_ForegroundColor
PlatformNotSupportedException
20. How the application is hosted and run
Environmental services
What is an AppModel?
Bootstrap the CLR
Execute the
application
21. .NET Framework AppModels
.NET .exe
Originally a native stub that
loaded the CLR (x86 only!)
Special cased by OS loader
since Windows XP
Loads mscoree.dll, which
initialises CLR and executes
app
IIS/asp.net
Pre-IIS 7 - ISAPI filter
IIS 7 directly integrates CLR
Pipes requests/responses to
managed code
Lifetime management
Windows Phone /
Windows Store
Magic!
“Application host” loads CLR
Integrates with environment
events. E.g. suspend and
resume applications
Pre-compiled / .NET Native
23. DNX
Dot NET Execution Environment
asp.net 5
Targets .NET Core /
.NET Framework /
Mono
In memory compilation
via Roslyn
Changes project system
Reference packages, not assemblies
More…
24. • Packages for runtime and BCL
• BCL factored into many packages
• NuGet at heart of project system
(DNX)
• NuGet is the new Portable Class
Library
• Sketchy documentation…
NuGet v3
Bleeding edge.
25. How does this affect us?
Let NuGet be NuGet
Don’t target a
framework
Add NuGet dependencies
for all BCL assemblies
Specify required versions of
BCL assemblies
Let NuGet sort it out
Effectively, there is no
longer a fixed framework
version to target
27. Resolution depends on project type
Project understands dotnet TFM:
(UWP, .NET 4.6, ASP.NET 5)
“Modern PCL” with project.json:
(What is a “Modern PCL”?)
More details on docs.nuget.org
dotnet
29. PCL Refresher
1. A PCL is a class library that needs to run on multiple platforms and versions
(e.g. .NET Framework, Windows Phone, Xamarin)
2. It defines a common subset of APIs that are available on ALL of the required
versions of these platforms - a “Profile”
3. When targeting a Profile, the compiler references a set of Reference Assemblies
These describe the API with empty types, and forward types to correct assemblies
4. At runtime, the real assemblies on the target platform implement the APIs
Can also forward types to other assemblies
30. Portable Class Libraries
• PCL hides platform specific implementation details behind a common API
contract
• Profiles do not scale. The more versions and platforms, the more Profiles…
31. Why is this important?
Isn’t .NET Core a common, compatible, cross platform implementation?
• The BCL is the Base Class Library. It’s low level, and has to worry about
underlying platform differences, e.g. file IO
• The BCL needs to be abstracted away from the platform, to allow for
platform specific implementations. And refactoring!
32. Reference Assemblies
BCL packages include a Reference
Assembly in ref
• This is referenced at compile time and
provides the contract for the API, just like
PCL Reference Assemblies
• The runtime implementation
(e.g. libnetcore50 ) handles platform/host
specifics
ref
libdnxcore50
33. Why is this important?
This is how compatibility works
• Reference Assemblies allow consuming .NET Core packages from .NET
Framework and other PCL platforms
• Reference Assembly provides the contract, forwards any types
• Implementation assemblies provide potential platform specific
implementations
34. Compatibility (not a guarantee)
• .NET Framework 4.5 can consume .NET Core packages
• .NET Core 5.0 is a subset of .NET Framework 4.6
Should be able to consume .NET Framework 4.6 packages
• .NET Core can consume PCL libs that are compatible with System.Runtime.dll
(facade that forwards to e.g. mscorlib.dll)
• A new PCL Profile will include .NET Core (e.g. )
(Not announced as part of NuGet v3 - dotnet is checked before portable-* ?)
portable-dotnet+…+…
35. Known Unknowns
• How are OS specific implementations going to be shipped? ( runtimes ?)
• Do we need a Reference Assembly for each package?
• Why do we need platform/host TFMs (e.g. dnxcore50 ) when we can specify
dependencies?
dnxcore50
runtimes
http://docs.nuget.org/Create/uwp-create
36. What does this mean for Mono?
Lots. Or not much.
Mono == .NET Framework
Mono already
cross platform
Mono’s focus is
non-Windows
mobile (Xamarin)
.NET Core’s focus
is server and
Windows UWP
Mono can include
CoreCLR + CoreFX
code
37. Where does Roslyn fit in?
Orthogonal.
Runs on .NET
Framework + Mono
Planned for
.NET Core
Compiling
CoreCLR + CoreFX
currently requires Windows
C# compiler
written in C#