Kategoriler


SON YORUMLAR
siber
hocam şu yorum sistemine bi authentication ekleyin ya da onay sürecinden geçsin bali, nokta diye mesaj atan var, 100 kere reklam veren var.
someone
Kısa ve öz bir yazı olmuş.Bunun avantajı ise az çok kafasında soru işareti bulunan birisi uzun uzadıya giden yazılarla vakit kaybetmeden hızlı bir şekilde sorularına yanıt bulabilir.Teşekkürler.
disko_anksiyete
Tatar Ramazan her açıdan haklı, sizi çıldırtan da bu sanırım. Ülkede 1 yılda bu sektörde kaç tane önlisans ve lisans mezunu çıktığını hesaplayın. Piyasadaki iş ilanlarına göz atın, 30 tane teknoloji bilen insan üstü programcı arayan gerçekçilikten uzak ilanlara bile 5.000 üzeri insan başvuruyor çaresizlikten, işsizlikten ve yeteneklerini, bilgisini değerlendirebilme ümidi ile. Ve çalıştıkları maaşlar hakkındaki bilgiyi de zaten devletin belirlediği minimum mühendis maaşına göz atarak aşağı yukarı anlayabilirsiniz, iddialı ya da hayat idame ettirecek sayılarda maaşlar kesinlikle verilmiyor. "Ben girişimci olurum, hayalimdeki uygulamayı yapacğaım ve milyonlar kazanacağım görürsünüz ulan!" fikrine de sıkı sıkıya bağlanmış olabilrsiniz ancak, görmüş olduğunuz o popüler uygulamalar ve getirileri absürt derecede nadir ihtimallere dayalı Yemeksepeti.ni, getir.i görüp gaza gelip kendi milyon dolarlık uygulamanızı yapabileceğiniz olası gelebilir ancak, peki yıllar boyu üstünde çalışılıp kimsenin kullanmadığı uygulamalar, biten kariyerler, batan start-up.lar, edilen intiharlar? Yurtdışına gitmeyi de unutun. Yurtdışındaki eğitim standartları ve mühendis standartları ülkemizdeki ile kıyaslanamaz bile. Bize 4 yılda öğretilmeyen, hatta adı bile sunulmayan teknolojileri adamlar 1 sömestırda uygulamalı öğreniyor. Yani hiçbir Avrupa firmasının, 3. dünya ülkesindeki bilmemne üniversitesinden mezun bir mühendise ihtiyacı yok, ki ihtiyaçlarını karşılayamacağınızdan da eminim. Burada gelip yazılımcı maaşını savunanlar ya tuzu kuru, torpilli orospu evlatlarıdır, hani var ya o görmüş olduğunuz kullanmış olduğunuz bozuk sikten uygulamaları ve siteleri geliştiren eğitimsiz şempanzeler ordusu, heh onlar. Ya da, daha üniversite öğrencisi olup beyni yıkanmış, hayatında bu meslekten 5 kuruş kazanmamış ama bir anda milyonlar kazanacağı ıslak rüyasını aklından bir anlığına ayırmayan embesil Türk üniversite öğrencileridir. Sektör zor, yeteri kadar ödüllendirici değil hatta iş bile bulunamıyor şu an bulunduğumuz noktada. "Kendini geliştir" diyen sakatlar için de, ileri düzey İngilizce bilen ve nesne tabanlı programlama dillerinde (Java, C#) çeşitli alanlarda çalışmış birisi olarak (game development, desktop app development) bunları yaşadım, bunları savunuyorum. Aksini savunuyorsan bırak bakalım Linkedin profilini de başarılı bilişimci görüp feyz alalım değil mi? İşkembeden herkes sallar, herkesin kafasında bir kariyer planı vardır. Önemli olan gerçekleri hayallerden ayırt edebilmek. Ne kadar para kazanmaya istekli olduğunuz inanın, hiç sikimde değil. Aldığını sanmış olduğunuz eğitim de sizi zorluyor olabilir ama kafanızı kumdan çıkartıp globalde yapılan işlere, global kalitede programcılara göz atın. Sonra da siktirin gidin.
ramazansavar
ya ramazan ne 10 programı biliyon da kim seni takmıyor, detaylı açıkla bakalım.
Tatar Ramazan
Zavallı mühendisler en zavallıları da sizsiniz. Eniştem muhasebecikilten sigortacılıktan bi ton para kazanıyor siz 8-10 bin tl.ye talim ediyorusunuz. O da canınızı çıkartıyorlar. Müdürler bağırıp çağırıyor size. Millet tatil yerlerinde bahşişlerle iyi para kazanıyor karılarla alem yapıyor. Adam ev aldı karı aldı antalyada. Siz de firmalara eşeklik yapın. Stres sıkıntı çekin. Bi bok yok bu meslekte mezun olunca görürsünüz. 12 yıl deneyimliyim. 10 teknoloji biliyorum 10 bin tl bile vermiyorlar. Lanetli bilişim sektörü. Adaletsizlik saçmalık sıkıntı had safhada. Yazacam madde madde hepsini bekleyin.
Tatar Ramazan
Zavallı mühendisler en zavallıları da sizsiniz. Eniştem muhasebecikilten sigortacılıktan bi ton para kazanıyor siz 8-10 bin tl.ye talim ediyorusunuz. O da canınızı çıkartıyorlar. Müdürler bağırıp çağırıyor size. Millet tatil yerlerinde bahşişlerle iyi para kazanıyor karılarla alem yapıyor. Adam ev aldı karı aldı antalyada. Siz de firmalara eşeklik yapın. Stres sıkıntı çekin. Bi bok yok bu meslekte mezun olunca görürsünüz. 12 yıl deneyimliyim. 10 teknoloji biliyorum 10 bin tl bile vermiyorlar. Lanetli bilişim sektörü. Adaletsizlik saçmalık sıkıntı had safhada. Yazacam madde madde hepsini bekleyin.
EsMer
Bence çok mantikli.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.
Kaan
C#, Asp.net, Java SE, Java EE, Spring Framework, Android, C++, C, PHP, Python, R Lang ödevlerinizde yardımcı olabilirim. Geçmişte yaptığım projelerden birkaç tanesini https://github.com/kaantopcuw adresinden inceleyebilirsiniz. Not: Whatsapp üzerinden iletişime geçerseniz daha hızlı cevap verebilirim. Minimum ücret 250tl dir. Tam iş yapıyorum. Başka sitelerde karşılaştığınız dolandırıcıların teklif ettikleri ücretlerle karşılaştırmayın lütfen. İletişim için; Mail: kaan8792@gmail.com | Whatsapp: 05428339141 Yıllardır bu işi yapmaktayım. Yüzlerce ödev yapıp teslim ettim.

Bilgisayar Mühendisleri
Here is the website inspired me to use 
it as a guide when I tried to define 
myself as an engineer candidate a few 
years ago. It really helped me to work
 and study feeling in confidence with 
being on the right way. I suggest this 
website to whom it may direct her/his 
to find the right career path. It 
includes many articles varies from 
real life experiences to detailed 
software engineering issues. But the 
most dignified parts for me are the 
articles in general and career titles.
Son okunan makaleler:
NHibernate ile ORM'e Giriş
Bilgisayar Mühendisleri Kaç Para Alır?
Para ile ödev yapmak üzerine
Para ile ödev yapmak üzerine
Bilgisayar Mühendisi olacaklara üniversite seçme rehberi?
Para ile ödev yapmak üzerine
Bilgisayar Mühendisi Ne İş yapar? Program Nedir? Çeşitli Sorular?
Para ile ödev yapmak üzerine
Bilgisayar Mühendisleri Kaç Para Alır?
Para ile ödev yapmak üzerine
Bilgisayar Mühendisleri Kaç Para Alır?
Para ile ödev yapmak üzerine
İnglizce Hazırlık Sırasında Yapılması Gereken 10 Şey!
Mezunları en kolay iş bulan üniversiteler
Bilgisayar Mühendisleri Kaç Para Alır?
Sizden gelen sorulara kısa kısa cevaplar
Para ile ödev yapmak üzerine
Para ile ödev yapmak üzerine
NHibernate ile ORM'e Giriş
Bilgisayar Mühendisleri Kaç Para Alır?

Bilgisayar Mühendisleri Portalı

NHibernate ile ORM'e Giriş

Hakia.com’un iş ilanlarındada görmeye başladığımız NHibernate sizce nedir?

Dosya adı: ogrenci.cs
--------------------------------
using System;
using System.Collections.Generic;
using System.Text;

namespace ormornek
{
         class ogrenci
         {
                  private int _id;
                  private string _ad;
                  private string _soyad;

                  public int Id
                  {
                           get { return _id; }
                           set { _id = value; }
                  }

                  public string Ad
                  {
                           get { return _ad; }
                           set { _ad = value; }
                  }

                  public string Soyad
                  {
                           get { return _soyad; }
                           set { _soyad = value; }
                  }
         }
}

 

NHibernate ile hiç SQL komutu yazmadan veritabanı işlemleri yapabiliyoruz dersem çok abartmış olduğumu düşünebilirsiniz. Fakat şaşılacak şekilde NHibernate ile projelerimizde SQL komutu kullanmaya gerek kalmıyor. Verilerimizi, yine projemiz içerisindeki nesne modelleri ile bağlayıp veritabanına taşıyabilmekteyiz. NHibernate çok katmanlı mimaride orta katman(business logic) dediğimiz kısımda yapılan veritabanı işlemlerinde büyük kolaylıklar sağlamaktadır. Bu makale NHibernate’i en basit şekliyle .NET kullanıcılarına tanıtmak amacıyla yazılmıştır.
Bu günün kurumsal uygulamalarında nesne tabanlı ve ilişkisel veritabanı kullanılarak yazılım geliştirmek can sıkıcı hatta çok zaman alıcı bir iş olmaktadır. NHibernate .NET yazılım geliştirme ortamında nesnel/ilişkisel eşleştirme(object/relational mapping-ORM) aracıdır. ORM terimi bir nesne modelinden SQL tabanlı ilişkisel veri modeline(ilişkisel veritabanına) veri bağlama tekniğidir.

Çoğu kişi makaleyi okuduk’dan sonra NHibernate’i C# 3.0 la birlikte gelen DLINQ mimarisine benzetebilir ve bunda yanılmışta sayılmaz. Çünkü ikisinde de amaç hemen hemen aynıdır.

Bu kadar sözün ardından basit bir uygulama yaparak NHibernate’i tanıyalım.

Öncelikle aşağıdaki işlemleri yapmanız gerekmektedir.

http://sourceforge.net/project/showfiles.php?group_id=73818&package_id=138561 web adresinde “NHibernateContrib” adlı zip dosyasını download ediniz.


---------------------------------------------------------------------------------------------------
“NHibernateContrib” adlı zip dosyasını ana dizininiz içerisinde istediğiniz bir konuma açınız.


---------------------------------------------------------------------------------------------------
Bu işlemleri yaptıkdan sonra VS içerisinde New->Project->Console Application yolunu izleyerek “NHibernate“dışında bir isim vererek yeni bir proje açın. Bu örnekteki projeye “ormornek” adını verdik. Bu ad daha sonraki işlemlerde veritabanına bağlantı sırasında kullanılacakdır.
---------------------------------------------------------------------------------------------------
Yeni projeyi oluşturdukdan sonra projemize yeni bir class ekleyelim. Yeni class dosyasının adı ile class adı aynı olsun.(örneğin; dosya adı: ogrenci.cs ve class adı:ogrenci) Ben burada class adına “ogrenci” dedim. ogrenci class’ının içeriği aşağıdaki gibi olacak.

Timuçin Dursun

Ogrenci class’ını oluşturduk dan sonra veritabanımızda bu nesne modeline uygun bir tablo oluşturmamız gerekli. Bu tablo ve veritabanı adına dikkat ediniz. Gerekli kodlar,

CREATE TABLE [dbo].[ogrenci](
[id] [int] NOT NULL,
[ad] [nvarchar](50) NULL,
[soyad] [nvarchar](50) NULL
)

Not: veritabanı için MSSQL 2005\SQL EXPRESS kullanıldı.
---------------------------------------------------------------------------------------------------
Şimdi en önemli kısımlardan biri olan ORM bağlama işlemini yapacağız. Öğrenci nesne modelimiz ile ilişkisel veritabanındaki veri yapımızı birbirine bağlıyacak olan NHibernate konfigürasyon dosyasını düzenleyeceğiz. Bu dosyaya mapping file yada Türkçe adıyla eşleştirme dosyası diyebiliriz.

Projemizin ana dizinine “ogrenci.hbm.xml” adlı bir xml dosyası oluşturalım. NHibernate te kullanılan mapping dosyalarının uzantıları genellikle “*.hbm.xml” dir. Ayrıca bu dosyaya solution explorerdan sağ tıklayıp properties’ine girdikden sonra built action özelliğini “Embedded Resource” yapmamız gerekmektedir. Eğer bunu yapmaz iseniz büyük ihtimalle hata mesajı ile karşılaşırsınız.



Xml dosyasının içeriği de aşağıdaki gibi olsun.

Dosya adı: ogrenci.hbm.xml
--------------------------------

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
<class name="ormornek.ogrenci, ormornek" table="ogrenci">
<id name="Id" column="id" type="int">
<generator class="assigned" />
</id>
<property name="Ad" column="ad" type="String" length="50"/>
<property name="Soyad" column="soyad" type="String" length="50"/>
</class>
</hibernate-mapping>

Dosya içeriğindeki <class> tag’ında
<class name="[namespace].[class name], [assembly name]” table=”tablename”> sırası izlenmektedir.

Şimdi sıra geldi projemize App.config dosyasını eklemeye. Bu işlemi solution Explorer penceresine sağ tıklayıp ->Add->New Item->Application Configuration File yolunu izleyerek yapabiliriz. App.config dosyası solution Explorer penceresinde gözüküyor olmalı. App.config dosyası içerisinde <configuration>...</configuration> tagları arasına aşağıdaki kodları yazdığımızda veritabanı bağlantısı için gerekli işlemleride yapmış oluruz. (Bu uygulamada MSSQL 2005-SQLEXPRESS kullanılmıştır.)

Bu dosya içerisindeki <nhibernate>…</ nhibernate> tagları arasındaki parametreler veritabanı bağlantısı için gereklidir ve opsiyoneldirler. Kullanmak istediğiniz yada başka değişle bağlantı kurmak istediğiniz veritabanına göre değişiklik gösterebilirler.

Dosya adı: app.config
-------------------------------------------------------------------

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section
name="nhibernate"
type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
</configSections>

<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Data Source=TIMUCIN\SQLEXPRESS;Initial Catalog=timucin;Integrated Security=True"
/>
</nhibernate>
</configuration>

En işlemlerden biride NHibernate.dll kütüphanesini projemize eklemektir. Solution explorer penceresinde references üzerine sağ tıklayıp->add references-> yolunu izleyerek “NHibernateContrib” adlı zip dosyasını açtığımız dizinin içinde bulunan bin dizininin içine gireriz. Bin dizini içerisindeki NHibernate.dll dosyasını projemize referans olarak ekleriz.

Son işlemimiz olarak main fonksiyonumuzun bulundugu class’ı yani program.cs dosyamizin icine aşağıdaki kodu yazarak asıl yapmak istedigimiz işi gerçekleştirmiş oluruz.

Aşağıdaki kod ile veritabanına 3 kayıt eklenip 1 kayıt silinmektedir.

Ayyrıca burada dikkat etmeniz gereken bir husus daha bulunmaktadır. Program.cs dosyasına

using NHibernate;
using NHibernate.Cfg;

namespace’lerini eklemeyi unutmamalısınız.

//Dosya adı: program.cs
using System;
using System.Collections.Generic;
using System.Text;

using NHibernate;
using NHibernate.Cfg;

namespace ormornek
{
      class Program
      {
            static void Main(string[] args)
            {
                  Configuration cfg = new Configuration();
                  cfg.AddAssembly("ormornek"); // projenin assembly adı

                  ISessionFactory factory = cfg.BuildSessionFactory();
                  ISession session = factory.OpenSession();
                  ITransaction transaction = session.BeginTransaction();

                  ogrenci ogr1 = new ogrenci();
                  ogr1.Id = 1;
                  ogr1.Ad = "timuçin";
                  ogr1.Soyad = "dursun";

                  ogrenci ogr2 = new ogrenci();
                  ogr2.Id = 2;
                  ogr2.Ad = "bahar";
                  ogr2.Soyad = "dursun";

                  ogrenci ogr3 = new ogrenci();
                  ogr3.Id = 3;
                  ogr3.Ad = "tufan";
                  ogr3.Soyad = "dursun";

                  // NHibernate nesne örneğini sql komutu kullanmadan veritabanına kaydediliyor.
                  session.Save(ogr1);
                  session.Flush();// nesne veritabanına yollanıyor
                  session.Clear();// baska nesneyi oturuma almak icin onceki siliniyor

                  session.Save(ogr2);
                  session.Flush();
                  session.Clear();

                  session.Save(ogr3);
                  session.Flush();

                  // NHibernate nesne örneğini sql komutu kullanmadan veritabanından siliyor.
                  session.Delete(ogr3);                  

                  // tüm değişiklik doğrulanıyor ve oturum kapatılıyor.
                  transaction.Commit();
                  session.Close();

                  // kaydedilen veriler veritabanından okunuyor
                  session = factory.OpenSession(); // yeni bir oturum açılıyor

                  System.Collections.IList userList = session.CreateCriteria(typeof(ogrenci)).List();

                  foreach (ogrenci ogr in userList)
                  {
                          Console.WriteLine("Id:{0} \t ad:{1} \t soyad:{2}", ogr.Id,ogr.Ad,ogr.Soyad);
                  }

                  session.Close();
           }
      }
}

Programı derlediğiniz zaman bir hata mesajı ile karşılaşmaz iseniz veritabanına 2 tane kayıt yapılmış olduğunu göreceksiniz.

Solution explorer görünümü

Makalemizin sonuna gelmiş bulunuyoruz. İşlemler çok uzun gibi gözüksede alışkanlık edindikten sonra SQL komutları kullanmadan veriler üzerinde işlem yapmanın keyfine doyamıyacaksınız. NHibernate geleceğin ORM tekniği ile veritabanı kullanım yöntemidir.
Bu teknik ile geliştirmiş olduğunuz projelerde veritabanı işlemlerini kolaylıkla yapabilirsiniz.Ayrıca gelecekde doğabilecek değişikliklerin üstesinden çok hızlı ve etkin bir şekilde gelebilirsiniz.

Microsoft tarafında ORM teknolojisinin karşılığı olarak DLINQ geliştirilmektedir.( Burak Selim Şenyurt ’un “C# 3.0 - İlk Bakışta DLINQ” makalesinde detaylı bilgi bulabilirsiniz )

NHibernate ile ilgili daha ayrıntılı bir makale ile görüşmek dileğiyle.

Gerekli dokümanları ve ayrıntılı bilgiyi aşağıdaki web adresinde bulabilirsiniz.

http://www.hibernate.org/365.html

Bu makaleyi beğendin mi? Yorumunu Yaz!







Sizden Gelen Yorumlar:

Yorum Yazın

oğuz karababa(6.6.2016 19:42:23)
Peki timucin bey bunlar gerçek hayatta nerde işimize yarayacak.
%50 %50 %0
Katılıyorum Çekimserim Katılmıyorum



Ahmet Uğur(21.9.2010 18:10:14)
Güzel yazı ancak Nhibernate e girmek nasip olmadı hata almaktan dolayı. google da bakarken birisi aynen sole yazmıs
Why is it so hard to get NHibernate to work?... :D
%60 %20 %20
Katılıyorum Çekimserim Katılmıyorum






Copyright© 2001-2020. Bilgisayar Mühendisleri Portalı | Bütün hakları saklıdır.