Saya memiliki situs web ASP.NET 3.5 (istilah studio visual), tetapi situs tersebut terus berkembang dan terlihat agak koboi di antara hal-hal lainnya. Saya ingin melihat ini diubah menjadi Aplikasi Web (ruang nama dan semua).
Apakah ini sesuatu yang dapat dilakukan dengan mudah di Visual Studio? Jika tidak, apakah ada alat lain di luar sana yang dapat membuat semua ruang nama, dll secara otomatis?
asp.net
visual-studio
web-applications
RSolberg
sumber
sumber
Jawaban:
sumber
Petunjuk: Mengubah proyek situs Web menjadi proyek aplikasi Web di Visual Studio di MSDN
Jika aplikasi website Anda berkembang .. lebih baik bagi menjadi beberapa project. Konversi dari proyek Situs Web ke proyek Aplikasi Web tidak akan banyak membantu.
sumber
Jika Anda mengalami masalah dalam membuat Proyek Aplikasi Web baru Anda, periksa Properti File di Visual Studio dari semua kelas 'pembantu'. Untuk proyek yang saya ubah, Build Action disetel ke Konten sedangkan seharusnya Kompilasi.
sumber
Buat Aplikasi Web Baru di VS 2010.
1. Menggunakan Windows Explorer salin semua file Anda ke folder proyek Anda.
2. Dalam penjelajah solusi VS 2010 menampilkan semua file.
3. Pilih file dan folder - klik kanan termasuk dalam proyek.
4. Klik kanan penjelajah solusi proyek dan pilih Konversi ke Aplikasi Web.
Ada beberapa perbedaan kecil, seperti folder App_Code akan diganti namanya menjadi old_app_code - yang secara mengejutkan tidak menyebabkan kesalahan. TypeName di sumber data objek Anda dan yang diwariskan pada tag @Page mungkin memerlukan [ProjectName]. prefiks ditambahkan secara global. Misalnya jika nama jenis Anda adalah "BusinessLogic.OrderManager" dan nama proyek Anda adalah InventorySystem, Anda harus mengubahnya menjadi InventorySystem.BusinessLogic.OrderManager. Juga beberapa perubahan tampilan, seperti validator bidang yang diperlukan tidak lagi menggunakan font merah, defaultnya hitam.
sumber
Saya menghadapi masalah yang sama pada awalnya. Setelah mengikuti buku Wrox Professional ASP.NET 4.0, saya menemukan solusi berikut untuk kasus saya.
Saya pertama kali membuat aplikasi web baru. Menyalin semua file situs web ke dalam folder aplikasi web. Klik kanan pada aplikasi, dan klik konversi ke aplikasi web.
Anda mungkin bertanya mengapa Anda perlu mengubah aplikasi web menjadi aplikasi web. Jawabannya adalah, ketika Anda membuat situs web, Anda cukup membuat kode file .cs di mana pun diperlukan. Sebuah aplikasi web, bagaimanapun mendeklarasikan .design.cs (atau .vb) dan file .cs untuk bagian kode dan desain secara otomatis.
BERIKUTNYA: Hapus semua referensi manual, seperti atribut 'Warisan' di direktif PAGE, ke file lain di situs web Anda, karena spasi nama AKAN menangani referensi kelas secara terpusat.
Saya juga menghadapi masalah, karena saya belum memasukkan folder OBJ dan BIN dalam proyek saya. Jika Anda merasa kehilangan folder BIN dan OBJ Anda, cukup klik ikon 'Show All Files' di Solution Explorer dan kemudian klik kanan pada folder yang hilang dan tambahkan ke proyek. (untuk memastikan mereka dikompilasi dengan proyek.)
PEMBARUAN: Seperti yang ditunjukkan @deadlychambers di komentar: Anda dapat mencari di mana saja dengan melakukan "Ctrl + Shift + F" lalu mencari
Inherits="(.*?)"
. Ini akan menemukan semua kejadian dan mungkin menghemat waktu Anda!sumber
Saya sekarang telah berhasil memigrasi satu proyek situs web ke aplikasi web dan ada beberapa hal yang harus diperhatikan.
Memiliki ReSharper yang Anda inginkan sangat membantu dalam refactoring file aspx.
public partial class FolderName_Projectname : Page
Jika perlu, ganti nama semua file menggunakan Resharper atau secara manual. Jika Anda mengalami beberapa kesalahan seperti"There is already a member Page_Load() defined"
, ini kemungkinan besar karena nama kelas dan duplikasi yang salahGanti
CodeFile
di semua halaman aspx denganCodebehind
dan terutama perhatikan file di subfolder Anda. PastikanInhertis=""
tidak berisi jalur relatif. Ruang nama Anda menangani semuanya. Jadi format yang benar adalahInherits="Namespace.classname"
. Jika kelas Anda memiliki namespace NaSpa dan nama file foo.cs itu akan menjadiInherits="NaSpa.foo"
Setelah Anda menyiapkan semua file Anda (jangan lupa halaman master Anda), jalankan "Konversi ke aplikasi web". Jika Anda mengalami kesalahan setelahnya, bilas dan ulangi. Jika Anda mengalami kesalahan seperti "TextBoxName tidak dapat ditemukan jika Anda kehilangan referensi", pastikan Anda tidak lupa untuk membersihkan halaman aspx Anda. Indikator yang baik adalah memeriksa file desainer yang dibuat secara otomatis. Jika
TextBoxName
tidak muncul di sana, konversi tidak berhasil sepenuhnya.sumber
ruang nama ASP default sepertinya tidak berfungsi lagi. Jadi saya tidak bisa memanggil halaman User Controls.ascx saya dari luar halaman. Memberi mereka namespace dan mengubah default dari ASP ke namespace saya sepertinya berhasil.
sumber