ASP.NET 4.5.2 Hosting Indonesia – JaringanHosting.com :: Bagaimana Mengkompress Folder Dengan ASP.NET 4.5.2

Terkadang, kita harus menggabungkan beberapa file menjadi satu atau disebut juga mengkompress sebelum kita mengirimnya ke seseorang yang kemudian itu juga akan mempermudah pekerjaan kita. Sebagai contoh, jika kita menggunakan ASP.NET 4.5.2 yang memungkinkan pengguna untuk mendownload beberapa file kita tadi secara bertahap atau mendownload file tersebut satu-satu, lebih baik kita mengkompress atau menggabungkan beberapa file tadi menjadi satu didalam ZIP, yang kemudian akan mempermudah pengguna untuk mendownload hanya sekali tanpa harus mendownload satu-satu atau bertahap. Dengan ini kita juga telah menghemat tanpa harus membuang-buang waktu. Di dalam artikel ini kami akan membagikan sebuah cara sederhana untuk membuat duplikat dari post kita tanpa menggunakan FTP. Di dalam artikel ini kami akan mmemberikan solusi untuk menciptakan sebuah URL yang memungkinkan kita untuk men-download folder tulisan yang dikompress ke dalam ZIP Archive. Untuk melakukan zipping, kami menggunakan DotNetZip yang tersedia sebagai paket nuget dan memiliki bersih API bagus.

ASP.NET 4.5.2 Hosting Indonesia – JaringanHosting.com

Kemudian pada tampilan Razor (misalnya export.cshtml), kode berikut dapat digunakan untuk membuat arsip zip:

Sangat mudah bukan? Pada baris  kode di atas kami juga telah menunjukkan bagaimana untuk menambahkan Readme.txt kustom kita sendiri dengan string. Jika anda lebih suka menambahkan setiap file secara manual, hanya perlu penghitungan file untuk ditambahkan ke zip.AddFiles. Akhirnya,  hal itu mungkinbukan ide bagus untuk membiarkan siapa pun mengaksesnya, sehingga Anda dapat melindungi dengan panggilan sederhana untuk isAuthenticated:
if (User.Identity.IsAuthenticated)

 

ASP.NET 4.5.2 Hosting Indonesia bersama JaringanHosting.com :: Cara Schedule Background Jobs Menggunakan QueueBackgroundWorkItem pada ASP.NET 4.5.2

ASP.NET baru-baru ini merilis versi terbarunya yaitu .NET 4.5.2. Pada versi terbarunya ini ASP.NET mendukung HostingEnvironment.QueueBackgroundWorkItem method ini ditemukan dalam namespace System.Web.Hosting. Pada kesempatan ini saya akan menunjukkan bagaimana Anda dapat menggunakannya untuk menjadwalkan item pekerjaan latar belakang dalam aplikasi ASP.NET.
banner-jarhost-2_zps2ea5225d

Metode HostingEnvironment.QueueBackgroundWorkItem memungkinkan Anda menjadwalkan item pekerjaan latar belakang yang kecil. ASP.NET mencegah IIS untuk mengakhiri proses pekerja secara tiba-tiba sampai semua item pekerjaan latar belakang telah selesai.

Alasan untuk menggunakan QueueBackgroundWorkItem adalah Anda tidak perlu khawatir tentang proses pada IIS yang berhenti sebelum waktunya.

Dasar Penggunaan Metode QueueBackgroundWorkItem
Metode QueueBackgroundWorkItem mendefinisikan dua overloads, yang masing-masing menerima satu parameter. Anda dapat melewati salah satu jenis delegasi berikut:
Action
Func<CancellationToken, Task>

Berikut adalah bagaimana Anda bisa melewati ekspresi lambda untuk overload pertama:
HostingEnvironment.QueueBackgroundWorkItem(cancellationToken =>
{
// Some long-running job
});

HostingEnvironment.QueueBackgroundWorkItem(async cancellationToken =>
{
var result = await LongRunningMethodAsync();

// Do something with result
// …
});

private void QueueWorkItem()
{
Func workItem = LongRunningMethodAsync;
HostingEnvironment.QueueBackgroundWorkItem(workItem);
}

private async Task LongRunningMethodAsync(CancellationToken cancellationToken)
{
// Some long-running job
}

Berikut adalah contoh yang lebih lengkap tentang bagaimana QueueBackgroundWorkItem dapat digunakan dalam controller ASP.NET MVC. Setelah menciptakan beberapa model, controller register item pekerjaan latar belakang yang membuat panggilan (berpotensi) lama berjalan ke API remote:
public class FooController : Controller
{
[HttpPost] public ActionResult Create(FooInputModel input)
{
// Process the input somehow
// ...

Action workItem = PostToRemoteService;
HostingEnvironment.QueueBackgroundWorkItem(workItem);

return View();
}

private async void PostToRemoteService(CancellationToken cancellationToken)
{
using (var client = new HttpClient())
{
var response = await client.PostAsync(“http://example.com/endpoint”,
new StringContent(“…”), cancellationToken);

// Do something with response
// …
}
}

// More action methods
// …
}