Ruby On Rails. Hüseyin Gömleksizoğlu

Benzer belgeler
Ruby On Rails. Hüseyin Gömleksizoğlu

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Rails İle Ağ Uygulamaları Geliştirimi

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

Qt ile Bir Ağ Uygulaması

Düzenli İfadeler & Kullanım Alanları

Düzenli İfadeler & Kullanım Alanları

REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara

DBMAIL KURULUMU BELGESI (Howto Install Dbmail) Yazan: Ozgur Karatas

Android e Giriş. Öğr.Gör. Utku SOBUTAY

İNTERNET PROGRAMCILIĞI HAFTA MYSQL - PHPMYADMIN. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Mysql Nedir.

QT Eğitimi - 4 : İkili Saat (Binary Clock)

Sunum Planı. Django Nedir? Django projesi oluşturmak Basit bir blog uygulaması. Şablon Kullanımı Diğer özellikleri

Linux Terminal Sunucusu. Afşin Taşkıran

İnternet Programcılığı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Ubuntu üzerine phpbb forum yazılımının 3.2 sürümünün kurulumu. Ocak, 2017

E-Prints: Açık Erişimli Arşiv Oluşturma Yazılımı; Kurulumu-Kullanımı-Özellikleri

Gökhan AKIN İTÜ/BİDB Ağ Grubu Başkanı - ULAK/CSIRT

PHP ile İnternet Programlama

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

MOBILEPAX SOAP PRODUCT API KULLANIM ŞEKLİ

Mantıksal Hacim Yönetimi (LVM)

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Java EE 5 Teknolojileri Jboss Seam

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

DESTEK DOKÜMANI. Ürün : Tiger Enterprise/ Tiger Plus/ Go Plus/Go Bölüm : Kurulum İşlemleri

ÖZGÜR YAZILIMLAR İLE J2EE

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

Veri Tabanı Yönetim Sistemleri Bölüm - 02

E-REÇETE KARŞILAŞILABİLECEK SORUNLAR VE ÇÖZÜMLERİ

Kullanıldığı Başlıca Siteler

08217 Internet Programcılığı I Internet Programming I

JasperReports Server ve Ireport raporlama Sistemi Kurulumu / Kullanımı 1. Bölüm 2. Bölüm 1- JasperReports Server ve Ireport Nedir?

PHP 1. Hafta 2.Sunum

KANTAR UYGULAMASI Kurulum Kılavuzu

PHP CodeIgniter MVC Framework

Kets DocPlace LOGO Entegrasyonu

Program Kurulum. Turquaz Muhasebe. İçindekiler

PHP 1. Hafta 1. Sunum

08220 Internet Programcılığı II

İÇERİK YÖNETİM SİSTEMİ (CMS) Bir web sitesi yayınlamak için yapılması gerekenler:

1 İÇERİK YÖNETİM SİSTEMLERİ VE JOOMLA 1. İçerik Yönetim Sistemi (CMS) Nedir? 1. Neden Joomla? 2. Joomla nın Tarihi 3. Joomla nın Anlamı & Logosu 4

Firma Yazılımı v2.00 Kullanım Kılavuzu

Swing ve JDBC ile Database Erişimi

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

İNTERNET PROGRAMCILIĞI - II

QT Eğitimi - 2 :Yerleşim (Layout)

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

Opera V2 Kurulum Klavuzu V0.01

08220 Internet Programcılığı II

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

TachoMobile Server Uygulaması Kullanım Kılavuzu

SparkleShare. Çağrı Emer. Ekim, 2011

Useroam Cloud Kurulum Rehberi

Project Vesta Documentation

LDAP VE WORDPRESS İLE

MaestroPanel Kurulum

FOG SERVER (FREE GHOST SERVER) YAZILIMININ KURULUMU

Açık Kaynak Kodlu Yazılım

İnternet. Küçük düzeyli ağ. Ağ üzerinden çok kullanıcılı kilit modeli. İnternet üzerinden çok kullanıcılı kilit modeli

Yedek Almak ve Yedekten Geri Dönmek

GNU/Linux ve Özgür Yazılım. Mahir B. Aşut EkoPC Kurucu Ortağı ve Yöneticisi, LKD Üyesi

Symfony Doctrine. Symfony-Doctrine. Deniz Bahadr GÜR, Mehmet Onur YALAZI. Özgür Web Teknolojileri Günleri, 2010

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

BIND ile DNS Sunucu Kurulumu

İSTANBUL KEMERBURGAZ ÜNİVERSİTESİ İÇERİK YÖNETİM SİSTEMİ KULLANIM KLAVUZU KEMERBURGAZ ÜNİVERSİTESİ İÇERİK YÖNETİM SİSTEMİ

MODSECURITY DENETİM KAYITLARINI ANLAMAK. Gökhan Alkan,

Ağ programlama (Network programming) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 13 1

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

AĞ KULLANIM KILAVUZU. Yazdırma Günlüğünü Ağa Kaydetme. Sürüm 0 TUR

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Paketi Açalım Indirmiş olduğunuz paketi tar komutu ile açın: tar xzf nagios version.tar.gz Kullanıcı Gruplarını Oluşturalım Paketi derledikten sonra n

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

CAN TECİM HEDEF DENEYİM. Tecrübe bütün öğretmenlerin en iyisidir. Publilus Syrus

Smoothwall URL Filter Kurulumu

MOBİL UYGULAMA GELİŞTİRME

Google Scripts. Neticaret Sistemine Google Analytics ve AdWords sistemleriyle ilgili 3 yeni parametre eklenmiştir.

V-Ray Lisanslama Sistemi

Kullanıcı Kitabı (2011)

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

Elektronik Dergi ve Veri Tabanlarına Kampus Dışından Erişim

Ortamınızda A.D. veya LDAP sistemi var ise aşağıdaki linkten KoruMail LDAP-AD isimli dokümanı inceleyebilirsiniz.

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Web Uygulama Anaçatıları. Tahir Emre KALAYCI. May 5, 2009

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

05 - Veritabanı Sızma Testleri

Nmap Sonuçlarının Yorumlanması

1.1 Web Kavramlar URL terimini tanımlayınız ve anlayınız.

C için tümleşik geliştirme ortamı (IDE) kurulumları

Hybrid Software Veritabanı ve Sistem 7x24 Destek &Danışmanlık Hizmetleri Veritabanı ve Sistem 7x24 Destek & Danışmanlık Hizmetleri

Internet Programming II

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

HİTİT Muhasebe Aktarım Kurulum ve Kullanım Kılavuzu (Netsis Modülü)

Kullanıcı Dökümanı. Flash B2B. Versiyon 0.1

Transkript:

Ruby On Rails Hüseyin Gömleksizoğlu huseyin@gomleksizoglu.com

Belge Lisansı Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Özgür Belgeleme Lisansının 1.2 ya da daha sonraki sürümünün koşullarına bağlı kalarak kopyalayabilir, dağıtabilir ve/veya değiştirebilirsiniz. Lisans'ın bir kopyasını http://www.gnu.org/copyleft/gfdl.html adresinde bulabilirsiniz. Bu belgedeki bilgilerin kullanımından doğacak sorumluluklar ve olası zararlardan belge yazarı sorumlu tutulamaz. Bu belgedeki bilgileri uygulama sorumluluğu uygulayana aittir. Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim, bir ticari isim ya da kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir. page 2

Acısız Web Programlama Ruby On Rails web programcılarının mutluluğu için geliştirilmiş bir altyapıdır. Kod karmaşasına girmeden, ayarları değiştirir gibi web uygulamarı geliştirmenize olanak sağlar. Uygulamanın alt yapısı ile uğraşarak acı çekmek yerine uygulamaya yönlenmenizi sağlar. Daha akıllı uygulamaların gelişmesine olanak sağlayarak insanların daha mutlu olmasını sağlar. Mutlu müşteri Mutlu Programcı Müşterilere çok kısa zamanda çalışan uygulamalar gösterme olanağı sağlar ve proje bitim tarihlerinde rahat uyuyabilme imkanı verir. page 3

Rails Hakkında Kısa Bilgi... Rails tamamen Ruby dili ile yazılmış bir altyapı(framework)tur. 2004 yılında bu yana sürekli gelişiyor. Şu anki güncel sürümü 1.2.2'dir. Son 5 saatte 79 yeni iş ilanı 4,000 req/sec Güncel sorunlara güncel çözümler Web uygulaması için gerekli tüm katmanları içerir Böylelikle Kendinizi Tekrar Etmezsiniz (Don't Repeat Yourself - DRY) page 4

www.rubyonrails.org

www.rubyforge.org

Rails Kurulumu Ruby kurulur pisi install ruby veya www.ruby-lang.org dan kaynak kodundan derlenebilir Gem kurulur rubyforge.org'den kaynak kodları indirilir. ruby setup.rb Gem aracılığı ile rails kurulur sudo gem install rails include-dependencies page 7

Windows'a Rails Kurulumu http://rubyforge.org/projects/instantrails/ page 8

Editörler vi / emacs TextMate Radrails Eclipse (RubyDevelopmentTools) FreeRide SciTE Arachno Editplus, notepad2 Klasör listesi gösterenler daha kullanışlı page 9

3 Katmanlı Mimari İşleyişi kontrol etme Karar verme Controller Veritabanı işlemleri Veri üzerine işlemler View Kullanıcıdan bilgi alma Ekranda bilgi gösterme model veritabanı page 10

Merhaba Dünya Uygulaması Yeni bir rails projesi yaratma Dosya yapısı Dosyaların içerikleri Web sunucusu Merhaba Dünya uygulaması page 11

Rails'in Dosya Yapısı En önemlileri app : Uygulamanın bizimle ilgili kısımı controllers models views helpers config : Uygulamanın ayarlarının bulunduğu kısım db : database ile ilgili dosyaların bulunacağı kısım log : logların bulunduğu kısım public : uygulamanın internete bakan kısmı script : gerekli betiklerin bulunduğu kısım test : test dosyalarının bulunduğu kısım page 12

Önemli noktalar Mongrel veya WebRick sunucuları 3000. porttan çalışır http://localhost:3000 script'ler uygulamanın kök dizininden çalıştırılmalıdır Örneğin: ~/user/eskisehir/ page 13

Merhaba Dünya page 14

Rails'in adres yapısı http://localhost:3000/demo1/hosgeldiniz http://localhost:3000/ Controller / Action Rails bu yapıyı nereden biliyor? config/routes.rb dosyası içinde tanımlanır Dosya bazlı değil controller, action ve id bazlıdır Başka bilgiler de kullanılabilir Örneğin map.connect ':controller/:action/:id' http://localhost:3000/demo1/hosgeldin/1 page 15

Şablon Yapısı Rails şablon/template yapısını destekler Bir sayfa gösterilmeden önce app/views/layouts/application.rhtml veya app/views/layouts/:controller.rhtml app/views/:controller/:action.rhtml dosyalarını işler Application.rhtml dosyası varsa tüm sayfalar için o dosya kullanılır yoksa her controller için ayrı şablon dosyası kullanılır. page 16

3 Katmanlı Yapı Sunucu Routing Controller View model veritabanı page 17

Controller'dan View'e Bilgi Gönderme Controller üzerinde bilgi üret View üzerine bilgileri aktar İkinci Action ve view yarat İki view arasında geçişler yap page 18

Veritabanı işlemleri Rails veritabanına erişmek için Ruby'nin veritabanı sürücülerini kullanır Uygulama içindeki config/database.yml dosyasına göre bağlanır. 3 farklı çalışma durumuna göre farklı veritabanları kullanır. Development Geliştirme Production Yayın, sürüm Test Veritabanı işlemleri ile MCV yapısında Model katmanı ilgilenir page 19

config/database.yml development: adapter: mysql database: eskisehir_development username: root password: host: localhost socket: /var/run/mysqld/mysqld.sock production: adapter: mysql database: eskisehir_production username: root password: host: localhost socket: /var/run/mysqld/mysqld.sock page 20

migration Uygulama versiyonları ile veritabanı arasındaki uyumsuzluğu gidermek için geliştirilmiş script/generate migration create_users rake migrate rake migrate VERSION=1 def self.up create_table :users do t t.column :name, :string end end def self.down drop_table :users end page 21

Model bağlantıları has_one has_many belongs_to has_and_belongs_to page 22

Kontroller validates_presence_of :title, :description, :image_url validates_numericality_of :price validates_uniqueness_of :title validates_format_of :image_url, :with => %r{^http:.+\.(gif jpg png)$}i, :message => "must be a URL for a GIF, JPG, or PNG image" protected def validate errors.add(:price, "should be positive") unless price.nil? price >= 0.01 end Kontroller model üzerinde tanımlanır ve tüm sistem üzerinde geçerli olur. page 23

Kontroller # validates_acceptance_of # validates_associated # validates_confirmation_of # validates_each # validates_exclusion_of # validates_format_of # validates_inclusion_of # validates_length_of # validates_numericality_of # validates_presence_of # validates_size_of # validates_uniqueness_of page 24

Hata Ayıklama Ruby'nin debug kütüphanesini kullanır scripts/breakpointer breakpoint() view üzerinde debug(params) page 25

Agile Web Development with Rails 2. Baskı

http://www.lynda.com

SORULAR?