<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>rayyildiz.com &#187; java</title>
	<atom:link href="http://rayyildiz.com/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://rayyildiz.com</link>
	<description>Bilgi Paylaştıkça Güzelleşir</description>
	<lastBuildDate>Mon, 09 Aug 2010 20:58:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Fabrika Yöntemi Tasarım Deseni ( Factory Method )</title>
		<link>http://rayyildiz.com/2010/08/fabrika-yontemi-tasarim-deseni-factory-method/</link>
		<comments>http://rayyildiz.com/2010/08/fabrika-yontemi-tasarim-deseni-factory-method/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 20:53:29 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[concretecreator]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[fabrika yöntemi]]></category>
		<category><![CDATA[factory method]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[kaynak kod]]></category>
		<category><![CDATA[tasarım deseni]]></category>
		<category><![CDATA[tasarım desenleri]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=282</guid>
		<description><![CDATA[Tasarım desenleri hakkında giriş mahiyetindeki yazıma buradan ulaşabilirsiniz. Bu tasarım desenlerinden yaratım desenleri grubundaki ücüncü desen fabrika tasarım desenidir ( Factory Method) Fabrika yöntemi tasarım deseni,birçok framework yaygın bir şekilde kullanılan bir tasarım desenidir. Bu tasarım deseninde, parelel seviyedeki nesnelerin hangisinin oluşmasını gerektiğini karar veren bir fabrika metodunu ifade eder. Yani aynı arayüz ( interface) [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/07/soyut-fabrika-tasarim-deseni/' rel='bookmark' title='Permanent Link: Soyut Fabrika Tasarım Deseni (Abstract Factory)'>Soyut Fabrika Tasarım Deseni (Abstract Factory)</a></li>
<li><a href='http://rayyildiz.com/2010/07/yapici-tasarim-deseni/' rel='bookmark' title='Permanent Link: Yapıcı Tasarım Deseni (Builder Design Pattern)'>Yapıcı Tasarım Deseni (Builder Design Pattern)</a></li>
<li><a href='http://rayyildiz.com/2010/07/tasarim-desenleri-design-pattern/' rel='bookmark' title='Permanent Link: Tasarım Desenleri (Design Pattern)'>Tasarım Desenleri (Design Pattern)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Tasarım desenleri hakkında giriş mahiyetindeki yazıma <a href="../2010/07/2010/07/tasarim-desenleri-design-pattern/" target="_blank">buradan</a> ulaşabilirsiniz. Bu tasarım desenlerinden yaratım desenleri grubundaki ücüncü desen fabrika tasarım desenidir ( <a href="http://en.wikipedia.org/wiki/Factory_method_pattern" target="_blank">Factory Method</a>)</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/08/factory_method.png" rel="lightbox[282]"><img class="alignleft size-medium wp-image-285" title="factory_method" src="http://rayyildiz.com/wp-content/uploads/2010/08/factory_method-300x175.png" alt="" width="300" height="175" /></a>Fabrika yöntemi tasarım deseni,birçok framework yaygın bir şekilde kullanılan bir tasarım desenidir. Bu tasarım deseninde, parelel seviyedeki nesnelerin hangisinin oluşmasını gerektiğini karar veren bir fabrika metodunu ifade eder. Yani aynı arayüz ( interface) gerçekleştiren paralel sınıfların hangisinin gerçekleşmesini sağlayan bir nesne sayesinde bu ilşemi gerçekleştirebiliriz.</p>
<p><span id="more-282"></span>Örneğimiz üzerinden düşünelim. Örnekte <strong>IDbConnection</strong> adında bir arayüzümüz mevcut olup, bu arayğüzü <strong>OracleDbConnection</strong>, <strong>MySqlDbConnection</strong> ve <strong>MssqlDbConnection</strong> adında 3 tane nesne vardır. Bu üç nesneden hangisinin oluşması gerektiğini karar veren <strong>DbConnectionFactory</strong> adında bir nesnemiz var. Bu <strong>DbConnectionFactory</strong> nesnesi içinde yer alan static bir metod ve (metodun adı : <strong><em>createDbConnection</em></strong>)  metoda geçirilen parametreden hangi nesneyi gerçekleştireceğine karar verir.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/08/factory_method_uml.png" rel="lightbox[282]"><img class="alignnone size-medium wp-image-287" title="factory_method_uml" src="http://rayyildiz.com/wp-content/uploads/2010/08/factory_method_uml-300x108.png" alt="" width="300" height="108" /></a></p>
<p>Arayüz ve bu 3 nesnenin kaynak koduna bakalım.</p>
<pre class="brush:java">
package com.rayyildiz.patterns;

public interface IDbConnection {
  String getConnection();
}

public class OracleDbConnection implements IDbConnection {
  @Override
  public String getConnection() {
    return "Oracle Data Connection";
  }
}

public class MySqlDbConnection implements IDbConnection {
  @Override
  public String getConnection() {
    return "MySql Data Connection";
  }
}

public class MssqlDbConnection implements IDbConnection {
  @Override
  public String getConnection() {
    return "Mssql Data Connection";
  }
}
[java]

Şimdi ise fabrika yöntemini yapan metodu görelim:

[java]
package com.rayyildiz.patterns;

public enum DbConnectionType {
  Oracle,
  Mysql,
  Mssql
}
</pre>
<pre class="brush:java">
package com.rayyildiz.patterns;

public class DbConnectionFactory {
  public static IDbConnection createDbConnection(DbConnectionType dbConnType){
    switch(dbConnType){
      case Oracle:
        return new OracleDbConnection();
      case Mysql:
        return new MySqlDbConnection();
      case Mssql:
        return new MssqlDbConnection();
    }
    return  null;
  }
}
</pre>
<p>Bu ve zamanla uygulanan diğer tasarım desenleri hakkındaki örnek uygulamaları <a href="http://rayyildiz.github.com/DesignPatterns/">http://github.com/rayyildiz/DesignPatterns</a> adresinden ulaşabilirsiniz.</p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/07/soyut-fabrika-tasarim-deseni/' rel='bookmark' title='Permanent Link: Soyut Fabrika Tasarım Deseni (Abstract Factory)'>Soyut Fabrika Tasarım Deseni (Abstract Factory)</a></li>
<li><a href='http://rayyildiz.com/2010/07/yapici-tasarim-deseni/' rel='bookmark' title='Permanent Link: Yapıcı Tasarım Deseni (Builder Design Pattern)'>Yapıcı Tasarım Deseni (Builder Design Pattern)</a></li>
<li><a href='http://rayyildiz.com/2010/07/tasarim-desenleri-design-pattern/' rel='bookmark' title='Permanent Link: Tasarım Desenleri (Design Pattern)'>Tasarım Desenleri (Design Pattern)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/08/fabrika-yontemi-tasarim-deseni-factory-method/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oyun Geliştirmek İçin Hangi Programlama Dili</title>
		<link>http://rayyildiz.com/2010/08/oyun-gelistirmek-icin-hangi-programlama-dili/</link>
		<comments>http://rayyildiz.com/2010/08/oyun-gelistirmek-icin-hangi-programlama-dili/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 09:23:10 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[oyun geliştirme]]></category>
		<category><![CDATA[pascal]]></category>
		<category><![CDATA[programlama dili]]></category>
		<category><![CDATA[visual basic]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=267</guid>
		<description><![CDATA[Üniversitedeyken hazırladığım, oyun geliştirmek için hangi programlama dili tercih etmek, avantaj ve dezavantajları gibi başlıca konularda fikir veriebilmesi amacıyla yayınlıyorum. Aradan epey bir zaman geçtiği için teknolojilerde değişiklikler oldu ama genel anlamda size bilgi verebilir. No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Üniversitedeyken hazırladığım, oyun geliştirmek için hangi programlama dili tercih etmek, avantaj ve dezavantajları gibi başlıca konularda fikir veriebilmesi amacıyla yayınlıyorum. </p>
<p><iframe src="https://docs.google.com/present/embed?id=dr9fd4p_58gtqskfcg&#038;interval=5" frameborder="0" width="410" height="342"></iframe></p>
<p>Aradan epey bir zaman geçtiği için teknolojilerde değişiklikler oldu ama genel anlamda size bilgi verebilir.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/08/oyun-gelistirmek-icin-hangi-programlama-dili/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tasarım Desenleri (Design Pattern)</title>
		<link>http://rayyildiz.com/2010/07/tasarim-desenleri-design-pattern/</link>
		<comments>http://rayyildiz.com/2010/07/tasarim-desenleri-design-pattern/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 21:33:37 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tasarım desenleri]]></category>
		<category><![CDATA[tasarım modelleri]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=233</guid>
		<description><![CDATA[Yazılım geliştirmse süreciyle uğraşıyorsanız, özellikle nesneye dayalı programlama (Object Oriented Programming)  ile uğraşıyorsanız mutlaka görmüşsünüzdür. Peki tam olarak nedir tasarım desenleri? Tasarım desenleri (Design Patterns), bir yazılımın değişik durumlarda nasıl davranabileceğine ışık tutan şablondur. Herhangi bir programa dili bağımlı değildir. Projenizde oluşabilecek durumlar karşısında nasıl bir çözüm bulmanız gerektiği konusunda size ışık tutar. Özellikle daha [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/07/yapici-tasarim-deseni/' rel='bookmark' title='Permanent Link: Yapıcı Tasarım Deseni (Builder Design Pattern)'>Yapıcı Tasarım Deseni (Builder Design Pattern)</a></li>
<li><a href='http://rayyildiz.com/2010/08/fabrika-yontemi-tasarim-deseni-factory-method/' rel='bookmark' title='Permanent Link: Fabrika Yöntemi Tasarım Deseni ( Factory Method )'>Fabrika Yöntemi Tasarım Deseni ( Factory Method )</a></li>
<li><a href='http://rayyildiz.com/2010/07/soyut-fabrika-tasarim-deseni/' rel='bookmark' title='Permanent Link: Soyut Fabrika Tasarım Deseni (Abstract Factory)'>Soyut Fabrika Tasarım Deseni (Abstract Factory)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Yazılım geliştirmse süreciyle uğraşıyorsanız, özellikle nesneye dayalı programlama (<a href="http://en.wikipedia.org/wiki/Object-oriented" target="_blank">Object Oriented Programming</a>)  ile uğraşıyorsanız mutlaka görmüşsünüzdür. Peki tam olarak nedir tasarım desenleri?</p>
<p><a href="http://tr.wikipedia.org/wiki/Tasar%C4%B1m_%C3%B6r%C3%BCnt%C3%BCleri" target="_blank">Tasarım desenleri</a> (<a href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29" target="_blank">Design Patterns</a>), bir yazılımın değişik durumlarda nasıl davranabileceğine ışık tutan şablondur. Herhangi bir programa dili bağımlı değildir. Projenizde oluşabilecek durumlar karşısında nasıl bir çözüm bulmanız gerektiği konusunda size ışık tutar. Özellikle daha önce sizin karşılaştığınız sorunların benzerleri için geliştirildiğinden size yardımcı olacaktır. Geliştirdiğiniz uygulama nasıl bir yapıda olduğu, ileride yeni özelliklerin eklenebileceği, farklı platformlarda çalışabilmesi&#8230; gibi yeni gelecek özelliklere çok hızlı adapte olabilmek için size bazı şablonlar sunar. Bu sayede, tüm uygulamayı yeniden yazmanız gerek kalmaz.</p>
<p>Örneğin, Scala programlama dili için kullanılacak bir IDE yazıyorsunuz, yazdığınız IDE nin şu an sadece linux ortamı için düşündünüz; ama çok fazla istek oldu ve bu uygulamanızı hem MACOS hem de windows platformunda implemente etmek durumunda kalırsanız, ne kadar kod yazmanız gerekiyor? Yoksa tüm uygulamayı sıfırdan yazmanız ( hatta 3 farklı proje olarak) mı gerekecek?</p>
<p>İşte bu ve buna benzer sorunları çözebilmeniz için, tasarım desenleri size bazı şablonlar sunar. Bu şablonlardan hangisinin sizin ihtiyacınıza göre olduğuna sizin karar vermeniz gerekecek.</p>
<p>Genel olarak tasarım modelleri 3 kategoride değerlendirilir:</p>
<p>Yaratım Desenleri:</p>
<ul>
<li><a href="http://rayyildiz.com/2010/07/soyut-fabrika-tasarim-deseni/">Soyut Fabrika</a> ( Abstract Factory)</li>
<li><a href="http://rayyildiz.com/2010/07/yapici-tasarim-deseni/">Yapıcı</a> (Builder)</li>
<li><a href="http://rayyildiz.com/2010/08/fabrika-yontemi-tasarim-deseni-factory-method/">Fabrika Yöntemi</a> (Factory Method)</li>
<li>Örnek (Prototype)</li>
<li>Yegane(Singleton)</li>
</ul>
<p>Yapısal Desenler:</p>
<ul>
<li>Uyumlayıcı(Adapter)</li>
<li>Köprü (Bridge)</li>
<li>Bileşik(Composite)</li>
<li>Dekoratör (Decorator)</li>
<li>Vitrin(Facade)</li>
<li>Sineksiklet(Flyweight)</li>
<li>Vekil(Proxy)</li>
</ul>
<p>Davranış Desenleri:</p>
<ul>
<li>Sorumluluk Zinciri (Chain of Responsibility)</li>
<li>Komut(Command)</li>
<li>Yorumlayıcı(Interpreter)</li>
<li>Yineleyeyici(Iterator)</li>
<li>Arabulucu(Mediator)</li>
<li>Yadigar(Memenoto)</li>
<li>Gözlemci(Observe)</li>
<li>Durum(State)</li>
<li>Strateji (Strategy)</li>
<li>Kalıp Yordamı (Template method)</li>
<li>Ziyaretçi(Visitor)</li>
</ul>
<p>Bu desenleri sırasıyla yazılarımda anlatacağım.</p>
<p>Tasarım desenleri hakkındaki örnek uygulamaları <a href="http://rayyildiz.github.com/DesignPatterns/">http://github.com/rayyildiz/DesignPatterns</a> adresinden ulaşabilirsiniz.</p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/07/yapici-tasarim-deseni/' rel='bookmark' title='Permanent Link: Yapıcı Tasarım Deseni (Builder Design Pattern)'>Yapıcı Tasarım Deseni (Builder Design Pattern)</a></li>
<li><a href='http://rayyildiz.com/2010/08/fabrika-yontemi-tasarim-deseni-factory-method/' rel='bookmark' title='Permanent Link: Fabrika Yöntemi Tasarım Deseni ( Factory Method )'>Fabrika Yöntemi Tasarım Deseni ( Factory Method )</a></li>
<li><a href='http://rayyildiz.com/2010/07/soyut-fabrika-tasarim-deseni/' rel='bookmark' title='Permanent Link: Soyut Fabrika Tasarım Deseni (Abstract Factory)'>Soyut Fabrika Tasarım Deseni (Abstract Factory)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/07/tasarim-desenleri-design-pattern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JDK6 da Dependency Injection (ServiceLoader)</title>
		<link>http://rayyildiz.com/2010/07/jdk6-da-dependency-injection-serviceloader/</link>
		<comments>http://rayyildiz.com/2010/07/jdk6-da-dependency-injection-serviceloader/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 20:33:53 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[DI]]></category>
		<category><![CDATA[IoC]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jdk6]]></category>
		<category><![CDATA[örnek uygulama]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=226</guid>
		<description><![CDATA[DI ne olduğuna dair bir yazıyı buradan ulaşabilirsiniz. JDK6 da ise ServiceLoader gelmektedir. ServiceLoader sayesinde bir nevi DI sağlamış olmaktayız. Bunun nasıl yapacağımızı bir örnekle gösterelim. Uygulamanın örnek test kodlarını github üzerinden bulabilmeniz mümkündür. Bu örneği yapabilmek için 3 tane proje oluşturalım. Bu 3 proje ve açıklaması şu şekildedir: UserAuth : Arayüzün yer aldığı proje.IUserAuthService [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>DI ne olduğuna dair bir yazıyı <a href="http://rayyildiz.net/2010/05/what-is-dependency-injection/" target="_blank">buradan</a> ulaşabilirsiniz. JDK6 da ise <a href="http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/java/util/ServiceLoader.html" target="_blank">ServiceLoader</a> gelmektedir. ServiceLoader sayesinde bir nevi DI sağlamış olmaktayız. Bunun nasıl yapacağımızı bir örnekle gösterelim.</p>
<p>Uygulamanın örnek test kodlarını <a href="http://github.com/rayyildiz/UserAuthSample" target="_blank">github</a> üzerinden bulabilmeniz mümkündür.</p>
<p>Bu örneği yapabilmek için 3 tane proje oluşturalım. Bu 3 proje ve açıklaması şu şekildedir:</p>
<p>UserAuth : Arayüzün yer aldığı proje.IUserAuthService diye bir arayüz yer almakta ve bu arayüz login diye bir metot tanımı içermektedir.</p>
<p>UserAuthImpl: Uygulamanın gerçekleştirildiği sınıf yer alır.</p>
<p>UserAuthTest: Main sınıfının yer aldığı örnek uygulamadır.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/07/project_tree.png" rel="lightbox[226]"><img class="alignleft size-medium wp-image-227" title="project_tree" src="http://rayyildiz.com/wp-content/uploads/2010/07/project_tree-246x300.png" alt="" width="246" height="300" /></a>Arayüzün yer aldığı UserAuth projesinde farklı olarak META-INF/services klasörü  ve bu klasör içinde com.rayyildiz.userauth.IUserAuthService dosyası yer almaktadır. Bu dosya içine bakarsanız sadece bir satır yer almaktadır.</p>
<pre class="brush:java">

com.rayyildiz.userauth.impl.UserAuthService
</pre>
<p>ServiceLoader bu dosyalara bakarak hangi implemantosyunu yüklemesi gerektiğini anlar. UserAuth.jar implementasyonun yer aldığı UserAuthImpl.jar referans olarak bilmez. SericeLoader load sırasında bu implementasyonu arayacaktır.</p>
<p>Burada asıl önemli test projemize bakalım:</p>
<pre class="brush:java">
package com.rayyildiz.userauth;

import java.util.Iterator;
import java.util.ServiceLoader;

public class Main {
  public static void main(String[] args) {
    ServiceLoader&lt;IUserAuthService&gt; serviceLoader = ServiceLoader.load(IUserAuthService.class);
    Iterator&lt;IUserAuthService&gt; iterator = serviceLoader.iterator();-
    while(iterator!= null &amp;&amp; iterator.hasNext()){
      IUserAuthService userAuthService = iterator.next();
      boolean login = userAuthService.login("demo", "password");
      System.out.println("Login for username: demo and password:password is " + login);
   }
}
</pre>
<p>Gördüğünüz gibi test uygulaması implementasyon nesnesini görmez. ServiceLoader META-INF/services içinde yer alan dosyalara bakarak implementasyon nesnelerini örnek projenin olduğu klasörde ve CLASSPATH de arar.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/07/jdk6-da-dependency-injection-serviceloader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Platformunda Tablı Ekranlar</title>
		<link>http://rayyildiz.com/2010/06/android-platformunda-tabli-ekranlar/</link>
		<comments>http://rayyildiz.com/2010/06/android-platformunda-tabli-ekranlar/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 21:41:31 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobil Teknolojiler]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[android platform]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[örnek uygulama]]></category>
		<category><![CDATA[tab]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=210</guid>
		<description><![CDATA[Android ekranları tasarlarken Tab kullanmak güzel bir artı katmakta, Activity ler arasında dolaşmaktan daha avantajlı bir yapı sunmaktadır. Android de tab kullanmak için &#8220;TabActivity&#8221; yararlanacağız. Bunun için ihtiyacımız olan layout xml şu şekilde bir yapıda olmalı. Göreceğiniz gibi ana layout TabHost&#8217;dur. Gördüğünüz bir tane FrameLayout yer almaktadır. Biz code içinde Tab ları ekleyeceğimiz için layout [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/' rel='bookmark' title='Permanent Link: Android için Uygulama Geliştirme'>Android için Uygulama Geliştirme</a></li>
<li><a href='http://rayyildiz.com/2010/06/android-uygulamalarinda-veritabani-islemleri/' rel='bookmark' title='Permanent Link: Android Uygulamalarında Veritabanı İşlemleri'>Android Uygulamalarında Veritabanı İşlemleri</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Android ekranları tasarlarken Tab kullanmak güzel bir artı katmakta, Activity ler arasında dolaşmaktan daha avantajlı bir yapı sunmaktadır. Android de tab kullanmak için &#8220;<a href="http://developer.android.com/reference/android/app/TabActivity.html" target="_blank">TabActivity</a>&#8221; yararlanacağız. Bunun için ihtiyacımız olan layout xml şu şekilde bir yapıda olmalı.</p>
<pre class="brush:xml">
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@android:id/tabhost"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
  <LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">
    <TabWidget
       android:id="@android:id/tabs"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content" />
      <FrameLayout
         android:id="@android:id/tabcontent"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:padding="5dp">
      </FrameLayout>
    </LinearLayout>
</TabHost>
</pre>
<p>Göreceğiniz gibi ana layout TabHost&#8217;dur. Gördüğünüz bir tane FrameLayout yer almaktadır. Biz code içinde Tab ları ekleyeceğimiz için layout base bir yapıdadır. Tüm Activity leri &#8220;<a href="http://developer.android.com/guide/topics/manifest/manifest-intro.html" target="_blank">AndroidManifest.xml</a>&#8221; içinde tanımlamalısınız.  </p>
<p>Tabları host edecek olan nesnemiz ise şu şekildedir:</p>
<pre class="brush:java">
public class ApplicationActivity extends TabActivity {
  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);
    Resources res = getResources();
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;
    intent = new Intent().setClass(this, DashboardActivity.class);
    spec = tabHost.newTabSpec("home").setIndicator("Home",
         res.getDrawable (R.drawable.ic_tab_dashboard)).setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, CreditCardActivity.class);
    spec = tabHost.newTabSpec("sample1").setIndicator("Sample Tab",
         res.getDrawable (R.drawable.ic_tab_sample1)).setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, SettingActivity.class);
    spec = tabHost.newTabSpec("sample2").setIndicator("Sample Tab 2",
        res.getDrawable (R.drawable.ic_tab_sample2)).setContent(intent);
    tabHost.addTab(spec);

    intent = new Intent().setClass(this, AboutActivity.class);
    spec = tabHost.newTabSpec("about").setIndicator("Sample Tab 3",
        res.getDrawable (R.drawable.ic_tab_about)).setContent(intent);
    tabHost.addTab(spec);
    tabHost.setCurrentTab(0);
  }
}
</pre>
<p>Ben burada daha şık olması amacıyla Tab seçili iken farklı bir ikon görünmesi amacıyla &#8220;ic_tab_xxx&#8221; dosyalarını kullandım. Bunlar şuna benzer bir yapıdadır:</p>
<pre class="brush:xml">
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/helpblue" android:state_selected="true" />
  <item android:drawable="@drawable/helpgray" />
</selector>
</pre>
<p>Uygulamamızı çalıştırdığımızda ekran görünütüsü buna benzer olmaktadır.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/06/android_sample_tab.png" rel="lightbox[210]"><img src="http://rayyildiz.com/wp-content/uploads/2010/06/android_sample_tab-201x300.png" alt="" title="android_sample_tab" width="201" height="300" class="alignnone size-medium wp-image-211" /></a><a href="http://rayyildiz.com/wp-content/uploads/2010/06/android_sample_tab2.png" rel="lightbox[210]"><img src="http://rayyildiz.com/wp-content/uploads/2010/06/android_sample_tab2-201x300.png" alt="" title="android_sample_tab2" width="201" height="300" class="alignnone size-medium wp-image-217" /></a></p>
<p>Daha sonra daha detaylı bilgi paylaşıyor olacağım, şimdilik hoşcakalın.</p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/' rel='bookmark' title='Permanent Link: Android için Uygulama Geliştirme'>Android için Uygulama Geliştirme</a></li>
<li><a href='http://rayyildiz.com/2010/06/android-uygulamalarinda-veritabani-islemleri/' rel='bookmark' title='Permanent Link: Android Uygulamalarında Veritabanı İşlemleri'>Android Uygulamalarında Veritabanı İşlemleri</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/06/android-platformunda-tabli-ekranlar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android için Uygulama Geliştirme</title>
		<link>http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/</link>
		<comments>http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 11:06:15 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Mobil Teknolojiler]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[uygulama geliştirme]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=174</guid>
		<description><![CDATA[Android ile uygulama geliştirmeye başlamak için Android SDK indirmeniz gerekiyor. İşletim sisteminize göre bir sürümü indirip açtıktan sonra , windows için Setup.exe kullanadarak linux için ise tools klasörü altında yer alan ./android komutuyla android platform indirmeniz gerekiyor. Şu anda en son sürüm 2.2 (Android dilerseniz tüm platformları dilerseniz sadece ihtiyacınız olan platformu indirebilirsiniz. Platformu indirmek [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/06/android-platformunda-tabli-ekranlar/' rel='bookmark' title='Permanent Link: Android Platformunda Tablı Ekranlar'>Android Platformunda Tablı Ekranlar</a></li>
<li><a href='http://rayyildiz.com/2010/06/android-uygulamalarinda-veritabani-islemleri/' rel='bookmark' title='Permanent Link: Android Uygulamalarında Veritabanı İşlemleri'>Android Uygulamalarında Veritabanı İşlemleri</a></li>
<li><a href='http://rayyildiz.com/2010/05/netbeans-6-9/' rel='bookmark' title='Permanent Link: Netbeans 6.9'>Netbeans 6.9</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Android ile uygulama geliştirmeye başlamak için <a href="http://developer.android.com/sdk/index.html" target="_blank">Android SDK</a> indirmeniz gerekiyor. İşletim sisteminize göre bir sürümü indirip açtıktan sonra , windows için Setup.exe kullanadarak linux için ise tools klasörü altında yer alan ./android komutuyla android platform indirmeniz gerekiyor.</p>
<p>Şu anda <a href="http://developer.android.com/sdk/android-2.2.html" target="_blank">en son sürüm 2.2</a> (Android <img src='http://rayyildiz.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> dilerseniz tüm platformları dilerseniz sadece ihtiyacınız olan platformu indirebilirsiniz. Platformu indirmek biraz zaman alabilir.</p>
<p>Bu sırada size tafsiyem UI tasarlayabileniz için <a href="http://www.droiddraw.org/" target="_blank">droiddraw</a> adındaki bir uygulamayı indirmenizdir. Her ne kadar da eclipse için <a href="http://developer.android.com/sdk/eclipse-adt.html" target="_blank">ADT</a> paketi yer alsa da ben droiddraw ı daha çok beğendim. Ayrıca biz örneği <a href="http://www.netbeans.org" target="_blank">netbeans</a> ile geliştireceğiz. Bu yüzden droiddraw ı indirmenizde yarar var. Ayrıca netbeans için geliştirilmiş NBAndroid eklentisini  <a href="http://wiki.netbeans.org/IntroAndroidDevNetBeans" target="_blank">bu adresten yardım alarak</a> veya ﻿﻿ <a href="http://kenai.com/downloads/nbandroid/updates.xml" target="_blank">http://kenai.com/downloads/nbandroid/updates.xml</a> update adresiyle kurabilirsiniz. Yapmanız gereken netbeans de Tools-&gt;Plugins oradan da Settings de &#8220;Add&#8221; butonuna tıklayarak bu plugini eklemek ve Available Plugins tabında Android diye aratıp bu plugin i kurmaktır.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/06/nbandroid_plugin_install.png" rel="lightbox[174]"><img class="alignnone size-medium wp-image-176" title="nbandroid_plugin_install" src="http://rayyildiz.com/wp-content/uploads/2010/06/nbandroid_plugin_install-300x186.png" alt="" width="300" height="186" /></a></p>
<p>Daha sonra linux için terminalden aşağıdaki komutu  çalıştırıp DroidDraw ı açın. Windows da eğer Java6 kuruluysa, droiddraw ın içindeki droiddraw.jar ı tıklamanız yeterlidir.</p>
<pre class="brush:bash">
rayyildiz@iceface:~/Downloads/developer/droiddraw-r1b14$ sh droiddraw.sh &amp;
</pre>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/06/droiddraw.png" rel="lightbox[174]"><img class="alignleft size-medium wp-image-179" title="droiddraw" src="http://rayyildiz.com/wp-content/uploads/2010/06/droiddraw-300x174.png" alt="" width="300" height="174" /></a>Droiddraw ile widgets tab ındaki Button u sürükleyip yandaki alana bırakınız. Daha sonra Button&#8217;a tıklayıp Properties tabı na tıklayınız.Burada şu bilgileri değiştirin:</p>
<p>id         : <strong>@+id/btnSample</strong></p>
<p>Width : <strong>100px</strong></p>
<p>Text     : <strong>Hi</strong></p>
<p>Bunları değiştirip Apply düğmensine basın. Sizde diğer özellikleri bakabilirsiniz. <em>Burada sadece şu aklınızda olsun; Width, height, left margin değerleri gibi yerlerde mutlaka px ekleyin. Yani 100 değil 100px olmalı</em>. Bu işlemleri tamamlayıp Generete tıklanız. Output ekranında aşağıdakine benzer bir xml üretecek. Bu xml sizin UI nı oluşturacaktır.</p>
<pre class="brush:xml">
&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
&gt;
&lt;Button
android:id="@+id/btnSample"
android:layout_width="100px"
android:layout_height="wrap_content"
android:text="Hi"
android:layout_x="90px"
android:layout_y="32px"
&gt;
&lt;/Button&gt;
&lt;/AbsoluteLayout&gt;
</pre>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/06/android_new_project.png" rel="lightbox[174]"><img class="alignleft size-medium wp-image-182" title="android_new_project" src="http://rayyildiz.com/wp-content/uploads/2010/06/android_new_project-300x203.png" alt="" width="300" height="203" /></a>Netbeans de yeni bir proje açalım. <a href="http://kenai.com/projects/nbandroid" target="_blank">NBAdroid</a> eklentisini kurduysanız, yeni bir proje eklerken Android diye bir kısım yer alacaktır. Daha sorna yandaki gibi proje adı, paket adı, activity adı gibi alanları doldurmanız gerekiyor. İlk kez acıyosanız, Manageplatformu tıklayarak kurulum yaptığınız android klasörünü göstermeniz gerekiyor.</p>
<p>İlk kez projeyi actığınızda, Shift + F10 ile projeyi çalıştırabilirsiniz. Burada android emulator acılıp projenizi yükleyecektir ve ekrana klasik &#8220;Hello World&#8221; yazacaktır.</p>
<p>Şimdi uygulamaya geri dönüp Resources/layouts altında yer alan main.xml  i droiddraw ile üretttiğimiz xml i kopyalayıp yağıştıralım. Bunu yaptıktan sonra uygulamayı bir kere build etmenizde yarar var. Bu işlem sonuda otomatik üretilen R.java dosyasında aşağıaki gibi değişiklikler olacaktır.</p>
<pre class="brush:java">

public final class R {
   public static final class attr { }

   public static final class id {
      public static final int btnSample=0x7f040001;
      public static final int widget0=0x7f040000;
  }

  public static final class layout {
     public static final int main=0x7f020000;
  }

  public static final class string {
     public static final int app_name=0x7f030000;
  }
}
</pre>
<p>Daha sonra aşağıdaki kodu MainActivity.java içine yazınız.</p>
<pre class="brush:java">

@Override
public void onCreate(Bundle icicle) {
   super.onCreate(icicle);
   setContentView(R.layout.main);
   final Button button = (Button) findViewById(R.id.btnSample);
   button.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
         alert("Hello world");
      }
   });
}

private void alert(String message){
   new AlertDialog.Builder(this).setTitle("rayyildiz.com").setMessage(message).setNeutralButton("Ok",
      new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog,int which) { }
      }).show();
}
</pre>
<p>Uygulamayı çalıştırdığınızda şöylşe çalışacaktır:<br />
<a href="http://rayyildiz.com/wp-content/uploads/2010/06/application_run.png" rel="lightbox[174]"><img src="http://rayyildiz.com/wp-content/uploads/2010/06/application_run.png" alt="" title="application_run" width="500" class="alignnone size-full wp-image-187" /></a><br />
<br />
Uygulamanın kaynak kodunu şu adresten indirebilirsiniz.<a href="http://github.com/downloads/rayyildiz/TestProject/AndroidSample1-v1_0.tar.gz">http://github.com/downloads/rayyildiz/TestProject/AndroidSample1-v1_0.tar.gz</a></p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/06/android-platformunda-tabli-ekranlar/' rel='bookmark' title='Permanent Link: Android Platformunda Tablı Ekranlar'>Android Platformunda Tablı Ekranlar</a></li>
<li><a href='http://rayyildiz.com/2010/06/android-uygulamalarinda-veritabani-islemleri/' rel='bookmark' title='Permanent Link: Android Uygulamalarında Veritabanı İşlemleri'>Android Uygulamalarında Veritabanı İşlemleri</a></li>
<li><a href='http://rayyildiz.com/2010/05/netbeans-6-9/' rel='bookmark' title='Permanent Link: Netbeans 6.9'>Netbeans 6.9</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>NoSQL Giriş ve MongoDB</title>
		<link>http://rayyildiz.com/2010/05/nosql-giris-ve-mongodb/</link>
		<comments>http://rayyildiz.com/2010/05/nosql-giris-ve-mongodb/#comments</comments>
		<pubDate>Sat, 08 May 2010 12:42:57 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[rdms]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=126</guid>
		<description><![CDATA[NoSQL, isminden de anlaşılabileceği gibi SQL kullanılmadığı veritabanlarına verilen genel bir isimdir. Genelde ORM ile karıştırılmaktadır. NoSQL, işişkisel veritabanlarına (RDMS) alternatif bir tekniktir. ilişkisel bir veritabanında (RDMS), tablolar oluşturur, tabloları birbirleriyle ilişki kurarak, join, kartezyen gibi SQL cümlecikleriyle kullanırız. Bunun birçok faydası vardır. Hatta yazılım geliştirirken, SQL den kaçınmak maksadıyla, ORM aracları geliştirilmiştir. Bu sayede, [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>NoSQL, isminden de anlaşılabileceği gibi SQL kullanılmadığı veritabanlarına verilen genel bir isimdir. Genelde ORM ile karıştırılmaktadır. NoSQL, işişkisel veritabanlarına (<a href="http://en.wikipedia.org/wiki/Relational_database_management_system">RDMS</a>) alternatif bir tekniktir.</p>
<p>ilişkisel bir veritabanında (RDMS), tablolar oluşturur, tabloları birbirleriyle ilişki kurarak, join, kartezyen gibi SQL cümlecikleriyle kullanırız. Bunun birçok faydası vardır. Hatta yazılım geliştirirken, SQL den kaçınmak maksadıyla, <a href="http://en.wikipedia.org/wiki/Object-relational_mapping" target="_blank">ORM</a> aracları geliştirilmiştir. Bu sayede, veritabanında yer alan tablolara, nesne gözüyle bakılabilmiş, OOP mantığıyla üzerinde işlem yapılabilmiştir.</p>
<p>NoSQL ise böyle birşey değildir. ORM araçları, sizin bir nesneye set ettiğiniz değerleri, SQL cevirerek, sizin SQL ile uğraşmanızı engellemiş olurlar. NoSQL veritabanları dağıtık bir mimari ile oluşturulmuş olup, yarının teknolojisi olarak görülmektedirler. Google&#8217;ın BigTable, Amazon&#8217;un Dynamo, Facebook&#8217;un <a href="http://cassandra.apache.org/" target="_blank">Cassandra</a> bu tür birer veritabanlarıdır.Bu üç veritabanı da <a href="http://en.wikipedia.org/wiki/Petabyte" target="_blank">PB</a> boyutunda veri tutmak için geliştirilmiştir. Ben bunlardan konfigurasyon acısından daha kolay yapılan döküman tabanlı bir veritabanı hakkında bilgi vereceğim: <a href="http://www.mongodb.org" target="_blank">MongoDB</a>.</p>
<p><span id="more-132"></span>MongoDB, 10gen tarafından geliştirilmiş, döküman tabanlı bir NoSQL veritabanıdır. Bu <a href="http://www.mongodb.org/display/DOCS/Downloads" target="_blank">bağlantıdan</a> işletim sisteminize göre indirebilrisiniz. Eğer Ubuntu/Debian kullanıyorsanız, <a href="http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages" target="_blank">bu adresten</a> nasıl kurabileceğinizi bakabilirsiniz.</p>
<p><strong>Örnek Java Projesi</strong></p>
<p>MongoDB denemek amacıyla örnek bir java projesi yazacağız. MongoDB ye odaklanmak amacıyla yazdığımız uygulama, konsol uygulaması olacak ve IDE olarak <a href="http://www.netbeans.org" target="_blank">netbeans</a> kullanacağız.</p>
<p>İlk önce yapmanız gereken <a href="http://github.com/mongodb/mongo-java-driver/downloads" target="_blank">mongo-java-driver</a> indirmek. Ben şu an stable versiyonu <a href="http://github.com/downloads/mongodb/mongo-java-driver/mongo-1.4.jar">mongo-1-4.jar</a> ı tercih ettim.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/05/nb_create_project.png" rel="lightbox[132]"><img class="size-full wp-image-127 alignnone" title="nb_create_project" src="http://rayyildiz.com/wp-content/uploads/2010/05/nb_create_project.png" alt="" width="497" height="334" /></a></p>
<p>Daha sonra netbeans ile örnek bir java uygulaması açıyorum. Bundan sonra yapmanız gereken, mongo java driver library olarak eklemek. Bunun için şu şelilde yapabilrisiniz.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/05/get_mongo_driver.png" rel="lightbox[132]"><img title="get_mongo_driver" src="http://rayyildiz.com/wp-content/uploads/2010/05/get_mongo_driver.png" alt="" width="496" height="371" /></a></p>
<p>Bşir tane Book adında kitap sınıfı yazalım. Bu yazdığımız nesne, &#8220;BasicDBObject&#8221; nesnesinden türetiyoruz ve getXxx- setXxx, BasicDBObject dan gelen put ve get metotlarını kullanacağız.</p>
<p><a href="http://rayyildiztemp.files.wordpress.com/2010/05/code_book.png" rel="lightbox[132]"><img class="alignnone size-full wp-image-129" title="code_book" src="http://rayyildiztemp.files.wordpress.com/2010/05/code_book.png" alt="" width="497" height="388" /></a></p>
<p>MongoDB ye erişmek için şu adımları takip ederiz.</p>
<ul>
<li>Bir Mongo nesnesi alırız. Bu nesne mongodb ye bağlanmak içindir.</li>
<li>Mongo dan bir DB alırız. Bu db eğer varsa o gelir, yoksa yenisi oluşturulur.</li>
<li>DB nesnesinden DBCollection alırız. DBCollection  tablodur.</li>
<li>Insert için bir DBObject ( veya BasicDbObject) bu DBCollection&#8217;a insert ederiz.</li>
<li>Bu DBCollection içinde gezmek için ise DBCollectiondan bir DBCursor oluşturup, DBCursor içinde dolaşırız.</li>
</ul>
<p>Şunu bilmeniz gerekiyor. NoSQL, anlayabilmek için sürekli kullandığımız ilişkisel veritabanı mantığını bir kenera bırakmamız gerekiyor. Özellikle çok büyük veriler için kullanılan bu veritabanları, elbette güzel özelliklerinin yanında (hız) eksik yanları da vardır (Her ne kadarda bu eksik yanları kapatılması için teknikler olsa bile). Size tafsiyem bir banka uygulaması geliştiriyorsanız, NoSQL kullanmak isterseniz bir kere daha düşünmeniz. Bunun yanında, sosyal bir ağ geliştiriyorsanız, bildiğiniz RDMS in dışına çıkmak çok güzel sonuçlar da doğurabilir.</p>
<p>Burada gerçekleştirdiğimiz örnek uygulamayı <a href="http://github.com/downloads/rayyildiz/TestProject/MongoDBTest.tar.gz" target="_blank">buradan</a> indirebilirsiniz. Şimdilik sadece giriş amacındaki bu yazıyı burada  bırakayım.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/05/nosql-giris-ve-mongodb/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Netbeans 6.9</title>
		<link>http://rayyildiz.com/2010/05/netbeans-6-9/</link>
		<comments>http://rayyildiz.com/2010/05/netbeans-6-9/#comments</comments>
		<pubDate>Mon, 03 May 2010 15:17:23 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Mobil Teknolojiler]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[app engine]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javafx]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[spring 3.0]]></category>
		<category><![CDATA[springmvc]]></category>

		<guid isPermaLink="false">http://rayyildiz.com/?p=88</guid>
		<description><![CDATA[Netbeans 6.9 beta sürümü yayınlandı. Netbeans 6.9 adresinden detaylarına bakabilir ve indirebilirsiniz. Netbeans 6.9 da benim uzun süredir beklediğim Spring 3.0 desteği en sonunda gelmiş oldu. Daha önceki sürümlerinde netbeans Spring 2.5 desteği sunuyordu. Özellikle spring 3.0 ile gelen özellikleri kullanabileceğiz. Netbeans 6.9, 9 haziranda release olacak. Google App Engine için geliştirilmiş plugin de mevcuttur. [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2009/02/javafx/' rel='bookmark' title='Permanent Link: JavaFX'>JavaFX</a></li>
<li><a href='http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/' rel='bookmark' title='Permanent Link: Android için Uygulama Geliştirme'>Android için Uygulama Geliştirme</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Netbeans 6.9 beta sürümü yayınlandı. <a href="http://www.netbeans.com/community/releases/69/" target="_blank">Netbeans 6.9</a> adresinden detaylarına bakabilir ve indirebilirsiniz.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/05/enterprise-cdi.png" rel="lightbox[88]"><img class="alignleft size-full wp-image-93" title="enterprise-cdi" src="http://rayyildiz.com/wp-content/uploads/2010/05/enterprise-cdi.png" alt="" width="200" height="126" /></a> Netbeans 6.9 da benim uzun süredir beklediğim <a href="http://www.springsource.com" target="_blank">Spring 3.0</a> desteği en sonunda gelmiş oldu. Daha önceki sürümlerinde netbeans Spring 2.5  desteği sunuyordu. Özellikle <a href="http://blog.springsource.com/2009/12/16/spring-framework-3-0-goes-ga/?__utma=1.1917309320.1267716365.1267724045.1272898185.3&amp;__utmb=1.3.10.1272898185&amp;__utmc=1&amp;__utmx=-&amp;__utmz=1.1272898185.3.3.utmcsr=google|utmccn=%28organic%29|utmcmd=organic|utmctr=spring%203.0&amp;__utmv=-&amp;__utmk=4250035" target="_blank">spring 3.0 ile gelen özellikleri</a> kullanabileceğiz. Netbeans 6.9, <a href="http://www.netbeans.com/community/releases/roadmap.html" target="_blank">9 haziranda release</a> olacak.</p>
<p>Google App Engine için geliştirilmiş plugin de mevcuttur.</p>
<p><span id="more-88"></span><strong>JavaFX</strong></p>
<p>Bildiğiniz gibi Sun &amp; Oracle , linux platformunda javafx desteğini sunmuşlardı. Netbeans ise javafx geliştirmek için en uygun ücretsiz IDE olarak yoluna devam ediyor.</p>
<p><strong>Scala ve Git Desteği</strong></p>
<p>Ayrıca Netbeans <a href="http://wiki.netbeans.org/Scala" target="_blank">Scala</a> ve  <a href="http://nbgit.googlecode.com/" target="_blank">git</a> desteği bulunmaktadır.</p>
<p><a href="http://rayyildiztr.files.wordpress.com/2010/05/scalaeditor_080729_scala.png" rel="lightbox[88]"><a href="http://rayyildiz.com/wp-content/uploads/2010/05/scalaeditor_080729_scala.png" rel="lightbox[88]"><img class="alignnone size-medium wp-image-171" title="scalaeditor_080729_scala" src="http://rayyildiz.com/wp-content/uploads/2010/05/scalaeditor_080729_scala-300x186.png" alt="" width="300" height="186" /></a></a></p>
<p><a href="http://rayyildiz.com/2010/05/early-prototype-small.png" rel="lightbox[88]"><img class="alignnone size-full wp-image-98" title="early-prototype-small" src="http://rayyildiztemp.files.wordpress.com/2010/05/early-prototype-small.png" alt="" /></a></p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2009/02/javafx/' rel='bookmark' title='Permanent Link: JavaFX'>JavaFX</a></li>
<li><a href='http://rayyildiz.com/2010/06/android-icin-uygulama-gelistirme/' rel='bookmark' title='Permanent Link: Android için Uygulama Geliştirme'>Android için Uygulama Geliştirme</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2010/05/netbeans-6-9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cloud Computing Yapmak İstiyorum:Stax.net</title>
		<link>http://rayyildiz.com/2009/04/cloud-computing-yapmak-istiyorum-stax-net/</link>
		<comments>http://rayyildiz.com/2009/04/cloud-computing-yapmak-istiyorum-stax-net/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 19:19:06 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[jython]]></category>
		<category><![CDATA[stax]]></category>
		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.rayyildiz.com/?p=65</guid>
		<description><![CDATA[Cloud Computing yabancı olanlar için ne olduğu hakkında bilgi vermekle başlayayım. Cloud computing ( kümesel işlemler diye Türkçe&#8217;de kullanılıyor)  hesap duyulan birçok işlemin uzaktaki bir veya birden fazla bilgisayar üzerinde yapılabilmesine olanak sunan bir mimari.  Bu konuda başta google ile duymaya başladığımız bu mimari, amazon ws ile cok daha gün yüzüen cıktı. Özellikle Amazon Web [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/05/netbeans-6-9/' rel='bookmark' title='Permanent Link: Netbeans 6.9'>Netbeans 6.9</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Cloud Computing yabancı olanlar için ne olduğu hakkında bilgi vermekle başlayayım. <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Cloud computing</a> ( kümesel işlemler diye Türkçe&#8217;de kullanılıyor)  hesap duyulan birçok işlemin uzaktaki bir veya birden fazla bilgisayar üzerinde yapılabilmesine olanak sunan bir mimari.  Bu konuda başta google ile duymaya başladığımız bu mimari,<a href="http://aws.amazon.com/" target="_blank"> amazon ws</a> ile cok daha gün yüzüen cıktı. Özellikle Amazon Web Servisleri bu konuda cok yol katetti. Gectiğimiz günlerde, <a href="http://www.twitter.com" target="_blank">twitter</a>&#8216;ın Amazon WS gecmesi ve hemen arkasından <a href="http://code.google.com/intl/tr-TR/appengine/" target="_blank">google app engine</a>&#8216;in java desteği sunması, cloud computing kavramını bir anda öne cıkardı.</p>
<p>Özellikle google app engine java desteği, cok önemli bir gelişme oldu. Daha öncesinde sadece <a href="http://www.python.org" target="_blank">python</a> desteği sunan google engine, daha geniş kitleye hitap eden java desteği ile <a href="http://googleappengine.blogspot.com/2009/04/early-look-at-java-language-support.html" target="_blank">ciddi bir talep</a> almış görünüyor.<span id="more-65"></span></p>
<p>Benimde bu konuda araştırma yaparken karşılaştığım bir servis var: <a href="http://www.stax.net" target="_blank">stax.net</a>. Şu anda beta döneminde ücretsiz sunulan servis sayesinde cloud computing yapabilmeniz mümkün. Amazon WS üzerine kurulmuş bu servis ile struts, wicket, jython, jruby, cold fusion başta olmak üzere kabaca java uygulamanızı yayınlayabiliyorsunuz. Hatta ben bu uygulama üzerinde seam çalıştırdım. Yani kabaca Apache Tomcat üzerinde çalıştırabildiğiniz tüm java uygulamalarını yayınlayabiliyorsunuz.</p>
<p>Sitesine girerek üye olduğunuzda size onay maili gelecektir(üyelik onayı birkaç gün sürebiliyor) . Daha sonra siteye giriş yaparak, yeni bir uygulama acabilirsiniz.</p>
<p><a href="http://rayyildiz.com/wp-content/uploads/2010/05/febc8fbacad75e55ee3949a9128b7357.png" rel="lightbox[65]"><img class="alignleft size-medium wp-image-66" title="febc8fbacad75e55ee3949a9128b7357" src="http://rayyildiz.com/wp-content/uploads/2010/05/febc8fbacad75e55ee3949a9128b7357.png?w=300" alt="febc8fbacad75e55ee3949a9128b7357" width="300" height="216" /></a></p>
<p>Yeni bir uygulama actıktan sonra, bunu uygulamanızı kendi bilgisayarınıza indirmeniz ve geliştirmenizi devam etmelisiniz. Size uygun bir template seçerek ilk uygulamanızı acabilirsiniz.</p>
<p>Daha sonrasında <a href="http://wiki.stax.net/w/index.php/SDK" target="_blank">stax sdk</a> indirmeniz gerekiyor. <a href="http://stax-downloads.s3.amazonaws.com/sdk/stax-sdk-0.2.17-dist.zip" target="_blank">Bu adresten stax sdk </a>indirebilirsiniz.</p>
<p>Stax sdk indirdikten sonra windows ortamında iseniz kurulum dizin altındaki stax console kullanarak, linux ortamında iseniz  gerekli path ayarladıktan sonra konsole üzerinden komutları kullanabilirsiniz.</p>
<p>Benim size tavsiyem command promt üzerinden <strong>stax help</strong> komutu ile başlamanız.</p>
<p>Uygulamanız seçili iken, configuration tab kullanarak uygulamanızın nasıl çalışacağını ayarlayabilirsiniz. <a href="http://rayyildiztemp.files.wordpress.com/2009/04/3a30e757a34289ee23d8149f2311f991.png" rel="lightbox[65]"><img class="alignleft size-medium wp-image-67" title="3a30e757a34289ee23d8149f2311f991" src="http://rayyildiztemp.files.wordpress.com/2009/04/3a30e757a34289ee23d8149f2311f991.png?w=300" alt="3a30e757a34289ee23d8149f2311f991" width="300" height="170" /></a></p>
<p>Yanda da görebileceğiniz gibi şu anda stax 5&#8242;e kadar shared cluster imkanı veriyor. Beta sürecinden sonra ise ücretleri değişir bir şekilde dedicated server imkanı vereceklerini söylüyorlar.  Aynı zamanda herhangi bir bug bulmanız durumunda sizinle oldukça ilgileniyor ve bug ı kapatmaya çalışıyorlar.</p>
<p>Güzel özelliklerden bir diğeri ise, uygulamanızı app.username.staxapps.net gibi erişebilecekken, gerekli ayarlamaları yaparak bir domain olarak da erişebilmenize olanak sunması. Gerekli ayarları configuration tab altında bulabilmeniz mümkün.</p>
<p>Stax.net in güzel bir özelliği ise mysql veritabanı sunması.</p>
<p>Beta sürecinde bile olsa, verdikleri hizmetler acısından ve de ücretsiz olarak java uygulamanızı yayınlayabileceğiniz yer sunmaları acısından başarılı buldum. Bu konuda bir pazarın eksik olduğu kesin.</p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2010/05/netbeans-6-9/' rel='bookmark' title='Permanent Link: Netbeans 6.9'>Netbeans 6.9</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2009/04/cloud-computing-yapmak-istiyorum-stax-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java Migration Tool : Migrate4j</title>
		<link>http://rayyildiz.com/2009/02/java-migration-tool-migrate4j/</link>
		<comments>http://rayyildiz.com/2009/02/java-migration-tool-migrate4j/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 23:21:45 +0000</pubDate>
		<dc:creator>rayyildiz</dc:creator>
				<category><![CDATA[Yazılım Geliştirme]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[migrate]]></category>

		<guid isPermaLink="false">http://www.rayyildiz.com/?p=56</guid>
		<description><![CDATA[Migrate4j , java ortamı için geliştirilmiş bir “migration” aracıdır. “Migration” bu konuda yakın olan kişilerin cok da kullandığı bir kelime olduğu için aynen bu kelimeyi kullanmak daha doğru geldi bana. Bu araç aslında veritabanını biryerden başka yere taşırken yada yeni özellikler eklerken kullanılan bir araçtır. Çoğunlukla birden fazla kişinin aynı anda üzerinde çalıştığı veritabanlarında buna [...]


Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2009/02/ubuntudebian-java-nasil-kurulur/' rel='bookmark' title='Permanent Link: Ubuntu/Debian Java Nasıl Kurulur'>Ubuntu/Debian Java Nasıl Kurulur</a></li>
<li><a href='http://rayyildiz.com/2009/02/java-da-phpquercus/' rel='bookmark' title='Permanent Link: Java da PHP:Quercus'>Java da PHP:Quercus</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Migrate4j , java ortamı için geliştirilmiş bir “migration” aracıdır. “Migration” bu konuda yakın olan kişilerin cok da kullandığı bir kelime olduğu için aynen bu kelimeyi kullanmak daha doğru geldi bana. Bu araç aslında veritabanını biryerden başka yere taşırken yada yeni özellikler eklerken kullanılan bir araçtır. Çoğunlukla birden fazla kişinin aynı anda üzerinde çalıştığı veritabanlarında buna benzer sorunlar yaşanabilir. Geliştiricelerden birisi yeni tablo eklerken, diğeri ise başka tablolarda sütun ekelem yada cıkarma işlemi yapmış olabilir. İşte bu gibi nedenlerden dolayı veritabanlarının senkronize olması istenir, eksik tabloların ve yeni sütunarın otomatik olarak kurulması, eğer tablo yoksa yeni tablo oluşturulması, varsa üzerinde oynanan sütunların değiştirilmesi istenir. İşte bu tarz sorunları çözmek için çeşitli “migration” araçları vardır. Bunlardan birisi Migrate4j uygulaması.</p>
<p><span id="more-56"></span>Migrate4j diğer araçlardan biraz daha fazla özellik içerir. Örneğin sorgular native SQL değil java ile yazılmaktadır. Ayrıca farklı veritabanları motorlarında sorunsuzca çalışabilmektedir.</p>
<h3><strong>Nasıl Kullanırım?</strong></h3>
<p>Migrate4j uygulamasını <a href="http://migrate4j.sourceforge.net/" target="_blank">http://migrate4j.sourceforge.net/</a> adresinden hem daha fazla detaylı bilgi alarak bakabilir hemd e bu adresten indirebilirsiniz. İndirdiğiniz paket içinden cıkan Migrate4j.jar dosyasını kullandığınız editörten tanımlayarak yada console ile derleyecekseniz ilgili classpath içine almanız yeterli. Daha sonra uygulamanızın an dizininde migrate4j.properties ayar dosyası oluşturmanı gerekiyor. Bu dosya içinde genel ayarlar ile bağlantı çümlesi ve driver seçenekleri olmalıdır. Örnek bir migrate4j.properties şu şekilde olabilir.</p>
<pre class="brush:java">
connection.url=”jdbc:mysql://localhost:3306/testdb”
connection.driver=”com.mysql.jdbc.Driver”
connection.password=passw@rd
migration.package.name=test.migratebase
</pre>
<p>Bu dosya içinde bağlantı için mysql deki testdb veritabanını kullandığımızı ve migration paketlerinin test.migratebase içinde yer aldığını belirttik. Daha sonra yazacağımız migrate sınıflarını bu paket içinde oluşturmamız gerekli.</p>
<p>Örneğin Student diye bir tablomuz var. Eğer sistemiizmde bu tablo yoksa oluşmasını, sistemden silmek istediğimizde ise bu tablonun silinmesini sağlayan nesnemiz şu şekildedir:</p>
<pre class="brush:java">
package test.migratebase;

import static com.eroi.migrate.Define.*;
import static com.eroi.migrate.Define.DataTypes.*;
import static com.eroi.migrate.Execute.*;
import com.eroi.migrate.Migration;

public class Student implements Migration {
   public void up() {
     createTable(table("student_table",
       column("id", INTEGER, primarykey(), notnull()),
       column("firstname", VARCHAR, length(50), defaultValue("NA")),
       column("lastname", VARCHAR, length(50), defaultValue("NA")),
       column("number", VARCHAR, length(15), defaultValue("NA"))));
  }

  public void down() {
     dropTable("student_table");
  }
}
</pre>
<p>Evet aslında bu nesne bizim için student_table tablosu yoksa oluşturmayı varsa silmek istediğimizde ise silmeyi sağlıyor. genel olarak eğer bir tablo oluşturulucaksa “up” silmek istenilirse “down” metodu çağrılacaktır.</p>
<p>Kabaca bir tablonun bir migration araçla nasıl silinip kurulacağını gördük. Elbette bu yeterli değildir. Sitesine girerek detaylı bilgi alabilirsiniz. Eğer bir sorunla karşılaşırsanız yardımcı olmaya çalışırız.</p>
<p>Kolay gelsin</p>


<p>Benzer Yazılar:<ol><li><a href='http://rayyildiz.com/2009/02/ubuntudebian-java-nasil-kurulur/' rel='bookmark' title='Permanent Link: Ubuntu/Debian Java Nasıl Kurulur'>Ubuntu/Debian Java Nasıl Kurulur</a></li>
<li><a href='http://rayyildiz.com/2009/02/java-da-phpquercus/' rel='bookmark' title='Permanent Link: Java da PHP:Quercus'>Java da PHP:Quercus</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://rayyildiz.com/2009/02/java-migration-tool-migrate4j/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.620 seconds -->
