Respond needs javascript to run. To find out more click here
Makaleler » Serdar Demir
RSS
 

Archive for the ‘Makaleler’ Category

IIS seo toolkit ile seo ayarları nasıl yapılır?

16 May

İis seo toolkit ile seo ayarları nasıl ayapılır?

Search engine optimization toolkit web sitelerimizin arama motorları böcekleri tarafından daha hızlı bir şekilde indekslenmesini sağlar. Seo işlemini en iyi olarak google  webmaster tools ve analytics hizmetlerini kullanarak daha ayrıntılı olarak gerçekleştirebilirsizin.

Biz iseIIS kullanarak sitemize nasıl seo işlemi uygulayacağımzı göreceğiz. Öncelikle bu işlem için gerekli olan toolkiti “http://www.iis.net/download/seotoolkit” sitesniden ücretsiz olarak indirip sisteminize kuruyoruz. Setup kurulduktan sonra iis imizi açıyoruz ve aşağıdaki ikonları görüyoruz bu ikonlardan web platfrom installer a tıklayarak sisteminizde kurulu web uygulamalarını ve kurmak sitediğiniz programları bulabilirsiniz.

Search engine optimization a tıklıyoruz. Bu kısımda bize 3 ana başlık oluşturuyor.

  • Site analysis
  • Stiemaps and sitemap indexes
  • Robots exclusion

Öncelikle site analaysis i inceleyelim; Create new analaysis diyerek yeni bir site analizi oluşturuyoruz. Gelen sayfada analizim için gerekli ayarlamaları yapıyoruz.

Rapor aslma işlemi sizin girdiğiniz ayarlara göre yani raporu alınacak url sayısı ve indirilecek olan sayfaların boyutlarına göre yavaşlayacaktır. Eğer siteniz bir forum sitesiyse ve linkleri görmek için bir üyelik gerekiyorsa “Connect as ” kısmından bir kullanıcı adı ve şifre belirleyebilirsiniz.

Ok deyip raporumuzu aldığımızda bize raporun özetini oluşturuyor ben kendi sitemi analiz ettim ve sonuç aşağıdaki gibi çıktı 453 adet hata buldu şimdi bu hataları inceleyelim.

Hatalar performans, uyarı ve seo hataları olarak gruplandırılıyor. Benim sitemde 118 tane kırık link buldu bunlara ek olarak “page specifies more than one canonical url ” yani standartlara uymuyan 44 tane link buldu bi yerde h1 tagını kapatmayı unutmuşum.  Bu hataların olduğu sayfaları çift tıklayarak görüntüleyebilirsiniz. Hatanın birini inceleyelim.

http://www.serdardemir.net/2009/07 bu link için kırık lin uyarısı veriyor. Bu uyarıya çift tıklıyoruz.

Bu pencerede hata olan sayfa ile ilgili detayları görüyoruz. Headers sekmesinde sayfamızın başlığını Content sekmesinde ise sitemizin html formatında kaynak kodunu görüyoruz. Word analaysis sekmesinde o sayfadaki geçen kelimelerin analizini görüyoruz. Hangi kelime kaç kere kullanılmış tekrar eden kelimeler 3 kez kullanılanlar vb.. Links sekmesinde sayfaya gelen url leri ve sayfadaki url leri inceleyebiliyoruz. Violations kısmında ise o sayfa da var olan diğer hataları görebiliriz.

“The page was excluded by a noindex attribute.The page content at this URL has not been analyzed because the page has a “noindex” meta tag.”

The page contains broken hyperlinks. The Web page contains the broken link ‘http://www.serdardemir.net/wp-content/themes/mystique2/favicon.ico’.”

The page contains unnecessary redirects. The link to “http://www.serdardemir.net/author/admin/” has resulted in HTTP redirection to “http://www.serdardemir.net/author/admin”.

Performans sekmesinde ise siteniz yüklenirken yavaş açılan sayfaları ve sürelerini  sitenizin içerik tiplerini (“text-css-xml-image gibi”) görebilirsiniz.

Seo toolkitin diğer yeteneklerini incelediğimizde ise Sitemap index ve robots başlıklarını görüyoruz. Bu başlıklardan sitemiz için site haritası oluşturabiliriz Robots başlığından ise sitemizi indeksleyecek olan robotların görmesini istediğimiz sayfaları ve görmelerini istemediğimiz sayfaları seçiyoruz.

 
 

C# Windows servisleri

22 Nis

C# Windows servisleri

Öncelikle servis nedir  ondan bahsedelim.  Bildiğimiz gibi servsiler genel de bilgisyar açıldığında  arka planda devreye giren ve işlemler yapan programlardır bilgisayarımızda çalışan hizmetleri “Yönetimsel araçlardan görebiliriz” Örneğin sql server ın ajan servisini sürekli kullanmayacaksanız bunu “Hizmeti durdur” diyerek bu hizmet i gerçekleştrimek için kullanılan ram i başka işlemlerde kullanarak performansınızı arttırabilirsiniz.

Şimdi c# kullanarak kendi servisimizi yapıp aynı sql server ajanı tarzı bir servis geliştirelim  ben kısaca programın nasıl çalışmasını istediğimi anlatayım öncelikle bir store procedure ümüz olacak ve store procedure benim istediğim veritabanın yedeğini alacak tabi bu işlemi de c# ta benim yaptığım servisleri kullanarak yapacak. Peki nasıl yapabiliriz öncelike

New project diyerek “windows service” ekliyoruz. Bize  Service1 adında bir class oluşturuyor bunu sınıf içerisinde bir windows servisinde kullanılan temel metodlar “OnStart()” servis başlatıldığında ne olması gerektiği “OnStop() “ servis kapatıldığında yapılacak işlem vb. Bunlara ek olarak bizde override ederek  OnPause() OnContinue() gibi override edilebilir metodları ekleyebiliriz . Bunlara ek olarak diyelim ki bizim servisimiz parametre ile çalışacak olsun böyle bir durumda OnCustomCommand() metodunu overrice ederek kullanabilirsiniz kısaca örnek vereyim aşağıdaki kod parçası biz servisi çalıştırıken gönderdiğimiz parametre 1 olduğu zaman c dizinine dosya.txt yi oluşturuyor.

protected override void OnCustomCommand(int command)

{

switch (command)

{

case 1:

StreamWriter str = new StreamWriter("c:\\dosya.txt");

str.Write("1");

str.Close();

break;

}

}

Bu metodu kullanarak bizim yapacağımız uygulamada kullanıcıdan connection string i isteyerek o veritabanın yedeğini alabiliriz J

Şimdi programımıza geçelim öncelikle store procedure ümüzü oluşturuyoruz.

CREATE PROCEDURE yedeklerim AS

BACKUP DATABASE yeni

TO DISK='d:\yeni.bak'

WITH FORMAT,

MEDIANAME = 'yeniveritabanı0',

MEDIADESCRIPTION = 'Striped media set for yeni veritabanı ';

Yedeğini alacağımız veritabanı adını ve nereye yedeğini almak istediğimizi giriyoruz ve kaydediyoruz.

Şimdi servisimizin kodlarını açıp bu store procedure u programdan çağıralım  Servisimizin Onstart olayına aşağıdaki kodları yazıyoruz.

protected override void OnStart(string[] args)

{

SqlConnectionStringBuilder ayar = new SqlConnectionStringBuilder();

ayar.DataSource = "YUHUBAA\\SQLEXPRESS";

ayar.InitialCatalog = "master";

ayar.IntegratedSecurity = true;

SqlConnection con = new SqlConnection(ayar.ConnectionString);

con.Open();

SqlCommand komut = new SqlCommand("yedeklerim", con);

komut.ExecuteNonQuery();

}

Artık servisimizi oluşturduk sıra geldi servisimizi windows hizmetlerine yüklemeye. Bu işlem için servisimizin design kısmında sağ tıklayıp “Add Installer” diyrouz ve bize “serviceProcessInstaller1” ve “serviceInstaller1” kontrollerini oluşturuyor. Burda bizim için önemli olan processinstaller kontrolü bu kontrolün properties kısmından Account özelliğini seçiyoruz biz “NetworkService” yapıyoruz. Servisimizi kaydedip derliyoruz ve bir exe oluşturuyor. Şimdi bu exe yi servislerimize yükleyelim Visual Studio tool tan visual studio 2008 command prompt u açıyoruz (aynı işlemi cmd ile de gerçekleştirebilirsizin)

Prompt u açıp “installutil ” yazıp yanına servisimizin exe sinin adresini verip yuklüyoruz. Artık servisimiz windows hizmetlerinin içerisinde yer alıyor biz bu servisi start ettiğimizde veritabanın yedeğini almış oluyoruz.

Aşağıda bizim servisimizin yuklendiğini görüyoruz.

(not: servisi uninstall yapmak için installutilden sonra –u dememiz gerekiyor).

Şimdi yaptığımız servisi c# projemizde nasıl kullanacağız ?

Yeni bir windows form açıyoruz ve toolbox tan “serviceController1” ekliyoruz ve properties kısmında yer alan ServiceName kısmından kendi oluşturduğumuz servisi yada kullanmak istediğimiz servisi esçiyoruz.

(aynı işlemi server explorer kısmından sol tarafta gördüğümüz servislerden kullanmak istediğimizi sürükleyip kullanabiliriz.)

Artık aşağıdaki gibi kodları kullanabiliriz.

serviceController1.Start();

serviceController1.Pause();

serviceController1.Continue();

serviceController1.ExecuteCommand(1);
 
4 Comments

Posted in C#, Makaleler

 

Wcf Nedir?

21 Nis

Wcf .net 3.0 ile gelen yeni teknolojilerden biri Wcf aslında bir web servisidir. Web servislernin kullanımı ile ilgili ilk uygulamımızı yapmıştık buradan ulaşabilirsiniz.

Wcf web servislerinin gelişmiş hali diyebiliriz. .net içerisinde yer alan iletişim araçlarını (bunlar soap remoting xml web servisleri vb.) bir çatı altında toplayan yapıdır diyebiliriz.
Peki nerde kullanabiliriz wcf yi ? Thy ele alalım sitesinden bilet satışı ve rezervasyon işlemleri yapılıyor bu işlemleri de thy ye ait serverımızda bulunan veritabanından gerçekleştiriyoruz. İşte bu nokta da wcf devreye giriyor. Wcf de servisimizi hazırlıyoruz ve sitemize koyuyoruz programımızdan da servisi çağırdığımızda yapacağımız işleme göre bize bir sonuç döndürmesini bekliyoruz (Kullanıcı girişi için True yada False olabilir). Şimdi basit bir uygulama yapalım ve Rezervsayon kaydedelim ve rezervasyon iptal işlemini wcf kullanarak yapalım.

Öncelikle
Visual Studio ya hazır template olarak gelen Wcf Service
Library i açıyoruz. Bize Iservice1.cs ve Service.cs sınıf ve interface i otomatik oluşturuyor. Bu sınıfları açıp incelediğimizde azır bir şablon çıkıyor burda önemli olan kısım classımızda hazır işaretlenmiş olan attributelerdir. Biz şimdi bunları siliyoruz metodlarımızın bulunacağı bir interface(Ibilet) üye değişkenlerimizin olacağı bir class metodların olacağı bir class ekliyoruz(Biletservis.cs,bilet.cs)
Şimdi classlarımıza bizim için gereken kodları yazıyoruz.
Baktığımızda web servisleri ile uygulama geliştirirken biz [WebMethod] ile etiketliyorduk Wcf de ise bu durum farklı. Şimdi bunları inceleyelim.

// bilet sınıfımız

[DataContract]

public class bilet

{

//yolcu bilgisini tutacak üye değişken

[DataMember]

public string yolcu;

[DataMember]

//istakameti gireceğimiz üye değişken

public string sehir;

//Seyehat Tarihi

[DataMember]

public DateTime tarih;

}

[DataContract]: Networkten gelecek olan verileri okuyacak olan sınıfımızı bu etiketle imzalıyoruz.

[DataMember]: Class içerisindeki erişmek istediğimiz üye değişkenlerimizi bu attiribute ile etiketliyoruz.

//şimdi interface imizi inceleyelim;

[ServiceContract]
interface IBilet
{
[OperationContract]
void RezervasyonKaydet(bilet b);
[OperationContract]
List Goruntule();
[OperationContract]
void RezervasyonIptal(string id);
}

[ServiceContract]: Aynı classımızdaki mantıkla interfaclerimizi de bu attributle etiketliyoruz.
[OperationContract]: İnterface de yer alan tanım bloklarınıda operation contract ile etiketliyoruz.
//şimdi biletservis.cs imizi oluşturalım

public class biletservis:IBilet //Ibilet interface imizi implement ediyoruz.
{
List rezervasyonlar = new List();//rezervasyonlarımızı tutacağımız listemiz
#region IBilet Members
public void RezervasyonKaydet(bilet b)
{
Random r=new Random();
b.id = r.Next(0, 100);//rezervasyona rastgele bir sayı veriyoruz.
rezervasyonlar.Add(b);
}
public List Goruntule()
{
return rezervasyonlar; //bilet nesnesinden bir liste döndürüyoruz.
}
public void RezervasyonIptal(string id)
{
//lambda ifadesi ile parametre olarak gelen id yi liste içerisndeki id ler ile karşılaştırıyor.
rezervasyonlar.Remove(rezervasyonlar.Find(e => e.id == id));
}
#endregion

Yukle.TC - Resimlerinizi İnternete Yükleyin

Şu anda servisimiz hazır servisimizi test edelim bu işlemi ” Wcf Test Client ” ile similasyon şeklinde yapabiliriz. Solution dan appconfig dosyasına sağ tıklayıp “Edit Wcf configuration” diyerek simülasyonumuzu çalıştırıyoruz.

Burada dikkat etmemiz gereken bir husus var projeyi açtığımızda servis1 olarak oluşturduğu için bunu bin dosyamızdaki dll imizle servisimizin adını değiştiriyoruz. Aynı işlemi Endpoints altındaki empty name alanında da yapıyoruz.file menüsünden save diyerek kaydediyoruz.

şimdi projemizi çalıştırıyoruz.

* Id kısmı otomatik verildi sehir tarih ve yolcu bilgilerini invoke deyip kaydediyoruz. value değeri null döndürüse sorun yok demektir.

* Görüntüleye tıklayalım şimdi

Gördüğümüz gibi bütün rezervasyon bilgileri görüntülendi.

şimdi bir rezervasyonu iptal edelim

Bu işlem sonunda id si 31 olan rezervasyonu silmiş olduk …

Örnek uygulamayı indir

 
No Comments

Posted in C#, Makaleler