Pemrograman Windows - haruskah Anda meninggalkan UAC?

11

Apa pengaturan Kontrol Akun Pengguna (UAC) yang disarankan saat mengembangkan pada Windows?

Bahkan pada Win7 saya merasa cukup menjengkelkan untuk mematikannya (karena itu membuat saya lebih produktif dengan itu) tetapi kadang-kadang saya merasa buruk karena saya tahu saya akan menemukan lebih banyak masalah dalam kode saya jika saya meninggalkannya.

Brian R. Bondy
sumber
"Ini bekerja di mesin saya!" Respons klasik dari pengembang yang diberi tahu tentang masalah dengan perangkat lunaknya. Ini bisa disebabkan oleh perbedaan dalam hak akses, sumber daya perangkat keras atau pustaka yang diinstal (dan kemudian beberapa). Coba sadari keterbatasan yang mungkin dimiliki mesin pengguna dibandingkan dengan milik Anda dan uji apakah Anda bisa sebelum rilis. Karena ... "Kami tidak mengirimkan mesin Anda!"
Martin Maat

Jawaban:

16

Rekomendasi (bahkan dari Microsoft) adalah membiarkannya ON, dan juga untuk menjalankan IDE Anda yang tidak diinginkan bila memungkinkan.

Pertama-tama, ini memaksa programmer untuk hidup dengan "gangguan" yang sama dengan yang dimiliki pengguna dunia nyata (jika Anda tidak mengetahuinya, apakah Anda akan memprogram dengan benar di sekitarnya?).

Kemudian, menonaktifkan UAC dan bekerja sebagai administrator sama buruknya dengan di Unix untuk bekerja sebagai root (dekade kebijaksanaan umum akan memberi tahu Anda mengapa itu buruk).

Wizard79
sumber
4
Windows bukan linux, itu bukan perbandingan yang bagus ..
Thomas Bonini
9
@ Kop: berjalan dengan hak penuh penuh baik atau buruk terlepas dari OS ... Saya tidak bisa melihat bagaimana Windows dan UNIX / Linux berbeda dalam hal itu.
Wizard79
1
@Brian: Masih ada beberapa perpustakaan yang memerlukan hak admin (seperti mengembangkan untuk Azure), tetapi sebagian besar tugas dapat dilakukan sebagai non-admin.
Agent_9191
2
@Walter: Anda dapat membuat layanan windows tidak terangkat. Anda memerlukan hak tinggi untuk menginstal / menghapus layanan. Anda seharusnya tidak pernah menginstal sesuatu langsung dari IDE, jadi command prompt yang ditinggikan berfungsi lebih baik karena itulah yang akhirnya akan digunakan oleh IT Pro.
Agent_9191
2
@ zneak: Anda salah. Dari sudut pandang teknis menjadi pengguna root dari Administrator (atau admin yang ditinggikan dengan UAC) adalah hal yang persis sama. Tentu saja Anda tidak dapat menggunakan perintah format pada partisi sistem, tetapi ini hanya pilihan UI. Anda dapat menggunakan program pihak ketiga yang memformat menghapus partisi sistem, atau apa pun.
Wizard79
4

Terlepas dari apakah Anda memprogramnya hidup atau mati, Anda harus menguji program Anda dengan akun pengguna yang terbatas. Ini akan menangkap sebagian besar masalah yang mungkin dialami pengguna saat menjalankan program dengan akun terbatas atau pengaktifan UAC.

agar-agar
sumber
Masalahnya adalah, jika Anda memiliki UAC OFF, Anda harus memiliki mesin khusus atau mesin virtual dengan ON untuk pengujian.
Wizard79
Bahkan jika UAC dimatikan, akun terbatas masih akan membiarkan Anda menguji hak istimewa terbatas.
Gelatin
2
Anda perlu menguji skenario tidak diselewengkan baik pribadi maupun istimewa.
Ben Voigt
4

Saya menggunakan Windows 7 dan meninggalkan UAC dan akun saya bukan akun admin yang sebenarnya. Jadi ketika saya bertemu UAC, saya harus memasukkan kata sandi admin untuk melanjutkan. Bahkan di bawah Vista saya tetap menggunakannya. Saya telah mendengar sejumlah pengembang mengatakan itu menghalangi, tetapi saya belum melihatnya. Di bawah Vista itu adalah masalah yang lebih besar karena beberapa area agak terlalu membatasi.

Pertanyaan saya selalu muncul ketika pengembang mengatakan UAC menghalangi adalah "Apa yang Anda lakukan sehingga Anda terus berlari ke dalamnya?". Jika Anda mencoba memanipulasi file dalam folder sistem (Windows, Program Files, situs IIS), Anda melakukan sesuatu yang salah. Situs web IIS dapat ada di luar C: \ inetpub. Database pengguna SQL Server bisa ada di luar File Program. Satu-satunya waktu Anda secara teratur melihat prompt UAC adalah pemasangan dan pembaruan aplikasi. Jika Anda melihatnya lebih sering, Anda cenderung bekerja melawan sistem daripada dengan itu.

Agent_9191
sumber
2
Visual Studio tidak akan membiarkan Anda membuka proyek aplikasi web yang di-host IIS kecuali itu berjalan tinggi.
Heinzi
Untuk memperluas titik @ Heinzi, jika saya menjalankan dua versi aplikasi yang sama (mis. Dua cabang SVN yang masing-masing disimpan di lokasi yang berbeda), Anda memerlukan VS studio untuk dapat mengatur IIS ke folder yang benar yang sedang Anda kerjakan (yaitu solusi terakhir yang Anda buka dari keduanya). Tanpa hak yang lebih tinggi, Anda tidak hanya harus memperbarui IIS secara manual, Anda juga berisiko lupa dan menguji versi aplikasi yang sama sekali berbeda (di browser) daripada yang Anda kembangkan (dalam VS)
Flater
1

IMHO, itu bermuara pada apa yang Anda lakukan.

Dalam pekerjaan saya saat ini saya dev aplikasi web dan layanan windows. Karena itu saya menemukan diri saya lebih produktif dengan itu. Jika saya bekerja pada aplikasi yang akan diinstal pengguna, saya akan membiarkannya sehingga saya bisa sedekat mungkin dengan apa yang akan dialami pengguna.


sumber
Bagaimana tidak membantu UAC? Pengembangan aplikasi web seharusnya tidak memerlukan hak admin, kecuali untuk mengatur IIS pada awalnya. Layanan Windows akan memerlukan hak admin untuk memulai dan menghentikan, tetapi melalui jendela perintah tunggal dan net start/stopAnda memiliki prompt UAC tunggal. Kalau tidak, Anda harus memiliki logika yang dibangun sehingga Anda memiliki pelari baris perintah dan pelari Layanan Win.
Agent_9191
Ini tidak membantu pengembangan, tetapi menghilangkan gangguan UAC. Jika Anda tidak memerlukannya untuk mensimulasikan akses rendah matikan; jika tidak biarkan
2
Men-debug aplikasi web yang di-host di IIS membutuhkan hak-hak tinggi yang saya percaya.
FinnNk