ASP.NET Penyebaran Web menggunakan Visual Studio: Pengantar
oleh Tom Dykstra
Seri tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) aplikasi web ASP.NET ke Azure App Service Web Apps atau penyedia hosting pihak ketiga, dengan menggunakan Visual Studio 2012 dengan Azure SDK untuk .NET. Sebagian besar prosedurnya mirip untuk Visual Studio 2013.
Anda mengembangkan aplikasi web untuk membuatnya tersedia bagi orang-orang melalui Internet. Tetapi tutorial pemrograman web biasanya berhenti tepat setelah mereka menunjukkan kepada Anda cara mendapatkan sesuatu yang bekerja di komputer pengembangan Anda. Rangkaian tutorial ini dimulai di mana yang lain pergi: Anda telah membangun aplikasi web, mengujinya, dan siap untuk pergi. Apa selanjutnya? Tutorial ini menunjukkan kepada Anda cara menyebarkan terlebih dahulu ke IIS di komputer pengembangan lokal Anda untuk pengujian, lalu ke Azure atau penyedia hosting pihak ketiga untuk penahapan dan produksi. Aplikasi sampel yang akan Anda sebarkan adalah proyek aplikasi web yang menggunakan Kerangka Kerja Entitas, SQL Server, dan sistem keanggotaan ASP.NET. Aplikasi sampel menggunakan ASP.NET Web Forms, tetapi prosedur yang ditampilkan juga berlaku untuk ASP.NET MVC dan Web API.
Tutorial ini mengasumsikan Anda tahu cara bekerja dengan ASP.NET di Visual Studio. Jika tidak, tempat yang baik untuk memulai adalah tutorial dasar ASP.NET Web Forms atau tutorial dasar ASP.NET MVC.
Jika Anda memiliki pertanyaan yang tidak terkait langsung dengan tutorial, Anda dapat mempostingnya ke forum penyebaran ASP.NET atau StackOverflow.
Gambaran Umum
Tutorial ini memandu Anda menyebarkan aplikasi web ASP.NET yang menyertakan database SQL Server. Anda akan menyebarkan terlebih dahulu ke IIS di komputer pengembangan lokal Anda untuk pengujian, lalu Web Apps di database Azure App Service dan Azure SQL untuk penahapan dan produksi. Anda akan melihat cara menyebarkan dengan menggunakan publikasi satu klik Visual Studio, dan Anda akan melihat cara menyebarkan menggunakan baris perintah.
Jumlah tutorial mungkin membuat proses penyebaran tampak menakutkan. Bahkan, prosedur dasarnya sederhana. Namun, dalam situasi dunia nyata, Anda sering kali perlu melakukan tugas penyebaran ekstra — misalnya, mengatur izin folder di server target. Kami telah mengilustrasikan beberapa tugas tambahan ini, dengan harapan bahwa tutorial tidak meninggalkan informasi yang mungkin mencegah Anda berhasil menyebarkan aplikasi nyata.
Tutorial dirancang untuk berjalan secara berurutan, dan setiap bagian dibangun pada bagian sebelumnya. Anda dapat melewati bagian yang tidak relevan dengan situasi Anda, tetapi kemudian Anda mungkin harus menyesuaikan prosedur dalam tutorial selanjutnya.
Audiens yang dituju
Tutorial ini ditujukan untuk ASP.NET pengembang yang bekerja di lingkungan tempat:
- Lingkungan produksi Azure App Service Web Apps atau penyedia hosting pihak ketiga.
- Penyebaran tidak terbatas pada proses integrasi berkelanjutan tetapi dapat dilakukan langsung dari Visual Studio.
Penyebaran dari kontrol sumber menggunakan proses pengiriman berkelanjutan tidak tercakup dalam tutorial ini kecuali untuk satu tutorial yang menunjukkan cara menyebarkan dari baris perintah. Untuk informasi tentang pengiriman berkelanjutan, lihat sumber daya berikut ini:
- Integrasi Berkelanjutan dan Pengiriman Berkelanjutan (Membangun Real-World Cloud Apps dengan Windows Azure)
- Menyebarkan aplikasi web di Azure App Service
- Menyebarkan Aplikasi Web dalam Skenario Perusahaan (Serangkaian tutorial lama yang ditulis untuk Visual Studio 2010, yang masih memiliki informasi berguna untuk lingkungan perusahaan.)
Menggunakan penyedia hosting pihak ketiga
Tutorial ini membawa Anda melalui proses pengaturan akun Azure dan menyebarkan aplikasi untuk Web Apps di Azure App Service untuk penahapan dan produksi. Namun, Anda dapat menggunakan prosedur dasar yang sama untuk menyebarkan ke penyedia hosting pihak ketiga pilihan Anda. Di mana tutorial membahas proses yang unik untuk Azure, mereka menjelaskan bahwa dan menyarankan perbedaan apa yang dapat Anda harapkan di penyedia hosting pihak ketiga.
Menyebarkan proyek aplikasi web
Aplikasi sampel yang Anda unduh dan sebarkan untuk tutorial ini adalah proyek aplikasi web Visual Studio. Namun, jika Anda menginstal Pembaruan Penerbitan Web terbaru untuk Visual Studio, Anda dapat menggunakan metode dan alat penyebaran yang sama untuk proyek aplikasi web.
Menyebarkan proyek MVC ASP.NET
Aplikasi sampel adalah proyek ASP.NET Web Forms, tetapi semua yang Anda pelajari cara melakukannya juga berlaku untuk ASP.NET MVC. Proyek Visual Studio MVC hanyalah bentuk lain dari proyek aplikasi web. Satu-satunya perbedaan adalah bahwa jika Anda menyebarkan ke penyedia hosting yang tidak mendukung ASP.NET MVC atau versi target Anda, Anda harus memastikan bahwa Anda telah menginstal paket NuGet (MVC 3, MVC 4, atau MVC 5) yang sesuai dalam proyek Anda.
Bahasa pemrograman
Aplikasi sampel menggunakan C# tetapi tutorial tidak memerlukan pengetahuan tentang C#, dan teknik penyebaran yang ditunjukkan oleh tutorial tidak spesifik bahasa.
Metode penyebaran database
Ada tiga cara untuk menyebarkan database SQL Server bersama dengan penyebaran web di Visual Studio:
- Migrasi Pertama Kode Kerangka Kerja Entitas
- Penyedia dbDacFx Web Deploy
- Penyedia Penyebaran Web dbFullSql
Dalam tutorial ini Anda akan menggunakan dua metode pertama ini. Penyedia dbFullSql Web Deploy adalah metode warisan yang tidak lagi direkomendasikan kecuali untuk beberapa skenario tertentu seperti migrasi dari SQL Server Compact ke SQL Server.
Metode yang ditunjukkan dalam tutorial ini adalah untuk database SQL Server, bukan SQL Server Compact. Untuk informasi tentang cara menyebarkan database SQL Server Compact, lihat Penyebaran Web Visual Studio Dengan SQL Server Compact.
Metode yang ditunjukkan dalam tutorial ini mengharuskan Anda menggunakan metode penerbitan Web Deploy. Jika Anda lebih suka metode penerbitan yang berbeda, seperti FTP, Sistem File, atau FPSE, lihat Menyebarkan database secara terpisah dari penyebaran aplikasi web di Peta Konten Penyebaran Web untuk Visual Studio dan ASP.NET.
Migrasi Pertama Kode Kerangka Kerja Entitas
Dalam Entity Framework versi 4.3, Microsoft memperkenalkan Migrasi Pertama Kode. Migrasi Pertama Kode mengotomatiskan proses pembuatan perubahan inkremental pada model data dan menyebarkan perubahan tersebut ke database. Di versi Code First yang lebih lama, Anda biasanya membiarkan Kerangka Kerja Entitas menghilangkan dan membuat ulang database setiap kali Anda mengubah model data. Ini bukan masalah dalam pengembangan karena data pengujian mudah dibuat ulang, tetapi dalam produksi Anda biasanya ingin memperbarui skema database tanpa menghilangkan database. Fitur Migrasi memungkinkan Kode Pertama memperbarui database tanpa menghilangkan dan membuatnya kembali. Anda dapat membiarkan Code First secara otomatis memutuskan cara membuat perubahan skema yang diperlukan, atau Anda dapat menulis kode yang menyesuaikan perubahan. Untuk pengenalan Migrasi Pertama Kode, lihat Migrasi Pertama Kode.
Saat Anda menyebarkan proyek web, Visual Studio dapat mengotomatiskan proses penyebaran database yang dikelola oleh Migrasi Pertama Kode. Saat membuat profil penerbitan, Anda memilih kotak centang berlabel Jalankan Migrasi Pertama Kode (berjalan saat aplikasi dimulai). Pengaturan ini menyebabkan proses penyebaran secara otomatis mengonfigurasi file Web.config aplikasi di server tujuan sehingga Code First menggunakan kelas inisialisasi MigrateDatabaseToLatestVersion
.
Visual Studio tidak melakukan apa pun dengan database selama proses penyebaran. Ketika aplikasi yang disebarkan mengakses database untuk pertama kalinya setelah penyebaran, Code First secara otomatis membuat database atau memperbarui skema database ke versi terbaru. Jika aplikasi menerapkan metode Migrations Seed, metode berjalan setelah database dibuat atau skema diperbarui.
Dalam tutorial ini, Anda akan menggunakan Migrasi Pertama Kode untuk menyebarkan database aplikasi.
Penyedia dbDacFx Web Deploy
Untuk database SQL Server yang tidak dikelola oleh Kode Kerangka Kerja Entitas Terlebih Dahulu, Anda bisa memilih kotak centang yang berlabel Perbarui database saat Mengonfigurasi profil penerbitan. Selama penyebaran awal, penyedia dbDacFx membuat tabel dan objek database lainnya di database tujuan agar sesuai dengan database sumber. Pada penyebaran berikutnya, penyedia menentukan apa yang berbeda antara database sumber dan tujuan, dan memperbarui skema database tujuan agar sesuai dengan database sumber. Secara default, penyedia tidak akan membuat perubahan apa pun yang menyebabkan kehilangan data, seperti saat tabel atau kolom dihilangkan.
Metode ini tidak mengotomatiskan penyebaran data dalam tabel database, tetapi Anda dapat membuat skrip untuk melakukannya dan mengonfigurasi Visual Studio untuk menjalankannya selama penyebaran. Alasan lain untuk menjalankan skrip selama penyebaran adalah untuk membuat perubahan skema yang tidak dapat dilakukan secara otomatis karena akan menyebabkan kehilangan data.
Dalam tutorial ini, Anda akan menggunakan penyedia dbDacFx untuk menyebarkan database keanggotaan ASP.NET.
Pemecahan masalah selama tutorial ini
Ketika kesalahan terjadi selama penyebaran, atau jika situs yang disebarkan tidak berjalan dengan benar, pesan kesalahan tidak selalu memberikan solusi yang jelas. Untuk membantu Anda dengan beberapa skenario masalah umum, halaman referensi pemecahan masalah tersedia. Jika Anda mendapatkan pesan kesalahan atau sesuatu tidak berfungsi saat Anda melalui tutorial, pastikan untuk memeriksa halaman pemecahan masalah.
Komentar selamat datang
Komentar pada tutorial dipersilakan, dan ketika tutorial diperbarui setiap upaya akan dilakukan untuk memperhitungkan koreksi atau saran untuk perbaikan yang diberikan dalam komentar tutorial.
Prasyarat
Tutorial ini ditulis untuk produk-produk berikut:
- Windows 8 atau Windows 7.
- Visual Studio 2012 atau Visual Studio 2012 Express for Web dengan pembaruan terbaru.
- Azure SDK untuk Visual Studio 2012
Anda dapat mengikuti tutorial dengan menggunakan Visual Studio 2010 SP1 atau Visual Studio 2013, tetapi beberapa cuplikan layar akan berbeda dan beberapa fitur akan berbeda.
Jika Anda menggunakan Visual Studio 2013, instal Azure SDK untuk Visual Studio 2013.
Jika Anda menggunakan Visual Studio 2010 SP1, instal perangkat lunak berikut:
Bergantung pada berapa banyak dependensi SDK yang sudah Anda miliki di komputer Anda, menginstal Azure SDK bisa memakan waktu lama, dari beberapa menit hingga setengah jam atau lebih. Anda memerlukan Azure SDK bahkan jika Anda berencana untuk menerbitkan ke penyedia hosting pihak ketiga alih-alih ke Azure, karena SDK menyertakan pembaruan terbaru untuk fitur penerbitan web Visual Studio.
Catatan
Tutorial ini ditulis dengan versi 1.8.1 dari Azure SDK. Sejak itu, versi yang lebih baru dengan fitur tambahan telah dirilis. Tutorial telah diperbarui untuk menyebutkan fitur-fitur ini dan menautkan ke sumber daya yang memiliki informasi lebih lanjut tentang mereka.
Instruksi dan cuplikan layar didasarkan pada Windows 8, tetapi tutorial menjelaskan perbedaan untuk Windows 7.
Beberapa perangkat lunak lain diperlukan untuk menyelesaikan tutorial, tetapi Anda belum harus menginstalnya. Tutorial ini akan memanding Anda melalui langkah-langkah untuk menginstalnya ketika Anda membutuhkannya.
Mengunduh aplikasi contoh
Aplikasi yang akan Anda sebarkan bernama Contoso University dan telah dibuat untuk Anda. Ini adalah versi yang disederhanakan dari situs web universitas, berdasarkan secara longgar pada aplikasi Contoso University yang dijelaskan dalam tutorial Kerangka Kerja Entitas di situs ASP.NET.
Ketika Anda memiliki prasyarat yang terinstal, unduh aplikasi web Contoso University. File .zip berisi beberapa versi proyek. Untuk bekerja melalui langkah-langkah tutorial, mulailah dengan proyek yang terletak di folder C#. Untuk melihat seperti apa proyek di akhir tutorial, buka proyek di folder ContosoUniversity-End.
Untuk menyiapkan proyek untuk bekerja melalui langkah-langkah tutorial, lakukan langkah-langkah berikut:
Simpan file solusi ContosoUniversity dari folder C# di folder bernama ContosoUniversity di folder apa pun yang Anda gunakan untuk bekerja dengan proyek Visual Studio.
Secara default ini adalah folder berikut untuk Visual Studio 2012:
C:\Users\<username>\Documents\Visual Studio 2012\Projects
(Untuk cuplikan layar dalam tutorial ini, folder proyek terletak di direktori akar pada
C
: drive.)Mulai Visual Studio dan buka proyek.
Di Penjelajah Solusi, klik kanan solusi dan klik AktifkanPulihkan Paket NuGet.
Bangun solusinya.
Jika Anda mendapatkan kesalahan kompilasi, pulihkan paket NuGet secara manual:
- Di Penjelajah Solusi, klik kanan solusi, lalu klik Kelola Paket NuGet untuk Solusi.
- Di bagian atas kotak dialog Kelola Paket NuGet , Anda akan melihat Beberapa paket NuGet hilang dari solusi ini. Klik untuk memulihkan. Klik tombol Pulihkan .
- Bangun kembali solusinya.
Tekan CTRL-F5 untuk menjalankan aplikasi.
Aplikasi ini terbuka untuk halaman beranda Universitas Contoso.
(Mungkin ada waktu tunggu saat Visual Studio memulai instans SQL Server Express LocalDB, dan Anda mungkin mendapatkan kesalahan waktu habis jika proses tersebut memakan waktu terlalu lama. Dalam hal ini, mulai proyek lagi.)
Halaman situs web dapat diakses dari bilah menu dan memungkinkan Anda melakukan fungsi berikut:
- Tampilkan statistik siswa (halaman Tentang).
- Tampilkan, edit, hapus, dan tambahkan siswa.
- Tampilkan dan edit kursus.
- Tampilkan dan edit instruktur.
- Menampilkan dan mengedit departemen.
Berikut ini adalah cuplikan layar dari beberapa halaman perwakilan.
Meninjau fitur aplikasi yang memengaruhi penyebaran
Fitur aplikasi berikut memengaruhi cara Anda menyebarkannya atau apa yang harus Anda lakukan untuk menyebarkannya. Masing-masing dijelaskan secara lebih rinci dalam tutorial berikut dalam seri.
- Contoso University menggunakan database SQL Server untuk menyimpan data aplikasi seperti nama siswa dan instruktur. Database berisi campuran data pengujian dan data produksi, dan saat Anda menyebarkan ke produksi, Anda perlu mengecualikan data pengujian.
- Aplikasi ini menggunakan sistem keanggotaan ASP.NET, yang menyimpan informasi akun pengguna dalam database SQL Server. Aplikasi mendefinisikan pengguna administrator yang memiliki akses ke beberapa informasi terbatas. Anda perlu menyebarkan database keanggotaan tanpa akun pengujian tetapi dengan akun administrator.
- Aplikasi ini menggunakan utilitas pencatatan dan pelaporan kesalahan pihak ketiga. Utilitas ini disediakan dalam perakitan yang harus disebarkan dengan aplikasi.
- Utilitas pengelogan kesalahan menulis informasi kesalahan dalam file XML ke folder file. Anda harus memastikan bahwa akun yang ASP.NET jalankan di bawah di situs yang disebarkan memiliki izin tulis ke folder ini, dan Anda harus mengecualikan folder ini dari penyebaran. (Jika tidak, data log kesalahan dari lingkungan pengujian mungkin disebarkan ke file log kesalahan produksi dan/atau produksi mungkin dihapus.)
- Aplikasi ini mencakup beberapa pengaturan yang harus diubah dalam file Web.config yang disebarkan tergantung pada lingkungan tujuan (pengujian, penahapan, atau produksi), dan pengaturan lain yang harus diubah tergantung pada konfigurasi build (Debug atau Rilis).
- Solusi Visual Studio mencakup proyek pustaka kelas. Hanya rakitan yang dihasilkan proyek ini yang harus disebarkan, bukan proyek itu sendiri.
Ringkasan
Dalam tutorial pertama dalam seri ini, Anda telah mengunduh sampel proyek Visual Studio dan meninjau fitur situs yang memengaruhi cara Anda menyebarkan aplikasi. Dalam tutorial berikut, Anda mempersiapkan penyebaran dengan menyiapkan beberapa hal ini untuk ditangani secara otomatis. Lainnya yang Anda jaga secara manual.