Faruk Durak | Ekim 2008

Video Paylaşım Sitesi(Örnek)

macir27 tarafından yayınlanmıştır 20. Ekim 2008 00:00
Seminer esnasında vakitimiz yetmediği için bitiremediğimiz video paylaşım site örneğimizi blogum'da yayınlıyacağımı söylemiştim ama malesef yoğunluktan dolayı bitürlü yayınlayamadım.Gecikmeden dolayı özür dilerim:)Ben örneği tamamladım ama örneği gördüğünüzde sadece bağzı temel işlemlerin yapıldığını göreceksiniz yani bir video paylaşım sitesinin %20 civarında bitmiş bir hali diyebilriz.Görselik olarakta hiç beyenmiceksiniz.%80 lik kısmı ve görsellik olaylarını size bıraktım :)Hazır siteyi kullanmaktansa kendi bilgilerinizi kullanarak kendi ihtiyaçlarınıza göre kendiniz geliştirmenizin daha yararlı olucağına inanıyorum.Zaten oldukça basit ve anlaşılır yapmaya çalıştım örneği,örnekler giderek zorlaşacak ona göre:)Takıldığınız kısımlarda her zaman bana sorabilirsiniz(Bilmeyenler için mail adresim : macir27@hotmail.com).Herkeste Microsoft Visual Studio 2008 programı olmama ihyimaline karşı projeyi Freamework 2.0 ile yaptım o yüzden yeni teknolojileri kullanamadım ama sizinde en yakın zamanda Microsoft Visual Studio 2008 kurcağınızı hesaba katarak bundan sonraki projeleri Freamework 3.5 ile geliştircem:)Kod aralarında zaten bazı açıklamalar yaptım o yüzden yapılanların tamamını anlayacağınızı tahmin ediyorum.Artık kodlara geçebiliriz.İlk olarak UyeOl.aspx sayfamızdan başlıyoruz.

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Data.SqlClient; //Veri tabanı işlemleri yapmak için bu kütüpaneyi eklemeyi unutmuyoruz!

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

{

protected void Page_Load(object sender, EventArgs e)

{

}

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString());//Bağlantımızı global olarak tanımlıyoruz çünkü aynı sayfada birden fazla yerde bağlantı nesnemizi kullanabilirz.

//ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString() Bağlantı cümlesini bu şekilde yazmamın nedeni ise web.config dosyasına yazmamdır.Web.config dosyasına neden yazdım?

//çünkü bağlantıda bi değişiklik yapmam gereken durumlar olabilir,mesela şifremi değiştirebilirm yada sunucumu değiştirebilirm,veri tabanı adımı değiştirebilirim

//böylelikle ben 50 farklı sayfada bağlantı nesnemi kulanmış olsam dahi tek biyerden değiştirdiğim anda heryerden değişmiş olacak.

protected void btnGonder_Click(object sender, EventArgs e)

{

if (txtSifre.Text == txtSifreTekrar.Text)

{

SqlCommand cmdKullanicilarInsert = new SqlCommand("Insert Into Kullanicilar(KullaniciIsim,KullaniciSoyisim,KullaniciMail,KullaniciNik,KullaniciSifre) Values(@KullaniciIsim,@KullaniciSoyisim,@KullaniciMail,@KullaniciNik,@KullaniciSifre)", con);//Burada SqlCommand nesnemizi kullanarak kayıt ekleme işlemini gerçekleştiriyoruz.Farkketiyseniz Values kısmında parametre kullandık "@" ile başlayanlar paramtredir.

cmdKullanicilarInsert.Parameters.AddWithValue("@KullaniciIsim", txtIsım.Text); //

cmdKullanicilarInsert.Parameters.AddWithValue("@KullaniciSoyisim", txtSoyisim.Text); //

cmdKullanicilarInsert.Parameters.AddWithValue("@KullaniciMail", txtMail.Text); //Bu kısımlarda Yukarda yazdığımız Insert sql cümlesine parametre değerlerini gönderiyoruz

cmdKullanicilarInsert.Parameters.AddWithValue("@KullaniciNik", txtNik.Text); //

cmdKullanicilarInsert.Parameters.AddWithValue("@KullaniciSifre", txtSifre.Text); //

if (ConnectionState.Closed == con.State)//Burda bağlantı durumunu kontrol ettik dedikki eğer bizim con diye oluşturduğumuz bağlantı nesnemizin bağlantı durumu kapalıysa bağlantıyı aç!

con.Open();

try

{

cmdKullanicilarInsert.ExecuteNonQuery(); // Ekleme olayının gerçekleştiği kısım burasıdır o yüzden ekleme esnasında bi problem olursa burda olacaktır.Bizde kaydımız eklendimi eklenmedimi kullanıcıya göstermek isteriz o yüzden try catch blokları arasına aldık.Try bloklarının içersine yazdığımız herhangi bir kod hata verirse o satırdan direk catch blokları arasına atlar ve sizde hata vermesi durumunda farklı işlemler yaptırabilrisiniz.

lblDurum.Visible = true; //Labelimizn visible özelliğini false yaptığımız için sayfamız açıldığında görmeyecektir.Hata vermesi durumunda Labelimizi artık gösteriyoruz ve ilgili mesajı yazıyoruz.

lblDurum.Text = "Kayıt Eklendi";

}

catch (Exception)

{

lblDurum.Visible = true;

lblDurum.Text = "Kayıt Eklenmedi";

}

if (ConnectionState.Open == con.State)//Burda ise tam tersi bizim con adlı bağlantı nesnemizin bağlantı durumu açıksa kapat!

con.Close();

//Not: Arkadaşlar ExecuteNonQuery() methodunu kulanmamız anda bağlantımızın açık olması gerekli yoksa hata alırız.Bağlantı açıkken biz tekrar açmaya çalışırsak yine hata alırız o yüzden biz burda bağlantı kontrolu yaptırdık.

}

else

{

lblDurum.Visible = true;

lblDurum.Text = "Şifreler birbirini tutmuyor.";

}

}

}

 

 

Sonrasında UyeGiris.aspx sayfamız ile devam ediyoruz.

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Data.SqlClient;//Sql işlemleri yapıcağımız için yine SqlClient kütüphanemizi yine ekliyoruz.

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

{

protected void Page_Load(object sender, EventArgs e)

{

}

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString());//UyeOl.aspx sayfamızdaki SqlConnection nesnemizin aynısını yine burda kullanıyoruz.

protected void btnGiris_Click(object sender, EventArgs e)

{

SqlCommand cmdGiris = new SqlCommand("SELECT COUNT(*) FROM Kullanicilar WHERE KullaniciNik=@KullaniciNik AND KullaniciSifre=@KullaniciSifre", con);

cmdGiris.Parameters.AddWithValue("@KullaniciNik", txtKullanıcıAdi.Text);

cmdGiris.Parameters.AddWithValue("@KullaniciSifre", txtSifre.Text);

if (ConnectionState.Closed == con.State)//Bağlantı durumumuzu kontrol ediyoruz

con.Open();

try

{

int sonuc=Convert.ToInt32(cmdGiris.ExecuteScalar()); // Burda ExecuteScalar metodumuzu kullanıyoruz.Bu metod bize tek bir kayıt geri döndürür.Biz sorgumuzda COUNT dediğimiz için bize girdiğimiz kullanıcı adı ve şifreye ait kaç kişi var onu döndürecek

if (sonuc == 0)

{

lblDurum.Visible = true; //Labelimizn visible özelliğini false yaptığımız için sayfamız açıldığında görmeyecektir.Hata vermesi durumunda Labelimizi artık gösteriyoruz ve ilgili mesajı yazıyoruz.

lblDurum.Text = "Kullanıcı adı yada şifre yanlış";

}

else

{

Session["durum"]= "1";//Session bizim sayfadan sayfaya veri taşımamızı sağlar.Burada kişi giriş yapabilrse "durum" adlı Session nesnemize "1" degerini,Giriş yapamazsa "0" değerini atıcaz böylece diğer sayfalar da bu Session nesnemizin değerini kontrol ettirerek kişinin giriş yapıp yapmadığını anlamış olcaz.

Response.Redirect("VideoIzle.aspx");//Girişi problemsiz bi şekilde yaparsa VideoIzle.aspx sayfamıza yönlendirme yapıyoruz.

}

}

catch (Exception)

{

lblDurum.Visible = true;

lblDurum.Text = "Kullanıcı adı yada şifre yanlış";

}

if (ConnectionState.Open == con.State)//Burda ise tam tersi bizim con adlı bağlantı nesnemizin bağlantı durumu açıksa kapat!

con.Close();

}

protected void lnkBtnUyeOl_Click(object sender, EventArgs e)

{

Response.Redirect("UyeOl.aspx");

}

}

 

Devamında VideoGonder.aspx sayfamızla devam ediyoruz

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Data.SqlClient;

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

{

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

try

{

if (Session["durum"].ToString() != "1")

Response.Redirect("UyeGiris.aspx");

}

catch (Exception)

{

Response.Redirect("UyeGiris.aspx");

}

}

}

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString());//UyeOl.aspx sayfamızdaki SqlConnection nesnemizin aynısını yine burda kullanıyoruz.

protected void btnGonder_Click(object sender, EventArgs e)

{

string DosyaAdi = DateTime.Now.ToString();//Burda String olarak oluşturduğumuz DosyaAdi isimli değişkenimize o anın tarihini atıyoruz.

DosyaAdi = DosyaAdi.Replace(".", "_").Replace(":", "_").Replace(" ", "_");//Burda Repleace Methodu ile bugünün tarihini içinde tuttan DosyaAdi adlı değişkenimizin içindeki noktaları altan tire karakteri ile, iki nokta olanları ise yine altan tire ile,boşluk olan karakterleri yine altan tire ile değiştiriyoruz.

SqlCommand cmdInsert = new SqlCommand("Insert Into Icerik(IcerikBaslik,IcerikLink,IcerikIzlenme,IcerikDurum,IcerikResim) Values(@IcerikBaslik,@IcerikLink,0,0,@IcerikResim)", con);//Sonrasınada veritabanımıza Videonun yolunu ve resminin yolunu ekliyoruz.

cmdInsert.Parameters.AddWithValue("@IcerikBaslik", txtBaslik.Text);

cmdInsert.Parameters.AddWithValue("@IcerikLink", DosyaAdi+FUVideo.FileName);//Burda veri tabanına eklenen ve sunucumuza kaydettiğimiz videomuzun isimlerinin aynı şekilde oluşturulduğuna dikkat edin!

cmdInsert.Parameters.AddWithValue("@IcerikResim", DosyaAdi + FUResim.FileName);

if (ConnectionState.Closed == con.State)//Bağlantı durumumuzu kontrol ediyoruz

con.Open();

try

{

FUResim.SaveAs(Server.MapPath("Resimler\\" + DosyaAdi + FUResim.FileName));//FileUpload nesnemizin SaveAs methodu ile videomuzun resmini Resimler adlı klasöre ekliyoruz.Server.MapPath metodu ise bize sunucumuz üzerindeki yolu verir.

FUVideo.SaveAs(Server.MapPath("Videolar\\" + DosyaAdi + FUVideo.FileName));//Aynı işlemleri videolar içinde yapıyoruz.

//FUVideo.SaveAs(Server.MapPath("Videolar\\" + DosyaAdi + FUVideo.FileName)); burda denilmek istenilen FileUpload nesnemizden seçilen videoyu al ve sunucuda sitemizin olduğu

//klasörüniçindeki Videolar klasörünün içine Noktalarını ve iki noktalarını alt tire ile değiştirdiğimiz DosyaAdi isimli değişkenimize Seçilen videonun adını ve uzantısıyla birleştir ve birleştirilen bu isim ile sunucuya kaydet.

cmdInsert.ExecuteNonQuery();//Burda Veri tabanına kayıt işlemi gerçekleşiyor.

lblDurum.Visible = true;//lblDurum isimli labelimizi görünür yapıyoruz.

lblDurum.Text = "Video Başarıyla Eklenmiştir";//Yapılan işlemin başarılı olduğunu kullanıcıya belli ediyoruz.

}

catch (Exception)

{

lblDurum.Visible = true;

lblDurum.Text = "Video Ekelenemedi";

}

}

}

 

 

 

 

 

 

 

 

 

 

 

Devamında VideoIzle.aspx ile devam ediyoruz.Bu sayfada DataList üzerinde bazı işlemler yaptım o yüzden özelikle DataList kontrollümüzü incelemenizi tavsiye ediyorum.

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Data.SqlClient;//Eklemeyi unutmuyoruz yine!

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

{

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString());//Sql Veri tabanmızla bağlantı kuruyoruz.

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

try

{

if (Session["durum"].ToString() != "1")

Response.Redirect("UyeGiris.aspx");

}

catch (Exception)

{

Response.Redirect("UyeGiris.aspx");

}

}

DataSet ds = new DataSet(); //Öncelikle ds adında bir nesne oluşturuyoruz Veri tabanından çekiceğimiz verileri göstermek için bir DataSet nesnesi yada DataTable nesnesi kullanmamız gerekiyor.

SqlDataAdapter dapGetir = new SqlDataAdapter("Select * from Icerik", con);//SqlDataAdapter nesnemizi oluşturuyoruz.

dapGetir.Fill(ds);//SqlDataAdapter'in Fill methodu ile yazdığımız select cümlesinden dönen verileri oluşturduğumuz ds adlı DataSet tipindeki nesnemizin içine dolduruyoruz.

//Burada CollectionPager dllni kullandım,nedeni ise videoları göstermek için DataList kullanmam.Datalist de GridView de olduğu gibi otomatik sayfalama özelliği yoktur

//o yüzden .Net'in kendi dlllerindne harici olarak dışardan CollectionPager dllini referans verdim ve kullandım.Peki GridView de madem otomatik sayfalama var neden ben DataList kullanarak ekstra bi efor sarfederek sayfalama yapıyorum?

//nedeni şu çünkü GridView nesnemizde kayıtlarımızı sıralı bi şekilde yan yana gösteremeyiz,alt alta gösteririz.Ben burda Yan yana 3 sutün göstermek istiyorum bu yüzden DataList Kullanıyorum.

CollectionPager1.DataSource = ds.Tables[0].DefaultView;//DataSet nesenemizden dönen verileri CollectionPager'ın DataSource özeliğine veriyoruz.Bu CollectionPager nesnemizi DataSet nesnemize doldurmak anlamına gelir.

CollectionPager1.BindToControl = DataList1;

DataList1.DataSource = CollectionPager1.DataSourcePaged;

CollectionPager1.PageSize = 12;//Açılan sayfada En fazla 12 adet veri gösterileceğini söylüyorum.

}

protected void lbtnVideoGonder_Click(object sender, EventArgs e)

{

Response.Redirect("VideoGonder.aspx");//VideoGonder.aspx sayfamıza yönlendirme yapıyoruz.

}

}

 

 

 

 

 

Son oalrakta VideoDetay.aspx sayfamızı inceliyoruz.

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Data.SqlClient;

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

{

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["VideoPaylasimConnectionString"].ToString());

public string VideoGetir(object Link)

{

string link=""; //Burda VideoGonder methodu içersinde heryerden erişebileceğimiz bir değişken tanımlıyoruz.

SqlCommand cmdInsert = new SqlCommand("Select IcerikLink from Icerik Where IcerikID=@Link",con);//IcerikTablosundan bizim seçtiğimiz videonun linkini getiriyoruz.

if (ConnectionState.Closed == con.State)//Burda bağlantı durumunu kontrol ettik dedikki eğer bizim con diye oluşturduğumuz bağlantı nesnemizin bağlantı durumu kapalıysa bağlantıyı aç!

con.Open();

try

{

cmdInsert.Parameters.AddWithValue("@Link", Link.ToString()); //Burada tıkladığımız videonun IcerikID'sini veritabanından yolunu çekmek için select sorgumuza parametre olarak yolluyoruz.

link = Convert.ToString(cmdInsert.ExecuteScalar());//Her kayıt birbirinden farklı olduğu için bize her defasında farklı bi yol dönecektir,bu yüzden bizde SqlCommand nesnemizin ExecuteScalar methodunu kullanıyoruz ve bize gönderdiğimiz IcerikID'nin yolunu geri döndrüyor.

}

catch (Exception)

{

}

#region Video Izlenme İşlemleri

//Öncelikle tıkladığımız videonun veri tabanından kaçkere izlendiğini çekioyuruz.

SqlCommand cmdIzlenmeGetir = new SqlCommand("Select IcerikIzlenme from Icerik Where IcerikID=@Link", con);

cmdIzlenmeGetir.Parameters.AddWithValue("@Link", Link.ToString());

int Izlenme = Convert.ToInt32(cmdIzlenmeGetir.ExecuteScalar());

Izlenme++;//Gelen veriye bir ekliyoruz.

SqlCommand cmdIzlenmeUpdate = new SqlCommand("Update Icerik Set IcerikIzlenme=@IcerikIzlenme Where IcerikID=@Link", con);

try

{

cmdIzlenmeUpdate.Parameters.AddWithValue("@IcerikIzlenme", Izlenme);

cmdIzlenmeUpdate.Parameters.AddWithValue("@Link", Link.ToString());

cmdIzlenmeUpdate.ExecuteNonQuery();//Bir eklediğimiz izlenme değerini eskisi ile tekrar değiştiriyoruz böylece video her izlendiğinde IcerikIzlenme alanımızı bir artırmış oluyoruz.

}

catch (Exception)

{

}

if (ConnectionState.Open == con.State)//Burda ise tam tersi bizim con adlı bağlantı nesnemizin bağlantı durumu açıksa kapat!

con.Close();

#endregion

return link;//Burda tıklanan videonun yolunu geri döndüryoruz.

}

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

try

{

if (Session["durum"].ToString() != "1")

Response.Redirect("UyeGiris.aspx");

}

catch (Exception)

{

Response.Redirect("UyeGiris.aspx");

}

}

}

protected void btnMakaleGonder_Click(object sender, EventArgs e)

{

SqlCommand cmdYorumInsert = new SqlCommand("Insert Into Yorum(IcerikID,Yorum,YorumDurum,YorumYazan) Values(@IcerikID,@Yorum,0,@YorumYazan)", con);//Burada SqlCommand nesnemizi kullanarak kayıt ekleme işlemini gerçekleştiriyoruz.Farkketiyseniz Values kısmında parametre kullandık "@" ile başlayanlar paramtredir.

cmdYorumInsert.Parameters.AddWithValue("@IcerikID", Request.Params["ID"].ToString()); //

cmdYorumInsert.Parameters.AddWithValue("@Yorum", txtYorum.Text); //

cmdYorumInsert.Parameters.AddWithValue("@YorumYazan", txtIsımSoyisim.Text); //Bu kısımlarda Yukarda yazdığımız Insert sql cümlesine parametre değerlerini gönderiyoruz

if (ConnectionState.Closed == con.State)//Burda bağlantı durumunu kontrol ettik dedikki eğer bizim con diye oluşturduğumuz bağlantı nesnemizin bağlantı durumu kapalıysa bağlantıyı aç!

con.Open();

try

{

cmdYorumInsert.ExecuteNonQuery(); // Ekleme olayının gerçekleştiği kısım burasıdır o yüzden ekleme esnasında bi problem olursa burda olacaktır.Bizde kaydımız eklendimi eklenmedimi kullanıcıya göstermek isteriz o yüzden try catch blokları arasına aldık.Try bloklarının içersine yazdığımız herhangi bir kod hata verirse o satırdan direk catch blokları arasına atlar ve sizde hata vermesi durumunda farklı işlemler yaptırabilrisiniz.

lblDurum.Visible = true; //Labelimizn visible özelliğini false yaptığımız için sayfamız açıldığında görmeyecektir.Hata vermesi durumunda Labelimizi artık gösteriyoruz ve ilgili mesajı yazıyoruz.

lblDurum.Text = "Yorum Eklendi";

DataList3.DataBind(); //Buralarda DataList nesnemizi yenilioyurz,yorumlar tablomuzda bir değişiklik yapıldıysa kullanıcıya yansıması için.

SqlDataSource6.DataBind(); //

}

catch (Exception)

{

lblDurum.Visible = true;

lblDurum.Text = "Yorum Eklenmedi";

}

if (ConnectionState.Open == con.State)//Burda ise tam tersi bizim con adlı bağlantı nesnemizin bağlantı durumu açıksa kapat!

con.Close();

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Şimdide Web.config dosoyamızı inceleyelim
<?
xml version="1.0"?>
-->
<
configuration>
appSettings/> connectionStrings> add name="VideoPaylasimConnectionString" connectionString="Data Source=.\faruk;Initial Catalog=VideoPaylasim;Integrated Security=True"
providerName="System.Data.SqlClient"/>
connectionStrings> system.web> httpRuntime maxRequestLength="111264"/> --> compilation debug="true"> compilation>
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
authentication mode="Windows"/>
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically, it enables developers to configure html error pages to be displayed in place of a error stack trace. <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors>
-->
system.web> configuration>
Web.Config dosyamıza eklediğimiz iki şey var birincisi bağlantı cümlemiz.
<
connectionStrings
><
add name="VideoPaylasimConnectionString" connectionString="Data Source=Veri_taban_ yolum;Initial Catalog=Veri_tabani_Adim;Integrated Security=True"
providerName="System.Data.SqlClient"
/></
connectionStrings>
İkincisi ise FileUpload bileşenimizi kulanırken default olarak gödnerdiğimiz veri 4 MB'den büyük ise ISS,isteği sonlandıracak ve timeout hatası döndürecektir.Bu hatayı önlemek için <httpRuntime maxRequestLength="111264"/> Yazarak 111 MB büyüklüğündeki ve altındaki video görüntüleri atabiliriz.
<
system.web
><
httpRuntime maxRequestLength="111264"/>
.........
SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO CREATE TABLE [dbo].[Yorum]( [YorumID] [int] IDENTITY(1,1) NOT NULL, [IcerikID] [int] NULL, [Yorum] [text] NULL, [YorumDurum] [int] NULL, [YorumYazan] [nvarchar] (150) NULL, [YorumTarih] [datetime] NULL, CONSTRAINT [PK_Yorum] PRIMARY KEY CLUSTERED ( [YorumID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Table [dbo].[Kullanicilar] Script Date: 10/20/2008 14:47:09 ******/ SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO CREATE TABLE [dbo].[Kullanicilar]( [KullaniciID] [int] IDENTITY(1,1) NOT NULL, [KullaniciIsim] [nvarchar] (50) NOT NULL, [KullaniciSoyisim] [nvarchar] (50) NOT NULL, [KullaniciMail] [nvarchar] (50) NOT NULL, [KullaniciNik] [nvarchar] (50) NOT NULL, [KullaniciSifre] [nvarchar] (50) NOT NULL, CONSTRAINT [PK_Kullanici] PRIMARY KEY CLUSTERED ( [KullaniciID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO /****** Object: Table [dbo].[Icerik] Script Date: 10/20/2008 14:47:09 ******/ SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO CREATE TABLE [dbo].[Icerik]( [IcerikID] [int] IDENTITY(1,1) NOT NULL, [IcerikBaslik] [nvarchar] (250) NULL, [IcerikLink] [text] NULL, [IcerikTarih] [datetime] NULL, [IcerikIzlenme] [int] NULL, [IcerikDurum] [int] NULL, [IcerikResim] [nvarchar] (250) NULL, CONSTRAINT [PK_Icerik] PRIMARY KEY CLUSTERED ( [IcerikID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO /****** Object: Default [DF_Yorum_YorumTarih] Script Date: 10/20/2008 14:47:09 ******/ ALTER TABLE [dbo].[Yorum] ADD CONSTRAINT [DF_Yorum_YorumTarih] DEFAULT (getdate()) FOR [YorumTarih] GO /****** Object: Default [DF_Icerik_IcerikTarih] Script Date: 10/20/2008 14:47:09 ******/ ALTER TABLE [dbo].[Icerik] ADD CONSTRAINT [DF_Icerik_IcerikTarih] DEFAULT (getdate()) FOR [IcerikTarih] GO
Örneği BURADANindirebilirsiniz Evet umarım anlaşılmıştır :)

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Seminer ( Hikmet Nazif Kurşunoğlu An.Mes.ve Mes.Lis )

macir27 tarafından yayınlanmıştır 14. Ekim 2008 08:03

Bu gün ilk seminerimi verdim. Seminerde bi programcının neler bilmesi gerektiğini,nasıl öğrenebileceğini,sektörün bizlerden neler beklediğini ve biraz mobil birazda Asp.Neti inceledik.Seminerden bi kaç kareyi sizinle paylaşmak istiyorum.

  

  

  

  

  

Daron Yönem Hocama,Emre Ordukaya hocamıza ve Recep Ortaköyü hocamıza bu semineri organize ettikleri için çok teşekkür ediyorum.Ben seminerden çok zevk aldım inşallah öğrencilerlede aynı hisleri paylaşmışızdır:) Seminerde yaptığım video paylaşım sitesi örneğinin yapmayı planladığımız kadarını tamamlayıp isteyenlere gönderebilirm arkadaşlar.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

INETA Capital Hit

macir27 tarafından yayınlanmıştır 13. Ekim 2008 08:07
INETA Summer Hit üzerinden uzun bir zaman geçti gibi hissettiğimiz bu günlerde yeni bir aktivite serisi ile tekrar karşınızdayız. Bu sefer İstanbul değil Anadolu'nun merkezi, Başkentimiz Ankara'da olacağız.

INETA Capital Hit Afişi

Dikkat ederseniz İstanbul'daki Summer Hit sonrası içeriğimizi de epeyce değiştirdik. Tabi bunda sizlerin doldurmuş olduğu değerlendirme formlarının etkisi çok büyük. Bu sefer çok daha sıkışık ve yoğun bir tempomuz olacak. Hediyelerimiz daha fazla (hatta çok ilginç beklenmedik şeyler var :)) ve içecek sorununu da hallettik (:)) İlk gün sabah yine SL 2.0 ile başlayıp sonra benim çok önem verdiğim IIS 7'ye geçeceğiz. IIS 7.0 üzerinde ASP.NET ve PHP tarafında çok güzel yenilikler var. Sonrasında her zamanki gibi bir sohbet panelimiz olacak. Son olarak LINQ ile ilk günümüzü kapatacağız. İkinci gün WPF ile başlayarak ADO.NET Data Services konusunu inceleyeceğiz. Heyecanlandığınızın farkındayım :) Sonrasında IE 8.0 ile gelen yazılımcı ve tasarımcıları ilgilendiren yenilikler ve yeni uygulama platformlarını inceleyerek WCF dünyasına da atılarak iki günü sonlandıracağız. Aktiviteye üniversite girişinde güvenlik sorunları yaşamamak adına kayıt olmanız şart. Kayıt adresi: http://daron.yondem.com/kayit/ Emeklerinden dolayı buradan sevgili MSP, Çağrı Erdoğan'a çok teşekkür ediyorum. Aktiviteyi duyururken geçen sefer güzel bir başarı elde etmiştik. Bu sefer de yine aşağıdaki bannerı kullanabilirsiniz. Banner'a tıklandığında link olarak da kayıt adresini verebilirsiniz. INETA Capital Hit Banner Hepinizi bekliyorum ;)

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:



Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Yazar Hakkında

Faruk Durak
Faruk Durak; Kocaeli Üniversitesi Bilgisayar Teknolojileri ve Programlama bölümünden mezun olduktan sonra BilgeAdam Yazılım Uzmanlığı Kursunu bitirerek MCTS ve MCPD oldu. Bir yandan yazılım sektöründe çalışmaya başlayarak diğer yandan Ahmet Yesevi Üniversitesi Bilgisayar Mühendisliği bölümüne başladı. Aynı zamanda Ineta K12 Konuşmacısı oldu. 3 seneyi aşkın süredir yazılım sektöründe Yazılım Uzmanı olarak çalışıyor.
Mail: macir27@hotmail.com

Etiket Bulutu

    Kategoriler

    None

    En Çok Yorum

    Acai Berry Acai Berry
    1 yorumlar
    sohbet odaları sohbet odaları
    1 yorumlar
    Serkan KURT Serkan KURT
    1 yorumlar
    tr Turkey
    kapadokya kapadokya
    1 yorumlar
    tr Turkey
    PazaryeriHaber PazaryeriHaber
    1 yorumlar
    msn indir msn indir
    1 yorumlar

    Calendar

    <<  Mart 2010  >>
    PaSaÇaPeCuCuPa
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    Yazıları geniş takvimde göster

    Son Yorumlar

    Comment RSS

    Son Yazılar

    Yasal Bilgi

    Site içeriğinin lisanslama detaylarına ait bilgiler

    © Copyright 2008