This document discusses different types of tests for web applications, including unit tests, functional tests, and integration tests. It provides examples of using Django and Selenium to write unit, functional, and integration tests. Unit tests test individual code units, functional tests test that code works together to produce the right results, and integration tests test that modules work together as a group. The document demonstrates writing tests to test views, models, and POST requests in Django.
Async/await and the Task model are the main features of C# 5/.NET 4.5. While asynchronous programming can be done in most languages, all have different specifics, usage and trade-offs. You will see, in this presentation, what is the asynchronous Task model in .NET and why it matters for web apps.
Protractor is an end-to-end test framework for AngularJS applications built on top of Selenium WebDriver. It runs tests against an application in a real browser, interacting with it as a user would. Protractor provides AngularJS-specific APIs and tools to help with debugging on top of WebDriverJS. Functional tests are the foundation of quality but should be isolated and decoupled from the UI using patterns like page objects. Protractor is ready to use today for testing AngularJS applications.
Selenium is a powerful tool that manages web browsers by programs and automates browsers. It runs on all popular Operating System browsers, and its scripts are written in different languages, such as Python, Java, C#, Java etc.
TypeScript is a superset of JavaScript that adds static typing and class-based object-oriented programming. It allows developers to migrate existing JavaScript code incrementally by adding type annotations and migrating files to the .ts extension over time. The document discusses TypeScript's architecture, transpilation to JavaScript, typing system, and provides recommendations for migrating JavaScript code to TypeScript.
Selenium is an open source web testing framework that runs automated tests in a browser. It was created by Thoughtworks and consists of Selenium Core, Selenium IDE, Selenium Remote Control, and Selenium on Rails. Selenium allows testing web applications across browsers and platforms and interacts with browser DOM using HTML and JavaScript.
This document summarizes a presentation about using CucumberJS, WebDriverIO, and Docker for behavior-driven development (BDD) and continuous integration (CI). It discusses using CucumberJS with Gherkin syntax to write automated test cases in a business-readable format. WebDriverIO is introduced as a framework for automating tests in Node.js. The presentation demonstrates setting up a WebDriverIO project, running tests in Docker containers, and integrating everything with Travis CI for continuous testing. Code examples are provided for configuring WebDriverIO to use Docker services and setting up Docker containers in a Travis CI configuration file.
Automation testing can be performed using Selenium WebDriver which provides advantages like frequent regression testing, rapid feedback to developers, and finding defects missed by manual testing. Selenium has evolved over time, initially starting as a project called WebDriver at Google to solve Selenium's pain points. It now supports various browsers and locators can be used to identify elements on the page for automation.
This document introduces Django, an open-source Python web framework. It describes Django's key features like rapid development, reusable apps, an admin interface, and templates. It explains Django's model-view-template architecture, including models for defining data, views for business logic, URLs for routing, and templates for presentation. It provides examples of defining a blog application in Django with models, views, URLs, and templates.
Microsoft Typescript is a statically typed compiled language to clean and a simple plain old JavaScript code which runs on any browser, in Node.js or in any JavaScript engine that supports ECMAScript 3 (or newer).
This document provides an introduction to ReactJS, including what it is, why people use it, and some basic concepts. It discusses how React is a declarative, efficient JavaScript library for building user interfaces. It also highlights some common use cases for React like building presentations, virtual reality experiences, shopping carts, online editors, and mobile apps. The document then covers prerequisites for learning React and introduces some of the main components that make up the React ecosystem like JSX, Babel, and module bundlers. It concludes with a quick "Hello World" example and outlines further topics to explore like components, state management, and other advanced React patterns.
Selenium is a tool for automating web application testing that allows tests to be written in various programming languages; it has multiple components including Selenium IDE for recording and playback of tests in Firefox, and Selenium RC which allows tests to be run from external languages and provides more power and flexibility than the IDE. Tests can be used to check for correct behavior and responses across different browsers and platforms as well as catch regressions.
This contains about
- what is MVC?
- Why people are preferring MVC Application
- Tools and Softwares needs to create MVC Web application
- Differences between ASP.NET and ASP.NET MVC
- Technologies used to create MVC Application
This document discusses TypeScript, a superset of JavaScript that adds optional static typing and class-based object-oriented programming. It allows developers to gradually introduce typing into JavaScript code for improved productivity and catch errors early. The document covers TypeScript features like interfaces, classes, modules, type definitions, and comparisons to alternatives like CoffeeScript and Dart. It concludes that TypeScript allows gradual adoption of typing while following the future ECMAScript standard.
The document discusses Protractor, an end-to-end test framework for AngularJS applications. It provides an overview of Protractor, how it differs from Selenium WebDriver, how to install and configure it, how to write tests using the Page Object Model pattern, and how to structure tests into suites and specs. Key aspects covered include Protractor's Angular-specific features, use of Jasmine, and capabilities like multi-browser testing.
This document provides an overview of the Ionic Framework for developing hybrid mobile applications. It discusses the advantages of hybrid apps over native apps, including using a single codebase across platforms. It introduces Ionic as an HTML5 framework built on Angular and Cordova, containing CSS and JavaScript components for building mobile-optimized apps. It covers getting started with Ionic, the CLI, components, platform access tools, and includes examples. The goal of Ionic is to provide native-like performance for building beautiful, easy-to-maintain hybrid mobile apps.
The document discusses using Postman for API testing over 10 days. It covers topics like the Postman UI, creating and organizing API requests and collections, using variables and environments, running collections from the command line and generating HTML reports, and common authentication, authorization, and status codes.
This document provides an introduction to Node.js. It discusses why JavaScript can be strange, but explains that JavaScript is relevant as the language of the web. It then discusses what Node.js is and its event-driven, non-blocking architecture. Popular Node.js applications like HTTP servers, REST APIs, and web sockets are mentioned. Examples are provided of building a simple web app with Express and Jade, a REST API with Restify, and using web sockets with Socket.io. The document also discusses using Mongoose with MongoDB for data modeling.
Postman is an API development platform that allows users to design, test, and monitor APIs. It provides a simple interface for creating API requests and testing suites. Key features include importing and exporting API collections, setting authentication parameters, and tracking HTTP response codes. The document demonstrates how to use Postman's interface to send sample GET, POST, PUT, and DELETE requests and view responses. It also lists common response codes like 200, 401, 403, and 500 and explains when each would occur.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It allows for large scale JavaScript application development with features like classes, inheritance, modules, generators, async/await, and decorators. TypeScript introduces strong typing, interfaces, generics, and other design-time features not available in JavaScript to reduce complexity in large codebases. It supports the future of JavaScript by allowing the use of ES6 and ES7 features today through compiler options. Getting started is easy using the TypeScript playground or boilerplate projects on GitHub.
This document provides an overview of Node.js, including:
- Node.js is an open source, cross-platform JavaScript runtime environment built on Chrome's V8 engine. It has a large developer community.
- Several major companies like Yahoo, Netflix, and LinkedIn use Node.js and have seen significant improvements in performance and scalability compared to other platforms.
- Node.js uses an event-driven, non-blocking I/O model that can handle thousands of concurrent connections with minimal resources. This makes it well-suited for I/O-intensive applications.
- Common Node.js tools and frameworks discussed include NPM, Express, Mongoose, and Socket.io. Examples are
AngularJS $http Interceptors (Explanation and Examples)Brian Swartzfager
This document discusses AngularJS $http interceptors, which are event functions triggered during HTTP requests made with $http, $resource, and $httpBackend. There are four types of interceptors: request, requestError, response, and responseError. Interceptors are created as service factory functions and added to the $httpProvider interceptors array. They are useful for applying cross-cutting concerns like request configuration, response transformation, error handling, and authentication checks across an application. Interceptors can control their behavior conditionally based on injected services or objects. Examples demonstrate interceptors for request configuration, 400/403/500 error handling, and response processing.
ASP.NET MVC is a framework from Microsoft that separates an application's logic, presentation, and data access into three distinct components: models, views, and controllers. This separation of concerns makes the application easier to manage, test, and develop for large teams. ASP.NET MVC uses friendly URLs, does not rely on view state or server-based forms, and supports test-driven development better than traditional ASP.NET Web Forms applications.
Spring Cloud provides tools to help developers quickly build distributed applications and patterns such as configuration management, service discovery, circuit breakers, routing, and more. It aims to make building cloud native applications easier, especially for smaller companies and development teams. Some key Spring Cloud components include Spring Cloud Config for externalized configuration, Netflix Eureka for service discovery, Hystrix for circuit breaking, Zuul for API routing, and Sleuth/Zipkin for distributed tracing.
This document provides information and challenges for a 10-day Diabetes Awareness Challenge organized by an Employee Benefits & Work/Life department. The challenge includes educational materials about diabetes, recipes to try healthy swaps, exercise suggestions, and quizzes. Participants are asked to complete daily activities and share photos for points. The goal is to bring awareness to National Diabetes Month through fun, simple ways to engage in healthy habits and learn more about diabetes prevention and management.
Author: Vladimir Khorikov, www.eastbanctech.com
Async/await was a flagman feature in the C# 5 release. It is quite powerful in that it allows you to easily introduce asynchronous programming model into your code base.
On the other hand, there are quite a few pitfalls programmers usually run into when they start using it in practice.
From this presentation, you will learn what those pitfalls are and how to avoid them. It is intended for developers with intermediate level of C# experience.
Automation testing can be performed using Selenium WebDriver which provides advantages like frequent regression testing, rapid feedback to developers, and finding defects missed by manual testing. Selenium has evolved over time, initially starting as a project called WebDriver at Google to solve Selenium's pain points. It now supports various browsers and locators can be used to identify elements on the page for automation.
This document introduces Django, an open-source Python web framework. It describes Django's key features like rapid development, reusable apps, an admin interface, and templates. It explains Django's model-view-template architecture, including models for defining data, views for business logic, URLs for routing, and templates for presentation. It provides examples of defining a blog application in Django with models, views, URLs, and templates.
Microsoft Typescript is a statically typed compiled language to clean and a simple plain old JavaScript code which runs on any browser, in Node.js or in any JavaScript engine that supports ECMAScript 3 (or newer).
This document provides an introduction to ReactJS, including what it is, why people use it, and some basic concepts. It discusses how React is a declarative, efficient JavaScript library for building user interfaces. It also highlights some common use cases for React like building presentations, virtual reality experiences, shopping carts, online editors, and mobile apps. The document then covers prerequisites for learning React and introduces some of the main components that make up the React ecosystem like JSX, Babel, and module bundlers. It concludes with a quick "Hello World" example and outlines further topics to explore like components, state management, and other advanced React patterns.
Selenium is a tool for automating web application testing that allows tests to be written in various programming languages; it has multiple components including Selenium IDE for recording and playback of tests in Firefox, and Selenium RC which allows tests to be run from external languages and provides more power and flexibility than the IDE. Tests can be used to check for correct behavior and responses across different browsers and platforms as well as catch regressions.
This contains about
- what is MVC?
- Why people are preferring MVC Application
- Tools and Softwares needs to create MVC Web application
- Differences between ASP.NET and ASP.NET MVC
- Technologies used to create MVC Application
This document discusses TypeScript, a superset of JavaScript that adds optional static typing and class-based object-oriented programming. It allows developers to gradually introduce typing into JavaScript code for improved productivity and catch errors early. The document covers TypeScript features like interfaces, classes, modules, type definitions, and comparisons to alternatives like CoffeeScript and Dart. It concludes that TypeScript allows gradual adoption of typing while following the future ECMAScript standard.
The document discusses Protractor, an end-to-end test framework for AngularJS applications. It provides an overview of Protractor, how it differs from Selenium WebDriver, how to install and configure it, how to write tests using the Page Object Model pattern, and how to structure tests into suites and specs. Key aspects covered include Protractor's Angular-specific features, use of Jasmine, and capabilities like multi-browser testing.
This document provides an overview of the Ionic Framework for developing hybrid mobile applications. It discusses the advantages of hybrid apps over native apps, including using a single codebase across platforms. It introduces Ionic as an HTML5 framework built on Angular and Cordova, containing CSS and JavaScript components for building mobile-optimized apps. It covers getting started with Ionic, the CLI, components, platform access tools, and includes examples. The goal of Ionic is to provide native-like performance for building beautiful, easy-to-maintain hybrid mobile apps.
The document discusses using Postman for API testing over 10 days. It covers topics like the Postman UI, creating and organizing API requests and collections, using variables and environments, running collections from the command line and generating HTML reports, and common authentication, authorization, and status codes.
This document provides an introduction to Node.js. It discusses why JavaScript can be strange, but explains that JavaScript is relevant as the language of the web. It then discusses what Node.js is and its event-driven, non-blocking architecture. Popular Node.js applications like HTTP servers, REST APIs, and web sockets are mentioned. Examples are provided of building a simple web app with Express and Jade, a REST API with Restify, and using web sockets with Socket.io. The document also discusses using Mongoose with MongoDB for data modeling.
Postman is an API development platform that allows users to design, test, and monitor APIs. It provides a simple interface for creating API requests and testing suites. Key features include importing and exporting API collections, setting authentication parameters, and tracking HTTP response codes. The document demonstrates how to use Postman's interface to send sample GET, POST, PUT, and DELETE requests and view responses. It also lists common response codes like 200, 401, 403, and 500 and explains when each would occur.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It allows for large scale JavaScript application development with features like classes, inheritance, modules, generators, async/await, and decorators. TypeScript introduces strong typing, interfaces, generics, and other design-time features not available in JavaScript to reduce complexity in large codebases. It supports the future of JavaScript by allowing the use of ES6 and ES7 features today through compiler options. Getting started is easy using the TypeScript playground or boilerplate projects on GitHub.
This document provides an overview of Node.js, including:
- Node.js is an open source, cross-platform JavaScript runtime environment built on Chrome's V8 engine. It has a large developer community.
- Several major companies like Yahoo, Netflix, and LinkedIn use Node.js and have seen significant improvements in performance and scalability compared to other platforms.
- Node.js uses an event-driven, non-blocking I/O model that can handle thousands of concurrent connections with minimal resources. This makes it well-suited for I/O-intensive applications.
- Common Node.js tools and frameworks discussed include NPM, Express, Mongoose, and Socket.io. Examples are
AngularJS $http Interceptors (Explanation and Examples)Brian Swartzfager
This document discusses AngularJS $http interceptors, which are event functions triggered during HTTP requests made with $http, $resource, and $httpBackend. There are four types of interceptors: request, requestError, response, and responseError. Interceptors are created as service factory functions and added to the $httpProvider interceptors array. They are useful for applying cross-cutting concerns like request configuration, response transformation, error handling, and authentication checks across an application. Interceptors can control their behavior conditionally based on injected services or objects. Examples demonstrate interceptors for request configuration, 400/403/500 error handling, and response processing.
ASP.NET MVC is a framework from Microsoft that separates an application's logic, presentation, and data access into three distinct components: models, views, and controllers. This separation of concerns makes the application easier to manage, test, and develop for large teams. ASP.NET MVC uses friendly URLs, does not rely on view state or server-based forms, and supports test-driven development better than traditional ASP.NET Web Forms applications.
Spring Cloud provides tools to help developers quickly build distributed applications and patterns such as configuration management, service discovery, circuit breakers, routing, and more. It aims to make building cloud native applications easier, especially for smaller companies and development teams. Some key Spring Cloud components include Spring Cloud Config for externalized configuration, Netflix Eureka for service discovery, Hystrix for circuit breaking, Zuul for API routing, and Sleuth/Zipkin for distributed tracing.
This document provides information and challenges for a 10-day Diabetes Awareness Challenge organized by an Employee Benefits & Work/Life department. The challenge includes educational materials about diabetes, recipes to try healthy swaps, exercise suggestions, and quizzes. Participants are asked to complete daily activities and share photos for points. The goal is to bring awareness to National Diabetes Month through fun, simple ways to engage in healthy habits and learn more about diabetes prevention and management.
Author: Vladimir Khorikov, www.eastbanctech.com
Async/await was a flagman feature in the C# 5 release. It is quite powerful in that it allows you to easily introduce asynchronous programming model into your code base.
On the other hand, there are quite a few pitfalls programmers usually run into when they start using it in practice.
From this presentation, you will learn what those pitfalls are and how to avoid them. It is intended for developers with intermediate level of C# experience.
This document presents an evaluative framework developed by Coventry University for the Near Neighbours programme. It finds that Near Neighbours successfully enables local social action and interaction between people of different faiths and backgrounds. Key findings include that 68-81% of small grant projects are locally delivered, over 33,000 people have participated in small grant activities, and the vast majority of small grant activities promote interaction between different faiths. The report develops a conceptual framework and theory of change to guide evaluation, and recommends tools like a standardised data spreadsheet, case studies, and coordinator logbooks to capture Near Neighbours' impact in increasing social action and interaction at a local level.
El documento presenta información sobre la comunicación educativa. Explica que la comunicación educativa surgió a finales de los años 1980 en respuesta a la falta de equilibrio entre las áreas académicas y la proliferación de nuevas tecnologías. También describe los roles del emisor (docente) y receptor (alumnos) en el proceso de comunicación educativa y algunas características como ser motivadora, persuasiva y estructurante. Concluye que la comunicación educativa es importante para que los docentes transmitan conocimientos a los alumnos de manera
Comment intégrer les switch Nebula à votre réseauZyxel France
Webinar du 24/01/2017
Vidéo : https://www.youtube.com/watch?v=s7p1XF2kjpE
Présenté par Fanny CLAVEL, Chef de produit WiFi Zyxel France
Este documento describe cinco recursos tecnológicos que se pueden utilizar en el aula para hacer la enseñanza más práctica e innovadora. Estos recursos incluyen Moodle para publicar material adicional, PowerPoint para explicar términos, HotPotatoes para evaluaciones y ejercicios, YouTube para videos explicativos, y redes sociales para comunicación con estudiantes. El objetivo es integrar la tecnología de manera que facilite la comprensión de los estudiantes y responda a sus necesidades y demandas.
Japan uses development aid as a tool to establish its competitive identity and promote its soft power abroad. The document analyzes Japan's cultural and aid flows to Asia, particularly Vietnam. It discusses how the Japan Foundation promotes Japanese language and culture through grants while Japan provides infrastructure and poverty reduction projects through ODA loans. Surveys show Vietnam has a generally positive perception of Japan. The document argues Japan wields soft power through economic and cultural capital to reshape its image abroad in a hierarchical structure of power.
Este documento presenta una lección sobre la multiplicación de números enteros. Explica que la multiplicación implica sumar un número (el multiplicando) la cantidad de veces indicada por otro número (el multiplicador). Detalla las propiedades de la multiplicación como la asociativa, conmutativa y distributiva. Incluye ejemplos y actividades de aprendizaje para que los estudiantes practiquen multiplicar números enteros y comprendan mejor el tema.
10 tips to make your ASP.NET Apps FasterBrij Mishra
10 tips to make ASP.NET apps faster including:
1. Enabling kernel caching in IIS for static and dynamic content to reduce context switches.
2. Using asynchronous code, handlers, and modules to prevent thread blocking on I/O-bound operations.
3. Configuring the CLR thread pool to optimize thread usage.
4. Switching to integrated pipeline mode for a unified request processing pipeline.
5. Optimizing static file handling by selectively running managed modules.
6. Understanding the ASP.NET pipeline and placing modules strategically.
7. Avoiding direct SQL connections by using a data source.
8. Removing unused view engines to reduce overhead.
9. Avoiding
The document discusses asynchronous programming using async and await in C#. It begins by explaining what asynchronous programming is and why it is useful for improving app responsiveness and simplifying asynchronous code. It then describes how async and await works by generating state machines and using continuation tasks. The document covers some gotchas with async code as well as best practices like naming conventions. It provides references for further reading on asynchronous patterns, tasks, and unit testing asynchronous code.
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)Panagiotis Kanavos
This document discusses parallel and asynchronous programming. It begins by explaining how processors are getting smaller while networks are getting worse, requiring more efficient parallel programming approaches. It then covers different parallel programming models in .NET like data parallelism using PLINQ, task parallelism using TPL, asynchronous programming with async/await, and concurrent collections. It also discusses challenges like cancellation, progress reporting, and synchronization, and how modern .NET addresses these.
Parallel and Asynchronous Programming - ITProDevConnections 2012 (Greek)Panagiotis Kanavos
This document discusses parallel and asynchronous programming using the Task Parallel Library (TPL) in .NET. It covers how processors are getting smaller so parallelism is important. It provides examples of using TPL for data parallelism by partitioning work over collections and task parallelism by breaking work into steps. It also discusses asynchronous programming with async/await and how TPL handles cancellation, progress reporting, and synchronization contexts.
Since the introduction of C#, async/await concepts are still misunderstood by many developers.
Async programming tries to solve three problems (Offloading, Concurrency, Scalability) in a mean abstraction.
This presentation is a good starting point to asynchronous programming in .net. There are many links and references, so do not hesitate to go deeper.
The server side story: Parallel and Asynchronous programming in .NET - ITPro...Panagiotis Kanavos
This document discusses parallel and asynchronous programming on servers. It covers techniques like Task Parallel Library (TPL), Reactive Extensions (Rx), and Dataflow that can be used for parallel processing on servers. Unlike desktop applications where the focus is on reducing execution time, server applications prioritize throughput and scalability over individual request duration. Asynchronous programming is more important on servers to avoid blocking and improve throughput. The document demonstrates various asynchronous programming patterns on ASP.NET like async actions and background processing using libraries like SignalR. It also provides demos of parallel programming techniques like Parallel.For, TPL Dataflow, and Rx.
This document summarizes new features in .NET Framework 4.5, including improvements to WeakReferences, streams, ReadOnlyDictionary, compression, and large objects. It describes enhancements to server GC, asynchronous programming, the Task Parallel Library, ASP.NET, Entity Framework, WCF, WPF, and more. The .NET 4.5 update focuses on performance improvements, support for asynchronous code and parallel operations, and enabling modern app development patterns.
The document provides an agenda for a presentation on the Task Parallel Library (TPL) and async/await in .NET. The presentation covers topics like threads and blocking vs non-blocking code, asynchronous programming models before async/await, the lifecycle of async operations, common misconceptions about async/await, differences between CPU-bound and I/O-bound work, exception handling, progress/cancellation, unit testing, combinators like WhenAll and WhenAny, and tips/tricks for async programming.
AJAX allows for asynchronous data retrieval and dynamic display. It uses technologies like XML, XSLT, DOM, and JavaScript. Servlet 3.0 includes annotations and methods to support asynchronous processing, allowing requests to be processed asynchronously without blocking the original thread. The AsyncContext class provides an execution context for asynchronous operations and wraps the request and response.
The ASP.NET MVC Framework provides a powerful Model View Controller (MVC) approach to building web applications and provides separation of concerns, control over HTML output, intuitive URLs, and increased testability. We will start by looking at the -what and why of ASP.NET MVC. Then we will explore the various pieces of ASP.NET MVC including routes, controllers, actions, and views. If you are looking to get started with MVC then don’t miss this session.
Windows 8 apps can access data from services in several ways:
- They can call ASMX, WCF, and REST services asynchronously using HttpClient and retrieve responses.
- They can access oData services using the oData client library.
- They can retrieve RSS feeds using SyndicationClient and parse the responses.
- They can perform background transfers using BackgroundDownloader.
- They can update tiles periodically by polling a service and setting updates.
This document provides an overview of Ratpack, an open-source web framework for Java and Groovy applications. It summarizes Ratpack's key features including its non-blocking and high performance architecture using Netty, support for Groovy and Java, integration with build tools like Gradle, and handler-based routing model. The document also discusses how Ratpack handles asynchronous operations, blocking operations, and real-time capabilities like server-sent events.
This document discusses Angular, TypeScript, and Katana. It provides an overview of these technologies including what OWIN and Project Katana are, how to decouple the client and server, and demos of using Angular, TypeScript, and Reactive Extensions with ASP.NET. It also summarizes what Angular, TypeScript, and Reactive Extensions are and how they can be used together to build single page applications.
The document discusses an orchestration service built using Apache Airflow on Kubernetes. It provides the following key points:
1) The service aims to provide a standardized workflow management system for multiple teams at Adobe to author, manage, and schedule multi-step workflows in a scalable and multi-tenant manner.
2) Apache Airflow was selected as the underlying execution engine due to its active community, extensibility, rich UI, and support for distributed execution using Kubernetes.
3) The service abstracts Apache Airflow using a JSON DSL for authoring workflows and provides CRUD APIs for management to overcome challenges with Airflow like scheduling latency and lack of scalability.
4) The architecture supports
This document provides an overview of servlets and JSPs. It discusses how servlets were developed to address disadvantages of CGI programs. Servlets run within a web container and have a lifecycle of init(), service(), and destroy() methods. The document also covers implementing a simple servlet, using HttpServletRequest and HttpServletResponse objects, and configuring servlets in web.xml. It describes how JSPs work by being converted to servlets and discusses JSP directives, actions, and scripting elements.
This document provides information on servlets including:
- Servlets allow dynamic content and interaction for web applications and can be used to build search engines, e-commerce sites, and more.
- Servlets have better performance than CGI since they remain loaded in memory between requests rather than starting a new process for each request.
- Servlets follow a request-response lifecycle and provide APIs to handle HTTP requests and responses through the Servlet, HttpServletRequest, and HttpServletResponse interfaces.
Apache Samza is a stream processing framework that provides high-level APIs and powerful stream processing capabilities. It is used by many large companies for real-time stream processing. The document discusses Samza's stream processing architecture at LinkedIn, how it scales to process billions of messages per day across thousands of machines, and new features around faster onboarding, powerful APIs including Apache Beam support, easier development through high-level APIs and tables, and better operability in YARN and standalone clusters.
Go (con)figure - Making sense of .NET configurationAlex Thissen
The document discusses configuration in .NET applications. It begins with an overview of why configuration is important and some basics of configuration. It then covers reading configuration values from files, environment variables, and other sources. The document demonstrates the configuration options framework and discusses configuration for different environments like development and production. It also covers securing configuration through user secrets, Azure Key Vault, and making configuration immutable and reloadable.
Logging, tracing and metrics: Instrumentation in .NET 5 and AzureAlex Thissen
The document discusses instrumentation in .NET 5 and Azure, including logging, tracing, metrics, and health checks. It provides an overview of these concepts and how they can be implemented using built-in .NET APIs and services like Application Insights. The document also discusses how instrumentation data can be collected and correlated to monitor application and cloud resource performance.
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020Alex Thissen
Conference: dotnetdays 2020
Location: Iaşi, Romania
Abstract: Ever had production problems and found that you cannot debug to find the problem? Or that you need to find out where potential issues are coming from in your Azure cloud solution and you have no idea what is happening?
Your applications need to be instrumented with logging, tracing and metrics, so you can see what is going on where. In .NET Core logging and tracing are built into the framework. We will have a look at the differences between logging, tracing and instrumentation in general.
You will learn how to use .NET Core to implement logging and tracing with best practices, do semantic logging, work with logging factories, trace providers. Also, you will learn how to instrument using Application Insights and add W3C compliant tracing for correlation across cloud resources in a distributed application.
Finally, we will put everything together to see how your logs and traces can give a rich way to get insights into your applications and services running in the Azure cloud or container based solutions.
Health monitoring and dependency injection - CNUG November 2019Alex Thissen
Meetup: Copenhangen .NET User Group
Location: Copenhagen, Denmark
Abstract:
* I don't feel so well… Integrating health checks in your .NET Core solutions *
Do you have any idea how your ASP.NET Web Apps and APIs are functioning? Are they behaving healthily or in a degraded state? You might be able to tell from log information and telemetry data, but why not have them tell you how healthy they are themselves? ASP.NET Core 2.2 introduces health endpoints that let your apps and APIs do just that. In this session you will learn how to make health checks an integral part of your solution. We will cover various types of health checks ranging from internal status, such as memory thresholds, to health based on external dependencies, such as databases and HTTP endpoints. Finally, you are going to see how this all can be used in a Docker container cluster to allow the orchestrator to check for liveliness and readiness based on your health endpoints.
* It depends: .NET Core dependency injection *
The dependency injection system of .NET Core is very elaborate and allows for complex inversion of control scenarios. You will see the ins and outs of doing that, but also learn how to avoid mistakes that might be easy to miss.
.NET Core comes with its own dependency injection system, that you probably know from ASP.NET Core. In this session we will have a detailed look at all of the specifics of Microsoft’s default DI system for .NET Core applications. You will learn how to properly use the Inversion of Control features, such as registering services, scopes, lifetimes, and how to resolve instances. Armed with this DI knowledge, we will revisit ASP.NET Core and investigate bootstrapping and typical scenarios for middleware, background processes and resolving objects from MVC and Razor. At the end there will be a deep dive into topics with service descriptors, implementation factories, do’s and don’ts and pitfalls to avoid memory leaks in your implementation.
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019Alex Thissen
Conference: .NET Fest 2019
Location: Kyiv, Ukraine
Abstract: You must have noticed how Docker and containers is playing a more and more important part in .NET development. Docker support is everywhere, so it should be easy to build solutions based on container technology, right? But, it takes a bit more to architect and create a .NET solution that use Docker at its core. Many questions arise: How do you design a solution architecture that fits well with containers? Would I use .NET or .NET Core? What is a proper way to migrate to such an architecture? What changes in the .NET implementation from pre-Docker solutions with micro-services? Where do container orchestrators fit in and how do I build and deploy my solutions on a Docker container cluster, such as Azure Kubernetes Service?
These and many other questions will be answered in this session. You will learn how to design and architect your .NET solutions and get a flying start to create, build and run Docker-based containerized applications.
I dont feel so well. Integrating health checks in your .NET Core solutions - ...Alex Thissen
Conference: Techorama NL 2019
Location: Ede, The Netherlands
Abstract: Do you have any idea how your ASP.NET Web Apps and APIs are functioning? Are they behaving healthily or in a degraded state? You might be able to tell from log information and telemetry data, but why not have them tell you how healthy they are themselves? ASP.NET Core 2.2 introduces health endpoints that let your apps and APIs do just that. In this session you will learn how to make health checks an integral part of your solution. We will cover various types of health checks ranging from internal status, such as memory thresholds, to health based on external dependencies, such as databases and HTTP endpoints. Finally, you are going to see how this all can be used in a container cluster to allow the orchestrator to check for liveliness and readiness based on your health endpoints.
It depends: Loving .NET Core dependency injection or notAlex Thissen
.NET Core comes with its own dependency injection system, that you probably know from ASP.NET Core. In this session we will have a detailed look at all of the specifics of Microsoft's default DI system for .NET Core applications. You will learn how to properly use the Inversion of Control features, such as registering services, scopes, lifetimes, and how to resolve instances.
Armed with this DI knowledge, we will revisit ASP.NET Core and investigate bootstrapping and typical scenarios for middleware, background processes and resolving objects from MVC and Razor.
At the end there will be a deep dive into topics with service descriptors, implementation factories, do's and don'ts and pitfalls to avoid memory leaks in your implementation.
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.
Exploring Microservices in a Microsoft LandscapeAlex Thissen
During this session, you'll have a look at how to realize a Microservices architecture (MSA) using the latest Microsoft technologies available. We will start with the fundamental theories behind MSA and show you how this can be realized with Microsoft technologies such as Azure Service Fabric. This session is a real must-see for any developer that wants to stay ahead of the curve in modern architectures
How Docker and ASP.NET Core will change the life of a Microsoft developerAlex Thissen
Times are changing! Using ASP.NET, SQL and HTML running on a Windows machine is not the only solution anymore. The application stack is shifting to ASP.NET Core, a cross-platform .NET Solution that runs on Macs, Linux and Windows.
On the platform side of things we are moving from full operating systems and Virtual Machines to container-based platforms. In a world where companies want to change to Continuous Delivery and DevOps, the combination of these technologies is a strong one. The ability to move seamlessly to production, run your website on every platform and to have integrated pipelines is a pre-condition for a winning IT solution and being a differentiator in the market. In this talk Alex and Rene will introduce you to ASP.NET Core, containers and Docker. They will show you how the combination of ASP.NET Core and Containers will radically change software architecture and how this combination will fit into the software factory by leveraging their power in both developer workflow as in the release pipeline.
Expect a session with a lot of new Visual Studio tips that will increase your productivity. This will be a session with lots of demos and no slides (well, almost no slides).
Exploring microservices in a Microsoft landscapeAlex Thissen
Presentation for Dutch Microsoft TechDays 2015 with Marcel de Vries:
During this session we will take a look at how to realize a Microservices architecture (MSA) using the latest Microsoft technologies available. We will discuss some fundamental theories behind MSA and show you how this can actually be realized with Microsoft technologies such as Azure Service Fabric. This session is a real must-see for any developer that wants to stay ahead of the curve in modern architectures.
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.
MVC 6 - the new unified Web programming modelAlex Thissen
Presentation for Dutch Microsoft TechDays 2015:
With ASP.NET 5 comes MVC 6 with a programming model that unifies Web Pages, MVC and Web API. Each of these has been rebuilt to reflect Microsoft's vision of lean and composable web applications. In this session you will see the changes that have been made to the programming model. We will cover topics such as the new POCO controllers, View Components, dependency injection and much more. Plus, you are going to see the significant changes to the ASP.NET runtime on which MVC 6 is built.
The document summarizes Alex Thissen's perspective on announcements at Build about Windows 8 and development opportunities. It discusses Achmea's focus on being the most trusted insurer and how IT supports its mission. It outlines the new Metro interface on Windows 8 and opportunities for startups. Visual Studio will better support Metro development and ALM. HTML5 will be well supported but security risks exist. Overall, Microsoft has laid a solid foundation for Windows 8's success but there is much to learn for all parties.
Presentation for Stichting DotNed in 2015:
Microsoft neemt ASP.NET op de schop. Het web applicatie framework uit .NET 1.0 wordt grotendeels herschreven om te voldoen aan de eisen die men tegenwoordig stelt aan het realiseren van een moderne web applicatie. Deze sessie kijken we naar de nieuwe opzet van ASP.NET. We zien hoe Microsoft daarmee een cloud geoptimaliseerd, cross-platform framework creeert, dat zij zelf sneller kunnen laten evolueren door kortere release cycles. Dit alles betekent wel dat ASP.NET anders is geworden. In deze sessie leer je daarom ook wat er is veranderd, hoe je aan de slag gaat en waarom ASP.NET vNext een revolutionaire stap is in Microsoft's framework.
Run your Dockerized ASP.NET application on Windows and Linux!Alex Thissen
This document discusses running Dockerized ASP.NET applications on both Windows and Linux platforms. It introduces Docker containers as a way to deploy ASP.NET applications without needing different frameworks, tooling, or packages for each platform. The document demonstrates how to use Docker containers on Windows and Linux to build and deploy ASP.NET applications in a consistent manner across operating systems.
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.
Adobe Photoshop Lightroom CC 2025 Crack Latest Versionusmanhidray
Copy & Past Lank 👉👉
http://drfiles.net/
Adobe Photoshop Lightroom is a photo editing and organization software application primarily used by photographers. It's designed to streamline workflows, manage large photo collections, and make adjustments to images in a non-destructive way. Lightroom is available across various platforms, including desktop, mobile (iOS and Android), and web, allowing for consistent editing and organization across devices.
PDF Reader Pro Crack Latest Version FREE Download 2025mu394968
🌍📱👉COPY LINK & PASTE ON GOOGLE https://dr-kain-geera.info/👈🌍
PDF Reader Pro is a software application, often referred to as an AI-powered PDF editor and converter, designed for viewing, editing, annotating, and managing PDF files. It supports various PDF functionalities like merging, splitting, converting, and protecting PDFs. Additionally, it can handle tasks such as creating fillable forms, adding digital signatures, and performing optical character recognition (OCR).
Mastering OOP: Understanding the Four Core PillarsMarcel David
Visit for updated note:
https://www.notion.so/Four-Pillars-of-Object-Oriented-Programming-OOP-1e2d7d9612808079b7c5f938afd62a7b?pvs=4
Dive into the essential concepts of Object-Oriented Programming (OOP) with a detailed explanation of its four key pillars: Encapsulation, Inheritance, Polymorphism, and Abstraction. Understand how these principles contribute to robust, maintainable, and scalable software development.
Who Watches the Watchmen (SciFiDevCon 2025)Allon Mureinik
Tests, especially unit tests, are the developers’ superheroes. They allow us to mess around with our code and keep us safe.
We often trust them with the safety of our codebase, but how do we know that we should? How do we know that this trust is well-deserved?
Enter mutation testing – by intentionally injecting harmful mutations into our code and seeing if they are caught by the tests, we can evaluate the quality of the safety net they provide. By watching the watchmen, we can make sure our tests really protect us, and we aren’t just green-washing our IDEs to a false sense of security.
Talk from SciFiDevCon 2025
https://www.scifidevcon.com/courses/2025-scifidevcon/contents/680efa43ae4f5
Join Ajay Sarpal and Miray Vu to learn about key Marketo Engage enhancements. Discover improved in-app Salesforce CRM connector statistics for easy monitoring of sync health and throughput. Explore new Salesforce CRM Synch Dashboards providing up-to-date insights into weekly activity usage, thresholds, and limits with drill-down capabilities. Learn about proactive notifications for both Salesforce CRM sync and product usage overages. Get an update on improved Salesforce CRM synch scale and reliability coming in Q2 2025.
Key Takeaways:
Improved Salesforce CRM User Experience: Learn how self-service visibility enhances satisfaction.
Utilize Salesforce CRM Synch Dashboards: Explore real-time weekly activity data.
Monitor Performance Against Limits: See threshold limits for each product level.
Get Usage Over-Limit Alerts: Receive notifications for exceeding thresholds.
Learn About Improved Salesforce CRM Scale: Understand upcoming cloud-based incremental sync.
Download Wondershare Filmora Crack [2025] With Latesttahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
Wondershare Filmora is a video editing software and app designed for both beginners and experienced users. It's known for its user-friendly interface, drag-and-drop functionality, and a wide range of tools and features for creating and editing videos. Filmora is available on Windows, macOS, iOS (iPhone/iPad), and Android platforms.
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDinusha Kumarasiri
AI is transforming APIs, enabling smarter automation, enhanced decision-making, and seamless integrations. This presentation explores key design principles for AI-infused APIs on Azure, covering performance optimization, security best practices, scalability strategies, and responsible AI governance. Learn how to leverage Azure API Management, machine learning models, and cloud-native architectures to build robust, efficient, and intelligent API solutions
Douwan Crack 2025 new verson+ License codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
Douwan Preactivated Crack Douwan Crack Free Download. Douwan is a comprehensive software solution designed for data management and analysis.
Agentic AI Use Cases using GenAI LLM modelsManish Chopra
This document presents specific use cases for Agentic AI (Artificial Intelligence), featuring Large Language Models (LLMs), Generative AI, and snippets of Python code alongside each use case.
Solidworks Crack 2025 latest new + license codeaneelaramzan63
Copy & Paste On Google >>> https://dr-up-community.info/
The two main methods for installing standalone licenses of SOLIDWORKS are clean installation and parallel installation (the process is different ...
Disable your internet connection to prevent the software from performing online checks during installation
Copy & Past Link 👉👉
http://drfiles.net/
When you say Xforce with GTA 5, it sounds like you might be talking about Xforce Keygen — a tool that's often mentioned in connection with cracking software like Autodesk programs.
BUT, when it comes to GTA 5, Xforce isn't officially part of the game or anything Rockstar made.
If you're seeing "Xforce" related to GTA 5 downloads or cracks, it's usually some unofficial (and risky) tool for pirating the game — which can be super dangerous because:
Adobe Master Collection CC Crack Advance Version 2025kashifyounis067
🌍📱👉COPY LINK & PASTE ON GOOGLE http://drfiles.net/ 👈🌍
Adobe Master Collection CC (Creative Cloud) is a comprehensive subscription-based package that bundles virtually all of Adobe's creative software applications. It provides access to a wide range of tools for graphic design, video editing, web development, photography, and more. Essentially, it's a one-stop-shop for creatives needing a broad set of professional tools.
Key Features and Benefits:
All-in-one access:
The Master Collection includes apps like Photoshop, Illustrator, InDesign, Premiere Pro, After Effects, Audition, and many others.
Subscription-based:
You pay a recurring fee for access to the latest versions of all the software, including new features and updates.
Comprehensive suite:
It offers tools for a wide variety of creative tasks, from photo editing and illustration to video editing and web development.
Cloud integration:
Creative Cloud provides cloud storage, asset sharing, and collaboration features.
Comparison to CS6:
While Adobe Creative Suite 6 (CS6) was a one-time purchase version of the software, Adobe Creative Cloud (CC) is a subscription service. CC offers access to the latest versions, regular updates, and cloud integration, while CS6 is no longer updated.
Examples of included software:
Adobe Photoshop: For image editing and manipulation.
Adobe Illustrator: For vector graphics and illustration.
Adobe InDesign: For page layout and desktop publishing.
Adobe Premiere Pro: For video editing and post-production.
Adobe After Effects: For visual effects and motion graphics.
Adobe Audition: For audio editing and mixing.
Revitalizing a high-volume, underperforming Salesforce environment requires a structured, phased plan. The objective for company is to stabilize, scale, and future-proof the platform.
Here presenting various improvement techniques that i learned over a decade of experience
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentShubham Joshi
A secure test infrastructure ensures that the testing process doesn’t become a gateway for vulnerabilities. By protecting test environments, data, and access points, organizations can confidently develop and deploy software without compromising user privacy or system integrity.
Minitab 22 Full Crack Plus Product Key Free Download [Latest] 2025wareshashahzadiii
Copy & Past Link 👉👉
http://drfiles.net/
Minitab is a statistical software package designed for data analysis, quality improvement, and Six Sigma applications. It's used by businesses, universities, and individuals to analyze data, identify patterns, and make data-driven decisions.
FL Studio Producer Edition Crack 2025 Full Versiontahirabibi60507
Copy & Past Link 👉👉
http://drfiles.net/
FL Studio is a Digital Audio Workstation (DAW) software used for music production. It's developed by the Belgian company Image-Line. FL Studio allows users to create and edit music using a graphical user interface with a pattern-based music sequencer.
Download YouTube By Click 2025 Free Full Activatedsaniamalik72555
Copy & Past Link 👉👉
https://dr-up-community.info/
"YouTube by Click" likely refers to the ByClick Downloader software, a video downloading and conversion tool, specifically designed to download content from YouTube and other video platforms. It allows users to download YouTube videos for offline viewing and to convert them to different formats.
3. Agenda
• Introduction on synchronicity
• Threading and async programming in .NET
• Details for
• ASP.NET WebForms
• ASP.NET MVC
• ASP.NET WebAPI
• ASP.NET SignalR
• Gotchas
• Questions and Answers
5. (A)Synchronous in a web world
Message
Exchange
Patterns
Parallelization
vs. multi-
threading
High Latency
vs high
throughput
Asynchronicity
is easy now
Blocking
operations
Asynchronous
is faster
7. Threading in Windows and .NET
• Two concurrency types in Windows Operating
System
1. Worker threads
Physical units of work
2. IO Completion Ports
Special construct for async
I/O bound operations
• Threads incur overhead
• But threads waiting for IO Completion Port are efficient
8. .NET Threading primitives
• System.Threading namespace
• Threads: Thread and ThreadPool
• Locks: Mutex, WaitHandle, Semaphore, Monitor, Interlocked
• ThreadPool cannot scale hard
(2 extra threads/second)
• Each .NET logical thread adds overhead
(1MB of managed memory)
.NET 4.5 Worker Threads Completion Port
Threads
Minimum 4 4
Maximum 5000 (4095) 1000
9. Threading in ASP.NET
Application Pool (w3wp.exe)
CLR Threadpool
Request Queue
AppDomain
Website
http.sys
IIS
Unmanaged execution
Kernel level
… …
Global Queue
connectionManagement
maxconnection
httpRuntime/
minFreeThreads
minLocalRequestFreeThreads
processModel/
maxWorkerThreads
minWorkerThreads
maxIoThreads
Outgoing connections
applicationPool/
maxConcurrentRequestsPerCpu
Worker
Threads
Completion
Port Threads
10. Making a choice for (a)sync
Synchronous
• Operations are simple or
short-running
• Simplicity over efficiency
• CPU-bound operations
Asynchronous
• Ability to cancel long-
running tasks
• Parallelism over simplicity
• Blocking operations are
bottleneck for
performance
• Network or I/O bound
operations
11. Worker thread #1 Worker thread #2Worker thread #3 IO Completion Port
Thread #3
Threads types and context switches
ASP.NET
Runtime
Store
Customers
Async
Windows IO
Completion
Port
db.Save
ChangesAsync
Must support async pattern
in some way
As an example,
Entity Framework 6 has
support for async operations
Unnecessary additional
threads only occur overhead.
Underlying SqlClient uses IO
Completion Port for async I/O
operation
13. History of .NET async programming
Asynchronous Programming ModelAPM
• Pairs of Begin/End methods
• Example: FileStream.BeginWrite and FileStream.EndWrite
• Convert using TaskFactory and TaskFactory<TResult>
Event-based Asynchronous PatternEAP
• Pairs of OperationAsync method and OperationCompleted event
• Example: WebClient.DownloadStringAsync and WebClient.DownloadStringCompleted
• TaskCompletionSource<T> to the rescue
Task-based Asynchronous PatternTAP
• Task and Task<T>
• Preferred model
14. Async in .NET BCL classes
• .NET Framework classes show each async style
• Sometimes even mixed
• Example: System.Net.WebClient
• TPL (Task-based) APIs are preferred
• Find and use new classes that support TAP natively
15. Async constructs in ASP.NET
• ASP.NET runtime
• Async Modules
• Async Handlers
• ASP.NET WebForms
• AddOnPreRenderComplete
• PageAsyncTask
• ASP.NET MVC and WebAPI
• Async actions
20. Async pages in WebForms
Recipe for async pages
• Add async="true" to @Page directive or <pages> element in
web.config
• Pass delegates for start and completion of asynchronous operation
in AddOnPreRenderCompleteAsync method
• Register event handler for PreRenderComplete
private void Page_Load(object sender, EventArgs e)
{
this.AddOnPreRenderCompleteAsync(
new BeginEventHandler(BeginAsynchronousOperation),
new EndEventHandler(EndAsynchronousOperation));
this.PreRenderComplete += new
EventHandler(LongRunningAsync_PreRenderComplete);
}
21. PageAsyncTasks
• Single unit of work
• Encapsulated by PageAsyncTask class
• Support for APM and TPL (new in ASP.NET 4.5)
• Preferred way over async void event handlers
• Can run multiple tasks in parallel
// TAP async delegate as Page task
RegisterAsyncTask(new PageAsyncTask(async (token) =>
{
await Task.Delay(3000, token);
}));
23. Async support in MVC
• AsyncController (MVC3+)
• Split actions in two parts
1. Starting async: void IndexAsync()
2. Completing async: ActionResult IndexCompleted(…)
• AsyncManager
• OutstandingOperations Increment and Decrement
• Task and Task<ActionResult> (MVC 4+)
• Async and await (C# 5+)
24. Async actions in ASP.NET MVC
From synchronous
public ActionResult Index()
{
// Call synchronous operations
return View("Index", GetResults());
}
To asynchronous
public async Task<ActionResult> IndexAsync()
{
// Call operations asynchronously
return View("Index", await GetResultsAsync());
}
25. Timeouts
• Timeouts apply to synchronous handlers
• Default timeout is 110 seconds
(90 for ASP.NET 1.0 and 1.1)
• MVC and WebAPI are always asynchronous
• Even if you only use synchronous handlers
• (Server script) timeouts do not apply
<system.web>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5" executionTimeout="5000" />
</system.web>
26. Timeouts in MVC and WebAPI
• Use AsyncTimeoutAttribute on async actions
• When timeout occurs TimeoutException is thrown
from action
• Default timeout is AsyncManager’s 45000 milliseconds
• Might want to catch errors
[AsyncTimeout(2000)]
[HandleError(ExceptionType=typeof(TimeoutException))]
public async Task<ActionResult> SomeMethodAsync(CancellationToken token)
{
// Pass down CancellationToken to other async method calls
…
}
27. ASP.NET SignalR async notes
• In-memory message bus is very fast
• Team decided not to make it async
• Sending to clients is
• always asynchronous
• on different call-stack
28. Beware of the async gotchas
• Cannot catch exceptions in async void methods
• Mixing sync/async can deadlock threads in ASP.NET
• Suboptimal performance for regular awaits
Best practices for async:
• Avoid async void
• Async all the way
• Configure your wait
29. Tips
• Don’t do 3 gotcha’s
• Avoid blocking threads and thread starvation
• Remember I/O bound (await)
vs. CPU bound (ThreadPool, Task.Run, Parallel.For)
• Thread management:
• Avoid creating too many
• Create where needed and reuse if possible
• Try to switch to IO Completion Port threads
• Look for BCL support
30. Summary
• Make sure you are comfortable with
• Multi-threading, parallelism, concurrency, async and await
• ASP.NET fully supports TPL and async/await
• WebForms
• MVC
• WebAPI
• Great performance and scalability comes from
good thread management
• Be aware of specific ASP.NET behavior