nedirtv?com Webinerleri Yeniden Başlıyor

Birkaç aylık aradan sonra nedirtv webinerlerine yeniden başlıyoruz. Ekim ayı içerisinde gerçekleştireceğimiz altı farklı webinerle  yeniden sizlerleyiz. Kurumsal İş Zekası(BI), SQL Server Analysis Services, IIS 7.5 ve Test Driven Development gibi yeni konuların da olduğu bu ayın programına erişmek ve facebook ajandanıza kaydetmek için bu linki kullanabilirsiniz. İlk webiner bu Cuma akşamı…

6 Ekim 2009 Salı 08:50

Yorum - RSSYorumlar (0)

Etiket: , ,

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

nedirtv?com – Mayıs Ayı Webinerleri

nedirtv?com ekibi olarak bu ayda 6 farklı webinerle programımıza devam ediyoruz. Benim de 18 Mayıs 2009 Pazartesi günü ASP.NET MVC – URL Routing ile katkıda bulunacağım bu ayda SQL Server Integration Services, WCF, WF ve XNA Game Studio ile ilgili webinerler yer alıyor.

Webiner programını incelemek ve etkinliği facebook’taki takviminize kaydetmek için bu linki kullanabilirsiniz.

11 Mayıs 2009 Pazartesi 21:22

Yorum - RSSYorumlar (3)


facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

FileUpload ile Yüklenen Dosyaları Veritabanında Saklamak

FileUpload kontrolünün temel olarak istemciden aldığımız dosyaları sunucunun fiziksel bir konumuna kaydetmek için kullanırız. Fakat bazı durumlarda istemciden alınan bir dosyanın sunucuda güvenli şekilde saklanması için veritabanında saklama yoluna da gidebiliriz. Bu yazımda ASP.NET sunucu kontrollerinden olan FileUpload ile istemciden aldığımız bir dosyayı sunucudaki SQL Server gibi bir veritabanında nasıl saklayabileceğimizi inceleyeceğiz.

İlk olarak dosya bilgilerini saklayacağımız bir tablo oluşturuyoruz.

Tablomuzda resmin adını, binary formatta dosya içeriğini ve dosyanın MIME type bilgisini saklayacağız. FileUpload kontrolünün üç farklı özelliği bize dosyanın bu bilgilerini getirecektir. Bu özelikler ve açıklamaları aşağıdadır:

FileName: Yüklenen dosyanın adı
FileBytes: Dosyanın binary formatta içeriği (byte dizisi olarak getirilir)
PostedFile.ContentType: Dosyanın MIME type bilgisi (MIME dosyanın formatını belirleyen bir isim standartıdır)

Artık sayfamızı tasarlayıp, gerekli kodlarımızı oluşturabiliriz.

<form id="form1" runat="server">

    Yüklenecek dosyayı seçiniz:<br />

    <asp:FileUpload ID="FileUpload1" runat="server" /> &nbsp;<asp:Button

        ID="Button1" runat="server" Text="Dosyayı Yükle" onclick="Button1_Click" />

    <br />

    <br />

    <asp:Label ID="lblMesaj" runat="server" ForeColor="Red"></asp:Label>

</form>


Default.aspx.cs

public partial class _Default : System.Web.UI.Page

{

    protected void Button1_Click(object sender, EventArgs e)

    {

        if(FileUpload1.FileContent != null)

        {

            string dosyaAdi = FileUpload1.FileName; //Dosyanın adı

            byte[] dosyaIcerik = FileUpload1.FileBytes; //Dosyanın bilgilerini binary formatta getirir

            string dosyaTipi = FileUpload1.PostedFile.ContentType; //Dosyanın MIME Type bilgisini getirir

            SqlConnection con = new SqlConnection("data source=localhost; initial catalog=Test; integrated security=true");

            SqlCommand cmd = new SqlCommand("Insert Into Dosyalar Values(@dosya_isim, @dosya_icerik, @dosya_tip)", con);

            cmd.Parameters.AddWithValue("@dosya_isim", dosyaAdi);

            cmd.Parameters.AddWithValue("@dosya_icerik", dosyaIcerik);

            cmd.Parameters.AddWithValue("@dosya_tip", dosyaTipi);

            con.Open();

            if (cmd.ExecuteNonQuery() > 0)

                lblMesaj.Text = "Dosya başarıyla yüklendi";

            con.Close();

        }

    }

}

Görüldüğü gibi SQL Server'da hazırladığımız Dosyalar adındaki tablo için yazılan bir INSERT cümlesine parametre olarak eklenen dosya bilgileri bu şekilde tablomuza eklenebiliyor. Birkaç kayıt ekledikten sonra tablomuzun içeriğini Management Studio gibi bir araçtan kontrol edecek olursak aşağıdaki gibi bir görüntüyle karşılaşırız.

Resimleri başarıyla kaydettik, peki okuma işlemi nasıl gerçekleşecek? Okuma işlemi için ise tablomuzdaki kayıtları SELECT sorgusu ile okumamız gerekecek. Eğer Windows uygulamasında çalışıyor olsaydık DosyaIcerik kolonundan okunan kaydı System.Drawing.Image tipine çevirip Image gibi bir kontrolde görüntüleyebiliriz. Ancak web uygulamalarında bir resmi istemci tarafına taşımamızın yolu biraz daha farklı olacaktır. Resmin içeriği ancak istemciye yollanan cevabın(Response) içerisine yazdırılarak gönderilebilir. Dosyayı istemciye gönderirken dikkat edilmesi gereken hususlardan birisi dosyanın tarayıcıda görüntülenip görüntülenmeyeceğidir. Zira jpg, gif, xml, txt gibi dokumanlar web tarayıcısında görüntülenebilir dosyalarken, zip, exe, dll gibi dosyalar ise tarayıcıda görüntülenemez, ancak yüklenebilir dosyalardır. Aşağıdaki kod parçasında tasarladığımız bir sayfanın kullanıcıya veritabanındaki bir dosyanın nasıl iletilebileceği görülmektedir.

Bu arada, dosyaya yapılan talep QueryString üzerinden resmin DosyaId kolonundaki değer ile iletilmektedir. Yine talebin daha hızlı cevaplanması için Web Form(.aspx) dosyası yerine Generic Handler(.ashx) dosyası kullanmak daha faydalı olacaktır.

ResimGoruntule.ashx

...

using System.Data.SqlClient;

public class ResimGoruntule : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        string id = context.Request.QueryString["id"];

        byte[] dosyaIcerik = null;

        string dosyaTipi = String.Empty;

        SqlConnection con = new SqlConnection("data source=localhost; initial catalog=Test; integrated security=true");

        SqlCommand cmd = new SqlCommand("Select * From Dosyalar Where DosyaId=@id", con);

        cmd.Parameters.AddWithValue("@id", id);

        con.Open();

        SqlDataReader dr = cmd.ExecuteReader();

        if (dr.Read())

        {

            dosyaIcerik = (byte[])dr["DosyaIcerik"];

            dosyaTipi = dr["DosyaTip"].ToString();

        }

        con.Close();

        //context.Response.AddHeader("content-disposition", "attachment; filename=" + dosyaAdi + ";"); //Download edilecek dosyanın adı belirleniyor. Bu satırın yorum durumu kaldırılırsa tüm dosyalar download işlemine zorlanacaktır.

        context.Response.ContentType = dosyaTipi; //Gönderilen dosyanın tipi belirtiliyor

        context.Response.BinaryWrite(dosyaIcerik); //Gönderilen cevabın içeriği dosyanın binary formattaki bilgileri olacaktır

    }

    public bool IsReusable {

        get {

            return false;

        }

    }

}

Görüldüğü gibi Response nesnesinin BinaryWrite metodu byte dizisi olarak saklanan dosya içeriğini istemciye göndermektedir. Yine dosyanın tarayıcı tarafından tanınmasını ve işlemin sağlıklı şekilde tamamlanması için ContentType özelliğini de resmin MIME type değeri olarak belirliyoruz. Eğer resmin istemci tarafından download edilmesini istiyorsak kod içerisinde yorum satırı olarak bulunan ve AddHeader metodu ile sayfaya eklenen başlık bilgilerinin bulunduğu satırı normal hale getirmek gerekecektir.

28 Şubat 2009 Cumartesi 12:07

Yorum - RSSYorumlar (9)

Etiket: ,
Kategori: ASP.NET | SQL Server

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

CLR SQL ile Hazırlanan Nesneyi Visual Studio'da Debug Etmek

SQL Server 2005 ve ADO.NET 2.0 ile gelen yeniliklerden sonra çoğunuzunda bildiği gibi .NET ortamında hazırladığınız nesneleri SQL Server sunucusu üzerinde CLR (Common Language Runtime) desteğiyle çalışmasını sağlayabiliyoruz. Oluşturulan bu nesnelerin IL çıktıları .dll'dir, dolayısıyla ilk bakışta nesneleri kodlama aşamasında nasıl debug işlemine tabi tutacağımız bizler için soru işareti olabilir. Bu başlıkta .NET tabanlı bir dilde yazdığımız CLR SQL kodlarımızın çalışmasını debug etmek, kodların takibini ve analizini yapmak için oluşturulan projede nasıl bir yol izleyeceğimizi anlatmaya çalışacağım.

Test.sql dosyasına eklenen SQL cümlesi"SQL Server Projects" şablonunu oluşturduğunuzda proje içerisinde Test Script adında bir klasör ve içerisinde örnek kodları içeren Test.sql adında bir dosya bulunmaktadır. Debug işlemi için öncelikli olarak nesneyi çalıştıracak bir SQL ifadesine ihtiyacımız olacaktır. Bu dosya SQL ifadesinin veya ifadelerinin saklanacağı yerdir. Nesneyi oluşturduktan sonra öncelikli olarak bu dosyaya nesneyi test etmemizi sağlayan SQL cümlesini ekliyoruz.

Bu işlemin ardından Test.sql dosyasını projemizin varsayılan script dosyası olarak seçmemiz gerekiyor. Solution Explorer'da dosyanın üzerine sağ tıkladığımızda karşımıza çıkan Set as Default Debug Script seçeneğinden dosyayı varsayılan debug dosyası olarak belirliyoruz. İlgili seçenek sağ kısımda yer alan resimde görülmektedir.

Nesneyi oluşturduktan sonra debug işlemini başlatacağımız satıra breakpoint ekliyoruz. Bu işlemin ardından projemizi yayınlayıp IL çıktısını üretmemiz ve çalıştırmamız gerekecektir. Bu işlem için Solution Explorer'da projemizin üzerine sağ tıklayıp Deploy seçeneğini seçiyoruz.

Artık projeyi debug modunda çalıştırıp kodların adım adım takibini yapabiliriz. Bu işlem için yine Solution Explorer'dan az önce debug dosyası olarak ayarladığımız Test.sql dosyasına sağ tıklayıp Debug Script seçeneğine tıklıyoruz. Dosya içerisindeki sorgu çalıştırılacak ve derleyici seçtiğimiz satıra geldiğinde Visual Studio debug moda geçecektir.

Bu şekilde bir CLR SQL nesnesini oluşturan kodların debug edilmesi sağlanabilir. Özellikle karmaşık User Defined Function, Stored Procedure ve Trigger oluşturduğumuz durumlarda nesneyi sürekli SQL Server'a taşımak, burada çalışma sonucuna göre tekrar Visual Studio'ya dönüp değişiklikleri yapmak uzun ve çözümü zor bir yol olabilir. İşte bu tip durumlarda nesnenin SQL Server'a gitmeden doğrudan CLR üzerinde çalışmasını debug edebilmek biz programcıların işini oldukça kolaylaştıracaktır.

5 Eylül 2008 Cuma 16:24

Yorum - RSSYorumlar (0)

Etiket: , ,
Kategori: ADO.NET | SQL Server

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

msdn2.microsoft.com

.Net Framework ve SQL Server 2005 ile ilgili en güncel dökümantasyona http://msdn2.microsoft.com adresinden ulaşabilirsiniz..
17 Nisan 2006 Pazartesi 23:54

Yorum - RSSYorumlar (0)

Etiket:

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

SQL Server 2000 ve 2005 için Script Generator

SQL Server 2000 veya 2005 veritabanınızda bulunan tabloların CREATE statementlarını, tablolardaki verilerin INSERT statementlarını, stored procedureları, veritabanındaki kullanıcıları... vb. verileri Enterprise Manager kullanmadan üretmek mi istiyorsunuz? O zaman aradığınızı buldunuz:)

Codeproject.com da 2004'te yayınlanmış bir makale ve kaynak dosya aracılığı ile bu işlemlerinizi hızlı ve pratik bir şekilde halledebilirsiniz. Yapmanız gereken tek şey veritabanı adını girmek ve hangi bilgileri çekmek isteğinizi belirtmek. Codeproject.com'a üye iseniz http://www.codeproject.com/dotnet/ScriptDatabase.asp adresinden ilgili kaynak kodu ve uygulamayı indirip kullanabilirsiniz. Arşivde tutmakta fayda var!

23 Mart 2006 Perşembe 18:22

Yorum - RSSYorumlar (0)

Kategori: SQL Server

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

Ücretsiz ASP.NET 2.0 ve SQL Server Express Hosting

.NET Framework 2.0'ı bir de hosting üzerinde denemeyi çok isterdim ama malum zamanım yok! Eğer sizin zamanınız varsa mutlaka deneyin. 30 gün ücretsiz olarak 50 MB alan ve 30 MB database alanı veriyor.

Adres: http://vwdhosting.net/

Kaynak: ScottGu's Blog
9 Şubat 2006 Perşembe 09:29

Yorum - RSSYorumlar (0)

Kategori: ASP.NET | Genel | SQL Server

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

Microsoft Visual Studio 2005 ve SQL Server 2005 Lansmanları

Microsoft yeni uygulama geliştirme platformları Visual Studio 2005, SQL Server 2005 ve BizTalk Server 2006 için üniversitelerde bu ürünlerin lansmanlarını yapmaya başladı. İlki bugün (16 Aralık) İzmir’de yapılacak olan lansmanlar daha sonra sırasıyla Ankara, İstanbul, Eskişehir ve Kayseri’de de yapılacak. Bu önemli etkinliklere katılmak isterseniz http://www.msakademik.net/haberdetay.aspx?id=112 adresinden hem lansmanlar hakkında geniş bilgi edinebilir hem kaydınızı yaptırabilirsiniz.

16 Aralık 2005 Cuma 15:26

Yorum - RSSYorumlar (0)

Etiket:

facebook'da Paylaş   twitter'da Paylaş   friendfeed'de Paylaş   del.icio.us'da Paylaş   stumpleupon'da Paylaş   Permalink

Bağlantılar



Takip Et

RSS Feed twitter friendfeed

Seminer/Webiner Programım

  • Seminer-WebinerASP.NET 4.0 WebForms Yenilikleri (Microsoft İstanbul Ofisi)
    29 Mayıs 2010

  • Seminer-WebinerVisual Studio 2010 Yenilikleri (Osmangazi Üniversitesi)
    15 Mayıs 2010

  • Seminer-WebinerASP.NET AJAX ile Zengin Internet Uygulamaları Geliştirme (Microsoft İstanbul Ofisi)
    3 Mayıs 2010

>> Etkinlik Takvimi