Subclipse, takım halinde (ya da tek başınıza)kodlama yaparken, yazdığımız programların versiyonlanmasını sağlıyor. Kimlerin hangi değişiklikleri yaptığı ,herhangi bir sorun olması durumunda kodların önceki hallerine dönülmesini sağlayan açık kaynak versiyon kontrol sistemi Subversion programının, başta Java olmak üzere birçok programlama dilinde kod geliştirmeye yarayan Eclipse platformu üzerinden kullanılmasını sağlayan bir eklentidir.
İster bir ekibin parçası olunan durumlarda ; yanlız çalışırkende kullanılması projenin geliştirilme süreci açısından oldukça faydalı olacağı kaneatindeyim...
Kurulumu;
1) Help->Sofware Update->Find and Install menüsüne girin,
2) “Search for new features to install” seçeneğini işaretleyerek ileri tuşuna basın,
3) Sağdaki menüden “New Remote Site” butonuna basın,
4) Açılan pencerede “Name:” kısmına Subclipse, “URL:” kısmına http://subclipse.tigris.org/update_1.2.x yazarak kaydedin
5) “Finish” butonuna basarak Eclipse’in sizin için var olan yüklemeleri yapmasını bekleyin.
şeklindedir.
25 Haziran 2009 Perşembe
22 Haziran 2009 Pazartesi
Spring
Spring J2EE projelerinin kolayca geliştirilmesine yarayan , IoC ve AOP gibi modellemeleri içinde barındıran bir framework tur.
Basit bir uygulama geliştirmek istersek;
Öncelikle ortamımızı oluşturuyoruz; bunun için ;
Eclipse Europe, Eclipse Spring IDE Plugin ve Spring Framework leri edinmemiz gerekiyor.
http://www.eclipse.org/downloads/moreinfo/jee.php --> Eclipse IDE for Java EE Developers (Package Contents - Package FAQ)
http://www.springsource.org/download --> Spring Framework için
http://springide.org/updatesite/spring-ide_updatesite_2.0.2_v200712142013.zip --> Spring Ide (eclipste daha rahat spring kullanarak uygulama geliştirmek için)
Spring IDE nin kurulumu için ;
(Daha derli toplu çalışabilmek için )
C:// nin altında "araçlar" adında bir klasör oluşturuyoruz.
Buraya Eclipse exceyi çıkartııp çalıştıyoruz .
Daha sonra;
Spring Ide nin kurulumu için ;

resimde görüldüğü üzre seçeneğini seçiyoruz.
Çıkan pencereden "Search for new features to install" seçeneğini seçip
nextliyoruz , burda "new local site" butonu ile kurmak istediğimiz idenin klasörünü gösteriyoruz.
Burda wizarda aslında akıyor zaten , herhangi bir hata ile karşılaşılırsa burda bazı dependicy ler isteyebilir, onları seçenekten çıkartırsak , kurulumu rahatça tamamlayabiliriz.
bir dahakinede kurulum sonrası giriş örneği gireceğim (üşemmessem tabi :))
Basit bir uygulama geliştirmek istersek;
Öncelikle ortamımızı oluşturuyoruz; bunun için ;
Eclipse Europe, Eclipse Spring IDE Plugin ve Spring Framework leri edinmemiz gerekiyor.
http://www.eclipse.org/downloads/moreinfo/jee.php --> Eclipse IDE for Java EE Developers (Package Contents - Package FAQ)
http://www.springsource.org/download --> Spring Framework için
http://springide.org/updatesite/spring-ide_updatesite_2.0.2_v200712142013.zip --> Spring Ide (eclipste daha rahat spring kullanarak uygulama geliştirmek için)
Spring IDE nin kurulumu için ;
(Daha derli toplu çalışabilmek için )
C:// nin altında "araçlar" adında bir klasör oluşturuyoruz.
Buraya Eclipse exceyi çıkartııp çalıştıyoruz .
Daha sonra;
Spring Ide nin kurulumu için ;
resimde görüldüğü üzre seçeneğini seçiyoruz.
Çıkan pencereden "Search for new features to install" seçeneğini seçip
nextliyoruz , burda "new local site" butonu ile kurmak istediğimiz idenin klasörünü gösteriyoruz.
Burda wizarda aslında akıyor zaten , herhangi bir hata ile karşılaşılırsa burda bazı dependicy ler isteyebilir, onları seçenekten çıkartırsak , kurulumu rahatça tamamlayabiliriz.
bir dahakinede kurulum sonrası giriş örneği gireceğim (üşemmessem tabi :))
18 Haziran 2009 Perşembe
IoC(Inversion of Control)
IoC ; bir çok framework ün modellenmesinde kullanılan, başlıca nesneye yönelik programlamaya ait kavramlardan biridir. Basitçe ne olduğunu anlatmaya çalışırsak;
genel olarak prosedürel programlama dillerinde , üst seviyeli modüllere bağlı alt seviyedeki bir modülün değiştirilmesi için üst seviyedeki modülünde tekrar bir elden geçmesi gerekir. Buda tekrar kullanılabilirliği öldürmektedir. Tersine bir bağımlılıktan bahsedilmesi ve bunun kontrolünün sağlanması IoC kavramını ortaya atmıştır gibi bir şeyler diyebiliriz sanırım. Nesneye yönelik programlama dillerinden birini kullandığımız zamanlarda da aynı hataya düşülebiliyor,
fakat bir çok open source framework IoC konseptine uygun bir ortam sağlıyor yazılım geliştiriciler için.
Avantajlarından kısaca bahsedersek;
Tekrar kullanılabilirlik artıyor, Kod tekrarı önleniyor, daha kolay test edilebiliyor yazılım vs.
Şimdi bir fremawork kullanmadan IoC modeline uygun örnek vermek gerekirse;
A ve B isminda iki classımız var ;
public class A{
private B b;
public A(){
b=new B();
}

a objesi doğrudan bir b objesi oluşturuyor.
Şimdi bu örneği ;
IoC modeline uygun hale getirirsek;
public class A{
private B b;
public A(){
}
public setB(B b){
this.b=b;
}
}
genel olarak prosedürel programlama dillerinde , üst seviyeli modüllere bağlı alt seviyedeki bir modülün değiştirilmesi için üst seviyedeki modülünde tekrar bir elden geçmesi gerekir. Buda tekrar kullanılabilirliği öldürmektedir. Tersine bir bağımlılıktan bahsedilmesi ve bunun kontrolünün sağlanması IoC kavramını ortaya atmıştır gibi bir şeyler diyebiliriz sanırım. Nesneye yönelik programlama dillerinden birini kullandığımız zamanlarda da aynı hataya düşülebiliyor,
fakat bir çok open source framework IoC konseptine uygun bir ortam sağlıyor yazılım geliştiriciler için.
Avantajlarından kısaca bahsedersek;
Tekrar kullanılabilirlik artıyor, Kod tekrarı önleniyor, daha kolay test edilebiliyor yazılım vs.
Şimdi bir fremawork kullanmadan IoC modeline uygun örnek vermek gerekirse;
A ve B isminda iki classımız var ;
public class A{
private B b;
public A(){
b=new B();
}

a objesi doğrudan bir b objesi oluşturuyor.
Şimdi bu örneği ;
IoC modeline uygun hale getirirsek;
public class A{
private B b;
public A(){
}
public setB(B b){
this.b=b;
}
}
17 Haziran 2009 Çarşamba
Hibernate Nedir?
ORM(object relation modelling) yapılmasında java da kullanılan opensource bir uygulamadır. ORM nedir? dersek; onuda veritabanından çekilen sorguların bir obje aracılığıyla kullanılması gibi en basit şekilde tanımlayabiliriz.
Hibernate benzeri , java persistance gibi bir apide bulunmaktadır ayrıca.
Hibernate benzeri , java persistance gibi bir apide bulunmaktadır ayrıca.
2 Nisan 2009 Perşembe
ORACLE APEX Giriş Sayfasını Değiştirme
Apex in kendi login sayfalarında, çalışan kendine ait olan process . Authentication ı sağlayıp, yönlendirme işlemini yapıyor.
wwv_flow_custom_auth_std.login(
P_UNAME => :P2_USERNAME,
P_PASSWORD => :P2_PASSWORD,
P_SESSION_ID => v('APP_SESSION'),
P_FLOW_PAGE => :APP_ID||':1'
);
Bazen giriş sayfasını bazı şartlara göre değiştirilmesi gerekebilmekte. Örneğin kullanıcının yetkisine bağlı olarak farklı giriş saygalarının karşılaması gerekebilir. Böyle bir durumda ;
Login sayfasındaki processi mizi aşağıdaki gibi düzenleyebiliriz.
DECLARE
v_start_page number(10);
BEGIN
BEGIN
SELECT start_page
INTO v_start_page
FROM apex_users
WHERE upper(name) = upper(:P2_USERNAME);
EXCEPTION
WHEN no_data_found THEN
v_start_page := 1;
END;
wwv_flow_custom_auth_std.login(
P_UNAME => :P2_USERNAME,
P_PASSWORD => :P2_PASSWORD,
P_SESSION_ID => v('APP_SESSION'),
P_FLOW_PAGE => :APP_ID||':'||nvl(v_start_page,1)
);
END;
wwv_flow_custom_auth_std.login(
P_UNAME => :P2_USERNAME,
P_PASSWORD => :P2_PASSWORD,
P_SESSION_ID => v('APP_SESSION'),
P_FLOW_PAGE => :APP_ID||':1'
);
Bazen giriş sayfasını bazı şartlara göre değiştirilmesi gerekebilmekte. Örneğin kullanıcının yetkisine bağlı olarak farklı giriş saygalarının karşılaması gerekebilir. Böyle bir durumda ;
Login sayfasındaki processi mizi aşağıdaki gibi düzenleyebiliriz.
DECLARE
v_start_page number(10);
BEGIN
BEGIN
SELECT start_page
INTO v_start_page
FROM apex_users
WHERE upper(name) = upper(:P2_USERNAME);
EXCEPTION
WHEN no_data_found THEN
v_start_page := 1;
END;
wwv_flow_custom_auth_std.login(
P_UNAME => :P2_USERNAME,
P_PASSWORD => :P2_PASSWORD,
P_SESSION_ID => v('APP_SESSION'),
P_FLOW_PAGE => :APP_ID||':'||nvl(v_start_page,1)
);
END;
23 Mart 2009 Pazartesi
Connection Pool Data Source
Önce database connection nedir? Çoooooook basitleştirirsek ; bir client yazılımının , bir database server ile konuşturmak için arada komutları ve cevapları (resultset gibi düşünülebilir) taşıyan ara birim gibi bir şey.
Connection Pool ise bu database connection ların tutulduğu, gerektiğinde daha önce kullanılan connection tekrar açmak yerine yeniden kullanılmasını sağlayan, bağlantı sayısını kontrol altında tutan (bir anda bir sürü bağlantı açılıp kasılmayı önlemek için) , bağlantı isteklerini sıraya koyan bir yapı. Gerçi çok emin olmamakla bir likte bir çok database server da bu yapının özellikleri ; seçilen mimariye göre değişebilir.
XA Data Source ile ilgili kabaca birden fazla veritabanı transaction söz konusu ise kullanımı tercih edilir. Konuyla ilgili ayrıntılı bilgi için; -->
http://mustafatan.blogspot.com/2007/01/xa-needed-more-often-than-you-think.html
Connection Pool ise bu database connection ların tutulduğu, gerektiğinde daha önce kullanılan connection tekrar açmak yerine yeniden kullanılmasını sağlayan, bağlantı sayısını kontrol altında tutan (bir anda bir sürü bağlantı açılıp kasılmayı önlemek için) , bağlantı isteklerini sıraya koyan bir yapı. Gerçi çok emin olmamakla bir likte bir çok database server da bu yapının özellikleri ; seçilen mimariye göre değişebilir.
XA Data Source ile ilgili kabaca birden fazla veritabanı transaction söz konusu ise kullanımı tercih edilir. Konuyla ilgili ayrıntılı bilgi için; -->
http://mustafatan.blogspot.com/2007/01/xa-needed-more-often-than-you-think.html
Etiketler:
Conneciton Pool Data Source,
XA Data Source
19 Mart 2009 Perşembe
RAD (Rational Application Developer) IBM
IBM Sun satın alma ihtimalinin söz konusu olduğu haberlerin yayılmaya başlamasıyla, şu sıralar projesini yetiştirmeye çalıştığım( IBM'in üniversite öğrencileri için düzenlemiş olduğu Yazılım Akademisi yarışmasındaki "GSM tabanlı faturalandırma ve sorgulama" adlı proje) için yaptırım gücü oldu bu haberle ile birlikte. Ödüller açıklandığında bile bu kadar heveslenmemiştim :D
Projemizde kullanılacak teknolojiler ve araçlar konusunda kendi ürünlerini yada open source teknolojiler kullanımı ile ilgili kısıtlamalar var.
IBM ürünlerinden olan RAD ide si projemizi geliştireceğiz. J2EE standartlarına uygun olması gerekmekte. Bu nedenle Struts Framework ü ile çalışmaya karar verdi. Struts ile uygulama geliştirenler için RAD struts desteği ile gelmekte buda Strutsun installion ı ile vakit kaybetmememizi sağladı. RAD 7.5 kullanarak giriş seviyesinde struts örneği bahsedicem en kısa zamanda . Bu arada WebSphere 7.0 üzerinde uygulamayı run edicez :D
Projemizde kullanılacak teknolojiler ve araçlar konusunda kendi ürünlerini yada open source teknolojiler kullanımı ile ilgili kısıtlamalar var.
IBM ürünlerinden olan RAD ide si projemizi geliştireceğiz. J2EE standartlarına uygun olması gerekmekte. Bu nedenle Struts Framework ü ile çalışmaya karar verdi. Struts ile uygulama geliştirenler için RAD struts desteği ile gelmekte buda Strutsun installion ı ile vakit kaybetmememizi sağladı. RAD 7.5 kullanarak giriş seviyesinde struts örneği bahsedicem en kısa zamanda . Bu arada WebSphere 7.0 üzerinde uygulamayı run edicez :D
Kaydol:
Kayıtlar (Atom)