Pasti ada cara yang lebih baik daripada hanya "Penerbitan" di Visual Studio dan kemudian harus secara manual FTP file yang telah berubah?
Pisau cukur Occam biasanya merupakan pendekatan yang disukai: semakin sederhana, semakin baik. FTP mudah dengan sedikit atau tanpa komplikasi. Beberapa orang menggunakan XCOPY, Filezilla atau WSFTP, yang lain mungkin menggunakan MS Web Deployment Tool (yang saya belum kenal), tetapi secara keseluruhan, ada cara yang lebih baik untuk menggunakan aplikasi web ASP.NET (dan lainnya aplikasi secara umum). IMO, jika penyebaran dipertimbangkan dari awal pengembangan, penyebaran bisa diintegrasikan dengan aplikasi web yang membuat penyebaran yang relatif bebas rasa sakit dan lancar di masa depan.
Sebagai pengembang .NET yang telah bekerja di beberapa perusahaan yang mengembangkan aplikasi web ASP.NET mulai dari ukuran, kompleksitas, dan jumlah pengguna (dari beberapa ratus pengguna hingga puluhan ribu), 'penyebaran' IMO sering kali merupakan topik paling "cair". Beberapa organisasi mengambil terlalu jauh dalam hal birokrasi sementara yang lain tidak menangani masalah dengan penyebaran sama sekali. Dalam pengalaman saya, masalah dengan penyebaran cenderung masuk ke dalam 1 atau lebih dari 3 kategori dalam hal kesulitan / kegagalan:
Penempatan diabaikan / dilupakan secara mendalam selama fase desain:
Sebagian besar aplikasi web cenderung menggabungkan server web dan database. Di luar kode aplikasi, mungkin beberapa prosedur tersimpan dan tabel database, penyebaran tidak perlu banyak dipikirkan. ASP.NET lebih dari mampu membantu dalam penyebaran tetapi paling sering pengembang terganggu dalam hal menjalankan aplikasi yang sebenarnya dan melakukan tugasnya sambil meninggalkan bagaimana penyebaran sebagai masalah yang terpisah.
Penempatannya rumit di banyak sistem dan orang yang bermain:
Kompleksitas itu menyebalkan. Dari MSMQ, prosedur dan pemicu tersimpan T-SQL, Layanan Pelaporan, pesan SOAP / XML, otentikasi AD, SSAS / SSIS, dll. Jumlah teknologi yang dimainkan meningkatkan jumlah orang yang terlibat. Yang terburuk, semua komponen yang berbeda ini biasanya dikelola oleh entitas yang berbeda dalam suatu organisasi. Kecuali setiap orang sinkron satu sama lain, penerapan dapat meningkatkan kompleksitas dengan cepat yang mengarah ke beberapa titik kegagalan.
Kemalasan, apatis atau kurangnya komunikasi dan / atau manajemen:
Dari sedikit hingga tidak ada dokumentasi hingga kurangnya komunikasi dan protokol yang terkoordinasi, mudah untuk mengacaukan proses yang relatif sederhana. Penempatan harus menjadi prosedur sederhana dengan banyak pemeriksaan di tempat sambil mendokumentasikan apa yang sudah dilakukan, tetapi seringkali tidak pernah demikian. Kebanyakan orang hanya ingin situs sialan itu berjalan. Dalam pengalaman saya, orang-orang (non-programmer) tidak terlalu peduli sampai sesuatu berjalan sangat fubar. Tanggung jawab jarang jatuh pada hanya satu orang untuk benar - benar melakukan penempatan karena tidak ada yang benar-benar ingin menjadi alasan kegagalan sehingga akuntabilitas biasanya dibubarkan.
Ada begitu banyak pengecualian file fiddly sehingga saya harus mengotomatiskan proses sebanyak mungkin, untuk mencegah unggahan yang tidak disengaja. Jadi bagaimana tim Anda melakukannya?
Saya tidak tahu ada vendor untuk mengotomatiskan penyebaran meskipun saya tidak akan terkejut jika ada beberapa. Anda mungkin dapat membuat skrip solusi melalui VBScript / WMI atau skrip batch solusi, tetapi kenyataannya adalah Anda perlu menyesuaikan solusi bersama untuk situs ASP.NET yang lebih kompleks. Situs-situs sederhana yang terdiri dari halaman, konektivitas basis data, dan tidak ada yang lain, Anda tidak perlu melakukan skala yang hampir sama dengan upaya penempatan Anda sejalan dengan kompleksitas aplikasi itu sendiri.
Sejauh ini, saat ini penyebaran pekerjaan saya masih dilakukan melalui FTP dan memindahkan banyak file. Ini jelek, mudah dikacaukan dan tidak ada rasa sejarah yang akurat. Memang Anda bisa menyisir log FTP, tidak ada yang benar-benar ingin melakukannya. Aplikasi kami cukup sederhana tanpa banyak kebutuhan di luar FTP. Bagaimana tim saya menyebarkan aplikasi web kami sangat tidak berguna bagi Anda. Sebaliknya, saya lebih suka menggunakan kesempatan ini untuk menyarankan praktik yang lebih baik .
- Asumsikan tidak ada. Akun pengguna, hak istimewa R / W / X, ACL, firewall, waktu (kapan harus digunakan dan berapa banyak waktu yang harus Anda lakukan), dan jika mungkin, uji penyebaran ke semua lingkungan sebelum "tanggal peluncuran" final.
- Sebelum pembangunan benar-benar dimulai, faktor penyebaran ke dalam pembangunan. Jika itu situs yang sederhana, biarlah. Jika ada banyak bagian yang bergerak, faktor semua itu dan benar-benar membangun rencana di mana semua komponen (kode, database, laporan, antrian, dll.) Semuanya berada di rencana yang sama.
- Berkoordinasi dengan paritas lain dan berkomunikasi secara efektif dan efisien.
- Dokumentasikan sebanyak mungkin informasi terkait.
- Lingkungan: satu server web vs. pertanian web; 32-bit vs 64-bit; temukan cara untuk memonitor log / error / rotate, dll.
- Temukan (atau bangun) alat yang dapat membantu dalam penyebaran.
- Jika memungkinkan untuk penerapan yang dapat diprogram, pilih paradigma dan patuhi. Misalnya, jika Anda ingin menggunakan server basis data sebagai sarana utama untuk menjalankan status aplikasi, penyebaran, akses, dan semacamnya, pangganglah ke dalam aplikasi dan tetap menggunakannya. Jika Anda lebih suka membaca file XML (seperti web.config) dengan segala cara, tetaplah dengan paradigma yang konsisten dalam menyebarkan aplikasi. Contoh lain: beberapa organisasi meninggalkan web.config sebagai file statis di setiap lingkungan yang tidak boleh digunakan untuk lingkungan lain. Program web.config lainnya sedemikian rupa sehingga dapat digunakan di seluruh lingkungan tanpa kesalahan.
Saya menyadari bahwa posting ini mungkin berlebihan untuk pertanyaan yang semula ditanyakan. Sayangnya, penyebaran tidak mudah karena aplikasi dapat bervariasi dalam kompleksitas. Saya berani bertaruh bahwa sebagian besar organisasi yang menggunakan aplikasi ASP.NET yang kompleks dari waktu ke waktu mengembangkan strategi tertentu pekerjaan (setidaknya) andal.