C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: compact framework ilgili kullanilan mobile oldugu olmasi param.value return sahaya server string studio uygulama visual ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 7.12.2004
Okunma Sayısı : 24004
Yorum Sayısı : 13     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
Conda install environment.yml Package 23.2.2020
Turhal Temizer 'in Blogu
Mac OS/X Removing CUDA 23.2.2020
Burak Selim Şenyurt
Sekiz Saatlik Sonsuz Döngü 23.2.2020
Burak Selim Şenyurt
Switch Case Kullanmadan Kod Yazılabilir mi? 23.2.2020
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
ADO.NET ve SQL Server CE
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Merhabalar, bugünkü makalemizde Visual Studio ile birlikte gelen ve mobil uygulamalarda kullanılan mobil cihaz uygulamalarını inceleyeceğiz. Bu konuya Visual Studio ile tanıştığım günden beri meraklıyım ama yakın zamandır hobi olarak ilgilenmeye başladım. Görünürde çok az döküman olsada konunun içine girip biraz araştırma yapınca oldukça güzel döküman ve örnek olduğunu fark ettim. Benim gibi yeni başlayanlar için anlamak oldukça zor. Bu konuyu araştırırken elde ettiğim bilgileri sizinle paylaşmak istedim.

Visual studio ortamında mobile uygulamarın da geliştirilebiliyor olması ve ortak programlama dili olan C# veya Visual Basic.Net i kullanabilme olanağı sunması proje geliştirme açısından çok kolaylık sağlar. Bu durum projelerin çok ayaklı olabilme özelliği kazandırır. Çok ayaklılık, uygulamamızın modüller olması ve bazı modüllerin masaüstü, bazılarının web ve bazılarının da mobil uygulama olmasına olanak tanımasıdır. Bu da kodların standart olmasını ve okunabilirliğini artırır.

Ortak dil kullanırken .Net Compact Freameworkun  .Net Freamework e göre benzerliği aşağıdaki şemada gösterilmiş.

Şekil 1:  .Net Compact FreameWork’un  mimarisi

  .NET Compact Framework aşağıdaki özellikleri .NET Framework de olduğu gibi tam kullanabilir. 

  • 1-Class Loading
  • 2-Memory management
  • 3-Thread management
  • 4-Security management
  • 5-Code verification
  • 6-JIT compilation
  • 7-Exception Handling
  • 8-Garbage Collection
  • 9-.NET Compact Framework ’ de sınıf dağılımı
.NET Compact Framework te kullanılan kütüphanelerin dağılım şeması. Var olan sınıfların kulanım şekli  .Net Freameworkte olduğu gibidir.

Şekil 2: .NET Compact Framework sınıf dağılımları

Yanlız kötü haber aşağıda gösterilen kütüphaneleri projelerimizde kullanamıyoruz. Bunu okuduğumda çok ilgimi çekmişti. Çünkü ADO.Net’ te azından OleDB kütüphanesinin kullanılabiliyor olmasını umut etmiştim.

  •  1-Server-side APIs, such as ASP.NET, Enterprise Services, MSMQ ve WMI desteği
  •   2- COM Interop
  •   3- OleDb and ODBC .NET data providerları
  •   4 - Generic serialization
  •   5 - Asynchronous delegates
  •   6 - Application configuration dosyaları (Api.config)
  •   7 - .NET Remoting
  •   8 - Printing
  •   9 - XPath/XSLT
Bu konu ile ilgili geniş bilgiyi aşağıdaki adreste indirilen Mobile Application Development Toolkit 2004 ’ te bulabilirsiniz.

http://www.microsoft.com/downloads/details.aspx?familyid=f4328333-0fd4-4348-88c0-39d10fb64f0a&displaylang=en

Mobil cihaz uygulamalarının avantajlarından birtanesi istemci ile sunucu arasında istenildiği anda bağlantının kurulabilmesidir. Bu avantaj projeden projeye değişir.Bazı projeler gerektiğinde sunucuya bağlanmasını bazıları da kullanılacak dosyanın önceden cihaza yükleyip çalışmasını uygun görür. Bu xml, access veya normal text dosyası olabilir.

Esan konumuz Smart Device Applicationlarda SQL Server Ce kütüphanesini ve bize sunduğu araçları kullanmak olacaktır. Aşağıdaki şemada SQL Server Ce nin mimarisi inceleyelim.

Şekil 5: SQL Server Ce nin yapısı 

Visual Studio .NET ile geliştirdiğimiz mobil uygulamalarında kullanabilmek için farklı veritabanı alternatifleri bulunmaktadır. Bunlardan birtanesi verileri mobil üzerinde tutmamızı sağlayan SQL server Ce ve  verilerin uzaktaki bir sunucuda tutulmasını sağlayan ve diğer uygulama türlerinde de sürekli kullandığımız SQL Server’dir. ADO.Net teki SQLCe kütüphanesi SqlClient veya OleDB de olduğu gibi var olan nesneler olan command, connection, dataadapter, transaction vb araçlar mevcuttur ve kullanım şekilleri diğerleri gibidir.

Mobil uygulamaları en çok orta ve büyük ölçekli firmalarda kullanılıyordu. Özellikle satıcının sahaya çıkması yani satış ve sipariş için müşteriye ulaşmasında büyük kolaylık sağladı. Bu uygulamalar satış oranları yükselti, bilgi kaybını engelledi ve evrak yığınından kurtarmış oldu. Artık bu uygulamaları  sadece ticari firmalar değil çoğu sektör tercih etmekte.Kablosuz ve istediğimiz zaman ulaşabileceğimiz makinalar hayatımızı oldukça kolaylaştırmakta. 

Bugünkü senaryomuz yine orta ölçekli bir ticari firmanın sahaya satış için göndereceği personelinin kullanması için basit bir uygulama olacak.Sitemizde Smart Device Applicationunun nasıl yapıldığı anlatan makale olduğu için ben tekrar anlatmayacağım. Başlamadan önce ilgili makaleyi okumanınızı tavsiye ederim   http://www.csharpnedir.com/makalegoster.asp?MId=131 

Bizim senaryoda işlenecek verinin tutulduğu dosya satıcı sahaya gitmeden önce cihaza yüklenmiş olacak. Ama istemci ve sunucu arasında bilgi işlendiği an bağlantının anlatılması  http://www.csharpnedir.com/makalegoster.asp?MId=142  ilgili makaleden elde edebilirsiniz.

Formun tasarımı aşağıdaki gibi olsun.

Şekil 4: Form Tasarımı

Projemizde SQLCe yi kullanacağımız için önceden Satis.sdf  dosyasını eklemiş olacağız. SQLCe kütüphanesini projemize ekledikten sonra veritabanını yönetmek için SQLCe Query aracı yüklenmete ve bu araç bir nevi SQL serverda olan query analizere benzemektedir.Bu query analizeri yardımıyla veritabanınızı yönetebilirsiniz. Yeni bir veritabanı oluşturabilir tablo ekleyebilir veya silebilirsiniz. Ama yeni bir veritabanı eklerken dosyanın uzantısı olan .sdf  yi eklemeyi unutmayın. Çünkü ben bunu fark edinceye kadar epey bir zaman kaybettim.

Veritabanına bağlanma ve yeni bir veritabaını oluşturma

public static SqlCeConnection Baglantim()

{

   if(conn == null)

   {

    if (File.Exists("Satis.sdf"))

             File.Delete("Satis.sdf");

      string connStr = "Data Source = Satis.sdf ";

      SqlCeEngine engine = new SqlCeEngine(connStr);

      engine.CreateDatabase();

      engine.Dispose();

      conn = new SqlCeConnection(connStr);

      if(conn.State == ConnectionState.Closed)

         conn.Open();

   }

   return conn;

}

Kod 1: Veritabanı oluşturma 

Daha öncede dediğim gibi SQLCe deki nesnelerin kullanılması ADO.Net i  diğer kütüphaneleri ile aynı. Command nesnesinin kullanılması.

public Int32 NewId()

{

   object obj = new object();

   string SQL = "SELECT MAX(ID) FROM HAREKET";

   SqlCeCommand cmd = new SqlCeCommand(SQL,conn);

   obj = cmd.ExecuteScalar();

   if (obj == DBNull.Value || Convert.ToInt32(obj) == 0)

      return 1;

   return Convert.ToInt32(obj) + 1;

}

Kod 2: SQLCe de Command nesnesinin kullanılması 

SQLCe de transaction  ve parametrelerin kullanılması.

public string Kaydet() {

   SqlCeCommand cmd = new SqlCeCommand();

   SqlCeTransaction myTrans;

   SqlCeParameter param ;

   cmd.CommandText = "INSERT INTO HAREKET(ID, STOK_ID, MIKTAR) VALUES (?, ?, ?)";

   cmd.Connection = conn;

   myTrans = conn.BeginTransaction();

   cmd.Transaction = myTrans;

   cId = NewId();

   param = new SqlCeParameter("@ID",SqlDbType.Int);

   param.Value = cId;

   cmd.Parameters.Add(param);

   param = new SqlCeParameter("@STOK_ID",SqlDbType.Int) ;

   param.Value = cStok_Id;

   cmd.Parameters.Add(param);

   param = new SqlCeParameter("@MIKTAR",SqlDbType.Int);

   param.Value = cMiktar;

   cmd.Parameters.Add(param);

   try {

      cmd.ExecuteNonQuery();

      cStok.Guncelle(cStok_Id, cMiktar, myTrans);

      myTrans.Commit();

   }

   catch(SqlCeException ex) {

      myTrans.Rollback();

      return ex.Message;

   }

   return "Kayıt işlemi gerçekleşti"; }

Kod 3: SQLCe de transaction ve parametrelerin kullanılması.

Konu ile ilgili araştırmalara devam ediyorum.Oldukça güzel ve zevkli bir konu. Umarım faydalı olmuştur.

Örnek uygulama Kaynak : http://www.microsoft.com/

Msdn

 

Makale:
ADO.NET ve SQL Server CE ADO.NET ve SQL Feryat Olcay
  • Yazılan Yorumlar
  • Yorum Yaz
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim.
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim.
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim.
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
EYL
28
2015
Merhaba ben windows mobile üzerinde geliştirme yapmaktayım sql 2008 üzerinde veritabanı işlemleri yapıyorum sql connection oluyor ve bir veri postladıgım da cmd.ExecuteNonQuery();kod satırı çalışmayıp dışarı atıyor bu konuda yardımınızı isteyecektim
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor