codefile vs codebehind
<p>apa perbedaan antara <strong>codefile</strong>= "file.ascx.cs" dan <strong>codebehind</strong>= "file.ascx.cs" dalam deklarasi kontrol pengguna asp.net?</p><p>apakah ada yang lebih baru atau direkomendasikan? atau apakah mereka memiliki penggunaan khusus?</p>
<p><strong>codebehind</strong>: perlu dikompilasi (model asp.net 1.1). biner yang dikompilasi ditempatkan di folder bin dari situs web. anda perlu melakukan kompilasi di visual studio sebelum anda menyebarkan. ini adalah model yang baik ketika anda tidak ingin kode sumber dapat dilihat sebagai teks biasa. misalnya saat mengirim ke pelanggan yang tidak memiliki kewajiban untuk memberikan kode.</p><p><strong>codefile</strong>: anda memberikan solusi untuk penyebaran file sumber. asp.net 2.0 runtime mengkompilasi kode ketika dibutuhkan. file yang dikompilasi berada di microsoft.net [.net version]\temporary asp.net files.</p>
<p>ini telah ditanyakan dalam stack overflow <a href="https://stackoverflow.com/questions/404040/how-do-you-like-your-primary-keys/404057#404057">di sini</a> dan <a href="https://stackoverflow.com/questions/829284/guid-vs-int-identity">di sini</a> .</p><p> <a href="http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html">posting jeff</a> menjelaskan banyak tentang pro dan kontra menggunakan guid.</p><blockquote> <h3>guid pro</h3> <ul> <li>unik di setiap tabel, setiap basis data, dan setiap server</li> <li>mengizinkan penggabungan catatan dengan mudah dari database yang berbeda</li> <li>mengizinkan distribusi basis data dengan mudah di beberapa server</li> <li>anda dapat membuat id di mana saja, alih-alih harus bolak-balik ke database</li> <li>sebagian besar skenario replikasi membutuhkan guid kolom pula</li> </ul> <h3>kontra guid</h3> <ul> <li>ini adalah kekalahan 4 kali lebih besar dari nilai indeks 4 byte tradisional; ini dapat memiliki implikasi kinerja dan penyimpanan yang serius jika anda tidak berhati-hati</li> <li>tidak praktis untuk debug (<code>where userid='{bae7df4-ddf-3rg-5ty3e3rf456as10}'</code>)</li> <li>guid yang dihasilkan sebagian harus berurutan untuk kinerja terbaik (misalnya, <code>newsequentialid()</code> pada sql server 2005+) dan untuk memungkinkan penggunaan indeks berkerumun</li> </ul> </blockquote><p>jika anda yakin tentang kinerja dan anda tidak berencana untuk mereplikasi atau menggabungkan catatan, maka gunakan <code>int</code>, dan atur secara otomatis peningkatan (<em> identitas benih di sql server </em>).</p> <p>semuanya sesuai dengan standar ansi:</p><p> <a href="http://support.microsoft.com/kb/316626">trailing blank menjelaskan</a> :</p><blockquote> <p>sql server mengikuti spesifikasi ansi/iso sql-92 (bagian 8.2, aturan umum # 3) tentang cara membandingkan string dengan spasi. standar ansi membutuhkan padding untuk string karakter yang digunakan dalam perbandingan sehingga panjangnya cocok sebelum membandingkannya. padding secara langsung mempengaruhi semantik predikat klausa where dan having dan perbandingan string transact-sql lainnya. sebagai contoh, transact-sql menganggap string 'abc' dan 'abc' setara untuk sebagian besar operasi perbandingan.</p> <p>satu-satunya pengecualian untuk aturan ini adalah predikat like. ketika sisi kanan dari ekspresi predikat like fitur nilai dengan spasi tambahan, sql server tidak memadatkan dua nilai dengan panjang yang sama sebelum perbandingan terjadi. karena tujuan dari predikat like, menurut definisi, adalah untuk memfasilitasi pencarian pola daripada tes persamaan string sederhana, ini tidak melanggar bagian dari spesifikasi ansi sql-92 yang disebutkan sebelumnya.</p> </blockquote><p>berikut adalah contoh umum dari semua kasus yang disebutkan di atas:</p><pre><code>declare @a varchar(10) declare @b varchar(10) set @a = '1' set @b = '1 ' --with trailing blank select 1 where @a = @b and @a not like @b and @b like @a </code></pre><p>inilah beberapa detail lebih lanjut tentang <a href="http://msdn.microsoft.com/en-us/library/ms179859.aspx">mengeklik kosong dan klausa <code>like</code></a> .</p><p><strong> [~ # ~] tetapi [~ # ~] </strong> jika anda ingin membuatnya berbeda - anda dapat memutuskan untuk menggunakan fungsi <code>datalength</code> alih-alih <code>len</code>, karena</p><pre><code>select 1 where len('john ') = len('john') </code></pre><p>akan menempatkan anda 1 sebagai gantinya</p><pre><code>select 1 where datalength('john ') = datalength('john') </code></pre><p><strong> solusinya </strong> adalah</p><ul> <li>untuk menggunakan fungsi datalength untuk membedakan antara string</li> <li>untuk memasukkan string ke dalam tipe nvarchar - mungkin lebih baik menyatakan tipe ini ke parameter sp</li> </ul> Upload File kotak adalah di mana kita're saat ini jika anda don't ingin melibatkan teknologi lainnya seperti Flash, Java atau ActiveX.


Dengan HTML anda cukup banyak terbatas pada pengalaman anda've dijelaskan (tidak ada progress bar, double menyampaikan, dll). Jika anda bersedia untuk menggunakan beberapa javascript, anda dapat memecahkan beberapa masalah dengan memberikan umpan balik yang upload sedang berlangsung dan bahkan [menunjukkan kemajuan upload](http://www.raditha.com/php/progress.php) (ini adalah hack karena anda tidak't harus melakukan full round-trip ke server dan kembali, tapi setidaknya ia bekerja).


Jika anda bersedia untuk menggunakan Flash (yang tersedia cukup banyak di mana saja dan pada banyak platform), anda dapat mengatasi hampir semua masalah ini. Cepat googling muncul [dua](http://www.downloadsquad.com/2006/11/16/swfupload-open-source-flash-multi-file-upload/) [seperti](http://www.codeproject.com/KB/aspnet/FlashUpload.aspx) komponen, keduanya gratis *dan* open source. Saya tidak pernah menggunakan salah satu dari mereka, tapi mereka terlihat baik. BTW, Flash isn't tanpa masalah yang baik, misalnya ketika menggunakan multi-file uploader untuk slide share, browser yang terus-menerus menerjang pada saya :-(


Mungkin solusi terbaik saat ini adalah untuk mendeteksi secara dinamis jika pengguna memiliki Flash, dan jika itu's kasus, memberikan versi flash uploader, sementara masih membuat itu mungkin untuk memilih HTML dasar satu.


HTH senyawa karbon organik adalah senyawa yang memiliki atom karbon didalamnya dan berasal dari makhluk hidup serta berkaitan dengan proses metabolisme dalam makhluk hidup. perbedaan senyawa karbon organik dan anorganik dapat diamati dalam tabel berikut.
 



 

berdasarkan uraian di atas, senyawa karbon organik dan senyawa karbon anorganik memiliki atom c dalam strukturnya. tetapi, terdapat perbedaan pada 5 aspek sesuai pada tebel diatas.

jadi, perbedaan antara senyawa karbon organik dan senyawa karbon anorganik sesuai uraian di atas. <p>docker awalnya menggunakan <a href="http://lxc.sourceforge.net/">linux containers</a> (lxc), tetapi kemudian beralih ke <a href="https://github.com/opencontainers/runc">runc</a> (sebelumnya dikenal sebagai<strong> libcontainer </strong>), yang berjalan dalam sistem operasi yang sama dengan host-nya. ini memungkinkannya untuk berbagi banyak sumber daya sistem operasi host. juga, ia menggunakan sistem file berlapis ( <a href="http://aufs.sourceforge.net/">aufs</a> ) dan mengelola jaringan.</p><p>aufs adalah sistem file berlapis, sehingga anda dapat memiliki bagian hanya baca dan bagian tulis yang digabungkan. seseorang dapat memiliki bagian umum dari sistem operasi sebagai hanya baca (dan dibagi di antara semua wadah anda) dan kemudian memberikan masing-masing wadah mount sendiri untuk ditulis.</p><p>jadi, katakanlah anda memiliki gambar kontainer 1 gb; jika anda ingin menggunakan vm penuh, anda harus memiliki 1 gb x jumlah vm yang anda inginkan. dengan docker dan aufs anda dapat berbagi sebagian besar 1 gb di antara semua wadah dan jika anda memiliki 1000 kontainer anda masih mungkin hanya memiliki sedikit lebih dari 1 gb ruang untuk wadah os (dengan asumsi mereka semua menjalankan gambar os yang sama) .</p><p>sistem tervirtualisasi lengkap mendapatkan set sumber daya sendiri yang dialokasikan untuk itu, dan melakukan pembagian minimal. anda mendapatkan lebih banyak isolasi, tetapi jauh lebih berat (membutuhkan lebih banyak sumber daya). dengan docker anda mendapatkan lebih sedikit isolasi, tetapi wadahnya ringan (membutuhkan lebih sedikit sumber daya). jadi anda dapat dengan mudah menjalankan ribuan kontainer pada host, dan itu bahkan tidak akan berkedip. coba lakukan itu dengan xen, dan kecuali anda memiliki host yang sangat besar, saya rasa itu tidak mungkin.</p><p>sistem virtualisasi penuh biasanya membutuhkan waktu beberapa menit untuk memulai, sedangkan wadah docker/lxc/runc membutuhkan waktu beberapa detik, dan seringkali bahkan kurang dari satu detik.</p><p>ada pro dan kontra untuk setiap jenis sistem tervirtualisasi. jika anda ingin isolasi penuh dengan sumber daya yang dijamin, \_ vm yang lengkap adalah cara untuk melakukannya. jika anda hanya ingin mengisolasi proses dari satu sama lain dan ingin menjalankan satu ton dari mereka pada host berukuran cukup, maka docker/lxc/runc tampaknya menjadi cara untuk pergi.</p><p>untuk informasi lebih lanjut, lihat <a href="http://web.archive.org/web/20150326185901/http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part">set posting blog ini</a> yang melakukan pekerjaan dengan baik untuk menjelaskan cara kerja lxc.</p><blockquote> <p>mengapa menyebarkan perangkat lunak ke gambar buruh pelabuhan (jika itu istilah yang tepat) lebih mudah daripada hanya menggunakan lingkungan produksi yang konsisten?</p> </blockquote><p>menyebarkan lingkungan produksi yang konsisten lebih mudah diucapkan daripada dilakukan. bahkan jika anda menggunakan alat seperti <a href="https://en.wikipedia.org/wiki/chef\_%28software%29">chef</a> dan <a href="https://en.wikipedia.org/wiki/puppet\_%28software%29">wayang</a> , selalu ada pembaruan os dan hal-hal lain yang berubah antara host dan lingkungan.</p><p>docker memberi anda kemampuan untuk memotret os menjadi gambar yang dibagikan, dan membuatnya mudah untuk digunakan pada host docker lainnya. secara lokal, dev, qa, prod, dll .: semua gambar yang sama. tentu anda bisa melakukan ini dengan alat lain, tetapi tidak semudah atau cepat.</p><p>ini bagus untuk pengujian; katakanlah anda memiliki ribuan tes yang perlu terhubung ke database, dan setiap tes membutuhkan salinan asli dari database dan akan membuat perubahan pada data. pendekatan klasik untuk ini adalah mereset basis data setelah setiap pengujian baik dengan kode khusus atau dengan alat seperti <a href="https://flywaydb.org/">flyway</a> - ini bisa sangat memakan waktu dan berarti tes harus dijalankan secara seri. namun, dengan docker anda bisa membuat gambar dari database anda dan menjalankan satu contoh per tes, dan kemudian menjalankan semua tes secara paralel karena anda tahu mereka semua akan berjalan melawan snapshot yang sama dari database. karena tes berjalan secara paralel dan dalam wadah docker, mereka dapat menjalankan semua pada kotak yang sama pada waktu yang sama dan harus menyelesaikan lebih cepat. coba lakukan itu dengan vm penuh.</p><p>dari komentar ...</p><blockquote> <p>menarik! saya kira saya masih bingung dengan gagasan &quot;snapshot [ting] os&quot;. bagaimana seseorang melakukannya tanpa, membuat gambar os?</p> </blockquote><p>baiklah, mari kita lihat apakah saya bisa menjelaskan. anda mulai dengan gambar dasar, dan kemudian membuat perubahan anda, dan melakukan perubahan itu menggunakan buruh pelabuhan, dan itu membuat gambar. gambar ini hanya berisi perbedaan dari pangkalan. ketika anda ingin menjalankan gambar anda, anda juga membutuhkan basis, dan lapisan gambar anda di atas basis menggunakan sistem file berlapis: seperti yang disebutkan di atas, docker menggunakan aufs. aufs menggabungkan lapisan yang berbeda bersama-sama dan anda mendapatkan apa yang anda inginkan; anda hanya perlu menjalankannya. anda dapat terus menambahkan lebih banyak gambar (lapisan) dan itu akan terus menyimpan hanya diff. karena docker biasanya membangun di atas gambar yang sudah jadi dari <a href="https://registry.hub.docker.com/">registry</a> , anda jarang harus &quot;memotret&quot; sendiri seluruh os.</p> <p>pendekatan yang paling banyak digunakan yang pernah saya lihat adalah menggunakan ellipsis untuk menunjukkan bahwa ada lebih banyak teks, seperti ini:</p><p><img src="https://i.stack.imgur.com/o0usc.png" alt="alt text"></p><p>anda kemudian dapat memberikan tooltip saat mengarahkan kursor untuk menunjukkan nama lengkap kepada pengguna. pada mac os, apple mencoba untuk menyingkat teks sebagai langkah pertama. mereka melakukannya dengan mengurangi jarak antara huruf dan kata. idenya adalah untuk menunjukkan kepada anda sebanyak mungkin karakter sebelum menambahkan ellipsis sebagai pilihan terakhir.</p><p>saya telah melihat pendekatan lain yang jauh lebih elegan dalam aplikasi di suatu tempat di mana mereka memudar huruf terakhir yang dapat ditampilkan. saya tidak dapat mengingat nama aplikasi, tetapi tampilannya seperti ini:</p><p><img src="https://i.stack.imgur.com/lc3jv.png" alt="alt text"></p><p>ini jelas lebih banyak pekerjaan, tetapi jelas terlihat lebih modern dan berkelas. saya terkejut bahwa ini belum menjadi fitur standar mac os. omong-omong, apple <em>tidak</em> menggunakan fading di spotlight untuk menunjukkan kepada anda path file yang panjang:</p><p><img src="https://i.stack.imgur.com/cr1nu.png" alt="alt text"></p><p>selain path file yang pudar, lihat file "yllistenerbase.cpp": anda dapat melihat bahwa file itu terkondensasi jika anda membandingkannya dengan file .h-nya. jalur file dengan efek fading ada di bagian bawah jendela.</p> <p><s>satu-satunya waktu penyimpanan dibagi antara produk google lainnya adalah ketika ruang tambahan dibeli: <a href="https://www.google.com/accounts/purchasestorage">https://www.google.com/accounts/purchasestorage</a> </s></p><p><s>di google picasa <a href="http://picasa.google.com/support/bin/answer.py?answer=39567">bagian bantuan tentang penyimpanan google</a> mereka mengatakan bahwa "ruang penyimpanan gratis khusus untuk setiap produk. album web picasa menawarkan penyimpanan 1 gb hanya untuk foto dan video. gmail menyediakan 7+ gb (dan menghitung) yang disediakan hanya untuk pesan gmail. docs memberi anda 1 gb untuk semuanya: semua dokumen, spreadsheet, presentasi, dan file yang diunggah. penyimpanan gratis dari satu produk tidak dapat digunakan oleh atau ditransfer ke produk lain. "</s></p><p><strong> - edit - </strong></p><p>seperti yang ditunjukkan oleh al everett <a href="http://gmailblog.blogspot.com/2013/05/bringing-it-all-together-15-gb-now.html">penyimpanan sekarang digabungkan</a> antara properti google.</p> <p>saya bisa menjalankan ini dengan menggunakan kombinasi petunjuk doublecommand dan jtbandes dari <a href="https://superuser.com/questions/26954/how-can-i-remap-ctrl-h-in-mac-os-x/28035#28035">di sini</a> . pertama periksa tombol fungsi bertindak sebagai kotak kunci kontrol dalam perintah ganda. kemudian simpan file ~/library/keybindings/defaultkeybinding.dict dengan konten</p><pre><code>{"^c" = "copy:";} {"^v" = "paste:";} {"^x" = "cut:";} </code></pre><p>setelah anda keluar dan masuk kembali, anda harus dapat menggunakan fn-c untuk menyalin, dll. ada beberapa kelemahan dari pendekatan ini. anda harus mendefinisikan secara eksplisit setiap perintah yang ingin anda gunakan fn untuk dan pemetaan untuk mengontrol dan kemudian fn benar-benar hacky. sayangnya saya tidak bisa membuatnya bekerja dengan cara lain. pada awalnya saya pikir anda mungkin dapat memilih kotak centang "tombol perintah bertindak sebagai kunci kontrol" dan "tombol fn bertindak sebagai tombol kontrol" tetapi itu sepertinya tidak berhasil. ditto untuk mengubah ke kontrol dengan metode alex di atas. saya juga tidak dapat menemukan pengubah untuk menetapkan perintah ke fn, dan dokumentasi apple tampaknya menunjukkan bahwa itu dilakukan pada tingkat yang lebih rendah daripada akses pengikat tombol. jika seseorang tahu cara yang lebih baik untuk melakukan ini, saya akan senang melihatnya.</p> <p>tidak, redis lebih dari sekadar cache. </p><p>seperti cache, redis menyimpan kunci = pasangan nilai. tetapi tidak seperti cache, redis memungkinkan anda beroperasi pada nilai-nilai. ada 5 tipe data dalam redis - string, set, hash, daftar dan set diurutkan. setiap tipe data memperlihatkan berbagai operasi.</p><p>cara terbaik untuk memahami redis adalah dengan memodelkan suatu aplikasi tanpa memikirkan bagaimana anda akan menyimpannya dalam database. </p><p>katakanlah kita ingin membangun stackoverflow.com. untuk membuatnya sederhana, kita membutuhkan pertanyaan, jawaban, tag, dan pengguna.</p><h2>pertanyaan modeling, pengguna dan jawaban</h2><p>setiap objek dapat dimodelkan sebagai peta. misalnya, pertanyaan adalah peta dengan bidang {id, judul, date\_asked, suara, asked\_by, status}. demikian pula, sebuah jawaban adalah peta dengan bidang {id, question\_id, answer\_text, answer\_by, suara, status}. demikian pula, kita dapat memodelkan objek pengguna.</p><p>masing-masing benda ini dapat langsung disimpan di redis sebagai hash. untuk menghasilkan id unik, anda dapat menggunakan perintah kenaikan atom. sesuatu seperti ini - </p><pre><code>$ hincrby unique\_ids question 1 (integer) 1 $ hmset question:1 title "is redis just a cache?" asked\_by 12 votes 0 ok $ hincrby unique\_ids answer 1 (integer) 1 $ hmset answer:1 question\_id 1 answer\_text "no, its a lot more" answered\_by 15 votes 1 ok </code></pre><h2>menangani suara</h2><p>sekarang, setiap kali seseorang menjawab pertanyaan atau jawaban, anda hanya perlu melakukan ini </p><pre><code>$ hincrby question:1 votes 1 (integer) 1 $ hincrby question:1 votes 1 (integer) 2 </code></pre><h2>daftar pertanyaan untuk beranda</h2><p>selanjutnya, kami ingin menyimpan pertanyaan terbaru untuk ditampilkan di beranda. jika anda sedang menulis program .net atau java, anda akan menyimpan pertanyaan dalam daftar. ternyata, itu adalah cara terbaik untuk menyimpan ini di redis juga. </p><p>setiap kali seseorang mengajukan pertanyaan, kami menambahkan idnya ke daftar. </p><pre><code>$ lpush questions question:1 (integer) 1 $ lpush questions question:2 (integer) 1 </code></pre><p>sekarang, ketika anda ingin merender beranda, anda meminta redis untuk 25 pertanyaan terbaru. </p><pre><code>$ lrange questions 0 24 1) "question:100" 2) "question:99" 3) "question:98" 4) "question:97" 5) "question:96" ... 25) "question:76" </code></pre><p>sekarang setelah anda memiliki id, ambil item dari redis menggunakan pipelining dan menunjukkannya kepada pengguna.</p><h2>pertanyaan dengan tag, diurut berdasarkan pilihan</h2><p>selanjutnya, kami ingin mengambil pertanyaan untuk setiap tag. tetapi so memungkinkan anda untuk melihat pertanyaan pilihan teratas, pertanyaan baru atau pertanyaan yang tidak dijawab di bawah setiap tag.</p><p>untuk memodelkan ini, kami menggunakan fitur set diurutkan redis. set diurutkan memungkinkan anda untuk mengaitkan skor dengan setiap elemen. anda kemudian dapat mengambil elemen berdasarkan skor mereka. </p><p>ayo maju dan lakukan ini untuk tag redis </p><pre><code>$ zadd questions\_by\_votes\_tagged:redis 2 question:1 (integer) 1 $ zadd questions\_by\_votes\_tagged:redis 10 question:2 (integer) 1 $ zadd questions\_by\_votes\_tagged:redis 5 question:613 (integer) 1 $ zrange questions\_by\_votes\_tagged:redis 0 5 1) "question:1" 2) "question:613" 3) "question:2" $ zrevrange questions\_by\_votes\_tagged:redis 0 5 1) "question:2" 2) "question:613" 3) "question:1" </code></pre><p>apa yang kita lakukan di sini? kami menambahkan pertanyaan ke set yang diurutkan, dan mengaitkan skor (jumlah suara) untuk setiap pertanyaan. setiap kali sebuah pertanyaan dibatalkan, kami akan menambah nilainya. dan ketika pengguna mengklik &quot;pertanyaan yang ditandai redis, disortir berdasarkan suara&quot;, kami hanya melakukan <code>zrevrange</code> dan mendapatkan kembali pertanyaan teratas.</p><h2>pertanyaan waktu nyata tanpa halaman yang menyegarkan</h2><p>dan akhirnya, fitur bonus. jika anda membiarkan halaman pertanyaan terbuka, so akan memberi tahu anda ketika pertanyaan baru ditambahkan. bagaimana redis bisa membantu di sini?</p><p>redis memiliki model pub-sub. anda dapat membuat saluran, misalnya &quot;channel\_questions\_tagged\_redis&quot;. anda kemudian <code>subscribe</code> pengguna ke saluran tertentu. ketika pertanyaan baru ditambahkan, anda akan <code>publish</code> pesan ke saluran itu. semua pengguna akan mendapatkan pesan. anda harus menggunakan teknologi web seperti soket atau komet web untuk benar-benar mengirimkan pesan ke browser, tetapi redis membantu anda dengan semua pipa ledeng di sisi server.</p><h2>kegigihan, keandalan, dll.</h2><p>tidak seperti cache, redis tetap menyimpan data pada hard disk. anda dapat memiliki pengaturan master-slave untuk memberikan keandalan yang lebih baik. untuk mempelajari lebih lanjut, buka topik kegigihan dan replikasi di sini - <a href="http://redis.io/documentation">http://redis.io/documentation</a> </p> kata kunci merupakan sebuah kata atau konsep dengan keistimewaan, yang berarti kata apapun yang digunakan sebagai kunci dan kode untuk menghubungkan ke kata lain atau informasi lain. kata kunci pada blog terbagi menjadi dua yaitu:
 


 kata kunci pendek, yaitu kata kunci yang hanya terdiri dari maksimal dua suku kata.
 kata kunci panjang, yaitu kata kunci yang lebih dari dua suku kata.



dengan demikian, kata kunci hendaknya terdiri dari dua suku kata atau lebih dari dua suku kata.