Contents
- Introduction to ASP.NET Web API
- Setting Up Your Development Environment
- Designing RESTful API Endpoints
- Implementing Authentication & Authorization
- Securing Data Transmission with HTTPS
- API Versioning and Best Practices
- Error Handling and Logging
- Testing and Deploying Secure APIs
Introduction to ASP.NET Web API
Welcome to the first tutorial in our ASP.NET Web API series! This tutorial is designed for beginners looking to get started with ASP.NET Web API programming. We will guide you through the process of learning and mastering the art of building secure and efficient RESTful services using the ASP.NET framework.
In this tutorial, we'll introduce you to the basic concepts and components of the ASP.NET Web API. Our aim is to provide a strong foundation for your learning journey, so you can advance to more complex topics and examples with confidence.
Throughout this series, we'll focus on practical, real-world examples and best practices that will help you develop a deeper understanding of the subject matter. We encourage you to practice the concepts and techniques covered in each tutorial to gain hands-on experience and build your skills progressively.
What is a RESTful API?
A RESTful API (Representational State Transfer) is an architectural style for designing networked applications. It uses a set of constraints and principles to create scalable, maintainable, and high-performance web services.
In the context of ASP.NET Web API, a RESTful API is built on top of the Microsoft .NET framework, allowing developers to create HTTP services that can be consumed by a variety of clients, including web browsers, mobile devices, and other servers.
Why Learn ASP.NET Web API?
ASP.NET Web API is a powerful and versatile framework that enables developers to build RESTful services with ease. By learning how to create secure and efficient APIs, you will not only enhance your programming skills but also open doors to new opportunities in the ever-evolving world of web development.
Some benefits of learning ASP.NET Web API include:
- Seamless integration with the .NET ecosystem
- Support for various data formats (JSON, XML, etc.)
- A strong community and extensive documentation
- Customizable and extensible components
With our beginners tutorial, you'll be well on your way to mastering ASP.NET Web API programming. So, let's get started on this exciting learning journey!
// Example code to showcase a simple ASP.NET Web API controller
using System.Web.Http;
public class ExampleController : ApiController
{
[HttpGet]
public IHttpActionResult Get()
{
return Ok("Hello, World!");
}
}
Setting Up Your Development Environment
Before diving into the world of ASP.NET Web API programming, it's essential to have a well-configured development environment. In this tutorial, we'll guide you through the process of setting up the necessary tools and software to ensure a smooth learning experience.
Prerequisites
To follow along with the examples and practice in this series, you should have a basic understanding of:
- C# programming language
- .NET framework
- HTML, CSS, and JavaScript
If you are new to these topics, we recommend you learn the basics before proceeding with the ASP.NET Web API tutorials.
Installing Visual Studio
Microsoft Visual Studio is a popular integrated development environment (IDE) for .NET developers. It offers a comprehensive suite of tools and features to simplify ASP.NET Web API development. You can download the free Community Edition or choose a paid version, depending on your needs.
- Visit the Visual Studio download page
- Download the installer for Visual Studio Community Edition
- Run the installer and follow the prompts to complete the installation
During the installation process, you'll be prompted to select the workloads you want to install. Ensure that you choose the "ASP.NET and web development" workload, which includes the necessary components for building RESTful services with ASP.NET Web API.
Installing .NET SDK
The .NET SDK (Software Development Kit) is a set of tools and libraries that allows developers to create, build, and run .NET applications. To develop ASP.NET Web API applications, you'll need to have the .NET SDK installed on your machine.
- Visit the .NET download page
- Download the installer for the latest .NET SDK
- Run the installer and follow the prompts to complete the installation
Creating Your First ASP.NET Web API Project
With your development environment set up, you can now create your first ASP.NET Web API project. Follow these steps:
- Open Visual Studio
- Click on "Create a new project"
- Choose the "ASP.NET Core Web Application" template and click "Next"
- Enter a name and location for your project, then click "Create"
- In the "New ASP.NET Core Web Application" dialog, select "API" and click "Create"
Visual Studio will generate a new ASP.NET Web API project with a basic structure and sample code. You can now start exploring the code and get started with your learning journey.
In the next tutorial, we'll dive into designing RESTful API endpoints and implementing the essential features of an ASP.NET Web API application. Stay tuned, and keep learning!
Designing RESTful API Endpoints
Now that your development environment is set up, it's time to dive into the heart of ASP.NET Web API programming: designing and implementing RESTful API endpoints. In this tutorial, we'll cover the basics of API design and guide you through the process of creating endpoints that follow best practices and conventions.
Understanding RESTful Principles
A RESTful API follows a set of principles and constraints that ensure its scalability, maintainability, and performance. To design efficient and effective API endpoints, it's crucial to understand and apply these principles:
- Statelessness: Each API request should contain all the information needed to process it, without relying on the server's memory of previous requests.
- Client-Server: The client and server are separate entities that communicate via requests and responses, allowing for independent evolution and scalability.
- Cacheability: Responses can be cached on the client-side, improving performance and reducing server load.
- Layered System: The architecture can be composed of multiple layers, each with a specific responsibility, promoting separation of concerns and modularity.
Planning Your API
Before diving into the code, it's a good practice to plan your API by defining its resources, endpoints, and HTTP methods. Consider the following steps when planning your API:
- Identify the resources your API will manage (e.g., users, products, orders).
- Determine the endpoints for each resource, following a consistent naming convention (e.g.,
/api/users
,/api/products
). - Choose the appropriate HTTP methods for each endpoint to represent the CRUD operations (Create, Read, Update, Delete).
Creating Endpoints in ASP.NET Web API
In ASP.NET Web API, endpoints are created by defining controller classes that inherit from ApiController
. Each public method in the controller represents an API endpoint and handles a specific HTTP method (e.g., GET, POST, PUT, DELETE).
Here's an example of a simple ProductsController
with two endpoints: one for retrieving all products and another for retrieving a single product by its ID.
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
[Route("api/products")]
public class ProductsController : ControllerBase
{
[HttpGet]
public ActionResult<IEnumerable<Product>> GetAll()
{
// Retrieve and return all products
}
[HttpGet("{id}")]
public ActionResult<Product> GetById(int id)
{
// Retrieve and return the product with the specified ID
}
}
As you learn and progress through the tutorials, you'll explore more advanced topics and techniques for creating efficient and secure API endpoints.
In the next tutorial, we'll dive into implementing authentication and authorization in your ASP.NET Web API application, ensuring the security and privacy of your API's data. Keep up the good work, and continue learning!
Implementing Authentication & Authorization
As you continue your journey in ASP.NET Web API programming, one crucial aspect you need to consider is securing your API by implementing authentication and authorization. In this tutorial, we'll explain the differences between these two concepts and guide you through the process of securing your API endpoints.
Authentication vs. Authorization
- Authentication refers to the process of verifying a user's identity. In the context of an API, this typically involves validating a user's credentials (e.g., username and password) and generating a token that represents the user's session.
- Authorization is the process of determining what actions a user is allowed to perform, based on their assigned roles or permissions. For an API, this might involve checking if a user has the necessary privileges to access or modify a specific resource.
Securing Your API with JWT Authentication
JSON Web Tokens (JWT) is a popular standard for securely transmitting information between parties as a JSON object. JWT is often used for authentication and authorization in APIs, as it allows for stateless and scalable solutions.
To implement JWT authentication in your ASP.NET Web API application, follow these steps:
- Install the Microsoft.AspNetCore.Authentication.JwtBearer NuGet package.
- Configure JWT authentication in the
Startup.cs
file.using Microsoft.IdentityModel.Tokens; // ... public void ConfigureServices(IServiceCollection services) { // ... // Add JWT authentication services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["Jwt:Issuer"], ValidAudience = Configuration["Jwt:Audience"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:SecretKey"])) }; }); }
- Enable authentication middleware in the
Configure
method ofStartup.cs
.public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... // Enable authentication middleware app.UseAuthentication(); // ... }
- Add the
[Authorize]
attribute to controllers or actions that require authentication.using Microsoft.AspNetCore.Authorization; [Authorize] public class SecureController : ControllerBase { // ... }
Role-Based Authorization
To implement role-based authorization in your API, you can use the [Authorize]
attribute with the Roles
property.
[Authorize(Roles = "Admin")]
public class AdminController : ControllerBase
{
// ...
}
With this configuration, only users with the "Admin" role can access the endpoints in the AdminController
.
In the next tutorial, we'll explore how to secure data transmission with HTTPS, further enhancing the security of your ASP.NET Web API application. Stay motivated and keep up the learning!
Securing Data Transmission with HTTPS
As you develop your ASP.NET Web API application, it's essential to ensure the security of data transmitted between the client and server. In this tutorial, we'll discuss how to secure your API's data transmission using HTTPS (Hypertext Transfer Protocol Secure).
Understanding HTTPS
HTTPS is a secure version of the HTTP protocol that encrypts data exchanged between the client and server, preventing unauthorized access and tampering. It uses Transport Layer Security (TLS) or its predecessor, Secure Sockets Layer (SSL), to establish a secure communication channel.
Implementing HTTPS in your API not only helps protect sensitive data but also builds trust among users and may even improve your search engine ranking.
Enforcing HTTPS in ASP.NET Web API
In ASP.NET Core, HTTPS is enabled by default in new projects. However, it's crucial to ensure that HTTPS is enforced throughout your application to maintain a secure environment. Follow these steps to enforce HTTPS in your ASP.NET Web API:
- Redirect HTTP to HTTPS: Configure your application to redirect all HTTP requests to their HTTPS equivalents. In the
Configure
method of yourStartup.cs
file, add the following code:public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... // Redirect HTTP to HTTPS app.UseHttpsRedirection(); // ... }
- Require HTTPS for API endpoints: To ensure that all API endpoints use HTTPS, apply the
[RequireHttps]
attribute to your controllers. This attribute forces the use of HTTPS and returns a 400 Bad Request response for non-secure requests.using Microsoft.AspNetCore.Mvc; [RequireHttps] public class SecureApiController : ControllerBase { // ... }
- Use HSTS (HTTP Strict Transport Security): HSTS is a web security policy that instructs browsers to always use HTTPS when communicating with your API. To enable HSTS in your application, add the following code to the
ConfigureServices
method of yourStartup.cs
file:public void ConfigureServices(IServiceCollection services) { // ... // Enable HSTS services.AddHsts(options => { options.Preload = true; options.IncludeSubDomains = true; options.MaxAge = TimeSpan.FromDays(60); }); // ... }
And enable the HSTS middleware in the Configure
method:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
// Enable HSTS middleware
app.UseHsts();
// ...
}
API Versioning and Best Practices
As you progress in ASP.NET Web API programming, it's essential to consider the long-term maintainability and stability of your API. One crucial aspect of this is API versioning. In this tutorial, we'll discuss API versioning concepts and best practices to ensure your API remains consistent and stable while accommodating changes and new features.
Understanding API Versioning
API versioning is the practice of introducing new versions of your API to maintain backward compatibility while implementing changes that could potentially break existing clients. This approach allows you to update and enhance your API without disrupting existing users, providing a smooth transition to new functionality.
Versioning Strategies
There are several strategies to implement API versioning in ASP.NET Web API. Here are some popular approaches:
- URI versioning: Include the API version in the URI (e.g.,
/api/v1/users
,/api/v2/users
). This approach is straightforward and easy to understand but can be considered less RESTful, as URIs should ideally represent resources, not versions. - Query string versioning: Include the API version as a query parameter (e.g.,
/api/users?version=1
,/api/users?version=2
). This method maintains the RESTful nature of the API but can be harder to manage and discover. - Header versioning: Specify the API version using custom HTTP headers (e.g.,
api-version: 1
,api-version: 2
). This approach keeps the URI clean and is more RESTful but requires additional client-side configuration.
Implementing API Versioning in ASP.NET Web API
ASP.NET Core offers built-in support for API versioning. To implement API versioning in your application, follow these steps:
- Install the Microsoft.AspNetCore.Mvc.Versioning NuGet package.
- Configure API versioning in the
Startup.cs
file:public void ConfigureServices(IServiceCollection services) { // ... // Configure API versioning services.AddApiVersioning(options => { options.DefaultApiVersion = new ApiVersion(1, 0); options.AssumeDefaultVersionWhenUnspecified = true; options.ReportApiVersions = true; }); // ... }
- Apply versioning to your controllers using the
[ApiVersion]
attribute:[ApiVersion("1.0")] [Route("api/v{version:apiVersion}/users")] public class UsersController : ControllerBase { // ... }
Best Practices for API Versioning
Here are some best practices to consider when implementing API versioning:
- Plan for versioning from the start: Even if you don't anticipate significant changes, it's a good idea to plan for versioning from the beginning to accommodate future updates.
- Minimize breaking changes: Whenever possible, avoid making breaking changes to your API. If you must introduce breaking changes, ensure that you communicate them clearly to users and provide a reasonable transition period.
- Deprecate old versions gracefully: When retiring old API versions, give users ample notice and provide clear migration paths to newer versions.
- Document your API: Maintain clear and up-to-date documentation for all API versions, helping users understand the differences between versions and facilitating smooth transitions.
With API versioning in place, you can ensure a consistent and stable API while adapting to changes and new features, enhancing the overall experience for your users.
In the next tutorial, we'll discuss testing your ASP.NET Web API application to validate its functionality and ensure its reliability. Keep going and continue learning!
Error Handling and Logging
As you advance in ASP.NET Web API programming, one crucial aspect of building a robust and reliable API is implementing proper error handling and logging. In this tutorial, we'll discuss best practices for handling errors, creating custom error responses, and logging errors to facilitate troubleshooting and maintenance.
Understanding Error Handling
Error handling is the process of detecting and managing exceptions or unexpected situations that occur during the execution of your API. A well-designed error handling strategy provides meaningful error messages and responses to clients, making it easier to identify and resolve issues.
Handling Exceptions in ASP.NET Web API
ASP.NET Core provides built-in support for handling exceptions through middleware. The UseExceptionHandler
middleware can be used to catch exceptions and create custom error responses.
To configure exception handling in your ASP.NET Web API, follow these steps:
- In the
Configure
method of yourStartup.cs
file, add theUseExceptionHandler
middleware:public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // ... // Configure exception handling app.UseExceptionHandler("/error"); // ... }
- Create a dedicated
ErrorController
to handle the error route:[ApiController] public class ErrorController : ControllerBase { [Route("/error")] public IActionResult Error() { // Create a custom error response return Problem( detail: "An error has occurred. Please try again later.", statusCode: StatusCodes.Status500InternalServerError ); } }
Logging Errors
Logging errors is a crucial part of maintaining and troubleshooting your API. ASP.NET Core provides built-in support for logging through the ILogger interface, allowing you to log errors, warnings, and other information.
To log errors in your ASP.NET Web API application, follow these steps:
- Inject an
ILogger
instance into your controller or class:private readonly ILogger _logger; public MyController(ILogger<MyController> logger) { _logger = logger; }
- Use the
_logger
instance to log errors, warnings, or other information:try { // Execute some operation that may throw an exception } catch (Exception ex) { _logger.LogError(ex, "An error occurred while processing the request."); }
ASP.NET Core supports various logging providers, such as Console, Debug, EventSource, and third-party providers like Serilog, NLog, and more. You can configure logging providers and settings in the appsettings.json
file or the ConfigureServices
method of your Startup.cs
file.
Best Practices for Error Handling and Logging
Here are some best practices to consider when implementing error handling and logging:
- Avoid exposing sensitive information: Ensure that your error responses do not disclose sensitive data or implementation details that could be exploited by malicious users.
- Use appropriate HTTP status codes: Assign meaningful and appropriate HTTP status codes to your error responses to help clients understand the nature of the error.
- Log detailed error information: Log as much information as possible about the error, including stack traces, request data, and user information, to help identify and resolve issues.
- Monitor and analyze logs: Regularly review and analyze your logs to identify recurring issues, performance bottlenecks, and potential security threats.
With proper error handling and logging in place, your ASP.NET Web API application will be more robust, reliable, and easier to maintain.
In the next tutorial, we'll discuss monitoring and performance optimization techniques for your ASP.NET Web API application, ensuring its scalability and efficiency. Keep up the great work and continue learning!
Testing and Deploying Secure APIs
As you continue to advance in ASP.NET Web API programming, testing and deploying secure APIs are essential steps towards building reliable and robust applications. In this tutorial, we'll discuss best practices for testing your API, ensuring its security, and deploying it to production.
Testing Your API
Testing is a crucial aspect of the API development process, helping you identify and resolve issues, validate functionality, and ensure reliability. There are different types of tests you can perform on your API, including:
- Unit tests: These tests focus on individual components or functions in isolation, verifying that they work as expected.
- Integration tests: These tests validate the interactions between components, ensuring that they work together correctly.
- End-to-end (E2E) tests: These tests simulate real-world usage scenarios, verifying that the entire system functions correctly from the user's perspective.
To perform testing in your ASP.NET Web API application, you can use built-in testing libraries like xUnit, MSTest, or NUnit, along with ASP.NET Core TestHost for integration testing.
Ensuring API Security
Before deploying your API, it's crucial to ensure its security. Some best practices for securing your API include:
- Use HTTPS: Enforce HTTPS for all API endpoints to ensure the privacy and integrity of data transmitted between the client and server.
- Implement authentication and authorization: Use authentication mechanisms like JWT and role-based authorization to control access to your API.
- Validate input data: Implement server-side validation of input data to prevent injection attacks and other security vulnerabilities.
- Limit rate: Implement rate limiting to prevent abuse of your API by malicious users or bots.
- Monitor and log: Regularly monitor and analyze logs to identify potential security threats and performance issues.
Deploying Your API
Once your API has been thoroughly tested and secured, it's time to deploy it to production. There are various hosting options available for ASP.NET Web API applications, including:
- Azure App Service: A fully managed platform for building, deploying, and scaling web apps, including support for ASP.NET Core applications.
- Azure Kubernetes Service (AKS): A managed Kubernetes service that simplifies container orchestration and deployment, providing greater scalability and flexibility.
- IIS (Internet Information Services): A popular web server for hosting ASP.NET applications on Windows-based servers.
- Linux and other cloud providers: You can also deploy your ASP.NET Core application on Linux servers or other cloud providers like AWS, Google Cloud Platform, or Heroku.
To deploy your API, follow the hosting provider's documentation and best practices, ensuring that your application is configured correctly for production environments.
Best Practices for Testing and Deploying APIs
Here are some best practices to consider when testing and deploying your API:
- Use continuous integration and deployment (CI/CD) pipelines: Automate your testing and deployment processes using CI/CD tools like Azure DevOps, GitHub Actions, or Jenkins to ensure consistent and reliable releases.
- Test in production-like environments: Test your API in environments that closely resemble production to catch issues that may not be apparent during development or in staging environments.
- Monitor and optimize performance: Regularly monitor your API's performance, using tools like Application Insights, New Relic, or Datadog, to identify bottlenecks and optimize resource usage.
- Plan for scalability: Design your API with scalability in mind, considering factors like load balancing, caching, and distributed architectures to accommodate growing user bases and increased demand.
By following these best practices, you'll be able to test, secure, and deploy your ASP.NET Web API application with confidence, ensuring its reliability and robust.
In conclusion, mastering ASP.NET Web API programming involves learning and implementing various concepts and techniques that contribute to building robust, secure, and scalable APIs. Throughout this tutorial series, we've covered essential topics such as getting started with ASP.NET Web API, securing RESTful services, implementing API versioning, handling errors and logging, testing and deploying secure APIs, and more.
By understanding and applying these concepts and best practices, you'll be well-equipped to develop reliable, secure, and high-performance APIs that provide a solid foundation for your applications. As you continue your journey in learning ASP.NET Web API, remember to stay up-to-date with the latest advancements and community best practices to ensure that your APIs remain efficient, secure, and maintainable.
Keep up the great work, and never stop learning!
Related tutorials
Integrating APIs & Web Services in Front-End Projects
What is Flask? Get Started with Building Secure Web Apps with Python
Learn ASP.NET Web API Performance Optimization
Developing Web API Use Cases with PHP: A Step-by-Step Guide
Web API Development with Python: A Practical Guide
ASP.NET Web API: Secure RESTful Services online learning
ASP.NET Web Programming
Download free ASP.NET a framework for creating web sites, apps and services with HTML, CSS and JavaScript. PDF file
ASP.NET and Web Programming
ASP.NET is a framework for creating web sites, apps and services with HTML, CSS and JavaScript. PDF course.
ASP.Net for beginner
Download free Workbook for ASP.Net A beginner‘s guide to effective programming course material training (PDF file 265 pages)
Tutorial on Web Services
Download free course material and tutorial training on Web Services, PDF file by Alberto Manuel Rodrigues da Silva
Introduction to ASP.NET Web Development
Download free Introduction to ASP.NET Web Development written by Frank Stepanski (PDF file 36 pages)
Course ASP.NET
Download free ASP.NET course material and training (PDF file 67 pages)
ASP.NET MVC Music Store
The MVC Music Store is a tutorial application that introduces and explains step-by-step how to use ASP.NET MVC and Visual Web Developer for web development. PDF file by Jon Galloway.
Getting started with MVC3
This tutorial will teach you the basics of building an ASP.NET MVC Web application using Microsoft Visual Web Developer Express, which is a free version of Microsoft Visual Studio.
Web Services with Examples
Download free An introduction to web services with exemples, course tutorial training, a PDF file by Hans-Petter Halvorsen.
The Entity Framework and ASP.NET
Download free The Entity Framework and ASP.NET – Getting Started course material and training (PDF file 107 pages)
Web API Design: The Missing Link
Web API Design is a comprehensive guide to building high-quality APIs. Learn step-by-step tutorials and best practices for implementing Web APIs.
Network Infrastructure Security Guide
Learn how to secure your network infrastructure with the comprehensive Network Infrastructure Security Guide. Get expert guidance on best practices for network security.
Introduction to VB.NET manual
Download free Introduction to visual basic .net manual course material and training (PDF file 327 pages)
VB.NET Tutorial for Beginners
Download free vb.net-tutorial-for-beginners course material and tutorial training, PDF file by ANJAN’S
Web API Design
Download free Web API Design course material, tutorial training, a PDF file by gidgreen.com on 70 slides.
.NET Tutorial for Beginners
Download free .NET Tutorial for Beginners, course tutorial, a PDF file made by India Community Initiative.
REST API Developer Guide
REST API Developer Guide: A free PDF ebook for beginners to learn and master REST API, covering architecture, examples, and OpenAPI 3.0.
Learning .net-core
Download free course learning dot net-core, It is an unofficial PDF .net-core ebook created for educational purposes.
Introduction to Visual Basic.NET
Learn Visual Basic.NET from scratch with Introduction to Visual Basic.NET ebook. Comprehensive guide to VB.NET programming & Visual Studio.NET environment.
.NET Book Zero
Start with .NET Book Zero. Learn basics of .NET, C#, object-oriented programming. Build console apps in C#. Ideal for beginners & experienced developers.
OS X Lion Server Essentials
Download free OS X Lion Server Essentials course material and training, writing by Arek Dreyer and Ben Greisler, PDF file on 54 pages.
Tangelo Web Framework Documentation
Tangelo is a web application driver, implemented as a special-purpose webserver built on top of CherryPy. PDF file by Kitware, Inc.
Flask Documentation
Flask Documentation PDF file: comprehensive guide to learn Flask, free download, suitable for beginners & advanced users, covering installation, API reference, and additional notes.
Building Web Apps with Go
Download free course to learn how to build and deploy web applications with Go, PDF ebook by Jeremy Saenz.
Beginners Guide to C# and the .NET
This tutorial introduces.NET Micro Framework to beginners. will learn introduces .NET Micro Framework, Visual Studio, and C#!
Uploading files to a web server using SSH
You are strongly recommended to use SSH Secure Shell Client for connecting interactively and for file transfer whenever possible. PDF file.
Using SQL Server in C# with Examples
Using SQL Server in C# tutorial - a comprehensive guide for beginners and advanced programmers. Includes examples, exercises and covers SQL Server
The SSH Protocol
Download Tutorial The SSH Secure Shell Protocol, free PDF ebook course made by Duncan Napier.
Secure Wired and WiFi Communications
Download course Using Block and Stream Ciphers for Secure Wired and WiFi Communications, free PDF ebook on 91 pages.
Learning .NET Framework
Download free ebook Learning .NET Framework, PDF course tutorials by Stack Overflow Documentation.
All right reserved 2011-2024 copyright © computer-pdf.com v5 +1-620-355-1835 - Courses, corrected exercises, tutorials and practical work in IT.
Partner sites PDF Manuales (Spanish) | Cours PDF (French)