Presentation from .NETConf 2017 and DDC 2017
- .NET Core Intro
-.NET Standard
-Creating .NET Core Framework Dependent Applications
-Creating .NET Core Self Contained Applications
-.NET Core and Docker
-Creating UI with .NET Core
-Machine Learning with .NET Core
HoloLens, Unity3D, and .NET – a Mixed Reality with sprinkles of .NET Core
DI
Logging
Managing JavaScript projects in a MonoRepo
(Zacky Pickholz)
Managing a large front end project with multiple npm packages can be overwhelming sometimes. During this session we cover popular tools that help us maintain this project much more easily.
.NET Core is a new framework inside .NET Ecosystem. It helps developers to the new challenges of a Cloud First World, and it is not a replacement for the .NET Framework.
Presentation from .NETConf 2017 and DDC 2017
- .NET Core Intro
-.NET Standard
-Creating .NET Core Framework Dependent Applications
-Creating .NET Core Self Contained Applications
-.NET Core and Docker
-Creating UI with .NET Core
-Machine Learning with .NET Core
HoloLens, Unity3D, and .NET – a Mixed Reality with sprinkles of .NET Core
DI
Logging
Managing JavaScript projects in a MonoRepo
(Zacky Pickholz)
Managing a large front end project with multiple npm packages can be overwhelming sometimes. During this session we cover popular tools that help us maintain this project much more easily.
.NET Core is a new framework inside .NET Ecosystem. It helps developers to the new challenges of a Cloud First World, and it is not a replacement for the .NET Framework.
Author: Oleg Chunikhin, www.eastbanctech.com
Kubernetes is a portable open source system for managing and orchestrating containerized cluster applications. Kubernetes solves a number of DevOps related problems out of the box in a simple and unified way – rolling updates and update rollback, canary deployment and other complicated deployment scenarios, scaling, load balancing, service discovery, logging, monitoring, persistent storage management, and much more. You will learn how in less than 30 minutes a reliable self-healing production-ready Kubernetes cluster may be deployed on AWS and used to host and operate multiple environments and applications.
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Docker Compose is the last piece of the orchestration puzzle. After provisioning Docker daemons on any host in any location with Docker Machine and clustering them with Docker Swarm, users can employ Docker Compose to assemble multi-container distributed apps that run on top of these clusters.
The first step to employing Docker Compose is to use a simple YAML file to declaratively define the desired state of the multi-container app:
containers:
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
environment:
- PYTHONUNBUFFERED=1
redis:
image: redis:latest
command: redis-server --appendonly yes
This example shows how Docker Compose takes advantage of existing containers. Specifically, in this simple two-container app declaration, the first container is a Python app built each time from the Dockerfile in the current directory. The second container is built from the redis Official Repo on the Docker Hub Registry. The links directive declares that the Python app container is dependent on the redis container.
Not that it’s defined, starting your app is as easy as …
% docker up
With this single command, the Python container is automatically built from its Dockerfile and the redis container is pulled from the Docker Hub Registry. Then, thanks to the links directive expressing the dependency between the Python and redis containers, the redis container is started *first*, followed by the Python container.
Docker Compose is still a work-in-progress and we want your help to design it. In particular, we want to know whether or not you think this should be a part of the Docker binary or a separate tool. Head over to the proposal on GitHub to try out an alpha build and have your say.
Coda
All this is just the briefest introduction to Docker Machine, Docker Swarm, and Docker Compose. We hope you’ll take a moment to try them out and give us feedback – these projects are moving quickly and we welcome your input!
We also wish to thank the many community members who have contributed their experience, feedback, and pull requests during the pre-Alpha iterations of these projects. It’s thanks to you that we were able to make so much progress so quickly, and in the right direction.
Distributed apps offer many benefits to users – portability, scalability, dynamic development-to-deployment acceleration – and we’re excited by the role the Docker platform, community, and ecosystem are playing in making these apps easier to build, ship, and run. We’ve got a ways to go, but we’re psyched by this start – join us and help us get there faster!
A Comprehensive Introduction to Kubernetes. This slide deck serves as the lecture portion of a full-day Workshop covering the architecture, concepts and components of Kubernetes. For the interactive portion, please see the tutorials here:
https://github.com/mrbobbytables/k8s-intro-tutorials
ArgoCD is a Continuous Delivery and Deployment tool based on GitOps principles. It helps to automate deployment to Kubernetes cluster from github. We will look into how to adopt and use argoCD for continuous deployment.
This presentation covers how app deployment model evolved from bare metal servers to Kubernetes World.
In addition to theoretical information, you will find free KATACODA workshops url to perform practices to understand the details of the each topics.
Understanding Monorepos: What you need to know
Benjamin Cabanes & Philip Fulcher
Monorepos are hot right now, especially among Web developers. We’re here to help you understand what they are, what problems they solve, and how Nx makes them delightful. You can break down barriers and reclaim the collaboration you’ve been missing.
Evolving to serverless
How the applications are transforming
A note on CI/CD
Architecture of Docker
Setting up a docker environment
Deep dive into DockerFile and containers
Tagging and publishing an image to docker hub
A glimpse from session one
Services: scale our application and enable load-balancing
Swarm: Deploying application onto a cluster, running it on multiple machines
Stack: A stack is a group of interrelated services that share dependencies, and can be orchestrated and scaled together.
Deploy your app: Compose file works just as well in production as it does on your machine.
Extras: Containers and VMs together
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
Author: Oleg Chunikhin, www.eastbanctech.com
Kubernetes is a portable open source system for managing and orchestrating containerized cluster applications. Kubernetes solves a number of DevOps related problems out of the box in a simple and unified way – rolling updates and update rollback, canary deployment and other complicated deployment scenarios, scaling, load balancing, service discovery, logging, monitoring, persistent storage management, and much more. You will learn how in less than 30 minutes a reliable self-healing production-ready Kubernetes cluster may be deployed on AWS and used to host and operate multiple environments and applications.
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
Docker Compose is the last piece of the orchestration puzzle. After provisioning Docker daemons on any host in any location with Docker Machine and clustering them with Docker Swarm, users can employ Docker Compose to assemble multi-container distributed apps that run on top of these clusters.
The first step to employing Docker Compose is to use a simple YAML file to declaratively define the desired state of the multi-container app:
containers:
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis
environment:
- PYTHONUNBUFFERED=1
redis:
image: redis:latest
command: redis-server --appendonly yes
This example shows how Docker Compose takes advantage of existing containers. Specifically, in this simple two-container app declaration, the first container is a Python app built each time from the Dockerfile in the current directory. The second container is built from the redis Official Repo on the Docker Hub Registry. The links directive declares that the Python app container is dependent on the redis container.
Not that it’s defined, starting your app is as easy as …
% docker up
With this single command, the Python container is automatically built from its Dockerfile and the redis container is pulled from the Docker Hub Registry. Then, thanks to the links directive expressing the dependency between the Python and redis containers, the redis container is started *first*, followed by the Python container.
Docker Compose is still a work-in-progress and we want your help to design it. In particular, we want to know whether or not you think this should be a part of the Docker binary or a separate tool. Head over to the proposal on GitHub to try out an alpha build and have your say.
Coda
All this is just the briefest introduction to Docker Machine, Docker Swarm, and Docker Compose. We hope you’ll take a moment to try them out and give us feedback – these projects are moving quickly and we welcome your input!
We also wish to thank the many community members who have contributed their experience, feedback, and pull requests during the pre-Alpha iterations of these projects. It’s thanks to you that we were able to make so much progress so quickly, and in the right direction.
Distributed apps offer many benefits to users – portability, scalability, dynamic development-to-deployment acceleration – and we’re excited by the role the Docker platform, community, and ecosystem are playing in making these apps easier to build, ship, and run. We’ve got a ways to go, but we’re psyched by this start – join us and help us get there faster!
A Comprehensive Introduction to Kubernetes. This slide deck serves as the lecture portion of a full-day Workshop covering the architecture, concepts and components of Kubernetes. For the interactive portion, please see the tutorials here:
https://github.com/mrbobbytables/k8s-intro-tutorials
ArgoCD is a Continuous Delivery and Deployment tool based on GitOps principles. It helps to automate deployment to Kubernetes cluster from github. We will look into how to adopt and use argoCD for continuous deployment.
This presentation covers how app deployment model evolved from bare metal servers to Kubernetes World.
In addition to theoretical information, you will find free KATACODA workshops url to perform practices to understand the details of the each topics.
Understanding Monorepos: What you need to know
Benjamin Cabanes & Philip Fulcher
Monorepos are hot right now, especially among Web developers. We’re here to help you understand what they are, what problems they solve, and how Nx makes them delightful. You can break down barriers and reclaim the collaboration you’ve been missing.
Evolving to serverless
How the applications are transforming
A note on CI/CD
Architecture of Docker
Setting up a docker environment
Deep dive into DockerFile and containers
Tagging and publishing an image to docker hub
A glimpse from session one
Services: scale our application and enable load-balancing
Swarm: Deploying application onto a cluster, running it on multiple machines
Stack: A stack is a group of interrelated services that share dependencies, and can be orchestrated and scaled together.
Deploy your app: Compose file works just as well in production as it does on your machine.
Extras: Containers and VMs together
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
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.
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.
Difference between .net core and .net frameworkAnsi Bytecode
We are all familiar with .NET Core, .NET Framework and how they have been leading the programming world for building mobile, web-based and desktop applications. But wait, are they both same or have different infrastructure? You might be confused about both of them and probably that’s why you’re here.
.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
Similar to .NET Core, ASP.NET Core Course, Session 1 (20)
these are my presentation files I use in my PyML Course, for videos + voice records (in Persian language) contact me (they are all FREE for everyone)
Session 2: Jupyter, NumPy
these are my presentation files I use in my PyML Course, for videos + voice records (in Persian language) contact me (they are all FREE for everyone)
Session 1: Introducing Python
.NET Core, ASP.NET Core Course, Session 4aminmesbahi
Session 4,
What is Garbage Collector?
Fundamentals of memory
Conditions for a garbage collection
Generations
Configuring garbage collection
Workstation
Server
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
7. .NET Core
About
What is the .NET Core Platform?
• .NET Core is a cross-platform implementation of .NET Framework
• Main Goal: modular, performant and cross-platform execution environment for
modern applications
• .NET Core is a subset of the .NET Framework
• It’s primarily being driven by ASP.NET Core workloads
• .NET Core consists of the CoreCLR runtime and the CoreFX framework libraries
• A set of cross-platform tooling can be found in the .NET CLI
• The Roslyn compiler and LLILC compiler are sibling projects that support .NET Core
8. .NET Core
.NET Core is…
What is the .NET Core Platform?
32-bit and 64-bit Windows platforms, as well as on mac OS and Linux
manages memory with a garbage collector, compiles your code with a JIT compiler or ahead of time with .NET Native.
.NET Core is a set of runtime, library and compiler components.
Generics, Language Integrated Query (LINQ), Async support, "Roslyn" Managed compiler usable as a service
Streamlined and easy interoperability with native code
9. .NET Core
.NET Core is…
What is the .NET Core Platform?
Runtime modularity allows for an extensibility model, and componentization strategies with package manager NuGet
client applications, across web, server workloads to mobile apps
Platforms: OS and Processor Architectures | Application Stacks: Mono
Open ECMA standard, both its runtime and its class libraries
10. .NET Core
Console Application:
.NET Core Application Types: Console Application
• Cross-platform: Console apps can run on Windows, OS X, and Linux.
• Native compilation: This combines the benefits of a managed app with the
performance of a native C/C++ app.
11. .NET Core
Features
.NET Core Features
• Ease of Installation
• Because .NET Core is not an operating system component, installation:
• Does not require administrator privileges.
• Does not touch system components like operating system directories or, on Windows
systems, the Windows Registry.
• Is as simple as copying some files to a directory on the target computer or compiling
the framework natively into the app.
12. .NET Core
.NET Core has two deployment models:
.NET Core Deployment models: Portable Apps
• Portable Apps
• You will deploy only your app and any of its dependencies other than the .NET Core libraries
• A portable app requires that .NET Core is installed on the target machine in order for it to run
• .NET Core is an independent component so you do not need to determine in advance which
platforms your app supports
• Portable apps are the default app type in .NET Core
13. .NET Core
.NET Core has two deployment models:
.NET Core Deployment models: Self-contained Apps
• Self-contained Apps
• include all of their dependencies, including the .NET Core runtime, as part of the app
• .NET Core is local to your app so it can run on any supported platform whether .NET Core is
installed on it or not
• .NET libraries that your app uses are isolated from .NET Core libraries used by other apps
• Requires that you determine the target platforms that your app supports in advance
14. .NET Core
.NET Core Components
.NET Core Components
• Common Language Runtime: which in .NET Core is named CoreCLR
• CoreFX: a modular collection of libraries
• allows you to include the libraries that your app needs without the overhead of including those that you don't need
15. .NET Core
The Common Language Runtime
.NET Core Components: CLR
CoreCLR, or the common language runtime found in .NET Core, is a lightweight runtime that offers many of the same
services as the .NET Framework's common language runtime on the Windows desktop. These include:
• Garbage Collector
• provides automatic memory management
• Allocates and frees memory as needed; you do not have to do it programmatically
• .NET Core uses the same garbage collector as the .NET Framework
• Just-in-time (JIT) compiler
• compiles IL, or .NET intermediate language, to native machine code at runtime.
• On some architectures, the JIT compiler includes support for SIMD hardware acceleration
• An exception handling mechanism
• allows you to handle exceptions with try/catch statements
16. .NET Core
The Class Library
.NET Core Components: The Class Library
Is very much like the .NET Framework Class Library for the Windows desktop.
With one major difference: On the Windows desktop, it is a monolithic library that is part of the operating system and is
maintained by Windows Update.
On .NET Core it is a modular and factored collection of individual libraries organized by functionality
Microsoft.NetCore.App is included with the runtime and contains the basic types needed for all app development. Some of
these include:
• Primitives, such as the Boolean type, signed and unsigned integral types, floating-point types, and the Char structure.
• The String type, UTF-16 code units. .NET Core also includes a number of encoding types that let you convert UTF-16 encoded strings
to an array of bytes in other encodings. For example, you can use the UTF8Encoding class to convert a .NET Core string to a UTF-8
encoded byte array that represents a string on Linux.
17. .NET Core
The Class Library
.NET Core Components: The Class Library
• General-purpose exception classes, such as the ArgumentException, ArgumentNullException, and NullReferenceException types.
• The task types, such as Task and Task<T>, to support asynchronous programming.
• Basic threading types
• The Console class, to support the development of console apps.
• Other libraries are installed as NuGet packages
18. .NET Core
dotnet.exe
.NET Core Tools: CLI
• dotnet --help : Displays information about .NET Core CLI commands
• dotnet new : Initializes a new C# project
• dotnet new --lang F# : Initializes a new F# project.
• dotnet restore : Restores the dependencies for an app.
• dotnet build : Builds a .NET Core app.
• dotnet publish : Publishes a .NET portable or self-contained app. (See the "Ease of Deployment" section below.
• dotnet run : Runs the app from its source code.
• dotnet pack : Creates a NuGet package of your code.
dotnet.exe also has an extensibility model that lets you add additional commands.
19. .NET Core
Language Support and Development Environments
.NET Core Tools: Language Support and Development Environments
• Any programming language that targets .NET Core can be used to develop .NET Core app
• An app that targets .NET Core and is written in one programming language can seamlessly access types
and members in .NET Core libraries that were developed by using a different programming language
• You can currently develop .NET Core apps in either of two languages:
• C#, which is based on the .NET Compiler Platform, also known as Roslyn.
• F#.
• Additional languages are planned for the future
• Development Environments: Notepad, Visual Studio Code, Visual Studio 2015 Update 2 (and higher)
20. .NET Core
.NET Core vs .NET Framework 4.x
.NET Core vs .NET Framework 4.x
.NET Core
Includes CoreCLR, a more lightweight runtime that provides basic
services: automatic memory management and garbage collection,
along with a basic type library.
Includes CoreFx, a set of individual modular assemblies that you can
add to your app as needed. Unlike the .NET Framework 4.x you can
select only the assemblies that you need, suitable for a full range of
modern apps, including apps that operate on small devices with
constrained memory and storage.
Can be used to develop apps that take advantage of a number of
technologies, such as ASP .NET Core, WCF, WF
Can be app local. That is, the .NET Core implementation that your app
relies is tightly bound to your app. This mitigates versioning problems.
vs
.NET Framework 4.x
Includes CLR, a sizeable runtime that provides memory management,
isolation by application domain, and a host of other application
services.
Includes the .NET Framework Class Library, a large, monolithic library
with thousands of classes and many thousands of members. they are
always present and accessible.
Is suitable for developing traditional Windows desktop apps, including
Windows Forms (WinForms) and Windows Presentation Foundation
(WPF) apps.
ASP.NET and ASP.NET Web Forms, Windows Communication
Foundation (WCF), Workflow Foundation (WF
Is globally available on a given system. An app can include a chain
installer that installs a particular version of the .NET, this can create
versioning problems. Starting with Windows 8, a version of the .NET
Framework is installed as an operating system component and is serviced by
Windows Update.
21. .NET Core
.NET Standard
.NET Standard
.NET Framework 4.6.2 Preview and .NET Core both conform to the .NET Standard 1.5. They target different
platforms and represent different approaches to app development and deployment
• Experienced .NET Framework developers can easily adapt to developing with .NET Core when whey want
to target different platforms and devices.
• .NET Core developers can easily transition to developing apps with the .NET Framework that target
Windows desktop, tablet, and phone.
• Libraries written for the .NET Framework or .NET Core can easily be made to work on the other platform.
22. .NET Core
.NET Core implementations
.NET Core implementations
• ASP.NET Core
• . ASP.NET Core is a modular version of ASP.NET that combines ASP.NET MVC and the ASP.NET Web API.
• It runs on both the .NET Framework and .NET Core and is designed for building high-performance cloud and microservice apps
• It is not intended as a replacement to ASP.NET in the .NET Framework.
• .NET Native.
• .NET Native is a compilation and deployment technology for Universal Windows Platform (UWP) apps written in C# and Visual Basic.
• .NET Native compiles apps to native code, and statically links into an application's assemblies only those code elements from
.NET Core libraries and other third-party libraries that are actually used.
23. .NET Core
.NET Core implementations
.NET Core implementations
• Universal Windows Platform (UWP) apps.
• The UWP allows you to build a single app that can run on the Windows desktop, Windows tablet devices, and Windows Phone.
• These apps can also be placed in the Windows Store.
• UWP apps are compiled to native code for their target platforms by .NET Native.
24. .NET Core
.NET Core System Requirements
Installing .NET Core: System Requirements
• Windows client supported in both 32-bit and 64-bit editions
• Windows 7 SP1, Windows 8.1, Windows 10
• Windows Server 2008 R2 SP1, 2012 SP1, 2012 R2 SP1 (Full Server or Server Core)
• Windows Server 2016 (Full Server, Server Core or Nano Server)
• Linux
• CentOS 7.1, Debian 8.2, Red Hat Enterprise Linux 7.2, Ubuntu 14.04 LTS
• OS X
• OS X 10.11 (El Capitan) and above
25. .NET Core
.NET Core Software Development Kit (SDK) Overview
Installing .NET Core: .NET Core Software Development Kit (SDK) Overview
.NET Core Software Development Kit is a set of libraries and tools that allow developers to create .NET Core
applications and libraries. It contains the following components:
• The .NET Core Command Line Tools that are used to build applications
• .NET Core (libraries and runtime) that allow applications to both be built and run
• The dotnet driver for running the CLI commands as well as running applications
26. .NET Core
Acquiring the .NET Core SDK
Installing .NET Core: .NET Core Software Development Kit (SDK) Overview
• The native installers are primarily meant for developer's machines. DEB packages on Ubuntu or MSI bundles on
Windows. These installers will install and set up the environment as needed for the user to use the SDK
immediately after the install and they require administrative privileges on the machine.
• Install scripts, do not require administrative privileges. They will also not install any prerequisites on the machine;
you need to install all of the pre-requisites manually. The scripts are meant mostly for setting up build servers or
when you wish to install the tools without admin privileges.
By default, the SDK will install in a "side-by-side" (SxS) manner means that multiple versions of the CLI tools can coexist
at any given time on a single machine.
28. .NET Core
Step by Step Hello World with .NET Core
.NET Core: Hello World
$ dotnet new
dotnet new creates an up-to-date project.json file with NuGet dependencies necessary to build a console app. It also creates a Program.cs, a
basic file containing the entry point for the application.
30. .NET Core
$ dotnet restore
.NET Core: Hello World
dotnet restore calls into NuGet to restore the tree of dependencies.
NuGet analyzes the project.json file, downloads the dependencies stated in the file (or grabs them
from a cache on your machine), and writes the project.lock.json file.
The project.lock.json file is necessary to be able to compile and run.
The project.lock.json file is a persisted and complete set of the graph of NuGet dependencies and
other information describing an app. This file is read by other tools, such as dotnet build and dotnet
run, enabling them to process the source code with a correct set of NuGet dependencies and binding
resolutions.
31. .NET Core
$ dotnet run
.NET Core: Hello World
dotnet run calls dotnet build to ensure that the build targets have been built, and then calls dotnet <assembly.dll>
to run the target application.
You can also execute dotnet build to compile and the code without running the build console applications.
32. .NET Core
Building a self-contained application
.NET Core: Hello World
Change the project.json file to direct the tools to build a self-contained application.
The first change is to remove the "type": "platform" element from all dependencies. This project's only dependency so far
is "Microsoft.NETCore.App". The dependencies section should look like this:
33. .NET Core
Building a self-contained application
.NET Core: Hello World
Change the project.json file to direct the tools to build a self-contained application.
The first change is to remove the "type": "platform" element from all dependencies. This project's only dependency so far is
"Microsoft.NETCore.App". The dependencies section should look like this:
Next, you need to add a runtimes node to specify all the target execution environments. The build system will generate native executables
for the current environment. After making those two changes, execute dotnet restore, followed by dotnet build to create the native executable.
RID Catalog
34. .NET Core
Building a self-contained application
.NET Core: Hello World
Notice that the native application takes slightly longer to build, but executes slightly faster. This behavior becomes more
noticeable as the application grows.
The build process generates several more files when your project.json creates a native build. These files are
created in binDebugnetcoreapp1.0<platform> where <platform> is the RID chosen.
In addition to the project's HelloNative.dll there is a HelloNative.exe that loads the runtime and starts the
application
35. .NET Core
Executing on a machine that does not include the .NET runtime
.NET Core: Hello World
Use the dotnet publish command to create a new subdirectory under the ./bin/Debug/netcoreapp1.0/<platform>
directory called publish. It copies the executable, all dependent DLLs and the framework to this sub directory
package that directory to another machine (or a container) and execute the application there.
That application is a portable application which is the default type of application for .NET Core and requires that .NET Core
is installed on the target machine. Portable applications can be built on one machine and executed anywhere.
Native applications must be built separately for each target machine. dotnet publish creates a directory that has the
application's DLL, and any dependent dlls that are not part of the platform installation.