Etiketler: | Kategoriler: Açık Akademi, Sql Server Emrah Uslu | 23.02.2012 21:34

Merhaba arkadaşlar,

Bu akşam (23 Şubat 2012 Perşembe) sanal sınıfta 2 saat boyunca Döngüler konusunu konuştuk. Web semineri boyunca açtığım 2 projeyi paylaşıyorum. Bu linke tıklayarak projeleri indirebilirsiniz.

Bir sonraki sanal sınıfta görüşmek dileğiyle.

Etiketler: | Kategoriler: .NET, Açık Akademi Emrah Uslu | 09.02.2012 21:32

 

Merhaba arkadaşlar, 

Bu akşam (9 Şubat 2012 Perşembe) sanal sınıfta 2 saat boyunca Değişkenler ve Veri Tipleri konusunu konuştuk. Keyifli bir webiner oldu. İçinde çok fazla bilgi olmamasına rağmen isteyen arkadaşlar olduğu için eğitim boyunca açtığım 2 projeyi paylaşıyorum. Bu linke tıklayarak projeleri indirebilirsiniz.

Bir sonraki sanal sınıfta görüşmek dileğiyle.

Etiketler: | Kategoriler: Etkinlik, Sql Server Emrah Uslu | 17.01.2012 16:09

Küresel çapta faaliyet gösteren, en büyük SQL Server topluluğu SQL Pass’ın (Professional Association for SQL Server) Türkiye Şubesi olarak çalışmaya başlayan SQL Server Öncüleri, Ankara'daki tanıtım toplantısına sizleri de davet ediyor.

SQL Server ve etrafındaki teknolojilere odaklanan, Türkiye’de BT sektöründe konu hakkında çalışanlar arası etkileşimi arttırma hedefinde olan SQL Server Öncüleri 21 Ekim’de İstanbul’da gerçekleştirdiği lansmanın ardından ikinci etkinliğini1 Şubat’ta Microsoft Ankara ofisinde gerçekleştiriyor.

SQL Server konusunda çalışan BT çalışanlarının ve yazılım geliştiricilerinin hedeflendiği teknik içerikli SQL Server Öncüleri Ankara Lansmanı etkinliğinde sizleri de aramızda görmekten mutluluk duyarız.

Kayıt olmak için tıklayınız:

GÜNDEM

09.15 – 09.30

Açılış Konuşması

09.30 - 10.15

SQL Server 2012 ile Gelen Yeni Özellikler
Gökben Utkun – Ürün Yöneticisi, Microsoft

10.15 - 11.00

Özel Bulutta SQL Server ve Database Consolidation Appliance
Özgür Mermerci – Çözüm Satış Temsilcisi, Microsoft

11.00 - 11.15

Ara

11.15 - 12.00

SQL Azure – Buluttaki Veritabanınız
Hakan Eren- Bulut Platform Strateji Danismanı,Microsoft

12.00 - 12.45

Yemek

12.45 - 13.30

SQL Server Yüksek Süreklilik Çözümleri
Kadir Evciler – Veritabanı Yöneticisi,EurobankTekfen

13.30 - 14.15

Index ve İstatistik - Performansınızı Arttırın
Turgay Sahtiyan- MVP - SQL Server, Veritabanı Yöneticisi,EurobankTekfen

14.15 - 14.30

Ara

14.30 - 15.15

Performans İyileştirme ve Sorgu Optimizasyonu
Mustafa Acungil, MVP - SQL Server, Danışman - Bilge Adam Kurumsal

15.15 - 16.00

Microsoft İş Zekası Yol Haritası
Osman Çokakoğlu – MVP - SQL Server,Proje Yöneticisi-TCM

16.00 - 16.15

Ara

16.15 - 17.00

Reporting Services’de SQL Server 2008 R2 ile Gelen Yenilikler
Emrah Uslu – Teknoloji Danışmanı, TCM

Etiketler: , | Kategoriler: Etkinlik, Sql Server Emrah Uslu | 10.11.2011 12:55

21 Ekim 2011 tarihinde yapılan Sql Server Öncüleri tanıtım toplantısında yaptığım Sql Server 2008 R2  Reporting Services Yenilikler sunumu. Buyrun :

Etiketler: | Kategoriler: Etkinlik Emrah Uslu | 10.11.2011 10:33

 

Globalleşen ve rekabetin arttığı günümüzde; İşletmeler, süreçlerini yönetmek için hızla gelişen teknolojiye ayak uydurmak ve bu teknolojiyi işletmelerine yansıtarak kaynaklarını verimli olarak kullanmak durumundadırlar. Üretim işletmelerinde maliyetleri düşürmenin en etkili yolu verimliliği arttırmaktır. Verimliliğin artışıyla, düzenli bir büyüme sağlayan kurumlar, yerel ölçüde kalmayıp, dış dünyaya açılarak rekabet edebilme yeteneği kazanacaklardır.

 

YALIN SOFTWARE, İşletmelere verimliliklerini arttırmaları yönünde önemli bir ölçüt olan üretim planlama alanında gelişen son bilgi teknolojileri ve maliyet düşürme yöntemleri hakkında bir bilgi platformu sağlamayı hedeflemektedir.

 

Seminerimizde siz değerli paydaşlarımızı da aramızda görmekten mutluluk duyacağız

 

       

Gündem

13:00-13:15 Açılış Konuşması

                    Ertan Yılmaz I Yalın Software

 

13:15-14:00 İleri Planlama ve Çizelgeleme

                    Doç. Dr Seda Özmutlu I Yöneylem Eğitim ve Danışmanlık

 

14:15-15:00 Akıllı Çizelgeleme ve Planlama Yazılım Örneği

                    Yağmur Melih Gürtunca I Yalın Software

 

15:15-16:00 Veri Tabanı Teknolojisinde Son Nokta : Sql Server 2012 

    Emrah Uslu I Microsoft Türkiye

 

16.11.2011 Çarşamba

Baia Otel

Yeni Yalova Yolu 9. Km Asmerkez yanı Osmangazi Bursa

                                       Seminere kayıt olmak için Lütfen Tıklayınız

 

                                          Rekabet Gücünüzü Arttırmak için düzenlediğimiz

                                       3. Seminerimiz

 

                                             Yalın Bilişim Yazılım Danışmanlık Hizm. Elk.

                                      San.Tic.Ltd.Şti

 

                                                 ULUTEK Teknoloji Geliştirme Bölgesi No:202 

                                      .Ü.Görükle Kampüsü Nilüfer Bursa

 

                                             Tel : 0224 280 84 55 Faks: 0224 280 84 57

 

                                              www.yalin.com.tr info@yalin.com.tr 

 

Etiketler: | Emrah Uslu | 09.11.2011 22:58

Nedir 4G?
4G genel olarak 3G’nin özelliklerini geliştirecek olan yeni nesil bir bağlantı teknolojisi olarak tanımlanabilir. Aslına bakılırsa 3G ile 4G arasında kullanıcı tarafında hız hariç pek de bir fark yaşanmayacak. 4G, kullanıcılara son derece hızlı mobil data trafiği sağlayacak.

Dünyanın ilk 4G testi Verizon tarafından 2009 yılında gerçekleştirildi. Boston ve Seattle arasında gerçekleştirilen testte; video, dosya indirme ve yükleme, internette gezinti, ses transferi, VoIP görüşmeler denendi. Günümüzde ise Amerika'da birkaç cihazla 4G teknolojisi başlatılmış durumda.

4G ne işimize yarayacak?
Olayı son kullanıcı bazına indirgediğimizde, 4G’nin mobil cihazlarda ADSL hızının yakalanmasını sağlayacağını söyleyebiliriz. Ayrıca altyapı yeterliliği ve kullanıcı sayısının artışı nedeniyle, bağlantı ücretleri düşecek. Dolayısıyla bu da, 4G ile sürekli mobil cihazımızla internete bağlı kalabileceğimiz anlamına geliyor.

4G’nin aktarım hızı, bir önceki bağlantı standartları olan 2G ve 3G’den oldukça fazla. 2G ile yani hala akıllı telefonlarımızda bulunan Edge ile 50 ile 80 Kbps arasında değişen bir hıza sahipken, bu değer 3G’de 1.4 Mbps’e kadar çıktı.

2G ile 3G arasındaki uçurum göz kamaştırıcı ancak 4G bize çok daha iyisini vadediyor. Ülkemiz ADSL kullanıcılarının çoğunun hala 1 Mbps internet bağlantısına sahip olduğunu göz önünde bulundurduğumuzda, 4G’nin sunacağı 100 Mbps’e kadar ulaşan bağlantı hızının devrim niteliğinde olacağı aşikar.

Yüksek aktarım hızlarıyla mobil internet deneyimi yaşamamıza olanak tanıyacak olan 4G; iş dünyasındaki birçok sürecin mobil cihazlara odaklanmasını ve her mobil kullanıcının bilgisayara ihtiyaç duymayacak imkanlara sahip olmasını sağlayacak.

Kaynak : Hürriyet Teknoloji

Etiketler: , | Kategoriler: .NET Emrah Uslu | 09.11.2011 20:57

Assembly Nedir?

Hangi .NET dilinin kullanıldığından bağımsız olarak .NET binary’leri bir dosya uzantısı alırlar: *.dll ya da *.exe. Burada dikkati çekilmesi gereken nokta bu binary’lerin işletim sistemine özel komutlar içermemesidir. Bunun yerine .NET binary’leri, platformdan bağımsız Common Intermediate Language (CIL) adındaki ara dili içerirler.

 Tüm .NET derleyicileri, kaynak kodu assembly içerisindeki CIL koduna derler.

IL kısaltması ile ilgili bir noktaya dikkat çekmek gerekiyor. Geliştirilme aşamasında IL’in resmi adı Microsoft Intermediate Language (MSIL) iken final sürümünde bu terim Common Intermediate Language (CIL) olarak değiştirildi. Dolayısıyla kaynaklarda geçen MSIL ve CIL aynı kavramı işaret eder. 

.NET ortamındaki bir programlama dilinin derleyicisi kullanılarak bir .dll ya da .exe oluşturulduğunda, bu bir assembly içerisine koyulur. Assembly, CIL kodu içerir ve bu kod, ihtiyaç duyulana kadar platforma özel bilgilere derlenmez.

Şunu da eklemek gerekir ki binary dosya (.exe ya da .dll uzantılı) ile assembly tektir ve aynı kavramlardır. Alt seviye bir programlama dili olan Assembly ile sadece isim benzerliği vardır. Ayrıca çalıştırılabilir kod (.exe) ve kütüphane kodu (.dll) aynı assembly yapısına sahiptir ve terim olarak her ikisi de assembly olarak çağrılır. Aralarındaki tek gerçek fark; çalıştırılabilir assembly (.exe) program için ana giriş noktası (Main metodu) içerirken, kütüphane assembly’si (.dll) bunu içermez.

Metadata ve Manifesto

Assembly, CIL dışında bir de metadata içerir. Tip metadata, binary içerisindeki her bir tipin ayırt edici özelliklerini tanımlar. Şöyle bir örnek vereyim: Mevcut evimizden başka bir eve taşınırken eşyaları kutulara koyarız. Eğer kutuların üzerine tek tek içerisinde neler olduğunu bir kağıda yazıp yapıştırırsak yeni evimizde açarken aradığımızı kolayca buluruz. Metadata, kutunun üzerindeki bu listedir ve assembly içerisindeki .dll ya da .exe’nin sahip olduğu tüm tipler hakkında bilgi içerir. Örneğin X adında bir sınıf varsa, tip metadası X sınıfının türediği sınıf, varsa hangi arayüzleri uyguladığı gibi ayrıntıları taşırken, X tipinin metotları, alanları vb. her bir üyesinin tüm tanımlamalarını içerir.

Bir assembly’de aynı zamanda kendisini tanımlayan bilgileri içeren assembly metadata bölümü bulunur. Assembly adı, versiyonu,kültür bilgisi, kısa bir açıklama, başka assembly’lere olan referanslar gibi bilgilerin tamamına assembly metadata denir ve manifesto adıyla assembly içerisinde yer alır. Bir assembly’nin assembly metadatası taşımasının arkasındaki gerçek, içerisindeki kodu çağıran uygulama ya da diğer assembly’lerin o assembly’yi nasıl kullanacaklarını öğrenmek için registry’ye ya da başka bir veri kaynağına başvurmalarına gerek kalmamasıdır.

Öyleyse bir assembly içerisindeki kaynak kodun CIL karşılığı, tip metadatası, manifesto bilgisi ve kaynaklar yer alır. Yandaki şekilde Bir.NET assembly’sinin 4 bileşeni bulunmaktadır.

Assembly’lerın kendi içeriklerini bilmeleri, çalışma zamanında bu bilgilerin elde edilip kullanılabileceği anlamına gelir ki, bu eklenti (plug-in) tabanlı programlama içerisinde önem arz eden bir konudur ve reflection (yansıma) olarak isimlendirilir. Visual Studio uygulama geliştirme ortamının intelli-sense özelliği, bu kavramdan faydalanarak çalışır.

Tek Dosyalı (Single-File) ve Çok Dosyalı (Multiple-File) Assembly

.NET ortamında geliştirilen uygulamalar varsayılan olarak tek bir assembly’den oluşurlar. Bir assembly tek bir .dll ya da tek bir .exe modülünden oluşuyorsa ona Single-File Assembly denir. Bu şekildeki tek-dosya assembly’ler gerekli bütün ortak ara dil yönergeleri (CIL), metadata ve manifesto bilgilerini benzersiz tek bir pakette tutar. Multi-File Assembly’ler ise birden fazla assembly’nin bir araya gelmesiyle oluşur ve bu durumda her birine modül adı verilir. Çok-dosyalı assembly oluşturulurken modüllerden bir tanesi (Birincil modül –primary module-) manifesto bilgisini içerir. Diğer modüller ise, modül seviyesinde kendi manifesto, CIL ve metadata bilgilerini taşımaya devam ederler. Bu bilgilerden anlaşılacağı gibi birincil modül manifestosu, diğer modüllere ne zaman başvurulacağı, modüller içerisindeki tipler ve diğer dosyalar (kaynaklar) gibi bilgileri sunar. Ayrıca tüm assembly’ler  farklı .NET dilleri kullanılarak yazılmış parçalar olabilir ve çok dosyalı assembly mimarisi ile bu uygulama parçaları tek bir assembly altında birleştirilerek kullanılabilir.

Private Assembly ve Shared Assembly

.NET ortamında assembly’ler private (özel) ve shared (paylaşılan) olmak üzere ikiye ayrılırlar:

Private (özel) assembly’ler çalıştırılabilmeleri için, geliştirilen uygulama ile birlikte aynı klasörde yer almalıdır. Bu yolla assembly’nin sadece o uygulama ile birlikte çalışması amaçlanır. Varsayılan olarak oluşturulan assembly’ler private’dır. Çalışma zamanı, private assembly’lerin diğer uygulamalar tarafından kullanılmayacağını garanti eder; çünkü bir uygulama, private assembly’yi sadece çalıştırılabilir dosyanın (.exe) çağrıldığı dizin ya da bir alt dizini ile aynı dizinden çağırabilir.

Aynı makinede çalışan birden çok .NET uygulamasının ortak bir dizinde bulunması senaryosunu düşündüğümüzde dahi bir uygulamanın yanlışlıkla başka bir uygulamanın kullandığı private assembly’lerin üzerinde modifiye yapması ya da kendi assembly’si yerine bir diğerini çağırması gibi riskler söz konusu değildir. Private assembly’lerin sadece kendisini kullanan uygulama tarafından erişilmesi çok fazla esneklik sağlar. Örneğin bir uygulama başka bir uygulamanın kullandığı assembly’nin yeni versiyonunu kullanırken diğer uygulama eski versiyonla çalışmaya devam edebilir.

Private assembly’nin bu özelliği ile dağıtılması da çok kolaydır. Dizin sisteminde uygun klasöre uygun dosya ya da dosyaların yerleştirilmesi yeterlidir (Yapılması gereken registry girişi vb. ayrıntılar yoktur).

Shared (paylaşılan) assembly’ler ile aynı makinedeki bütün uygulamaların kullanabilmesi için ortak bir kütüphane oluşturmak amaçlanır. Öyleyse aynı bilgisayardaki shared assembly’lere diğer uygulamalar erişebileceği için aşağıdaki risklere karşı daha dikkatli davranılmalıdır:

  • İsim çakışmaları: X uygulamasının kullandığı shared assembly’deki tiplerin isimleri, Y uygulamasının kullandığı başka bir shared assembly’dekilerle aynı olabilir. Client tarafındaki kodlar teorik olarak aynı anda her iki assembly’ye de erişebildiği için,bu büyük bir problem olabilir.
  • Versiyon problemi: Bir assembly’nin farklı bir versiyonu üzerine kaydedilebilir ve böylece yeni versiyon, varolan bazı kodlarla uyuşmazlık yaşayabilir.

Kullanıma açık assembly’ler dosya sisteminde özel bir alt-dizine  yerleştirilir, bu dizin Global Assembly Cache’dir ve assembly’nin özel olarak bu cache’e atılması gereklidir. Erişim adına oluşabilecek yukarıda belirtilen riskleri önlemek için  shared assembly’lere özel şifre kriptografisine sahip bir isim verilir. Bu isim strong name olarak bilinir, o assembly’nin tekliğini garanti eder ve assembly’yi referans etmek isteyen uygulamalar tarafından bilinmesi gerekir.

Global Assembly Cache’in Windows işletim sistemli makinelerdeki varsayılan yolu şudur: C:\WINDOWS\assembly

Obfuscator Kavramı

.NET mimarisi kullanılarak geliştirilen assembly’lerin CIL içerikleri ILDASM (Intermadite Language Disassembler) aracı ile görülebilir, pek çok faydalı bilgiye erişilebilir. Bu uygulama geliştirici için avantaj olsa da binary dosyalara ulaşan birisi reverse – engineering işlemleri ile CIL kodunu herhangi bir .NET diline çevirebileceği için dezavantaj da yaratabilir. Kötü niyetli kullanıcılar uygulamadaki varsa güvenlik sorunlarını bularak bunlardan faydalanabilir ya da kullanılan orijinal fikirleri çalabilir. Bu noktada reverse-engineering ile okunduğunda kaynak kodun anlamsız olarak görüntülenmesini hedef alan obfuscation metodu geliştirilmiştir. Bu işi yapan araca da obfuscator denilmektedir.

Obfuscation, uygulama kodlarının çalışmasını etkilemeden kaynak kodları saklamaktır ve kodlara değil .NET assembly’lerine uygulanan bir metottur. Bu metot içerisinde kullanılan tekniklerden bazıları şunlardır: Metadata içerisindeki adları anlamsız olarak yeniden isimlendirmek, çalışma zamanının kullanmadığı metadata bilgilerini silmek, string şifreleme, kontrol deyimlerinin karıştırılması vb.

Ortak Ara Dilin (Common Intermediate Language) Rolü

.NET assembly’leri hakkında elde edilen bilgiler ışığında platform ortak ara dilinin (CIL) rolü biraz daha ayrıntılı incelenebilir. CIL, herhangi bir platform-özel direktif setinin yerine geçmiştir. Seçilen .NET tabanlı dilin hangisi olduğundan bağımsız, ilgili derleyici CIL direktifleri üretir.

C# derleyicisi (csc.exe) ile bir kaynak kod dosyası derlendiğinde;

  • CIL direktifleri
  • Manifest  bilgisi
  • Uygulamadaki sınıfların, yapıların vb. her ayrıntısını tanımlayan metadata bilgisi 

içeren tek dosyalı (single-file) bir *.exe assembly elde edilir. Bu assembly ildasm.exe ile açılırsa yazılan kodların CIL kullanılarak temsil edildiği görülür. (Visual Studio Tools altındaki Visual Studio Command Prompt (2010)’a ildasm.exe yazılarak bu araç açılabilir ve ilgili .dll ya da .exe’nin yolu gösterilir):

Bu metot için üretilen CIL kodundan pek bir şey anlaşılmaması çok önemli değildir. Burada üzerinde durulması gereken nokta şu ki; C# derleyicisi işletim sistemine özel kodlar değil, CIL üretir. Tekrarlamakta fayda var, bu özellik bütün .NET tabanlı derleyiciler için geçerlidir. Bunu gösterebilmek için aynı uygulamayı C# yerine Visual Basic .NET (VB.NET) dili ile yazıp karşılaştırabilirsiniz.

CIL’in Yararları

Bu noktada kaynak kodun platforma özel komut setine (makine diline) değil de CIL’e derlenmesinden tam olarak ne elde edildiği merak edilebilir. Bunun cevabı öncelikle dil entegrasyonudur. Bir önceki konuda görüldüğü gibi bütün .NET tabanlı derleyiciler neredeyse aynı CIL kodunu üretiyorlar. Dolayısıyla bütün diller iyi tanımlanmış bu binary ortamda aralarında anlaşabileceklerdir. Bunlara aşağıdaki örnekler verilebilir:

  • Bir dilde yazılmış sınıf, başka dilde yazılmış bir sınıfın üyelerini kalıtım yoluyla kullanabilir.
  • Bir sınıf hangi dilde geliştirildiğinden bağımsız olarak başka bir sınıf örneğini içerebilir.
  • Nesneler ya da nesne referansları metotlar arasında parametre olarak geçirilebilir.
  • Farklı dillerde yazılmış metotları çağırırken hata ayıklayıcı ile metot çağrımları arasında gezilebilir; yani farklı dillerdeki kaynak kodları arasında adım adım ilerlenebilir.

Ayrıca CIL’in platformdan bağımsız olmasından yola çıkarak .NET Framework’ün de platformdan bağımsız olduğunu söyleyebiliriz. (Tek bir kod bloğunun sayısız işletim sistemi üzerinde çalışabilmesi) Bu platform-bağımsızlık Windows işletim sistemlerinde geçerli olmakla beraber bir-çok Windows olmayan platformda deneme aşamasında da olsa uygulamaları mevcuttur. (Mono ve Portable.NET projeleri) Özet olarak CIL’in getirdiklerine bakılınca işin en güzel yanı .NET’in yazılım geliştiriciye hangi dil ile bunu yapmak istediği seçeneğini sunmasıdır.

CIL’in Platforma Özel Koda Derlenmesi

Herhangi bir dilde yazılmış uygulamanın bir bilgisayarda çalışması için mutlaka bilgisayarın anlayacağı komutlara dönüştürülmesi gereklidir. .NET assembly’leri platforma özel kod yerine CIL içerdiğinden dolayı kullanılmadan önce makine koduna derlenmelidirler. CIL’i uygulamanın çalıştığı makine için anlamlı talimatlara dönüştüren derleyiciye just-in-time compiler (tam zamanında derleyici) adı verilir ve aynı zamanda jitter olarak da anılır. .NET çalışma zamanı ortamı, her biri üzerinde çalıştığı işletim sistemi için optimize edilmiş, her CPU için bir JIT derleyicisi kullanır ve bu optimizasyonu otomatik yapar.

Örneğin akıllı telefonlarda yayınlanmak üzere bir .NET uygulaması geliştiriliyorsa, düşük bellek ortamında çalışması için uygun jitter kullanılır. Diğer yandan geliştirilen assembly bir yedek sunucuda dağıtılacaksa (bellek çoğu zaman sorun olmayacaktır) jitter yüksek bellekli ortamda işlevini yerine getirmesi için optimize edilecektir. Bu yolla yazılım geliştiriciler, etkin bir şekilde “tam-zamanında-derlenecek” ve farklı mimariler kullanılarak çalıştırılacak kod blokları yazabilirler.

Bütün bunlara ek olarak kullanılan jitter ile CIL komutları uygun makine kodlarına derlendiğinde, sonuçlar uygun bir yolla hedef işletim sisteminin belleğinde saklanacaktır. Buna göre bir metoda çağrı yapılırsa, ilk çağrıda CIL komutları platforma özel kodlara derlenecek ve sonraki kullanımlar için hafızada tutulacaktır. Dolayısıyla o metodun ikinci çağrılışında CIL’i yeniden derlemeye gerek kalmayacaktır.

Etiketler: | Kategoriler: Smart TV Application Development Emrah Uslu | 31.10.2011 15:39

Haftasonu evde internete bağlı Samsung televizyondaki uygulamalardan Youtube ile müzik dinlerken <<Televizyonların uygulama geliştirme ortamları nasıldır acaba>> diye düşündüm. Akşamında beyin takımı ile konuşurken tesadüfen yine bu konu açıldı ve ardından ufak bir deneme yapmak için araştırmaya giriştim.

Literatürü ve platformu farklı olsa da bir web geliştiricisinin kolaylıkla adapte olabileceği bir ortam söz konusu. Buyrun :

  • Mimari, .NET Framework ile benzer rolde bir çatı üzerine kurulu : AppEngine
  • Uygulamaların yüklenmesi, kaldırılması ve diğer işlemler için Application Manager kullanılıyor.
  • Uygulama ile ilgili tüm ayarlar, config.xml dosyasında yer alır. Xml tabanlı bu dosyada yer alan çeşitli xml etiketleri ile uygulamanın tam ekran mı çalıştırılacağı, genişlik ve yüksekliği, versiyonu vb. bilgiler, uygulama bir televizyona kurulurken kullanılır. config.xml, uygulamanın root klasöründe yer almalıdır.
  • Yazılım geliştirme ortamı için Samsung Smart TV Software Development Kit (SDK) indirilip kurulmalıdır. Uygulamanın yapısal görüntüsü için html, görsel dizaynı için css, davranışlarını programlamak için javascript dosyaları hazırlanır.
  • Bir uygulama çalıştırıldığında AppEngine önce config.xml dosyasına bakar ve gerekli konfigürasyon bilgilerini alır, güncel bir versiyon var mı diye kontrol eder. Ardından programın giriş noktası index.html dosyasına bakar.

       

  • SDK'da sunulan hazır javascript plugin kütüphanelerinden faydalanarak televizyon kanalları dışında video yayını yapmak, ses açmak, imaj galerisi hazırlamak, dosya sistemi ile çalışmak, kumadadan yapılan girişleri yakalamak oldukça kolay.
  • Uygulamanın yazılım geliştirme sürecinde test yapmak için internete bağlı bir Samsung Smart TV olması lazım. Lokal yada uzakta yer alan Apache sunucusu üzerine dağıtılan kodları, televizyona geliştirici logini olarak yüklemek mümkün. Bu işlemi 1 defa yaptıktan sonra "Senkronize Et" diyerek kodları doğrudan televizyon üzerinde test edebilirsiniz. Programı televizyona yayınlamadan önce SDK ile gelen ve görsel editörden kullanılabilen Smart TV Emülatör kullanılarak da test yapılabilir.
  • Bir Smart TV uygulaması scene'lerden oluşur. Her scene, bir web sayfası gibi düşünülebilir. Scene üzerinde Button, DatePicker, CheckBox gibi hazır komponentler, görsel editörde Component Library'den sürükle-bırak yöntemiyle kullanılabilir.
  • Bunların haricinde Application Manager ve AppEngine çatısı, üyelik sistemi için Single Sign On (Tek oturum açma) altyapısına destek vermektedir. Bu sayede televizyondan uygulamayı kullanırken bir defa login olup, uygulamayı daha sonra kullandığımızda tekrar login olmamıza gerek kalmamaktadır. Bütün uygulamaların üyelik sistemi Samsung Smart TV'de bağımsız bir ekrandan yönetilir.
  • Uygulama geliştiriciler kaynak olarak SDK'yı kurduktan sonra menüdeki HELP'den faydalanabilirler. Bunun yanında aşağıda paylaştığım Documents linkinde bulabileceğiniz 100 sayfalık App Development Guide for Samsung TV, detaylı başvuru kaynağı olarak kullanılabilir.

Kaynaklar

SDK : http://www.samsungdforum.com/Devtools/Sdkdownload

Documents : http://www.samsungdforum.com/upload_files/files/guide/data/html/documents2.html

Tutorial : http://www.samsungdforum.com/upload_files/files/guide/data/html/tutorials2.html

Developer : http://developer.samsung.com/home.do

Spec & Feature : http://www.samsungdforum.com/Devtools/Spec

Etiketler: , | Kategoriler: Etkinlik Emrah Uslu | 25.10.2011 11:05

Bugün size yeni bir topluluğu tanıtmak istiyorum. Yazarlık, sunumlar vb. yollarla katkı verenlerden birisi olduğum topluluğun İstanbul tanıtım etkinliği, 21 Ekim 2011 Cuma günü Microsoft ofisinde gerçekleştirildi. Veritabanı yöneticisi, iş zekası uzmanı, yazılım geliştirici, proje geliştirme uzmanı, CIO, çözüm mimarı, sistem yöneticisi gibi şirketlerin IT departmanlarında farklı katmanlarda çalışan 120'den fazla katılımcı etkinliği dinlemek üzere hazır bulundu. Toplam 9 sunumun yapıldığı lansman, çıkışta katılımcılardan aldığım geri bildirimlere göre oldukça faydalı geçti.

 

SQL Server Öncüleri, küresel olarak faaliyet gösteren SQL PASS topluluğunun Türkiye şubesi olarak çalışmaktadır. Sql ve çevresindeki teknolojiler için Türkçe içerik üretme hedefinde olan topluluk, bu lansmanda akılları ve kalpleri kazandı. Bu güzel başlangıç, topluluktaki herkese daha güzel işler çıkarmak için güç verdi diyebilirim. Aynı zamanda katkıda bulunmak isteyen birçok uzman olduğunu gördüm. Günümüzün çetin çalışma şartlarında gönüllülük esası ile böyle bir iş çıkaran topluluk liderlerini ve katkıda bulunan herkesi tebrik ediyorum. Linkleri hemen aşağıda paylaşıyorum.

http://www.sqlserveronculeri.com

http://www.facebook.com/sqlserveronculeri

   

Etiketler: , | Kategoriler: Sql Server Emrah Uslu | 06.10.2011 15:48

 

Bu yazı, sql server için yedekleme ve kurtarma konusunda kendim için tuttuğum notlardan oluştuğu ve fazla düzenleme yapmadan burada paylaştığım için yazıdaki dilden dolayı özür dileyerek başlayayım. 

Ayrıca okumadıysanız serinin ilk iki yazısına bu linklerden ulaşabilirsiniz :

Backup Restore Planlaması - I

Backup Restore Planlaması - II

RESTORE ile RECOVERY KAVRAMLARI KARIŞTIRILMAMALI

- Restore, bir db'i geri getirmek için çalıştırılan sql sorgusudur.

- Recovery ise db'i tutarlı bir duruma getirme sürecidir. Bunun anlamı, commit olmuş transaction'lar diske yazılır, başlamış ama bitmemiş transaction'lar rollback edilir. Sonuçta elde sadece commit olmuş transaction'ların olmasıdır.

- Sql Server her yeniden başlatıldığında recovery işlemi otomatik olarak gerçekleşir. Açılırken sql'in son olarak nasıl kapatıldığı bilinmez : Güç kaynağının kesilmesi, sql'in aşırı yüklenmeden kitlenmesi, makinenin restart edilmesi yada normal bir şekilde durdurulmuş olabilir. Mesela elektrik kesilmesinin ardından sql server yeniden başlarken gerçekleşen recovery sürecinde, tamamlanmış transaction'ların dahil edilir, tamamlanmayanların ise remove edilir.

- Aynı zamanda bir restore işleminin son adımı recovery'dir. Restore komutu, recovery'nin gerçekleşip gerçekleşmeyeceğini içerir. Eğer recovery, o restore işlemi için gerçekleşmezse, bir differential backup yada log backup restore edilebilir. Ancak restore komutu ile birlikte recovery çalıştırılırsa artık yeni bir restore işlemi yapılamaz ve database online konuma getirilir. Burada anlatılanlar, Sql Server Management Studio ile restore işlemi yaparken Options - Recovery State kısmında RESTORE WITH RECOVERY ve RESTORE WITH NORECOVERY olarak görülebilir.


RECOVERY MODELLERİ KARŞILAŞTIRMAK

i) Full Recovery Model

- Bütün data modifikasyonlar��nı tutar.

- En yüksek veri korumayı sağlar

- En büyük log dosyası boyutuna sahiptir.

- Bu modelde bütün backup işlemleri kullanılabilir.

- Birçok OLTP sistem ve iş-kritik uygulamaların db'leri Full Recovery Model'i kullanır; çünkü veri kaybına tahammülleri yoktur.

Not : İlk transaction log backup'ı ancak bir tane full database backup alındıktan sonra alınabilir.

ii) Bulk-Logged Recovery Model

- Bazı db işlemleri, log dosyasında minimum yer kaplar. Bu sayede bu işlemler daha performanslı çalışır.

- Bu işlemlere örnek olarak şu sorgular gösterilebilir : BCP, BULK INSERT, SELECT INTO, CREATE INDEX, ALTER INDEX REBUILD, and DBCC, DBREINDEX.

- Mesela büyük miktarda bir data import s��rasında bütün insert/update işlemlerini loga yazmak yerine yeni gelen extent'lerin yerlerini ve değişen extent'lerin adreslerini loga yazar. Sonuç olarak bu bulk import işlemi daha hızlı çalışır. Ne zaman ki bir transaction log backup alınır, log'a yazılan extent başlangıç ve bitiş noktalarına göre sql server data dosyasına gider ve ilgili datayı transaction log'a yazar.

- Aynı zamanda bu durumda restore işlemi için zamanda istenen tarih/saate geri dönne imkanı yoktur.

- Olası bir data dosyasının zarar görmesi senaryosunda transaction-log'dan restore işlemi yapıldığında bulk işlemin datasını data dosyasından alamayacaktır.

- Full backup ve transaction log backup ardından bulk işlem yapılır ve data dosyası bozulursa bulk işlemden sonrasına geri dönmek mümkün değildir. Tail log backup alınamaz; çünkü data dosyasına ihtiyaç vardır ama data dosyası erişilemez durumdadır. Bu tarz veri kayıplarının önüne geçmek için yapılabilecek olan şey, bulk işlemin arkasından transaction log backup almaktır.

- Database Admin (DBA), Full Recovery Model'daki db'de büyük bir bulk işlem yapmak için kısa süreli db'nin durumunu Bulk-Logged'a çekebilir.

- OLAP db'lerinde bu model tercih edilebilir. Sadece geceleri bulk data aktarımı yapılır ve hemen arkasından bir backup alınır ve gün içinde bir daha değişiklik gerçekleşmez. Böylece data bozulursa eldeki backup'dan geri dönülebilir.

iii) Simple Recovery Model

- Bir işlem, transactionlar log'da, sonraki checkpoint işlemi gerçekleşene kadar saklanır, ardından truncate edilir.

- Transaction log-backup alınmaz. Dolayısıyla transactional replication ,mirroring, log shipping gibi işlemlere izin verilmez.

- Test ve development amaçlı kullanılabilir.

 

BACKUP ve RESTORE İŞLEMLERİ İÇİN GEREKLİ İZİNLER

Backup için minimum

Server role: none

DB role: db_backupoperator

restore için minimum

Server role: dbcreater

DB role: db_owner


RESTORE SÜRECİ

Transaction Mark : begin Transaction komutu ile birlikte With Mark TranName kullanılıp transaction-log'da bir nokta işaretlenebilir ve daha sonra Transaction Log'dan restore yapılırken bu noktanın adını vererek geri dönülebilir.

- Bu bilgi msdb veritabanında logmarkhistory tablosunda durur.


Manuel Recovery

RESTORE DATABASE [TestDb2] WITH RECOVERY

Yukarıdaki sql komutu ile restoring modda olup daha fazla restore yapılmayacak olan db'ler recovery edilip tutarlı hale getirilebilir.

 

Restore with standby

Database'i read-only moda al. Uncomitted transaction'ları geri al (undo). Ancak geri alınan bu transaction'ları bir standby dosyasında sakla. Böylece istediğim zaman bu transaction'ları geri yükleyebileyim.

 

Kaynak : Wrox SQL Server 2008 Administration, MSDN