Tuesday 8 August 2017

Sabun Delforex Delphi 2010


Inilah sebuah pertanyaan teknis untuk non-tech yang belum pernah saya lakukan sebelumnya, jadi saya berharap seseorang dapat mencerahkan saya. Saya memiliki sebuah aplikasi yang dibangun di D7, dan ini agak rumit dalam fungsinya. Apakah mungkin untuk membangun kembali aplikasi agar berjalan sebagai layanan Apakah itu memerlukan pemisahan antarmuka pengguna dari aplikasi? Terima kasih, Bill William Meyer menulis di 4222010. gt Saya belum sempat melakukan ini sebelumnya, jadi saya berharap seseorang dapat melakukannya. Mencerahkan saya Saya memiliki sebuah aplikasi yang dibangun di D7, dan ini agak rumit dalam fungsinya. Mungkinkah membangun kembali aplikasi untuk menjalankan gt sebagai layanan. Pengujian Non-Tech Saya tidak melihat apapun selama tiga hari dalam kelompok ini - Q 01242014 15:15:19 1.19.1.372 Q39sBrokenToolBar Berjalan di TQ Quentin Correll menulis: Saya tidak dapat melihat apapun selama tiga hari dalam kelompok ini Bagaimana mungkin Anda menjadi Membalas sebuah posting dari Nick di thread quotTest the bestquot today. - Arno Arno, Bagaimana bisa Anda membalas sebuah posting dari Nick di thread quotTest the bestquot today. Anehnya, saya bisa posting. Tapi aku tidak yakin tentang hal itu karena XN tidak menanggapi apa pun sampai aku melakukannya. Pasar Delphi tidak ada Tampaknya pasar kontrak pembangunan untuk Delphi telah mengering. Apakah ada yang menemukan kontrak Bukan pekerjaan, kontrak kerja. Gt gt Tampaknya pasar kontrak pembangunan untuk Delphi telah mengering. Dimana gt Apakah ada yang menemukan kontrak Bukan pekerjaan, kontrak kerja. Ya - Salam Bruce McGee Glooscap Perangkat Lunak gt gt gt Dimana AS. Gt gt Ya BTW, apakah Anda menjaga lebih dari 2 orang bekerja penuh waktu di AS. Non-Tech Postings Ditolak Pengujian. Kemarin kiriman saya ke non-tech menjadi quotrejected. quot - Q 04052012 09:16:20 XanaNews Version 1.19.1.278 Q39sBrokenToolBar Quentin, Testing. Kemarin posting saya ke non-tech sedang dikecualikan. quot Tampaknya hanya balasan saya yang ditolak. - Q 04052012 09:19:30 XanaNews Version 1.19.1.278 Q39sBrokenToolBar Quentin, Testing. Kemarin posting saya ke non-tech sedang dikecualikan. quot Tampaknya hanya balasan saya yang ditolak. Balasan ini w. Delphi XE5 Hai, Instal XE5 saja. Tidak ada file setuppaserver. zip. Di mana saya mendapatkannya Joe gt gt Hai, gt gt Baru saja menginstal XE5. Tidak ada file setuppaserver. zip. Gt gt Dimana saya mendapatkannya? Baru sadar itu file. pkg nya. Delphi dan Delphi untuk Tampaknya Delphi lebih lambat dari aplikasi asli Delphi Win32. Saya ingin tahu apakah benar semua aplikasi lebih lambat dari aplikasi asli Win32 atau hanya Delphi saja. Informasi Anda sangat dihargai, Inung Pada 2011-06-21 18:20:17 0100, Inung Huang berkata: gt Tampaknya Delphi lebih lambat dari pada aplikasi asli Delphi Win32. Gt Saya ingin tahu apakah benar semua aplikasi lebih lambat dari pada aplikasi asli Win32 atau hanya Delphi saja. Jika Anda hanya menjalankan kode di aplikasi satu kali, ya, yo. D2009 Datasnap dari klien non-Delphi Apakah D2009 Datasnap mengikuti standar untuk panggilan dari klien non-standar. misalnya PHP memanggil D2009 middle tier. Terima kasih CB Christopher Burke wrote: gt Apakah D2009 Datasnap mengikuti standar untuk panggilan dari klien non-standar gt. JSON - berbasis ECMAScript (JavaScript). Cheers Rob H -. Non-tech dengan pertanyaan copy file Bisakah saya cukup menyalin atau backuprestore emailcalendaretc GW55 saya. File ke server lain jika server asli saya jatuh atau berubah ke server baru, saya berasumsi bahwa saya perlu membongkar GW, tapi file mana yang akan saya salin Terima kasih. menjelaskan. Maksudmu keseluruhan PO atau apa. menjelaskan. - Michael J. Bell Novell Mendukung Sambungan Relawan Sysop Penulis Guinevere (openhandhome) PLEASE: Jangan e-mail saya secara pribadi kecuali jika diminta secara khusus. Saya seorang relawan, bukan pegawai Novell Semua pendapat dan saran yang diberikan adalah MINE sendiri dan TIDAK Novell. Non-VCL ZIP classcomponent wanted Hai, Saya mencari komponen kelas ZIP yang tidak menggunakan unit kerja VCL. Ini harus mendukung nama file Unicode sekalipun, saya tahu ada dukungan ZIP di XE tapi itu tidak cukup. - Arno Garrels Pada 962012 10:33, Arno Garrels menulis: Saya ingin komponen kelas ZIP yang tidak menggunakan unit kerja VCL gt. Ini harus mendukung nama file Unicode sekalipun, saya tahu ada dukungan ZIP di XE tapi itu tidak cukup. Sebagian besar komponen zip pihak ketiga adalah komponen non-visual, sehingga mereka dapat mengandalkan VCL. Abbrevia memiliki beberapa visu. Melayani dataset ke klien (non-Delphi) Saya akan berterima kasih atas beberapa saran tentang cara terbaik untuk merancang layanan web Delphi untuk dioperasikan dengan klien non-Delphi. Rencananya adalah menggunakan RAD Studio 2007 untuk menulis server SOAP untuk mentransfer dataset ke dan dari klien jarak jauh. Akhir klien adalah bagian dari situs web yang sedang dibangun oleh pihak lain. Dataset akan berisi catatan dengan tipe data sederhana dan BLOB. Preferensi saya sendiri adalah menulis server SOAP sebagai aplikasi WIN32 asli namun kesan saya adalah melakukan hal itu memerlukan sejumlah besar kode serialisasi kustom untuk ditulis. Menggunakan Zip di Delphi XE5, contoh di mana saja Selama bertahun-tahun saya telah menggunakan sebuah dll eksternal untuk menyalin file data ke dalam satu zipfile. Penulis file zip32.pas dan yang terkait adalah Theo Bebekis dan Marcus Wirth dan dalam file tersebut ada yang menyebutkan Info-Zip. Sumber yang saya gunakan adalah dari Januari 2000. Bagaimanapun, karena sekarang saya mengubah aplikasi lama dari Delphi7 menjadi XE5, saya ingin menggunakan fungsi zip bawaan, namun saya merasa kesulitan menemukan contoh bagaimana menggunakan System. Zip. Dapatkah seseorang di sini mengarahkan saya pada contoh kerja yang mengemas file ke dalam zip TANPA juga isian di bagian asli. Delphi XE5 Hai, Sementara saya sangat puas dengan Delphi XE5 (disamping beberapa hal aneh), ada satu hal yang sangat menyebalkan: jam pasir non stop di IDE. Saat saya klik dua kali kata untuk memilih: jam pasir. Saat saya memindahkan kursor 2 spasi: jam pasir. Menggulir: jam pasir. Saat mengetik beberapa karakter: jam pasir. Dan ini benar-benar sepanjang waktu. IDE membeku dan saya kehilangan banyak waktu selalu menunggu untuk melanjutkan. Aku bertanya-tanya mengapa Embarcadero tidak memperbaiki masalah seperti ini. Saya menemukan bahwa mematikan quotCode par ametersquot, quotTooltip expression evaluationquot, q. Delphi XE2 - System. Zip Hi. Saat ini saya menggunakan komponen quotVCLZipquot 3rd untuk menghasilkan dan memanipulasi file zip. Saya ingin mengadopsi kode saya untuk menggunakan TZip dari System. Zip, karena VCLZip tidak lagi dipelihara dan tidak ada versi resmi untuk Delphi XE2. Saya kehilangan fungsi untuk mengganti nama (atau menghapus) file di dalam file zip yang ada. Dapatkah seseorang tolong beri saya saran bagaimana hal ini dapat dilakukan dengan System. Zip Terima kasih atas bantuan Anda Pada 162012 4:27 AM, Ajoschi Roth menulis: gt Saya kehilangan beberapa fungsi untuk mengganti nama (atau menghapus) file di dalam file zip yang ada. Gt Dapatkah seseorang tolong beri saya Membuat file zip download non-copyable di VS2008 Hai, saya sedang berpikir untuk menjual tolong kuotasi video dari situs saya yang akan memungkinkan pengguna yang diinspirasikan untuk mendownload. Namun, untuk menghentikan mereka mendistribusikannya kembali kepada orang lain (dilarang oleh Tuhan), saya memerlukan cara untuk membatasi unduhan agar dapat digunakan hanya pada mesin kata 1, 2, atau 3. Saya pernah mendengar tentang DRM namun tidak yakin cara kerjanya, saya Jika VS2008 memiliki kelebihan apa pun yang bisa saya gunakan. Setiap gagasan, seperti biasa, dengan rasa syukur dihargai Paul VS tidak memiliki fasilitas seperti itu. Selain itu, menyalin file selalu memungkinkan. DRM dapat mencegah pengguna membuka file. For. Creating and Consuming Soap Services dalam Delphi. UPDATE Untuk contoh lengkap tentang membangun klien layanan JSON yang tenang dengan Delphi, dan layanan JSON yang tenang menggunakan PHP, periksalah serial video 826Brutally Roll Your Own Backend 8221 Bagi siapa pun yang mengharapkan bagian selanjutnya dari rangkaian sprite saya, mohon permisi penundaannya. Ini akan datang, tapi pekerjaan datang lebih dulu Hari ini saya ingin menunjukkan bagaimana Anda bisa membuat dan mengkonsumsi layanan web berbasis SOAP. Ini adalah pertanyaan yang sering diajukan dari para pelanggan saya, dan saya memutuskan untuk menulis prosesnya di sini. Edit: Delphi dapat mengkonsumsi layanan SOAP sebagai klien, bagaimanapun, layanan SOAP server side yang dibuat dengan menggunakan Delphi akan berbasis RPC daripada Literal Document. Hal ini dapat menyebabkan masalah dalam mengkonsumsi layanan Delphi SOAP dari beberapa klien. Ini sangat sulit bagi klien berbasis Java, yang membutuhkan instalasi perpustakaan lama. Tampaknya ada sedikit keinginan di Embarcadero untuk memperbarui server SOAP, karena penurunan popularitas SOAP yang mendukung layanan berbasis JSONREST. Jika Anda ingin meng-host layanan untuk penggunaan dari Java, atau beberapa suite pengembangan lainnya yang tidak kompatibel dengan RPCSOAP, pertimbangkan layanan JSONREST yang dapat dibuat menggunakan teknologi Datasnap atau EMS dari Embarcadero. - Edit Berakhir SOAP singkatan dari Simple Object Access Protocol. Artinya, ini adalah protokol yang memungkinkan aplikasi Anda mengakses 8216objects8217, yang berarti objek data melalui properti dan metode mereka. Untuk memasukkannya ke dalam istilah yang lebih lurus ke depan, ini adalah protokol yang memungkinkan Anda mengakses data jarak jauh, atau memanggil prosedur jauh. Ini serupa dengan banyak cara pada layanan RESTJSON yang pernah saya tulis sebelumnya, namun, data SOAP dikirim menggunakan pembungkus XML, biasanya melalui HTTP atau TCPIP langsung. Perbedaan penting lainnya antara layanan SOAP dan layanan RESTJSON adalah layanan SOAP sesuai dengan kontrak standar yang menjelaskan struktur data dan metode yang ada, kontrak ini dijelaskan dalam file WSDL (Web Services Definition Language). Hati-hati, beberapa vendor teknologi sabun lupa apa arti huruf 8216S8217 di 8216SOAP8217, tidak menyebutkan namanya. Membuat Layanan SOAP. Mari membuat layanan SOAP menggunakan Delphi. I8217m menggunakan pelepasan awal XE8, meskipun saya telah menggunakan langkah-langkah ini lebih-atau-kurang tidak berubah sejak Delphi 7, jadi ini harus bekerja dalam versi apapun. Yang mengatakan, ada update besar untuk teknologi ini di salah satu versi XE sebelumnya, jadi yang paling mirip dengan screenshot saya akan menjadi XE45 atau lebih tinggi, namun Anda harus memiliki sedikit kesulitan dalam versi sebelumnya. Jalankan IDE Delphi dan pilih 8220File Proyek Delphi Lainnya Lainnya - Gt Web Services - gt SOAP Server Application8221 (dapat berbeda dengan versi atau edisi Delphi Rad Studio. Langkah 8220Delphi Projects8221 mungkin perlu dihilangkan.) Wizard yang disajikan menawarkan Beberapa pilihan. Cara yang paling umum untuk meng-host layanan SOAP adalah sebagai modul server web, seperti perpustakaan dynamic link 8220ISAPI8221 untuk server web Microsoft8217s 8220IIS8221. Catatan: Saat membuat ISAPI menggunakan kompiler versi 32-bit, Anda perlu mengubah setting di bawah kolam aplikasi IIS untuk mengaktifkan kode eksekusi 32-bit pada server 64-bit. Tetapkan target kompilasi Anda ke versi 64-bit Delphi modern untuk menghindari hal ini. Untuk keperluan instruksi ini, kami akan memilih aplikasi 8220State-only.8221 Ini relatif sepele untuk mengubah proyek ini menjadi proyek ISAPI, yang akan ditunjukkan nanti. Untuk saat ini, maju dan pilih aplikasi 8220Stand-alone.8221 Tahap selanjutnya dalam wisaya akan menanyakan apakah Anda ingin menggunakan framework 8220VCL8221 atau 8220FMX8221 8220Firemonkey8221 di belakang kode layanan web Anda. Ada sedikit perbedaan antara 8220VCL8221 dan 8220FMX8221 untuk kode non-visual di platform windows, jadi mari kita patuh pada 8220VCL8221 terpercaya lama. Langkah selanjutnya dari wizard memungkinkan Anda untuk memilih nomor port yang dapat dijalankan sendiri oleh operator Anda. Ketika proyek ini diubah menjadi IIS atau aplikasi server web lainnya nanti, port akan menjadi port mana saja yang digunakan server web untuk menjalankan DLL (biasanya 808080443 untuk HTTP atau HTTPS). Oleh karena itu, nomor port yang kita pilih di sini tidak masalah terlalu banyak, asalkan tidak berbenturan dengan layanan lain yang berjalan pada mesin yang sama. Anda dapat menguji ini dengan tombol 8220Test Port8221. I8217m akan menempel port 8080, jika Anda memilih port yang berbeda, Anda perlu menyesuaikan url8217 yang saya berikan nanti. Setelah Anda klik pada 8220Finish8221 dari wizard, Delphi akan bekerja untuk membangun proyek aplikasi server SOAP Anda. Saat ini sudah selesai, dialog ini akan menanyakan kepada Anda apakah Anda ingin membuat 8220end-point8221 untuk layanan web Anda, atau setidak-tidaknya apa yang disebutnya dalam kerangka kerja SOAP lainnya yang pernah saya hadapi. Kerangka kerja semacam itu biasanya hanya memungkinkan Anda meng-host satu titik akhir per layanan, setidaknya tanpa beberapa konfigurasi, namun Delphi akan mengizinkan Anda meng-host sebanyak yang Anda suka. Agar layanan ini bermanfaat sama sekali, Anda harus menambahkan setidaknya satu, jadi silakan klik 8220YES8221. Dialog berikutnya adalah di mana Anda akan memberi nama titik akhir layanan yang akan Anda buat. Pada dialog ini Anda juga memiliki pilihan untuk menambahkan beberapa metode sampel, yang tidak akan dicentang secara default. Pastikan opsi ini dicentang, karena kami akan menggunakan metode sampel di lain waktu. Delphi sekarang akan membuat aplikasi layanan untuk Anda, dan ini adalah layanan kerja yang lengkap dengan beberapa metode contoh untuk Anda panggil juga. Sebelum kita melihat layanan ini, mari kita mengatur beberapa direktori dan menyimpan proyek. Kami akan menciptakan tiga proyek yang berbeda secara total. Yang pertama, yang baru saja kita buat. Ini adalah aplikasi sisi server. Yang kedua akan menjadi versi ISAPI dari layanan yang sama (sejak saya berjanji akan menunjukkan caranya). Yang ketiga akan menjadi aplikasi client yang mampu memanggil layanan. Kami akan menambahkan ketiganya ke kelompok proyek. Di tempat di disk Anda (tidak masalah di mana, di mana pun Anda biasanya menyimpan proyek Anda), buat struktur direktori berikut8230 Sekarang, kembali ke IDE Delphi pilih 8220File Save All8221 Simpan file sebagai berikut8230 SoapServiceSampleServerunitsMyServiceIntf. pas SoapServiceSampleServerunitsMyServiceImpl. pas SoapServiceSampleServerformsFormUnit1. Pas SoapServiceSampleServerunitsWebModuleUnit1.pas SoapServiceSampleServerprojectsStandAloneService. dproj Pastikan untuk mencatat perubahan dalam direktori, dan bahwa I8217 mengubah namanya menjadi proyek 8220StandAloneService. dproj8221 Tujuan dari file-file ini adalah sebagai berikut8230 MyServiceIntf. pas 8211 Bagian antarmuka layanan Anda, yang digunakan untuk menghasilkan WSDL mengajukan. MyServiceImpl. pas 8211 Penerapan layanan Anda. FormUnit1.pas 8211 Digunakan untuk menyediakan UI untuk aplikasi layanan yang berdiri sendiri, hal ini tidak relevan saat beralih ke modul ISAPI atau Apache. WebModuleUnit. pas 8211 Modul web menghosting poin akhir layanan Anda (antarmukaimplementasi), dan marsekal meminta mereka melalui pemetaan URL. StandAloneService. dproj 8211 File proyek. Sekarang kami siap untuk melihat layanan ini untuk pertama kalinya. Silakan jalankan aplikasi ini. Anda harus melihat yang berikut8230 Bukan aplikasi yang tampak cantik tapi tidak perlu, karena aplikasi ini hanyalah aplikasi layanan yang berdiri sendiri yang akan kita gunakan untuk melakukan debug layanan. Klik pada tombol 8220Start8221 untuk memulai layanan yang sedang berjalan (menerima peringatan keamanan apapun mengenai firewall), lalu klik pada 8220Open Browser82218230 Catatan, jika karena alasan apapun browser Anda tidak terbuka, yang dapat terjadi tergantung pada pengaturan Anda, buka browser dan Navigasikan ke localhost: 8080 Apa yang dapat Anda lihat di browser adalah antarmuka berbasis HTML untuk layanan Anda. Ada dua antarmuka yang diterbitkan, 8216IMyService8217 dan 8216IWSDLPublish8217, yang pertama adalah titik akhir layanan baru Anda dan yang kemudian adalah sistem yang menghasilkan titik akhir untuk tujuan yang tidak akan kita ikuti di sini. Jika Anda mengklik tautan 8216WSDL8217 di sebelah kanan 8216IMyService8217, Anda akan melihat file XML besar yang dihasilkan. File ini adalah file WSDL yang akan digunakan aplikasi klien untuk mengetahui kemampuan layanan Anda. Catat perubahan pada bilah URL saat Anda melakukan ini. Anda akan tahu bahwa 8216wsdlIMyService8217 telah ditambahkan ke string url. Ini adalah bagaimana kita menangani file wsdl untuk antarmuka end-point layanan tertentu yang kita buat, cukup tambahkan 8216wsdlIltendpoint-namegt8217 ke url dasar. WSDL memberikan rincian tentang layanan Anda, dan jenis data (objek) yang didukungnya. Sebelum melanjutkan untuk menulis aplikasi klien untuk mengkonsumsi layanan ini, saya ingin menunjukkan beberapa hal dalam file antarmuka dan implementasi. Silakan buka 8216MyServiceIntf. pas8217 di IDE. Mendekati bagian bawah file, Anda akan melihat antarmuka ini dideklarasikan8230 Ini adalah antarmuka yang digunakan untuk membuat file WSDL yang menentukan kemampuan layanan. Sesuatu yang perlu diperhatikan di sini adalah bahwa konvensi pemanggilan untuk masing-masing metode yang didukung adalah 8216sdtcall8217. Itulah standar panggilan standar windows, yang dikenakan pada layanan kami dengan asumsi bahwa kita akan mengubahnya menjadi modul ISAPI nanti. Ini aman untuk menggunakan 8216stdcall8217 untuk modul apache dan modul yang berdiri sendiri juga, sehingga IDE menganggap konvensi pemanggilan ini untuk semua layanan. Jangan lupa untuk memasukkannya ke antarmuka Anda, dan file implementasi saat Anda menulis metode sisi server Anda. Di atas antarmuka IMyService dalam file ini, Anda akan melihat beberapa tipe data yang sedang dideklarasikan. Tipe data sederhana yang dipetakan ke tipe data Delphi dasar tidak memerlukan perawatan khusus. Sebagai contoh, 8216TEnumTest8217 dan 8216TDoubleArray8217 keduanya merupakan tipe data sederhana dan akan dipetakan sesuai kebutuhan ke file WSDL. Kelas, bagaimanapun, harus berasal dari 8216TRemotable8217 seperti yang dapat dilihat di sini dengan 8216TMyEmployee.8217 Derived 8216TRemotable8217 diperlukan agar kelas dasar 8216TRemotable8217 dapat menggunakan RTTI (tipe informasi run time) untuk membaca anggota kelas keturunan dan membuatnya tidak dapat diterima8217, bahwa - atau, mereka dapat diserialkan ke dalam, dan deserialized out, dari web streams. Ini memungkinkan Anda mengirim kelas 8216TRemotable8217 ke layanan Anda, atau mengembalikannya daripadanya. Hanya properti terbitan yang dapat dituliskan ke arus, dan tidak ada gunanya meletakkan metode di kelas ini, jadi gunakanlah itu sebagai kelas pengantar data sederhana dan tulislah pembantu untuk bekerja dengannya. Sekarang beralih ke file 8216MyServiceImpl. pas8217 untuk melihat implementasi antarmuka ini. Perhatikan bahwa masing-masing metode memiliki metode yang sesuai di kelas 8216TMyService8217, yang mengimplementasikan antarmuka 8216IMyService8217. Masing-masing metode itu adalah stdcall, dan masing-masing tidak lebih dari sekadar menggemakan data yang diterima kembali ke pemanggil. Anda bisa menguji lebih banyak lagi implementasi petualangan di kemudian hari, tapi untuk saat ini, kami tetap menggunakan metode sampel yang dihasilkan oleh wizard proyek ini. Namun, masalahnya adalah masalah Jika Anda melihat metode sampel 8216echoMyEmployee8217 yang dihasilkan oleh wizard, Anda akan tahu hasilnya menciptakan hasil 8216TMyEmployee8217 saat ini, namun tidak menyalin nilai parameter 8216Value8217 ke dalamnya untuk menggemakan. Kita perlu menambal itu, jadi ganti implementasi 8216TMyService. echoMyEmployee () 8217 dengan kode berikut. Sekarang layanan kami siap untuk konsumsi dan pengujian. Mengkonsumsi Layanan Sabun. Sekarang setelah kita memiliki layanan untuk diuji coba, mari kita membangun aplikasi klien untuk mengkonsumsi layanan ini. Daripada memulai proyek baru dari menu utama, kami akan membangunnya di dalam kelompok proyek yang sama dengan proyek StandAloneService. Dengan begitu, kita bisa menjalankan keduanya sekaligus, dan melakukan debug juga. Dalam proyek explorer, klik kanan pada 8216ProjectGroup18217 dan pilih 8216Add New Project8217-gt 8216VCL Forms Application8217 Sekarang mari kita simpan proyek ke dalam struktur direktori kami, Pilih 8220File Save Alll82218230 Simpan file sebagai berikut8230 SoapServiceSampleClientformsformMain. pas (berganti nama dari Unit2.pas) SoapServiceSampleClientprojectsSOAPClient. Dproj (berganti nama dari Projectltxgt. pas) SoapServiceSampleSoapGroup. groupproj (berganti nama menjadi ProjectGroup1.groupproj) Sejak saat ini, kita dapat membuka beberapa proyek (server dan sisi klien) dengan membuka file 8216SoapGroup. groupproj8217. Sekarang, untuk mengkonsumsi layanan web kami, kami perlu mengimpor file WSDL ke dalam aplikasi klien kami. Untuk melakukan ini, layanan harus berjalan, jadi di manajer proyek, klik dua kali pada 8216StandAloneService8217 untuk menetapkannya sebagai proyek default (disorot tebal). Sekarang jalankan proyek menggunakan opsi 8220Run tanpa debugging8221. Penting bagi Anda untuk memilih opsi ini dan bukan opsi 8220Run dengan debugging8221 karena sementara IDE melakukan debug aplikasi yang tidak dapat Anda gunakan untuk menjalankan aplikasi lain. Hal ini lebih penting kemudian bila kita ingin menjalankan proyek StandAloneService dan SOAPClient secara bersamaan. Kami selalu debugging satu, sementara menjalankan yang lain tanpa debugging. Klik pada tombol start untuk memastikan layanan berjalan dan tersedia. Biarkan ini berjalan, dan kembali ke IDE, klik dua kali pada proyek 8216SOAPClient. exe8217 di manajer proyek untuk menetapkannya sebagai default. Sekarang, kepala sampai dengan 8220File Proyek Delphi Lainnya Lainnya - Gt WebServices WSDL Importer8221 (dapat berbeda dengan versi atau edisi Delphi Rad Studio. Langkah 8220Delphi Projects28221 mungkin perlu dihilangkan.) Di wisaya impor yang dipresentasikan, tempel URL WSDL untuk Antarmuka (titik akhir) yang ingin Anda impor dari layanan. Tinggalkan pilihan lain, kecuali jika Anda tahu bahwa Anda menggunakan proxy, dan klik next. Pada wizard berikutnya, cukup klik next dan biarkan penyihir khawatir tentang versi SOAP untuk Anda8230 Halaman wizard berikutnya menyediakan pilihan dari opsi yang dapat Anda sesuaikan untuk mengubah cara fungsi parser WSDL. Ini memungkinkan Anda untuk mengimpor file WSDL yang bervariasi dalam implementasinya, untuk Interoperabilitas dengan kerangka kerja SOAP lainnya, termasuk kerangka WCF Microsoft misalnya. Saat kami bekerja dengan layanan SOAP Delphi, kami tidak perlu mengubah pengaturan ini, jadi cukup klik 8216Finish8217. IDE Delphi sekarang akan menciptakan unit baru, yang diberi nama 8220IMyService18221 8211 I8217m bukan penggemar konvensi penamaan ini (menggunakan 822018221) dan kami tidak dapat mengubah nama unit menjadi 8220IMyService8221 karena sudah ada pengenal bernama 8220IMyService8221 di dalam unit. Jadi mari kita simpan file ini sebagai 8220unitIMyService. pas8221 ke 8220SoapServiceSampleClientunitsunitIMyService. pas8221 Sekarang kita memiliki semua yang kita butuhkan dalam aplikasi klien untuk memanggil layanan yang kita tulis sebelumnya, tapi kita tidak memiliki UI untuk aplikasi kita. Mari kita membangunnya. Dalam IDE, beralih ke formMain dan jatuhkan dua kontrol TGroupBox dan kontrol TButton dari palet alat. Atur properti 8216Caption8217 setiap kotak grup untuk membaca 8220Request8221 dan 8220Response8221. Juga, aturlah properti 8216Caption8217 untuk membaca 8220Echo8221 Ke dalam setiap kotak grup, letakkan tiga kontrol 8216TLabel8217, dua kontrol 8216TEdit8217 dan kontrol 8216TSpinEdit8217, disusun sebagai berikut8230 (perhatikan, kotak edit Anda mungkin memiliki teks yang tidak sesuai dengan saya). Sekarang kita perlu mengatur properti 8216Caption8217 dari masing-masing label di dalam kotak permintaan untuk membaca 8216First Name8217. 8216Last Name8217, 8216Salary8217 masing-masing. Ulangi hal yang sama untuk label di dalam kotak respon. Anda mungkin harus menyesuaikan ukuran dan posisi kontrol agar semua label sesuai dengan baik. Sekarang kita mengatur properti 8216Name8217 dari masing-masing edit, dan kontrol edit berputar. Bagi mereka yang berada dalam kotak permintaan, kami akan menamai mereka masing-masing 8216edtReqFirstName8217, 8216edtReqLastName8217 dan 8216spedReqSalary8217. Bagi mereka yang berada dalam kotak respon kita akan menamai mereka 8216edtResFirstName8217, 8216edtResLastName8217, 8216spedResSalary8217. Juga atur properti 8216Text8217 untuk setiap kotak edit ke string kosong. Akhirnya, klik dua kali pada tombol untuk mengatur handler 8216OnClick8217, dan masukkan kode berikut8282 Juga, ingatlah untuk menambahkan unitIMyService ke daftar penggunaan formulir utama. Sekarang mari kita uji layanan ini. Server 8216StandAloneService. exe8217 Anda tetap berjalan di latar belakang, namun jika tidak, masuk dan jadikan proyek default di manajer proyek dan tekan tombol 8220Run tanpa tombol debugging8221. Jangan lupa untuk mengklik tombol 8220Start8221, lalu kembali ke IDE dan mengatur 8216SOAPClient. exe8217 sebagai proyek default lagi. Jalankan proyek SOAPClient. exe dan Anda akan ditunjukkan dengan berikut8230 Silakan memasukkan nama depan, nama belakang, dan nomor Anda untuk gaji di kotak gaji di bawah Permintaan. Catatan: Saya menjepit kotak gaji dengan nilai integer hanya untuk kenyamanan, karena saya memilih untuk menggunakan kontrol 8216TSpinEdit8217 untuk contoh ini. Klik tombol 8216Echo8217. Jika semua berjalan dengan baik, Anda harus melihat yang berikut ini. Saat Anda mengklik tombol itu, nilai di kotak permintaan telah dikemas dan dikirim ke metode server 8216echoMyEmployee8217, yang menyalinnya menjadi tanggapan dan mengirimnya kembali. Hasilnya kemudian dilipat ke dalam kotak respon. Anda baru saja berhasil menghubungi layanan SOAP Anda, selamat. Di sinilah Anda harus melepaskan diri dari membaca ini dan pergi bereksperimen dengan membuat metode 8216echoMyEmployee8217 lebih canggih, atau mungkin menambahkan metode baru Anda sendiri. Sebagai catatan, Anda dapat menambahkan antarmuka baru (titik akhir) dengan menetapkan proyek server sebagai proyek default dan kemudian memilih 8220File New Other - gt Delphi Projects - gt Web Services - gt SOAP Server Interface8221 dan mengikuti wizard. Ketika Anda selesai melakukan percobaan dengan antarmuka baru, metode baru dan membuat layanan melakukan hal lama yang Anda sukai, kembalilah ke sini dan lihat bagaimana mengubahnya menjadi ISAP yang dapat Anda paketkan untuk diinstal ke server IIS. Membangun layanan ISAPI SOAP untuk IIS. Menjelang awal posting ini, saya berjanji bahwa saya akan menunjukkan kepada Anda bagaimana cara mentransfer layanan web Anda dari layanan yang berdiri sendiri yang dapat dijalankan, ke plugin ISAPI untuk server IIS. Jadi begini. Bukalah grup proyek 8216SoapGroup8217 yang telah kami buat sebelumnya, dan di project manager, klik kanan pada 8216SoapGroup8217 dan pilih 8216Add New Project8217 Sekarang pilih Proyek 8220Delphi - gt WebServices - gt SOAP Server Application8221 We8217 telah melalui wizard ini sebelumnya, saat membuat layanan SOAP Sebagai layanan yang berdiri sendiri. Kali ini, kita memilih 8220ISAPI dynamic link library8221 dari halaman wizard8230 ini Jalankan melalui sisa wizard seperti yang kita lakukan sebelumnya, sampai Anda tiba di dialog8230 Kali ini klik 8220NO8221 karena kita sudah memiliki sebuah antarmuka dalam proyek yang berdiri sendiri Kami ingin mengimpor Sekarang sebelum menyimpan proyek baru Anda, klik kanan pada 8216WebModuleUnit1.pas8217 di manajer proyek dan pilih 8220Remove From Project8221. Pastikan Anda menghapus ini dari proyek baru, dan bukan dialog di bawah 8220StandAloneService. exe8221 Dua dialog akan ditampilkan, yang pertama menanyakan apakah Anda yakin ingin melepaskan modul dari proyek, klik 8220YES8221 Dialog kedua menanyakan apakah Anda menginginkannya. Untuk menghemat modul, kami sudah memilikinya di proyek lain, yang ingin kami impor. Jadi, katakanlah dialog ini 8220NO8221 Setelah modul dihapus, maju dan pilih Save All. Anda tahu bornya, simpan file proyek sebagai 8220SoapServiceSampleServerprojectsISAPIService. pas8221 Anda sekarang memiliki proyek ISAPI, tapi tidak melakukan apa-apa, tidak memiliki modul untuk mengumpulkan permintaan ke layanan, dan tidak ada layanan untuk mengumpulkannya. Jadi kita perlu mengimpor barang-barang ini dari proyek mandiri kita sebelumnya. Di project manager, klik kanan pada proyek 8220ISAPIService. dll8221 dan pilih 8220Add8221 dari menu. Arahkan ke 8216SoapServiceSampleServerunits8217 dan pilih ketiga file tersebut. Setelah Anda mengklik 8220Open8221 Anda akan melihat bahwa tiga file dari proyek 8216StandAloneService. exe8217 sekarang menjadi bagian dari proyek 8216ISAPIService. dll8217 juga. Sebagai catatan penting. Modul web dan interface sekarang dibagi antara dua proyek. Ini berarti bahwa Anda dapat menggunakan proyek 8216StandAloneService. exe8217 di dalam IDE debugger untuk menguji layanan Anda sebelum mengunggah file 8216ISAPIService. dll8217 ke server IIS Anda. Jika Anda menambahkan antarmuka ke salah satu proyek, Anda harus menggunakan opsi 8220Add8221 yang kami gunakan di atas, untuk mengimpornya ke yang lain, dan tentu saja perlu diketahui bahwa perubahan lain pada file sumber ini akan mempengaruhi kedua proyek tersebut. Klik kanan pada 8220ISAPIService. dll8221 dan pilih 8220Build8221 dari menu yang muncul. Setelah bangunan selesai, pergi dan lihat di dalam 8220SoapServiceSampleServerprojectsWin32Debug8221 dan Anda akan melihat file bernama 8220ISAPIService. dll8221 Ini secara efektif merupakan DLL yang ingin Anda unggah ke server IIS Anda. Secara default Namun, ini adalah dll 32-bit dan dibangun menggunakan debug membangun profil. Server IIS modern adalah server 64-bit, jadi kembali ke IDE dan tambahkan target 64-bit, dan sebuah rilis membangun profil untuk proyek Anda. Itu itu. Anda memiliki layanan SOAP dalam bentuk plugin yang berdiri sendiri dan IIS, dan aplikasi klien yang dapat digunakan untuk mengujinya. Anggap saja Anda tidak dapat mengikuti instruksi saya di atas untuk alasan apapun, saya menambahkan file proyek ke repositori subversi publik saya di :: Edit: Server subversi telah dinonaktifkan. Ganti svn link dengan file zip yang dapat didownload, download di sini: SoapServiceSample

No comments:

Post a Comment