C# Corner

Resources  
  • Configure Identity In ASP.NET Core 2.xDec 15, 2017. Identity is a membership system that allows us to add login functionality to our application. In my previous article, I have explained about the overview of Identity in ASP.net Core. There are some default behaviors that can be overridden easily in our application in ConfigureService method of startup class.
  • Directives In Angular 5 - Part Two (Structural Directives)Dec 15, 2017. These are responsible for the HTML layout they shape or reshape the html element by simply adding or removing the elements in the DOM. These directives are the ways to handle how the component or the element renders in the template .
  • Two-Way Binding Or MVVM In Xamarin.Forms ApplicationDec 15, 2017. In this article, we are going to learn how to apply two-way binding in Xamarin forms application with the help of InotifyPropertyChanged System component model.
  • Special Class Of C# Series - Part Two - OLE DB (Extended Properties)Dec 14, 2017. In this series of C# Special classes, we are going to see the special features available with the “OleDbConnection” class and its specialties.
  • Xamarin.Android - Stop Watch Seconds And MillisecondsDec 14, 2017. In this article, I shall show you how to make a simple stop watch app in Xamarin Android. A stopwatch is a handheld timepiece designed to measure the amount of time elapsed from a particular time when it is activated to the time when the piece is deactivated. A large digital version of a stopwatch designed for viewing at a distance, as in a sports stadium, is called a stopclock. In manual timing, the clock is started and stopped by a person pressing a button.
  • DirectQuery Mode In Power BIDec 13, 2017. In this article, we will talk about the two ways to import data into Power BI. When we connect any data source, it will import copy of the data in Power BI. For some data sources, an alternative approach is available: connect directly to the data source using DirectQuery.
  • Aborting Thread Vs Cancelling TaskDec 12, 2017. The below post is based on one of the question I answered on StackOverflow, in which the questioner wants to cancel a task when its taking too long to respond; i.e., taking too much time in execution and returning result.
  • If I Ran A Software Company - Part TwoDec 11, 2017. This is part 2 of my article on this subject. I hope you read part 1 before reading this post.
  • Knowing When To Reflect With Caller Info AttributesDec 10, 2017. If you've been around C# long enough, you've probably had a need at one time or another to figure out some information about code that's being executed. It might be a method name, the file being executed, or even more specific details like the line number.
  • Xamarin.Android - Flags Quiz Game App - Part TwoDec 08, 2017. In this article, we shall learn how to build a flags quiz game in Xamarin Android. Flag quiz basically is a simple game that can develop your knowledge about countries' flags.
  • Movie Ticket Booking And SemaphoreDec 08, 2017. This article explains the role of Semaphore in the ticket booking of a movie by more than one seller.
  • Understanding Classes In KotlinDec 07, 2017. In the above example, I have created a nested class ‘Nestedclass’ which has a data member ‘b’ and a member method show(),now the object of nested class can access member of nested class only.
  • Implement Validations In Angular 5 AppDec 03, 2017. In this post, we are going to implement Two Way binding and validations in Angular 5 registration form. So at the end of this article, you will be proficient in how to do validations in Angular. I hope you will like this article.
  • Object Comparison In C# - Part Two [N Level Down List Comparison]Dec 02, 2017. This article will demonstrate the comparison of the objects (or list of objects) with n level down list comparison.
  • Dynamic Search In DataGridViewNov 30, 2017. This article will help you to understand the Dynamic Search method in DataGridView in C#.
  • Building Entity Framework Disconnected Generic RepositoryNov 29, 2017. The repository pattern separates and retrieves data model mapping logic from the business logic. We will create a repository class for each entity class in our application. All these classes usually have a main group of equals methods.
  • Comparing Objects In C#Nov 29, 2017. In this article, we are going to compare two objects of the same class having collection property or multiple collection properties.
  • Passing Data Between Components - Day TwoNov 29, 2017. We have seen that we can pass the data between the components using the @Input and @Output directives and using event emitters. Let’s see the other two methods - @View child and the services which can be used to pass the data between components.
  • Virtual Entity - New Way Of Integration - Part TwoNov 28, 2017. This is our second article regarding virtual entity, if you have not checked our earlier article, we suggest you check that first here. In this article we are going to demonstrate about create OData Web API without Entity Framework and hosting it in Azure to consume into Dynamics 365. Let say we have employees data that we want to show into virtual entity, so let’s get started!!
  • Passing Data Between ComponentsNov 28, 2017. Article explains 2 Methods of communication between the components .
  • Chat Bot With Azure Authentication - Part TwoNov 27, 2017. In the previous part of the article series, we have completed initial setup such as app registration, Azure Active Directory Authentication and saving AccessToken to Bot State Service. In this part of the article, we will implement chat bot which will get the AccessToken from Bot State Service and make Azure service call.
  • Generate Python Wrapper For C# Methods Using ReflectionNov 27, 2017. In this article, we will generate a Python wrapper around C# methods using reflection methods of .NET framework.
  • Building API Gateway Using Ocelot In ASP.NET Core - Part TwoNov 27, 2017. In this article, I will continue with the topic of Building API Gateway In ASP.NET Core and will show you something about authentication later.
  • How To Build A Kubernetes Cluster On Azure Using KubesprayNov 26, 2017. The concept of sticking our compiled code into containers is becoming quite popular at the moment, and for very good reason. If you develop for the cloud, and don't use containers or similar technology now, then you should really take a look at whats involved. The huge benefits of using containerized infrastructure/deployment are being pushed by the cloud vendors, and also increasingly being recognized by mainstream enterprise as an all round good egg and something worth investing time and resources into embracing. Containers and 'server-less computing' are two technologies that most developers are going to have to embrace in the next short few years.
  • Creating A Navigation Android App Using Visual StudioNov 25, 2017. This application will take two user inputs for map -- Latitude and Longitude. Clicking on open in map will open the map that can show you directions from the current location to the given address defined by the two user inputs.
  • Highcharts Drilldown Functionality With Angular Custom Directive And Web APINov 25, 2017. This is the second part of this series, “Highcharts with Angular JS custom directive and Web API”. In the first part, we discussed the preparation of the charts using the Highcharts library and Web API.
  • Implementing Field Mapping Using Xrm.WebApiNov 24, 2017. In this article, we are going to provide sample code for using Xrm.WebApi retrieve method.
  • Creating An Event Hub On The Azure PortalNov 24, 2017. In this article, I am going to describe and demonstrate the creation of Event Hubs on the Azure Portal.These Event Hubs are used to act as a port to collect the streaming data and processing of that data per second.
  • Using Xrm.WebAPI In Dynamics 365/CRMNov 22, 2017. With the release of Dynamics 365 update 9.0, now we have a new library to implement WebApi methods using Xrm.WebApi. Instead of writing complete request, now we can just use direct CURD methods from WebApi.
  • Learn Angular 4.0 In 10 Days - Component - Day TwoNov 20, 2017. In this article, we will discuss about component concept in Angular 4.0.
  • Create App Using Xamarin.Android Using C# - Part FourNov 17, 2017. Xamarin.Android has native user interface controls. These controls can be easily added to Xamarin.Android apps using the Android Designer or programatically via XML layout files. Xamarin.Android exposes all of the user interface object properties and methods in C#.
  • Two Way Data Binding In Angular Without $scope Object Using MVCNov 16, 2017. Data binding is the most useful and powerful feature among any of the existing or upcoming software development technologies. It is actually a process that bridges a connection between the view and business logic of the application.Basically we will see one-way and two-way data binding with respect to AngularJS applications. But before we jump to that section we will try to learn something about the scopes in AngularJS.
  • Passing Parameters To Middleware In ASP.NET Core 2.0Nov 15, 2017. I discussed in an earlier post that it is good practice to define middleware in a separate class and add to the pipeline using extension methods. We may also need to pass information to our middleware classes though and I’ve come across two patterns for this when digging into ASP.NET Core source code and other samples online.
  • What Is Struct And When To Use Struct In C#Nov 15, 2017. 'Struct' keyword is used to create a structure. A structure can contain variables, methods, static constructor, parameterized constructor, operators, indexers, events, and property. A structure can not derive/inherit from any structure or class. A structure can implement any number of interfaces. Structures provide better performance.
  • Azure Table Storage In ASP.NET Core 2.0Nov 14, 2017. Add a class to encapsulate storage access. Add a private helper method to access storage
  • Using Optional Query Parameters With Microsoft Graph API - Part TwoNov 14, 2017. When you fire an API call to MS Graph, it will return the JSON result with all the properties. You may not need all the properties of a result set always. When you want MS Graph API to return only certain properties, then use $select parameter to specify which properties you want in result set.
  • Steps To Configure Xamarin.Android Emulator Performance - Part TwoNov 14, 2017. Xamarin is a cross-platform development tool. With Xamarin, you can use C# for iOS, Android, and Universal Windows apps. And with Xamarin Forms, interface design for all three platforms can be accomplished within its XAML-based framework.
  • ASP.NET Core 2.0 MVC FiltersNov 13, 2017. Filter runs after an action method has been selected to execute. MVC provides built-in filters for things like authorization and caching. Custom filters are very useful to encapsulate reusable code that you want to run before or after action methods.
  • Introduction To Power BI Visuals - Part Two (Stacked Column Chart)Nov 13, 2017. This is the second part of the Introduction to Power BI visuals.The main aim for this article is for the end user to learn these visuals in an easy manner.
  • Introduction To Power BI Visuals - Part Three (Clustered Column Chart And Clustered Column Chart)Nov 11, 2017. Here, I am writing the introduction series for all Power BI visuals so the end user or beginner will gain a basic idea of how visuals work During this series of Power BI visuals, we will learn about each OOTB Power BI visuals step by step. In this article we will talk about below two visuals provided by Power BI Desktop OOTB. 1. Clustered Bar Chart 2. Clustered Column Chart
  • Debugging Tips - Part ThreeNov 06, 2017. While working on a complex code, we often come across situations where you need to debug lots of code to find/fix the issue(s). That also includes going through lots of methods (probably related or unrelated). .NetFramework provides a way to avoid unwanted "Step in" through the methods. Using DebuggerStepThrough (using System.Diagnostics) attribute, you can skip debugging of unwanted methods and reduce the debugging time to some extent.
  • Binding DropDown List Using Tuple In ASP MVCNov 05, 2017. Tuple is a generic static class that was added to C# 4.0 and it can hold any amount of elements, and they can be any type we want. So using tuple, we can return multiple values.One great use of tuple might be returning multiple values from a method. It provides an alternative to "ref" or "out" if you have a method that needs to return multiple new objects as part of its response.
  • Introduction To ASP.NET MVC Model BindingNov 02, 2017. Asp.NET MVC model binder allow you to map http request data with model. HttpRequest data means when user makes a request with form data from browser to controller at that time model binder works as middle man to map the incoming http request with controller action method.
  • Implementation Of Stack And Queue Using Linked ListNov 02, 2017. In this article, I will be discussing two data structures - Stack and Queue and their implementation using another data structure - Linked List.
  • Learn Universal Windows Programming Via Modern C++ (DispatcherTimer)Nov 01, 2017. DispatcherTimer is a timer control, that is integrated into the Dispatcher queue, Timer event is called in a specific timer interval, the main advantage DispatcherTimer, it can run the code on the same UI thread.
  • Useful URL Shortcuts For SharePoint Online - Part TwoOct 29, 2017. In this second part of URL shortcuts, I am going to write some useful URLs which will help developers or administrators perform their daily tasks in a very easy manner. As a developer these shortcuts are very useful to us. These URL shortcuts make our work faster. This article covers eight shortcut URL which we can use in our daily practice.
  • How To Use ServerSide Processing With jQuery DatatableOct 29, 2017. Create one WebService to Getdata(Here I am using asp.net WebService to get data). You can see my Solution Explorer . I have two web pages and one service, and the name of the service is webService.asmx.
  • Angular Pipes With ExamplesOct 29, 2017. The first parameter 'USD' is currency type which can be of INR, USD or any currency type in the world. The Second parameter 'true' is a Boolean indicating whether to display currency symbol or not .By default it is false and, if we change it to true then the symbol will be displayed.
  • Debugging Tips - Part TwoOct 27, 2017. While working on complex classes/objects, it really takes two more clicks to either add that object to the Watch window or expand the object in visualizer and navigate to a specific property.
  • One-Way And Two-Way Data Binding With Examples In AngularOct 27, 2017. In Angular 2, Data Binding is mainly classified in two ways, namely One-Way binding (i.e. unidirectional binding) and two-way binding (i.e. bi-directional binding).
  • Event Capturing And Bubbling In JavaScriptOct 25, 2017. The DOM has two approaches for object to sense events: first is top down approach and second is bottom up approach. Top down approach is called event capture whereas bottom up is known as event bubbling.
  • Cloud Databases In Azure - Part ThreeOct 24, 2017. This is the third article in the “Azure Cloud Databases” articles series, which is in continuation of the previous two articles.
  • Hosting Website With Filezilla To AzureOct 19, 2017. We can use the FTP client Filezilla for website hosting to Azure. And it is an FTP method. And sometimes we may face some errors in it. And the solution is also mentioned in this article.
  • How To Return A Pair Of Closest Birthdates Using API, Multi Threading And MVC 5 Using C#.NETOct 18, 2017. This article demonstrates how to use multi-threading to return the name of 2 customers who have the closest birthdate. I also include how create API to add\ retrieve customer details from SQL database using tasks and how to use MVC to call and API to add a new customer.
  • Power BI - Get Data From SharePoint List / LibraryOct 16, 2017. In this article, we will explore two methods to get data from SharePoint List / Library in Power BI.
  • Cloud Databases In Azure - Part TwoOct 16, 2017. In the first article of this series, I explained about how to create SQL Database in Azure. I recommend you read the first article.
  • C# 7.0 And C# 7.1 New Features - Part TwoOct 16, 2017. This article explains the new features of C# 7.0 & C#7.1. It covers new features like Discards, Pattern Matching, Generalized async return types, Async Main (Main Method returning Task), Infer Tuple Element Names, Default Literal Expressions & Type Inference and Pattern Matching with Generics.
  • Always Encrypted In SQL Server 2016 - Step By Step Guide - Part TwoOct 14, 2017. This is part two of "Always Encrypted In SQL Server 2016 - Step By Step Guide" series. In this article, we are going to see the sample queries on encrypted columns and Limitations of Always Encrypted feature. In case, if you have missed out the first part of the series.
  • Angular From Basic To Expert - Day TwoOct 13, 2017. In this article of AngularJS from basic to expert - Day Two we will learn AngularJS Expressions and Directives in AngularJS.
  • Angular Components (With Examples)Oct 12, 2017. A Component is nothing but a simple typescript class, where you can create your own methods and properties as per your requirement which is used to bind with an UI (html or cshtml page) of our application.
  • How To Use Fiddler With ASP.NET Web API TestingOct 11, 2017. If you are developer, tester or a manager, sometimes understanding the various methods of API can be a challenge when building and consuming the application.
  • SharePoint 2016 - December 2016 CU Issue FixedOct 11, 2017. In this article, we will list all the issues of SharePoint 2016 that are fixed in the December 2016 CU. This month, MSFT released two packages and we should install both.
  • Overview Of Let In LINQOct 09, 2017. In general, Let allows create a local variable at the LinQ query. Let has the same operation as to build local variable in a loop. The example with let hast better performance than the without let example, because the first execute one time and second two time for each item.
  • Direct Dependencies And EnumerationOct 09, 2017. In this post, we will be talking about the two most commonly used types of relationships, namely, direct dependency relationship and enumeration.
  • SharePoint 2016 - October 2016 CU Issue FixedOct 09, 2017. In this article, we will list all the issues of SharePoint 2016 that are fixed in the October 2016 CU. This month, MSFT released two packages and we should install both.
  • ASP.NET Core 2.0 Session StateOct 09, 2017. Using an empty project from a previous post, amend Startup class ConfigureServicee() method, and add services for session and its backing store.
  • SharePoint 2016 - November 2016 CU Issue FixedOct 09, 2017. In this article, we will list all the issues of SharePoint 2016 that are fixed in the November 2016 CU. This month, MSFT released two packages and we should install both.
  • Azure App Service - Deployment SlotOct 08, 2017. Azure makes it easy, to create deployment slots for App Services. It’s available in the Standard or Premium App Service plan mode. Deployment slots are actually live apps with their own hostnames. App content and configurations elements can be swapped between two deployment slots, including the production slot.
  • Leadership Challenge 002 - What Is Your Coaching FitbitOct 07, 2017. Many people have embraced the "Fitbit" craze. The company has great marketing: “Fitbit tracks every part of your day—including activity, exercise, food, weight and sleep—to help you find your fit, stay motivated, and see how small steps make a big impact.”. People wear it daily, slapping it on their wrist the second they get out of bed…or even sleeping with it on.
  • How To Change User Language Settings In SharePointOct 04, 2017. In this article, I will discuss how to change language settings for a particular user using two ways. When you create a site , you also specify user language setting such as Time Zone, local display for numbers, dates, and time, sort order, calendar type, work week, and time format (12 or 24 hour) settings in both SharePoint On premise and Online.
  • How To Use Postman With ASP.NET Core Web API TestingOct 04, 2017. If you are developer, tester, or a manager, sometimes understanding the various methods of API can be a challenge when building and consuming the application.
  • Develop Chatbot On NodeJS Platform Using Microsoft Bot Framework (Part Three) - Manage Conversation Using Multiple DialogsOct 03, 2017. In article Develop ChatBot On NodeJS Platform Using Microsoft Bot Framework (Part Two) - Manage Conversation Using Root Dialog, we have discussed how to handle conversation using root dialog in chatbot developed using Microsoft Bot Framework NodeJs SDK. In this article, we are going to handle the conversation flow with multiple dialogs instead of root dialog. We are also going to use trigger for dialogs.
  • Office 365 Development With Visual Studio 2017 - Part TwoOct 03, 2017. When Visual Studio 2017 was launched earlier this year, I wrote an article to provide glimpses on how to get started with Office 365 development with VS 2017 and different project templates available in VS 2017. You can read it here.
  • ASP.NET Core 2.0 Error PagesSep 29, 2017. Starting from an empty project, created in a previous post, amend the Configure() method of Startup class to use middleware needed for error handling. Below I’ve used a custom middleware (defined as lambda) to handle production exceptions.
  • Create Value Object In C#Sep 28, 2017. Create a class that abstracts away (encapsulate) ‘data’ in your domain and provide methods to work on it. Below is a class I don’t consider a good Value Object.
  • Introduction To JSX And Rendering Elements (React) - Zero To Hero Series - Part ThreeSep 28, 2017. This is the third article in ReactJS – Zero to Hero Series. I will recommend to read the first two articles (link given below), before going through this article.
  • Creating A Wave Audio Player Using WinMM The APISep 28, 2017. This is the part two of my three part trilogy concerning the use of windows mixer controls, playing an existing wave file through some available speaker, or recording and saving a wave file from an available audio input device such as a microphone. You might be wondering about the order I am presenting these tutorials. Simple, ...when my father taught me to play pool, we would often come upon a scenario where there are multiple shots available.
  • Web API Token Based Authentication With Angular - Part TwoSep 26, 2017. This article will demonstrate about how to implement Token Based Authentication in Angular JS application. In my previous article, I have explained how to implement Token Based Authentication in Web API.
  • How To Use Swagger With ASP.NET Core Web APIsSep 24, 2017. If you are developer, tester or a manager, sometimes understanding the various methods of API can be a challenge when building and consuming the application.
  • Toggle Button Android App Using Android StudioSep 23, 2017. Android Toggle Button can be used to display checked/unchecked (On/Off) state on the button. It is beneficial if user have to change the setting between two states. It can be used to On/Off Sound, Wifi, Bluetooth etc. In this article, I will show you how to create Toggle Button android App using android studio.
  • Adding Check Box Functionality In An Android App Using Android StudioSep 21, 2017. In this article, I will show you how to create am Android app using Android Studio. Android Checkbox is a type of two state button, either checked or unchecked. There can be a lot of usage of checkboxes. For example, it can be used to know the hobby of the user, activate/deactivate the specific action etc.
  • Introduction To SharePoint Framework (SPFx) - Zero To Hero Series - Part ThreeSep 21, 2017. This is the third article in SharePoint Framework (SPFx) – Zero to Hero Series. I will recommend to read the first two articles (link given below), before going through this article.
  • Introduction to SharePoint Framework (SPFx) – Zero to Hero Series – Part TwoSep 20, 2017. This is the second article in SharePoint Framework (SPFx) – Zero to Hero Series. I will recommend to read the first article (link given below), before going through this article.
  • React Components - Zero To Hero Series - Part TwoSep 18, 2017. This is the second article in ReactJS – Zero to Hero Series. I will recommend you read the first article (link given below), before going through this article.
  • Build Chat Application On MEA2N Stack - Part TwoSep 17, 2017. In the previous part of the article series, Build Chat Application On MEA2N Stack – Part One, we built a basic chat application on Node.js platform using Express, Angular 2 and socket.io. In this article, we are going to use MongoDB Atlas for saving our chats and retrieving history whenever user requests it.
  • Two Ways To Get Data From Entity FrameworkSep 15, 2017. In this article, you will learn about two basic ways to get data from Entity Framework and display data in angular UI-Grid using MVC application with Web API.
  • How To Motivate OthersSep 14, 2017. Motivation is a short-term push and hence it is a pointed approach towards a goal. Everyone has a reason to seek motivation, but rarest of rare would have a reason to stay motivated. There is a difference in the two, while the first approach is to help to achieve one milestone or low hanging fruit, but the later one is about continuous efforts.
  • Create Immutable Type In C#Sep 14, 2017. A public constructor that accepts initialization data is required so that the client can pass-in minimum state for the type to be valid. Private constructor, on the other hand, is used by methods to construct a new object and set its entire state.
  • How To Show Interstitial Ad Every 20 Seconds In An Android ApplicationSep 14, 2017. Android is one of the most popular operating systems for mobile. In this article, I will show you how to show interstitial ads every 20 seconds in an Android application using Android studio.
  • ASP.NET Core 2.0 EnvironmentsSep 12, 2017. Starting from an empty project, discussed in a previous post, modify the Configure() method to use the IHostingEnvironment to call different middleware based on current environment.
  • Working With Azure Tables - Part TwoSep 09, 2017. Let us look at the basic sample, which retrieves the Azure table data into the applications using Node JS.
  • Getting Started With Bing Emotion APISep 08, 2017. In this tutorial, we will learn how to use Bing Emotion API. In our previous example of the cognitive service demo, we had combined two cognitive services, Bing Speech API and Bing Emotion API, so as to find images using speech to text (STT). To extend this demo, we will be using Bing Emotion API which will detect the emotions of a person from the image that we had searched using Bing Image Search API.
  • New String Function In SQL Server 2017Sep 06, 2017. It requires one separator argument and a minimum of two arguments otherwise it raises an error. All the arguments are implicitly converted to string types and then they are concatenated.
  • How Should We Store Images And Blob Files In SQL ServerSep 06, 2017. There is always a requirement from developers: How should I store images and BLOB files in SQL Server ? In this post let's explore the data types and methods used for storing Binary Large Objects also know as BLOBs, such as images and sounds, into SQL Server.
  • Getting Started With Bing Speech API In WPF ApplicationsSep 06, 2017. Cognitive services are a set of APIs that are designed to democratize artificial intelligence by enabling systems to see, hear, speak, understand and interpret our needs using natural methods of communication.
  • ASP.NET Core 2.0 MiddlewareSep 06, 2017. Create a Hello World app using ASP.NET Core Middleware. Middleware components are called in the order they appear in Configure() method; i.e., the order in which they're added to the pipeline. The response, on its way back to the client, also passes through the same middleware pipeline.
  • Automation Of SharePoint Search Crawl Using PowerShell Scripts - Part TwoSep 06, 2017. In an earlier part of this series you have learned how to create content source and select the appropriate option for each category. In this continuation you will understand how to create PowerShell scripts to automate Crawls.
  • The Basic Concepts Of Data ScienceSep 04, 2017. The basics concepts of data science can be separated two important parts. Maybe some people can argue with me because I have to tell you supervised learning and unsupervised learning and decision trees algorithms. But my intend is not explaining the concepts of Data science. This article is related to some knowledge about who wants to be started as data scientist.
  • Construct Readable XML Output From SQL Query From Two Or More Tables Using “For XML PATH” StatementSep 04, 2017. In my previous article I discussed about how to get a XML format output from query and process that by using XML AUTO statement, and I give different types of “for XML”.
  • Develop ChatBot On NodeJS Platform Using Microsoft Bot Framework (Part Two) - Manage Conversation Using Root DialogSep 02, 2017. In article Develop ChatBot on NodeJs platform Using Microsoft Bot Framework (Part One) - Quick start for beginners, we have discussed about where and how to start with development of chatbot on NodeJs platform using Microsoft Bot Framework. In this article we are going to see usage of Dialogs which will help us to manage conversation flow.

About invoke-a-method-from-second-thread

NA
File APIs for .NET
Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!