230 likes | 254 Views
Robust .NET FTP library for C# & VB.NET that enables comprehensive file transfer capability across various platforms, supporting secure SSL connections and server synchronization. Includes advanced features such as multi-thread transfers and modern asynchronous operations.
E N D
Robust .NET FTP/SSL Library for C# & VB.NET Ultimate FTP .NET class library lets you add the comprehensive file transfer capability to your apps. It can be integrated into a wide range of .NET platforms including WinForms, Windows Services, WPF & Console, ASP.NET, UWP, Xamarin iOS, Android, Mac, and .NET CF. The FTP component makes it easy to secure connections using SSL layer and transfer files between your application and Unix, Windows, and Mainframe FTP servers. With a few lines of code, you can create, upload, download, modify, delete, set permissions, and manage files and directories on a remote server. It's written purely in C# with many advanced optimizations to deliver the best performance. It also includes lots of VB and C# FTP client examples to help you get familiar with the API and write your own apps in just a few minutes.
.NET FTP Component's Key Features • Upload, download, append, delete, rename/move files • Multi file operations: Upload, download, delete, move... • Parse listings automatically • Transfer files simultaneously using multiple threads • Multi-file operations with file masks and advanced search criterion • Unified API - use the same for both SFTP and FTP protocols • 1-way and 2-way directory synchronization • Control bandwidth • Filezilla-like transfer queue • Check for file and directory existence • Set file permissions • Supports for compression zlib mode • Supports for .NET Full Framework, Xamarin iOS, Mac, Android, Mono, .NET CF, and .NET Core, Standard (will be available soon) • Supports for SSL 3.0 protocol
Support for TLS 1.2, 1.1, 1.0. SHA-2 certificates SHA-2 hashing algorithms, AES/GCM ciphers, Elliptic Curve DSA & Elliptic Curve Diffie-Hellman ciphers • Renegotiation Indication extension, Server Name Indication (SNI) extension • All standard-compliant FTP servers support • Active and passive modes • Server to Server Transfer (FXP) • Compliant with RFC 959, 1123, 1579, 2228, 3659, 4217, 2246, 4346, 5246 and 5746 • Optimize default component and socket settings for maximum transfer speed • Optimized for performance and minimized memory footprint • Load and generate private/public keys • Detect time difference between the client and server. • Fully documented API helps you create a .NET FTP client in just a few minutes • Full source code in C# is available in the Premium licenses
Auto-reconnect and Auto-resume The .NET FTP library allows your application to automatically reconnect to the server when a connection is lost while transferring files. If a transfer is interrupted, the Ftp class can resume the transfer right after the connection is re-established. This feature makes your applications work stable without any additional complex code to handle errors when the connection to the server is unstable.
Supports FTPS The library offers a comprehensive interface for both standard FTP and secure FTP over TLS/SSL - also known as FTPS, The Ftp class also provides you events to verify the certificate and provide client certificate when requested by the server.
Advanced File Management Advanced file management tasks such as synchronously or asynchronously list, recursively search, move, delete, upload, download, check existence, synchronize files and folders by wildcard masks or search criteria all can be done with a few lines of code, making remote file management easier than ever before.
Update File List On-the-fly Do you appreciate the capability present in some FTP client programs that allows you to add and remove items while the transfer is still in progress? That feature is now present in our FTP, SFTP, and ZIP components, making it easy to add new items, remove, and update existing items in the progress list.
Multi-threading An impressive feature in our FTP and SFTP products is the capability to transfer files and folders using multiple threads, allowing your programs to upload/download more files simultaneously. Combined with built-in Zlib stream or MODE Z enabled, the transfer speed would be three times faster than transferring in MODE B with a single thread.
Modern Task-based Asynchronous Pattern Our products support both event-based and task-based asynchronous operations. The online documentation has a number of examples demonstrating how to use the async and await (C#) or Async and Await (VB.NET) keywords with the component's asynchronous methods, making it easy for developers to start writing their asynchronous functions.
What is FTP? FTP (File Transfer Protocol) is a standard protocol used to transfer files over TCP networks (for example, the Internet). Uses the 21st port. FTP is often used to download web pages and other documents from a private development device to an open hosting server.
Supported FTP-servers Ultimate FTP can work with all standard FTP-servers. Below is a list of our recommended FTP servers: • Microsoft FTP service (IIS 6, IIS 7, IIS 7.5, IIS 8) • FileZilla server • GlobalSCAPE EFT Server • ProFTPd • vsFTPD • vShell FTP • WS_FTP Server • Cerberus FTP Server • Wu-FTP Server • zFTP Server • Wu-FTPd • BlackMoon FTP Server • Gene6 FTP Server • glFTPd • Bullet Proof • Serv-U FTP Server • Raiden FTPD • Titan FTP • War Ftp • CompleteFTP
Creating a project using the FTP component Let's create a simple WPF application using the FTP component
We’ll need to add the necessary links to our project. Therefore, click on "Links" and select "Add link"
We’ll need to select such links - ComponentPro.Ftp.dll, ComponentPro.Common.dll, ComponentPro.FileSystem.dll, and ComponentPro.Network.dll. Which, I remind, are in the Extensions.
Working with the code You see a section of code that describes the basic methods for working with the FTP component // Create a new class instance. Ftp client = new Ftp(); // Connect to the FTP server. client.Connect("localhost"); // Authenticate. client.Authenticate("test", "test"); // Upload local file 'c:\test.dat' to '/test.dat'. client.UploadFile("c:\\test.dat", "/test.dat"); // Disconnect. client.Disconnect(); Let's review the basic methods and what they take
The first method that we’ll touch after creating an FTP object is the method of connecting to the server. It has 4 overloads: The first accepts only the string representation of the server name
The second takes a string representation of the server name and the port number where you want to connect
The third takes a string representation of the server name and the SSL security mode There are 3 modes that you choose depending on your requirements...
And the last fourth takes a string representation of the server name, port number, as well as the third parameter - connection security mode
Another example that you can consider is File Upload // Create a new instance of the class. Ftp client = new Ftp(); // Connect to the FTP server. client.Connect("localhost"); // Authentication client.Authenticate("test", "test"); // Download all files and subdirectories from the local folder "c: \ temp" to the remote directory / temp’ client.Upload("c:\\temp", "/temp"); // Download all directories, subdirectories and files corresponding to the specified // the search pattern, from the local folder 'c: \ myfolder2' to the remote '/ myfolder2' folder. client.Upload("c:\\myfolder2", "/myfolder2", "*.cs"); // or you can just put the wildcards in the source path, our component will automatically parse it. // upload all the * .css files from the local 'c: \ myfolder2' folder to the remote '/ myfolder2' folder. client.Upload("c:\\myfolder2\\*.css", "/myfolder2"); // Download the * .cs and * .vb files from the local 'c: \ myfolder2' folder to the remote '/ myfolder2' folder. client.Upload("c:\\myfolder2\\*.cs;*.vb", "/myfolder2"); client.Disconnect();
Conclusions and recommendations After testing this component, I was pleased with its results, as well as the architecture, the name of the methods and all the capabilities of the library. Everything is very accessible and you can easily and quickly work with this component at multiple times , only improving your application. If you are concerned about the performance of your application when you connect and transfer files and folders to FTP or FTP / SSL server, the Ultimate FTP component is perfect for you. It is optimized for socket connections and file transfer protocol and is especially useful in FTP applications where performance is key, for example, when transferring a large number of files and / or large files. Advantages include: Minimizing the resources used - using less volume with faster execution time Performance - the highest possible data transfer speed and file management operations