25 Ocak 2011 Salı

SQL Server 2008 R2 Hakkında Az Bilinen 10 Özellik

SQL Server 2008 R2 sürümü daha çok İş Zekası (BI) konusundaki yenilikleri ile bilinir. Ancak bu sürümle gelen yenilikler bununla sınırlı değildir. Şimdi bu az bilinen 10 özelliğe kısaca göz atalım.
1. SQL Server Express Veritabanı Boyutunda Artış
Pek çok kullanıcının ücretsiz SQL Server Express versiyonundan uzak durmasının bir sebebi, bu versiyonun desteklediği maksimum veritabanı boyutu idi. Yeni sürümle bu limit %150 arttırılarak 4GB’tan 10GB’a yükseltildi. Bu artış daha önce çalışmayan pek çok uygulamanın SQL Server Express ile çalışmasını sağlayacak ve ücretli versiyonlara bir alternatif olmayı sürdürecek.
2. Genişletilmiş Güvenlik
SQL Server 2008 R2’nin Genişletilmiş Güvenlik (Extended Protection) özelliği, service binding ve channel binding kullanarak authenticatin relay tipi saldırılara karşı güvenlik sağlamaktadır. Service binding özelliği daha fazla sunucu kaynağı gerektirdiğinden, seçilecek güvenlik yöntemi CPU üzerindeki yüke göre belirlenmelidir. Genişletilmiş Güvenlik özelliği Windows Server 2008 ve Windows 7 tarafından doğrudan desteklenmekte, diğer işletim sistemleri için ise bir yama yüklenmesi gerekmektedir.

3. SSL Şifrelemede Wildcard Sertifika Desteği
İstemci ve sunucu arasındaki bağlantıda, sunucunun tam alan adı (FQDN) ile aynı olan SSL sertifikası kullanımı yanında wildcard SSL sertifikası kullanımı da desteklenmektedir. Böylelikle tek bir sertifika ile web, web mail ve sql sunucusuna yapılan bağlantıları şifrelemek mümkün olmakta ve SSL sertifika ve yönetim maliyetlerinde düşüşe sebep olmaktadır. Örneğin bir firma bünyesindeki bütün SQL sunuculara erişimi şifrelemek istediğinde, her sunucu için ayrı SSL sertifikası almak yerine, tek bir sertifika ile işini çözebilmektedir.
4. IIS 7 Üzerinden Merge Replication
İki lokasyon arasında merge replication yaparken artık IIS 7’yi SQL listener olarak kullanmak mümkün. Publisher tarafındaki IIS7 kurulumu yapıldıktan sonra subscriber (üye) sunucular IIS7’ye bağlanarak replikasyon yapabilirler. Üstelik bütün haberleşme SSL şifreleme ile korunr. Bu yeni özellik sayesinde her iki lokasyondaki sunucuyu da internete açmadan replikasyon yapmak mümkün olabiliyor. Ayrıca bir VPN bağlantı yapmak da gerekmiyor. Replikasyon eğer iki farklı şirket arasında yapılacaksa da, her iki taraf da ağ altyapılarını karşı tarafa açmadan bu işlemi gerçekleştirebiliyor.
5. Reporting Services (SSRS) altında İşbirliği ve Yeniden Kullanım
Sql Server Reporting Services R2 de, halihazırda mevcut bir özellik olan, komponentlerin SSRS ortamında yeniden kullanımı daha da geliştirilmiş. Yeni rapor parçaları ve paylaşılmış veri kümeleri rapor geliştirme süresini düşürürken, aynı zamanda kurumlarda geliştirilen raporların ortak bir görünüme kavuşmasını sağlıyor.
6. Yeni Veri Tipleri
Rapor Servislerinin (SSRS) Sql Server 2008 R2 ile gelen sürümünde 3 yeni veri tipi desteklenmekte. Bunlar Sql Azure, Parallel Data Warehouse ve Microsoft SharePoint listesi. Bu yeni veri tipleri sayesinde, firmalar uygulamalarını ve veri tabanlarını Azure bulutunda bulundururken, raporlarını almak, rapoları zamanlamak (schedule) ve ağ paylaşımlarına kaydetmek için mevcut SSRS altyapılarını kullanabilir.
7. BIDS Sql 2008 ile de Uyumlu
SSRS 2008 R2 için kullanılan Business Intelligent Development Studio (BIDS), Report Server proje özelliklerindeki bir ayar ile SSRS 2008 ile geriye dönük uyumlu hale getirilebilir. Böylece ortak bir geliştirme ortamı kullanarak hem 2008 hem de 2008 R2 için geliştirme yapılabilir. Firmalar mevcut SSRS 2008 raporlarını yükseltmek zorunda kalmadan SSRS 2008 R2’yi farklı bir ortama kurup paralel olarak çalıştırabilir.
8. BackUp Compression
SQL Server 2008 çıkışı ile birlikte duyurulmuştu ancak yalnızca Enterprise Edition’ da destekleniyordu. SQL Server 2008 R2 ile birlikte Standart Edition ve üzerinde  destekleniyor. Sıkıştırılmış backup boyutu sıkıştırılmamış olana göre daha küçüktür ve sıkıştırılmış backup daha hızlı çalışır.
9. Master Data Services
SQL Server bu servis ile şirketler farklı sistemlerdeki kritik verilerini merkezi olarak yönetebilirler. Master Data Service kullanarak, bilgi kaynağının merkezden yönetimini sağlayabilir ve veri bütünlüğünü garanti altına alabilirsiniz. Mater Data Service içinde gereksinimlerinize uygun master datayı kendinize özel modellerle yaratabilirsiniz. Master datayı yönetmek isteyen daha fazla kullanıcıya erişim sağlayabilirsiniz ve tüm data hareketlerini kayıt altına alarak denetimi sağlayabilirsiniz. Master Data Service esnek hiyerarşi tanımlamaları yapmasını sağlayarak, master dataları gruplama ve özetleme imkanı sağlar.
10. StreamInsight Teknolojisi
StreamInsight, veri hareketi ve yoğunluğu yüksek veritabanı uygulamaları için sunulmuştur.  Çoklu veri akışlarını işleme, hareketli verileri izleme (RFID sistemlerden veya finans işlemleri gibi sürekli veri akışı olan uygulamalarda), analiz etme ve bu verilere göre hareket etme yeteneği ile gerçek zamanlı bilgiye ulaşmak oldukça avantaj sağlar.
Görüldüğü üzere, herkesin beğenisini kazanan PowerPivot özelliğinin dışında R2’nin daha pek çok güçlü yanı mevcut. Bunları kullanarak R2’den daha yüksek verim almak mümkün.

Necmettin TÜRER, Serap PARLAK

18 Ocak 2011 Salı

WebGL Nedir? (HTML 5 / OpenGL )

HTML 5 in yavaş yavaş hayatımıza girmesiyle beraber webdeki yenilikler de birbirini izlemeye devam ediyor. WebGL bu önemli yeniliklerden bir tanesi konumunda. WebGL, web tarayıcıları üzerinde 3D grafikler oluşturmak için kullanılan platform bağımsız ve ücretsiz bir API’dir. WebGL in arkasında Khoronos Group bulunmaktadır. Khoronos Group şirketleri arasında AMD, Ericsson, Nokia, Google, Mozilla, Nvidia, Opera, Autodesk ve Adobe gibi devler yer almaktadır.
WebGL, Javascript aracılığı ile OpenGL ES 2.0 desteği sağlayarak çalışmakta olup, bu sayede OpenGL veya OpenGL ES destekleyen herhangi bir internet tarayıcı 3D grafikleri desteklemektedir. WebGL, HTML 5 standartlarında açıklanan ‘Canvas’ elementini kullanır.
clip_image002_thumb[1]
Apple Safari, Google Chrome, Mozilla Firefox ve Opera gibi web tarayıcıları WebGL çalışma grubunun üyesidirler. Bu sayede, bu standart, internet tarayıcıları arasında geniş kabul görmüş gibi görünmektedir. Ancak Internet Explorer henüz WebGL desteği sağlamamakta ve Internet Explorer 9 ile de bu desteği verecek gibi görünmüyor.

WebGL halen geliştirmesi devam eden bir API’dir ve bu yüzden sadece birkaç web tarayıcısının beta sürümlerinde desteklenmektedir. Ayrıca bazen tarayıcının WebGL API’sini destekler duruma gelebilmesi için ek işlemler gerekiyor. Şimdi bu işlemlere göz atalım:
1.Firefox
WebGL, Firefox/4.0b* sürümlerince desteklenir durumda. Son sürümler http://www.mozilla.com/en-US/firefox/all-beta.html adresinden de edinilebilinir. Firefox tarayıcısını kurduktan sonra WebGL API’sinin aktif olup olmadığını görmek için :
- Adres çubuğuna about:config yazılmalı
- Listelenen tanımlamalarda ‘webgl.enabled_for_all_sites’ parametresi eğer ‘false’ ise ‘true’ olarak değiştirilmeli
2.Safari
WebGL, Mac OS X 10.6 WebKit sürümlerince desteklenmektedir. İlgili sürümler http://nightly.webkit.org/ adresinden indirilebilir. Tarayıcıyı kurma işlemi tamamlandıktan sonra, WebGL API’sini aktif duruma getirebilmek için Terminal ekranında:
defaults write com.apple.Safari WebKitWebGLEnabled -bool YES
komutunun bir kereye mahsus çalıştırılması yeterlidir.
3.Chrome/Chromium
WebGL’i Windows ve Mac OS X üzerinde test etmenin en kolay yolu Chrome 9 Beta versiyonlarından birini indirip kurmaktır.
Eğer Linux, Mac OS X ve Windows üzerinde en güncel versiyonlar test edilmek istenirse, Chrome tarayıcısının açık kaynak versiyonu Chromium da kullanılabilir.
WebGL’i aktif olarak çalıştırabilmek için Chromium tarayıcısı komut satırlarından aşağıdaki parametre ile çağırılmalıdır:
- Linux: ./chrome --enable-webgl
- Mac OS X: ./Chromium.app/Contents/MacOS/Chromium --enable-webgl
- Windows: Komut satırı parametresine gerek yoktur.
Tarayıcınızın HTML5 ve WebGL e ne kadar uyumlu olduğunu kolayca öğrenmek istiyorsanız eğer http://html5test.com/ linkini kullanabilirsiniz. Bu link tarayıcınızı HTML5 için bir teste tabi tutmakta ve belli kriterlere göre puanlama yapmaktadır. Burada WebGL kriterine bakarak tarayıcınızın WebGL’i destekleyip desteklemediği bilgisine sahip olabilirsiniz.
1_thumb
WebGL ile Örnek Uygulamalar
WebGL uygulamaları için gerekli ortamı sağladıktan sonra birazda Javascript ile nasıl 3D render edebilen bir sayfa oluşturabileceğimize bakalım. 3D render edebilmek için ilk ihtiyacımız olana şey bir ‘canvas’ elementidir. Aşağıdaki HTML kod parçası bir canvas elementi tanımlar ve sayfa load olduğunda WebGL ortamının başlatılabilmesi için start()metodunu kullanır.

<body onload="start()">
  <canvas id="glcanvas" width="640" height="480">
    Your browser doesn't appear to support the HTML5 <code>&lt;canvas&gt;</code> element.
  </canvas>
</body>

Javascript kodumuzdaki start() metodu 3D render edebilmek için gerekli ortamı hazırlar.
 
function start() {
  canvas = document.getElementById("glcanvas");
 
  initWebGL(canvas);      // Initialize the GL context
  
  if (gl) {
    gl.clearColor(0.0, 0.0, 0.0, 1.0);  // Set clear color to black, fully opaque
    gl.clearDepth(1.0);                 // Clear everything
    gl.enable(gl.DEPTH_TEST);           // Enable depth testing
    gl.depthFunc(gl.LEQUAL);            // Near things obscure far things
  }
}



Tanımlanmış canvas elementi ile initWebGL() metodu çağırılarak WebGL ortamı hazırlanır. Daha sonra renk olarak siyah set edilir ve gerekli diğer parametrelerin set edilmesi ile beraber WebGL için ortam hazırlanmış olur.
 
function initWebGL() {
  gl = null;
  
  try {
    gl = canvas.getContext("experimental-webgl");
  }
  catch(e) {
  }
  
  // If we don't have a GL context, give up now
  
  if (!gl) {
    alert("Unable to initialize WebGL. Your browser may not support it.");
  }
}



Bu işlemlerden sonra sayfamızı çalıştırdığımızda boş ve siyah bir ekran görüyorsak 3D elementler oluşturabileceğimiz WebGL geliştirimi için uygun ortamı hazırlayabilmişiz demektir J. Bu küçük örneği daha da detaylandırabilmek için aşağıdaki kaynaklar incelenebilir:








WebGL yeni bir teknoloji olmasına rağmen bu alanda bir çok aktivite bulunmaktadır. WebGL, specificationlarını henüz tamamlamamış olmasına rağmen WebGL için oluşturulmuş frameworkler bulmak mümkündür;





- GLGE





- GTW

- O3D



Bu tür kütüphaneleri kullanarak zengin içerikli grafikler ve animasyonlar oluşturmak kolaylaşmakta. Aşağıda üzeri bir resim ile texture edilmiş ve dönen bir küp animasyonun ekran görüntüsü yer almakta. Daha fazla demo için http://www.khronos.org/webgl/wiki/Demo_Repository linki incelenebilir.


  

Referanslar :





Gültürk KARLI

17 Ocak 2011 Pazartesi

GoogleDocs ile Anket Hazırlama

Google Docs, Gmail hesabınızla online olup kelime işlemci, hesap tablosu, sunum, form ve veri depolama gibi özellikleri kullanabileceğiz internet tabanlı bir alternatif office sistemidir. Diğer ofis uygulamalarından farkı tamamen ücretsiz olması ve kurulum dosyasına ihtiyacı olmamasıdır. Google Docs ile Anket hazırlayıp dağıtımını yapabilirsiniz. Anket Hazırlamak için sadece Google hesabınız olması yeterlidir. Bu uygulamada isteğinizden fazlasını bulacaksınız. İstediğiniz kadar soru tanımı yapabilirsiniz. Soru tanımı yaparken cevap seçeneklerinden checkbox, radiobutton, textbox, listbox şeklinde seçip yapabilirsiniz. İlk yapmanız gereken Gmail hesabınızı açıp “Dökümanlar” bölümüne giriş yapmaktır.
Soldaki menüden Create New / Form Seçilir. Çıkan ekran aşağıdaki gibi olacaktır. Her soru için ayrı ayrı Question Title ve Question Type doldurulmalıdır. Soruya göre Type değiştirilmelidir.Standart kısa bilgiler ve sorular için Text Daha geniş soru yazmak için Paragraph Text kullanabilirsiniz. Multiple Choice ile Radiobutton şeklinde seçenek eklenebilir. Checkboxes ile birden fazla seçeneğin seçilebildiği tip eklenebilir. Choose from a list ile açılır menülü tip ekleyebilirsiniz.Scale ile puanlandırma yapabilirsiniz. Grid ile Grid seklinde girişler yapılabilir. Zorunlu sahalarda Make this a required question işaretlenmelidir.
1

2
Anket tanımlamalarınız bittikten sonra  Theme kısmından arkaplan seçeneklerini seçebilirsiniz. E-mail this form ile mail adresi yazıp istediğiniz kadar kişiye anketi gönderebilirsiniz. More Action / Edit Confirmation anket sonucundaki kullanıcıya gösterilen mesajı düzenlemek için kullanabilirsiniz. More Action / Embed ile bloğunuza anketi ekleyebilirsiniz. Anket Sonuçlarını Google’dan yada mail adresinizden aşağıdaki şekilde görebilirsiniz.
3
Yasin ÖZCAN

8 Ocak 2011 Cumartesi

VB.Net Try-Catch Bloğunda Değişken Tanımlamaların Performansa Etkisi

VB.Net Gereksiz Try-Catch Blokları isimli yazımızda try-catch hata yakalama bloklarının kullanımlarının genel performans etkilerini incelemiştik. Bu makalemizde Try-Catch bloklarında kullanılan değişkenlerin uygulama performansındaki etkilerini örneklerle analiz etmeye çalışacağız. Try-Catch bloğunda kullanılan değişkenler uygulama performansına olumsuz yönde etkisi bulunmaktadır. Değişken tanımlamalarımız try bloğunun dışında yapmamız ile içinde yapmamız arasındaki fark büyüktür. Örneğin basit bir VB.NET Form Application içerisinde aynı kodu hem try-catch bloğu ile değişken tanımı blok içinde ve dışında olacak şekilde birde try-catch bloğu olmadan yazalım ve geçen süreleri izleyelim.
Örnek 1: Try-Catch bloğu dışında değişken tanımı olan kod
Private Function TestWithTry() As Decimal
        Dim startDate As DateTime = Now
        Dim b As Integer = 0
        Try
            For i As Integer = 0 To 100000000
                b = i
            Next
        Catch ex As Exception
             MsgBox(ex.Message)
        End Try
        Return Now.Subtract(startDate).TotalMilliseconds
End Function


Örnek 2: Try-Catch bloğu içinde değişken tanımı olan kod
Private Function TestWithInnerTry() As Decimal
        Dim startDate As DateTime = Now       
        Try
            Dim b As Integer = 0
            For i As Integer = 0 To 100000000
                b = i
            Next
        Catch ex As Exception
             MsgBox(ex.Message)
        End Try
        Return Now.Subtract(startDate).TotalMilliseconds
End Function

Örnek 3: Try-Catch bloğu olmayan kod
Private Function TestWithoutTry() As Decimal
        Dim startDate As DateTime = Now
        Dim b As Integer = 0
        For i As Integer = 0 To 100000000
            b = i
        Next       
        Return Now.Subtract(startDate).TotalMilliseconds
End Function

Yukarıdaki fonksiyonları birer butona bağlayalım ve butonun click eventlerinde bu fonksiyonları çağıralım. En son katman bu click event’leri olduğu için kodlarımız try-catch bloklu olacaktır.
Sonuçlar
Sonuç 1: Aşağıdaki kod çalıştığında yaklaşık 260 milisaniye gibi bir sürede işini tamamlamaktadır.
Private Sub btnTry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTry.Click
        Try
            MsgBox(TestWithoutTry().ToString())
        Catch ex As Exception
            MsgBox(GetDetailMessage(ex))
        End Try
End Sub

Sonuç 2: Aşağıdaki kod çalıştığında yaklaşık 406 milisaniye gibi bir sürede işini tamamlamaktadır.
Private Sub btnInner_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInner.Click
        Try
            MsgBox(TestWithInnerTry().ToString())
        Catch ex As Exception
            MsgBox(GetDetailMessage(ex))
        End Try
End Sub
Sonuç 3: Aşağıdaki kod çalıştığında yaklaşık 266 milisaniye gibi bir sürede işini tamamlamaktadır.
Private Sub btnWithTry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWithTry.Click
        Try
            MsgBox(TestWithTry().ToString())
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

Sonuç olarak VB.NET kodu içerisinde try-catch kullanımlarında değişken tanımlarken bloğun dışında tanımlanmasına dikkat edersek performans kaybımız olmayacaktır. Try-catch bloğu olan ve değişken tanımı blok dışında olan kod ile try-catch bloğu olmayan kodlar arasında performans farkı bulunmamaktadır. Fakat değişken tanımı try-catch bloğu içinde olan kod ile aralarında performans açısından fark bulunmaktadır.
Armağan DÖKER

3 Ocak 2011 Pazartesi

Windows Phone 7 ve Tablet Gelişmeleri

Microsoft, Windows 7’nin pc versiyonundan çok iyi geri bildirimler almış durumda ve mobil alanda da bu yükselişi sürdürmek niyetinde. Windows 7‘nin mobil versiyonuna olan ilgiden memnun kalan firma , tabletler için de yeni bir versiyon hazırlamak düşüncesinde.
Windows phone 7 ile piyasaya çıkan telefonlara gösterilen ilgiden memnun olan Microsoft, şuana kadar üretici firmalardan 6 ay sonunda, 1.5 milyona yakın ürünün çıktığını bildirdi. Bu rakamlar ilk olarak Microsoft’un sitesinden, işletme ve pazarlama başkan yardımcısı Achim Berg tarafından açıklandı. Analistlerin tahminleri, 2011 yılında Windows 7 işletim sistemli 25 milyon telefonun satılacağı yönünde , iPhone için ise bu rakam 60 milyon civarında olacağı ön görülüyor. Bu tahmini desteklemek amaçlı Microsoft 2011 yılında yeni sürümlerle farklı kullanıcılara ulaşmak istiyor. Yalnız bu anlamda Türkiye’nin durumu henüz net değil.

Mobil dünyasında , tabletlere de el atmak isteyen Microsoft, ARM ile ortak çalışmaya başladı. Alınan bilgilere göre yeni versiyon, ARM işlemci mimarisine uygun olacak ki ARM işlemcileri tablet ve taşınabilir cihaz pazarında çok önemli bir yere sahip. Bu ortaklık Microsoft’un mobil cihaz pazarında kaybettiği payı geri almasında çok büyük etken olacaktır. Ancak şimdilik bu ortaklık 2 firma tarafından resmi olarak açıklanmış değil ve bu konuda yorum yapmaktan kaçınılıyor.
Henüz netleşmemiş olsa bile, Nokia’nın Windows Phone 7 tabanlı cihazlar çıkartacağı haberi de bazı kaynaklar tarafından yayınlanmış bulunuyor. Eğer bu iddia gerçekleşir ise, Google ve Apple açısından kötü bir haber olabilir. Pazar payını kaybeden Nokia, eğer Windows Phone 7 tabanlı cihaz üreticek olur ise, kendi ürettiği Symbian işletim sistemini geri plana itmiş olacak ki Nokia’nın bu konudaki kararı da merakla bekleniyor.
Sonuç olarak, analistlere göre , Windows Phone 7 Microsoft’un cep telefonu pazarına hakim olan Apple ve Google firmalarına karşı son şansı olacaktır.
Kaynaklar
Savaş DUMAN

1 Ocak 2011 Cumartesi

VB.Net Gereksiz Try-Catch Blokları

Bu makalemizde hata yakalama yapısı olan try-catch bloğunun performansa etkisinden bahsedeceğiz. Bilindiği gibi .Net (Vb.Net, C#..) kodlarımızda herhangi bir satırda çıkan hatayı yönetmek için try-catch bloğu kullanırız, hata yakalama bloğu bu aşamada programın kapanmalarını engelleyebilmek için vazgeçilmezdir. Her ne kadar try-catch developer’lara yardımcı olsa da gereksiz kullanımlarda performans kayıplarına yol açabilir.  Hatalar catch bloku içerisinde yakalanır, eğer burada hiçbir işlem yapılmadan hata bir üst katmana fırlatılıyorsa bu try catch bloğu aslında gereksizdir. İkinci bir exception fırlatılması ile performans olumsuz etkilenecektir.
Örnek :
Try
   ……………………………………………
Catch ex As Exception
   Throw ex
End Try
Yukarıdaki gibi bir kodlama yapılacak ise try cath’e gerek yoktur. 
Try
………………………………………….
Catch ex As Exception
MsgBox(ex.Message)
   Throw ex             
End Try

Yukarıdaki gibi catch bloğunda bir işlem yapılacak ise kullanılması gerekmektedir. Genelde en son katmanda exceptionların yakalanması ve yönetilmesi daha doğru olacaktır. Eğer her katmanda hata yakalanır ve catch bloğunda işlem yapılmadan hata tekrar fırlatılırsa bu gereksiz performans kayıplarına yol açacaktır.


“Gereksiz Try-Catch bloklu kod”:
Private Sub WithTry()         
Try            
Throw New Exception("Hata")        
Catch ex As Exception            
Throw ex        
End Try
End Sub

“Gereksiz try-Catch bloksuz kod”:
Private Sub WithOutTry()
Throw New Exception("Hata işte")
End Sub

Yukarıdaki fonksiyonları birer butona bağlayalım ve butonun click eventlerinde bu fonksiyonları çağıralım. En son katman bu click event’leri olduğu için kodlarımız try-catch bloklu olacaktır. Aşağıdaki kod çalıştığında yaklaşık 28 milisaniye gibi bir sürede işini tamamlıyor. 
Private Sub btnWithTry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWithTry.Click         
Dim objNow As DateTime = Now        
Try            
WithTry()        
Catch ex As Exception            
MsgBox(Now.Subtract(objNow).TotalMilliseconds)        
End Try    
End Sub

Aşağıdaki kod çalıştığında yaklaşık 14 milisaniye gibi bir sürede işini tamamlıyor.

Private Sub btnTry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTry.Click
        Dim objNow As DateTime = Now
        Try
            WithOutTry()
        Catch ex As Exception
            MsgBox(Now.Subtract(objNow).TotalMilliseconds)
        End Try
End Sub
 

Eğer catch bloğunda hatayı direk bir üst katmana ileteceksek try-catch bloğu kullanmamak performansı artıracaktır.

Armağan DÖKER