- The document analyzes .NET API and P/Invoke compatibility of NuGet packages. It finds that 63% of top 1000 packages and 69% of all packages are compatible with .NET Standard 2.0.
- Of incompatible packages, many depend on app models like ASP.NET or use over 50 missing APIs. Excluding these, most packages only use a small number of missing APIs.
- A small percentage of compatible packages use P/Invokes, mostly depending on Windows APIs, but many use only a few APIs.
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
ASP.NET 5 has been redesigned with an emphasis on speed, composability, and cross-platform support. The new ASP.NET is leaner, faster, open source, and fixes many of the inconsistencies and problems present in ASP.NET today.
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
ASP.NET 5 has been redesigned with an emphasis on speed, composability, and cross-platform support. The new ASP.NET is leaner, faster, open source, and fixes many of the inconsistencies and problems present in ASP.NET today.
Facilitating Idiomatic Swift with Objective-CAaron Taylor
Blog Post: https://www.meta.sc/tech/swiftobjc
If you are hitting roadblocks in trying to communicate with Core Foundation and C APIs directly from Swift, just wrap them in a friendly Objective-C class that provides an simple API for the rest of your application to use.
How to contribute to an open source project and don’t die during the Code Rev...Victor Morales
Reviewing changes is an essential part of the software development. This process involves the collaboration of several team members who ensure to keep quality standards. In open source projects, the process can be overwhelming for newbies. Along this presentation, I will share experiences and best practices acquired a long of my years contributing to different open source projects, like OpenStack, Kubernetes, CNCF and OPNFV and how to improve that collaboration between contributors and reviewers.
"This session will cover an Overview of JS frameworks
& how to install and start with angular . Also how to create a first-level sample app using VS Code IDE"
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.
Using Mozmill to run automated functional tests against Firefox. It also demonstrates the on-going work of the QA team to run those tests on a daily basis and how we analyze reported results.
Cypress is a testing tool that allows front-end developers and test engineers to automate their tests following the flow in which a user might use the application.
Providing the interface of the browser along with dev console and network requests, it makes the life of a tester much simpler.
Mozilla QA has created a new feature called the Mozmill Crowd Extension that allows any Firefox user to automatically and effortlessly run our set of basic Mozmill functional test cases against their installed Firefox browser and report the results to our central reporting server. Any user in any locale can now participate in giving us valuable feedback on how their browser is operating in their environment. Mainly targeting the thousands of Firefox nightly testers, this extension will give Mozilla unprecedented insights on how a particular nightly build is working across the globe. In this session we will describe and demonstrate how the extension works, what data is collected from the tests and how the results are reported and analyzed.
Observability beyond logging for Java MicroservicesLuke Marsden
This talk covers the fundamentals of observability for modern microservices: Logging, Monitoring, Tracing & Visualization. In terms of monitoring, Prometheus is shown with example client code in Java; for tracing, OpenTracing with Zipkin is given as an example; for visualization, Weave Scope is given as an example.
Presentation slide for the MSDN session presented in Globe Labs on 18 February 2016. Some of the information here are based on prevailing state of ASP.NET Core at the time of presentation.
Open Platform for Network Functions Virtualization (OPNFV) is collaborative open source platform which facilitates the development and evolution of various open source ecosystems through system level integration, deployment and testing. Cross Community Continuous Integration (XCI) is an OPNFV project that regularly integrates the latest from each supported branch of select upstream projects. In this session, I’m going to give an overview of the XCI project, how this project meet DevOps principles, explain its general workflow and share some challenges of consuming rapidly evolving open source projects.
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)
Facilitating Idiomatic Swift with Objective-CAaron Taylor
Blog Post: https://www.meta.sc/tech/swiftobjc
If you are hitting roadblocks in trying to communicate with Core Foundation and C APIs directly from Swift, just wrap them in a friendly Objective-C class that provides an simple API for the rest of your application to use.
How to contribute to an open source project and don’t die during the Code Rev...Victor Morales
Reviewing changes is an essential part of the software development. This process involves the collaboration of several team members who ensure to keep quality standards. In open source projects, the process can be overwhelming for newbies. Along this presentation, I will share experiences and best practices acquired a long of my years contributing to different open source projects, like OpenStack, Kubernetes, CNCF and OPNFV and how to improve that collaboration between contributors and reviewers.
"This session will cover an Overview of JS frameworks
& how to install and start with angular . Also how to create a first-level sample app using VS Code IDE"
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.
Using Mozmill to run automated functional tests against Firefox. It also demonstrates the on-going work of the QA team to run those tests on a daily basis and how we analyze reported results.
Cypress is a testing tool that allows front-end developers and test engineers to automate their tests following the flow in which a user might use the application.
Providing the interface of the browser along with dev console and network requests, it makes the life of a tester much simpler.
Mozilla QA has created a new feature called the Mozmill Crowd Extension that allows any Firefox user to automatically and effortlessly run our set of basic Mozmill functional test cases against their installed Firefox browser and report the results to our central reporting server. Any user in any locale can now participate in giving us valuable feedback on how their browser is operating in their environment. Mainly targeting the thousands of Firefox nightly testers, this extension will give Mozilla unprecedented insights on how a particular nightly build is working across the globe. In this session we will describe and demonstrate how the extension works, what data is collected from the tests and how the results are reported and analyzed.
Observability beyond logging for Java MicroservicesLuke Marsden
This talk covers the fundamentals of observability for modern microservices: Logging, Monitoring, Tracing & Visualization. In terms of monitoring, Prometheus is shown with example client code in Java; for tracing, OpenTracing with Zipkin is given as an example; for visualization, Weave Scope is given as an example.
Presentation slide for the MSDN session presented in Globe Labs on 18 February 2016. Some of the information here are based on prevailing state of ASP.NET Core at the time of presentation.
Open Platform for Network Functions Virtualization (OPNFV) is collaborative open source platform which facilitates the development and evolution of various open source ecosystems through system level integration, deployment and testing. Cross Community Continuous Integration (XCI) is an OPNFV project that regularly integrates the latest from each supported branch of select upstream projects. In this session, I’m going to give an overview of the XCI project, how this project meet DevOps principles, explain its general workflow and share some challenges of consuming rapidly evolving open source projects.
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)
As software teams transition to cloud-based architectures and adopt more agile processes, the tools they need to support their development cycles will change. In this session, we'll take you through the transition that Amazon made to a service-oriented architecture over a decade ago. We will share the lessons we learned, the processes we adopted, and the tools we built to increase both our agility and reliability. We will also introduce you to AWS CodeCommit, AWS CodePipeline, and AWS CodeDeploy, three new services born out of Amazon's internal DevOps experience.
Last year we tasted the very first bits of the NET Core platform. The RTM is out and we are close to the next 2.0 version. Is this the right moment to adopt the platform?
What are the changes of the new project system brought from Visual Studio 2017? What is new in the tools, sdk and packaging?
Adopting the new NET Core doesn’t necessarily mean migrating everything in a single step but mixing it with the regular .NET Framework thanks to the new net standard which is evolving to the 2.0 version as well.
During this code-first session, we will try to see the developer’s and architect’s perspectives in a variety of scenarios, including the cross-platform and Raspberry.
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
As software teams transition to cloud-based architectures and adopt more agile processes, the tools they need to support their development cycles will change. In this session, we'll take you through the transition that Amazon made to a service-oriented architecture over a decade ago. We will share the lessons we learned, the processes we adopted, and the tools we built to increase both our agility and reliability. We will also introduce you to AWS CodeCommit, AWS CodePipeline, and AWS CodeDeploy, three new services born out of Amazon's internal DevOps experience.
Fasten Industry Meeting with GitHub about Dependancy ManagementFasten Project
Georgios Gousios, Professor at TUDelft Software Engineering Research Group and FASTEN Project and Scientific Coordinator, offered this Dependancy Management synthesis to 30 GitHub professionals incl. remote attendees on April 17, 2019 before discussing potential collaborations. More: https://www.fasten-project.eu/view/Events/
The 2.0 version of AppFuse is designed to make developing Java web applications with Spring much easier. By using and leveraging Maven 2, users will be able to quickly add/remove dependencies, as well as develop their applications quickly and efficiently from their favorite IDE. This release will includes a move to annotations, JSP 2.0 and Spring 2.0.
This presentations covers what's new in AppFuse 2.0, as well as describe experiences migrating from Ant to Maven, Spring 1.x to 2.0, and leveraging annotations for Java development.
Microservices have become a trendy development strategy. Hosting and running such services used to be pretty painful… but here it comes Service Fabric! Let's take a closer look at this platform, it's different development models and all the features it offers. And not only for microservices!
Software release cycles are now measured in days instead of months. Cutting edge companies are continuously delivering high-quality software at a fast pace. In this session, we will cover how you can begin your DevOps journey by sharing best practices and tools used by the engineering teams at Amazon. We will showcase how you can accelerate developer productivity by implementing continuous Integration and delivery workflows. We will also cover an introduction to AWS CodeStar, AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeDeploy, AWS Cloud9, and AWS X-Ray the services inspired by Amazon's internal developer tools and DevOps practice.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxEduSkills OECD
Andreas Schleicher presents at the OECD webinar ‘Digital devices in schools: detrimental distraction or secret to success?’ on 27 May 2024. The presentation was based on findings from PISA 2022 results and the webinar helped launch the PISA in Focus ‘Managing screen time: How to protect and equip students against distraction’ https://www.oecd-ilibrary.org/education/managing-screen-time_7c225af4-en and the OECD Education Policy Perspective ‘Students, digital devices and success’ can be found here - https://oe.cd/il/5yV
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
This is a presentation by Dada Robert in a Your Skill Boost masterclass organised by the Excellence Foundation for South Sudan (EFSS) on Saturday, the 25th and Sunday, the 26th of May 2024.
He discussed the concept of quality improvement, emphasizing its applicability to various aspects of life, including personal, project, and program improvements. He defined quality as doing the right thing at the right time in the right way to achieve the best possible results and discussed the concept of the "gap" between what we know and what we do, and how this gap represents the areas we need to improve. He explained the scientific approach to quality improvement, which involves systematic performance analysis, testing and learning, and implementing change ideas. He also highlighted the importance of client focus and a team approach to quality improvement.
We all have good and bad thoughts from time to time and situation to situation. We are bombarded daily with spiraling thoughts(both negative and positive) creating all-consuming feel , making us difficult to manage with associated suffering. Good thoughts are like our Mob Signal (Positive thought) amidst noise(negative thought) in the atmosphere. Negative thoughts like noise outweigh positive thoughts. These thoughts often create unwanted confusion, trouble, stress and frustration in our mind as well as chaos in our physical world. Negative thoughts are also known as “distorted thinking”.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
3. Part 1: .NET API Compatibility
• We’ve looked at packages and checked which .NET APIs they are using
• Top 1000
• All
• We’ve broken down the packages into three buckets:
• Packages that target .NET Standard/PCLs
• Packages that only use APIs available in .NET Standard 2.0
• Packages that use APIs unavailable in .NET Standard 2.0
• We’ve grouped the missing APIs by namespace and plotted how
strong a package depends on it
4. Compatibility of the Top 1000 Packages
63 % are API compatible with .NET Core & Standard 2.0 Still Incompatible
37 %30 % 33 %Top 1000
Provide portable asset Only use available APIs Use unavailable APIs
24 %
Uses app-model specific APIs, such as
• Classic ASP.NET
• WinForms
• WPF
• Xamarin Android & iOS
From those
87 % have also .NET Framework assets
of which
70 % are compatible
with .NET Core & Standard
5. 0 20 40 60 80 100 120 140 160 180 200
(ASP.NET Classic)
(WinForms)
(WPF)
(Xamarin Android)
Microsoft.Win32
System
System.Collections
System.ComponentModel
System.ComponentModel.Composition
System.Data
System.Diagnostics
System.Drawing
System.IdentityModel
System.Net
System.Reflection
System.Runtime
System.Security
System.ServiceModel
<= 1
<= 5
<= 10
<= 20
<= 50
More
Top 1000: Incompatible API Usage
# of missing
APIs
per package
Take Away
Most packages depend on classic
ASP.NET
Packages depending on app
models often use 50+ APIs
6. 0 10 20 30 40 50 60
System
System.Runtime
System.Security
System.Reflection
System.Data
System.Diagnostics
System.Drawing
System.ComponentModel.Composition
System.Net
Microsoft.Win32
<= 1
<= 5
<= 10
<= 20
<= 50
More
Top 1000: Incompatible API Usage
Excluding “lost causes”, i.e. only packages with no app model dependencies
Take Away
Small # app-model agnostic (120)
Looking at remaining technologies
there seem to be plenty of
packages that only use <= 5 APIs
# of missing
APIs
per package
7. Compatibility of all packages on NuGet
69 % are API compatible with .NET Core & Standard 2.0 Still Incompatible
32 %12 % 56 %All Packages
Provide portable asset Only use available APIs Use unavailable APIs
37 %30 % 33 %Top 1000 20 %
Uses app-model specific APIs, such as
• Classic ASP.NET
• WinForms
• WPF
• Xamarin Android & iOS
From those
50 % have also .NET Framework assets
of which
88 % are compatible
with .NET Core & Standard
8. 0 1000 2000 3000 4000 5000 6000 7000 8000
(ASP.NET Classic)
(WinForms)
(WPF)
(Xamarin Android)
(Xamarin iOS)
Microsoft.VisualBasic
Microsoft.Win32
System
System.Collections
System.ComponentModel
System.ComponentModel.Composition
System.Data
System.Diagnostics
System.Drawing
System.Management
System.Net
System.Reflection
System.Runtime
System.Security
System.ServiceModel
<= 1
<= 5
<= 10
<= 20
<= 50
More
All Packages: Incompatible API Usage
Take Away
Most packages depend on classic
ASP.NET
Packages depending on app
models often use 50+ APIs
# of missing APIs
per package
9. 0 200 400 600 800 1000 1200 1400 1600
Microsoft.Build
Microsoft.VisualBasic
Microsoft.Win32
System
System.Collections
System.ComponentModel
System.ComponentModel.Composition
System.Configuration
System.Data
System.Diagnostics
System.Drawing
System.IO
System.Management
System.Messaging
System.Net
System.Reactive
System.Reflection
System.Runtime
System.Security
System.ServiceModel
<= 1
<= 5
<= 10
<= 20
<= 50
More
All Packages: Incompatible API Usage
Excluding “lost causes”, i.e. only packages with no app model dependencies
# of missing APIs
per package
Take Away
Relatively small # app-model agnostic
(7000)
Looking at remaining technologies
there seem to be plenty of packages
that only use <= 5 APIs
10. Conclusion Part 1: .NET API Compatibility
• 69 % of all available NuGet packages are API compatible with .NET
Standard/.NET Core 2.0
• We shouldn’t prefer .NET Framework assets when compatible assets exists because
in those cases only 70 % are compatible with .NET Standard/Core 2.0
• Where both assets exist, in top 50 non-MSFT packages, the Standard asset uses
~10% fewer API (outliers: in one case 50% less): ie potentially cut-down functionality
• 20 % of all NuGet packages are app-model specific and thus not applicable
• Most depend on classic ASP.NET
• Packages depending on app models often use 50+ APIs
• 11 % of all NuGet packages use missing APIs
• The most used component we don’t have is System.Drawing
• Missing APIs in System.Data are in the process of being addressed
• The rest is distributed across a wide variety of technologies that we already support
in .NET Standard
• Fixing missing APIs in existing tech is hard as they are already maxed out
11. Part 2: P/Invoke Compatibility
• We’ve looked at packages and checked which P/Invokes are being
declared
• Top 1000
• All
• We’ve broken that down into the same categories as for managed
APIs
• We’ve bucketized the P/Invokes (e.g. Windows, libc etc) and plotted
how strong a package depends on it
12. P/Invokes in the Top 1000 Packages
37 %30 % 33 %Top 1000
Provide portable asset Only use available APIs Use unavailable APIs
P/Invokes 3 % 4 % 5 %
11 % of the API compatible packages have P/Invokes
13. P/Invokes in all packages on NuGet
32 %12 % 56 %All Packages
Provide portable asset Only use available APIs Use unavailable APIs
P/Invokes 0.4 % 4 % 4 %
6.5 % of the API compatible packages have P/Invokes
14. 0 10 20 30 40 50 60 70
(ikvm)
(sqlite3)
(Windows)
/usr/lib/libobjc.dylib
/usr/lib/libsystem.dylib
credui
dnsapi
libc
libdl
mpr
powrprof
winmm
<= 1
<= 5
<= 10
<= 20
<= 50
More
Top 1000: P/Invokes in compatible libraries
Take Away
Most packages with P/Invokes
depend on Win32
A decent amount of them only use
a few APIs
Excluding “lost causes”, i.e. only packages with no app model dependencies
15. 0 500 1000 1500 2000 2500
(sqlite3)
(Windows)
/usr/lib/libobjc.dylib
credui
Cryptdll
esent
iprop
libc
mpr
mtxex
ntdsapi
rpcrt4
security
Syncfusion.WebKitWrapper
version
winmm
<= 1
<= 5
<= 10
<= 20
<= 50
More
All Packages: P/Invokes in compatible libraries
Take Away
Most packages with P/Invokes
depend on Win32
A decent amount of them only use
a few APIs
Excluding “lost causes”, i.e. only packages with no app model dependencies
16. Conclusion Part 2: P/Invoke Compatibility
• Less than 7% of the packages that are API compatible have P/Invokes
• Most heavily depend on Win32
• Those libraries should work fine on Windows but won’t work as well on Linux
• The P/Invoke analysis does not change the earlier conclusion