Home » Posts tagged 'asp.net' (Sayfa 4)
Asp.Net ile Twitter’ a gönderi yapmak

FriendFeed başlığıyla aynı olsun istedim :) son yılların en anlamsız aynı zamanda da en anlamlı girişimi hiç şüphesiz Twitter. Herkes adını duymuştur herkes üyedir ama kimse ne işe yaradığını bilmez, ne işe yaradığını bilenler fuzuli bir araç olduğunu söyler ama ne var ki herkesde aynı zamanda bu hizmeti kullanır. Burada durum Twitter nedir ne değildir diye uzun uzadıya birşey yazmayacağı, amacım belli asp.net ile Twitter’ a gönderi yapacağız, yani twitliyeceğiz :) FriendFeed örneğinde thread kullanmamıştık, bu örnekte thread kullanmakta fayda var diye düşünüyorum. Nedeni ise Twitter FriendFeed e göre çok daha etkin kullanılan bir hizmet olduğundan zaman zaman sunucuları bize geç cevap verebiliyor, bazen hiç cevap veremiyor Twitter’ ın deyimiyle over capacity oluyor. Bu arada thread nedir diye soracak olursanız buraya bakmanızı öneririm. Kaba tabirle ne olduğunu anlatmaya çalışayım. Methodumuzu aynen yazıyoruz, fakat methodu yeni bir thread ile çağıyorsunuz. Twitter örneğinde kullanıcı sayfanın işlemi yapmasını bekler, çünkü ilk önce bağlantı kurulup sonrasında bilginin karşıya gönderilmesi gerekmektedir, bu da karşı tarafın ve sizin trafiğinize göre değişkenlik gösterir. Kimi zaman 2 saniyede gerçekleşen iş kimi zaman 20 saniyede gerçekleşir. Thread ile bu işi arkaplanda yaptırıyoruz. Yani kullanıcıyı hiç bekletmiyoruz. Kullanıcı direk işlemin tamamlandığını görüyor, fakat arkatarafta thread işlemi koşturup sonuçlanmasını sağlıyor. Unutmadan projemize referans olarak Microsoft.Http.dll’ yi ekliyoruz. Twitter a gönderi yapmak için api anahtarına ihtiyaç duymuyoruz. Direk kullanıcı adımız ve şifremiz yeterli oluyor. Bu arada gönderiyi yapan kodu bir yerden bulmuştum fakat adresi hatırlamadığımdan kaynak gösteremiyorum. Yazan arkadaş hakkını helal etsin :) (daha fazla…)

quickSearch ile tablo içinde arama

quickSearch tablo içinde ki veriler içerisinde arama yapmamıza olanak sağlayan bir jquery eklentisi. Eklentinin ana sayfasına buradan ulaşabilirsiniz. Eklenti gayet hızlı çalışıyor ve arama işinde de gayet başarılı.  Buradan içerisinde çok kayıt bulunan bir tabloda ki performansını görebilirsiniz. İnsan neden böyle bir eklentiye ihtiyaç duyar gibisinden bir soru gelebilir. Alınan raporlarda, ürün listelerinde vb.. yerlerde formu post edip, veritabanına istek göndermek bu tarz bir eklenti varken gereksiz olur, üstelik sayfa yeniden yüklenmeyeceğinden ayrıca bir performans kazanımı söz konusu oluyor. Şöyle de bir durum var 10bin 100bin kayıt olan yerlerde böyle bir çözüm söz konusu olamaz. Eklentinin çaışma mantığı gayet basit, nihayetinde biz veritabanından gelen veriyi tablomuza dolduruyoruz. Eklenti tablo içerisinde ki verilerden bizim kriterlerimize uygun olan olanları gösteriyor, diğerlerini ise gizliyor. Birde unutmadan eklenti sadece table içerisinde arama yapmıyor, liste elemanları içerisinde de arama yapabiliyor, bu bilgilere eklentinin sayfasından ulaşabilirsiniz. Örneğim de kullandığım tablo şablonunu  buradan aldım, illa bu tarz bir şablon kullanacaksınız diye bir şartta yok, istediğiniz tasarıma kolayca entegre edebilirsiniz. İlerleyen günlerde yine jquery eklentisiyle, tablo içerisinde arama, sıralama ve sayfalama işlemlerinin kolayca yapılmasına olanak tanıyan başka bir eklentiye bakacağız. Bu eklentiler sayesinde gridView den bir nebzede olsa uzaklaşmış olacağız, zaten bu tarz şeyler varken kim gridview kullanır ki ? (daha fazla…)

jQuery ile FaceBook tarzı fotoğraf etiketleme

Facebook’ un fotoğrafları etiketleme (tag) lama mekanızmasını bilmeyen yoktur herhalde. Geçen gün lazım oldu ara tara bir türlü istediğim gibisini bulamadım. İsteğimize en yakın olan olan scripti gözüme kestirip facebook vari bir etiketleme mekanızması yapmaya çalıştım. (Scriptin (betik) orjinal halini bir türlü bulamadım, unutmazsam yarın eklerim.) Betiğe eklediğim özellikler; etiketleme sırasında arkadaşların listesi geliyor ve tıklayıp o kişiyi etiketleyebiliyorsunuz. Arkadaş listenizde arama yapabiliyorsunuz. Etiketleme işlemlerini veritbanına yazma ve okuma. Ufak tefek bir kaç ayar daha verdim. Betik kullanılacağı yere göre kolayca düzenlebilir. Bundan dolayı bir kullanıcı etiketlenmişse tekrar etiketlenemesin veya benzeri durumlar için hiç bir işlem yapmadım, heh unutmadan sql enjeksiyona önleminizi almadan direk kullanmayın. İsteyen istediği gibi düzenleyip kullanabilir, zaten görünce ne kadar basit bir şey olduğunu göreceksiniz.

jquery facebook style etiket tag (daha fazla…)

Asp.Net ile FriendFeed’ e gönderi yapmak.

Son günlerde o api senin bu api benim uğraşıp duruyor, kim mi ? Tabi ki Emre abi :) Twitter’ a göre çok bilindik olmasada FriendFeed’ de azımsanmıyacak bir kullanıcı kitlesine sahip. Basit bir şekilde FF hesabınıza nasıl gönderi yapabileceğimizi göreceğiz. İlk önce api keyinizi  https://friendfeed.com/account/api adresinden öğrenip, projemize referans olarak Microsoft.Http.dll‘ yi ekliyoruz. (daha fazla…)

String i Hex e, Hex i String e dönüştürme.

Ne garip bir başlık oldu yav :) String to Hex, Hex to String yazacaktım sonra
dedim güzel Türkçe' mi kullanayım. Geçenlerde başımız bir session nesnesi
yüzünden okadar ağırdıki tarifi inanın mümkün değil. İlgili kodları şekilden
şekile soktuk, amuda bile kaldırdık ama bir türlü çözüm bulamadık. En sonunda
session daki veriyi bir anahtarla birlikte şifreleyip adres çubuğundan taşıyalım
dedik. Nitekimde başarılı olduk ama zaman zaman sıkıntılar olduğunu gözledik.
Arkadaş zaten canımızı çıkaran bir durumdu tam hallettik derken yine hata almak
ciddi şekilde canımızı sıktı. Sıkıntı şifrelenen verinin + ^ | gibi
karakterlerin adres çubuğundan taşınırken problem çıkarmasından ileri
geliyormuş. HtmlDecode ve benzeri aksiyonların işe yaramadığı bir durum.
Emre abi
nin imda da yetiştiği bu durumda, karşı tarafa şifrelenmiş veriyi Hex formatına
dönüştürüp adres çubuğundan taşıyıp, sonrasında Hex veriyi stringe dönüştürerek
başarılı bir şekilde taşımış olduk. Böylelikle ciddi bir tecrübe edinmiş olduk,
demekki karmaşık karakterli verileri işlemler sonunda Hex formatında taşımak
gayet sağlıklı oluyormuş. Bu durumda dönüşümler kullandığımız kodları sizlerle
paylaşmak istedim.

    public string ConvertStringToHex(string asciiString)
    {
        string hex = "";
        foreach (char c in asciiString)
        {
            int tmp = c;
            hex += String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()));
        }
        return hex;
    }

    public string ConvertHexToString(string HexValue)
    {
        string StrValue = "";
        while (HexValue.Length > 0)
        {
            StrValue += System.Convert.ToChar(System.Convert.ToUInt32(HexValue.Substring(0, 2), 16)).ToString();
            HexValue = HexValue.Substring(2, HexValue.Length - 2);
        }
        return StrValue;
    }
TimeSpan ile şu kadar saniye, dakika, saat ve gün olayı

TimeSpan iki zaman arasındaki farkı bize veren bir fonksiyon. Kullanımıda
gerçekten çok basit. İşlemin sonunda bize milisaniye, saniye, dakika, saat ve gün değerlerini double tipinde geri döndürüyor.
Facebook, friendfeed veya twitter gibi sitelerde, bu içerik bir kaç saniye önce
eklendi yada 5 saat önce yüklendi gibi mesajları görmüşsünüzdür, TimeSpan
kullanarak bu işlemin nasıl yapıldığına bir göz atalım.

protected void Page_Load(object sender, EventArgs e)
{
    DateTime hesaplanacakZaman = new DateTime(2010, 05, 15, 21, 23, 00);
    Response.Write(neZaman(hesaplanacakZaman));
}

public string neZaman(DateTime d) {
    TimeSpan tS = DateTime.Now-d;
    int dakika = (int)tS.TotalMinutes;
    int saat = (int)tS.TotalHours;
    int gun = (int)tS.TotalDays;
    string strTemp;
    if (dakika < 1)
    {
        strTemp = "bir kaç saniye önce";
    }
    else if (dakika < 60)
    {
        strTemp = dakika+" dakika önce";
    }
    else if (saat < 24)
    {
        strTemp = saat+" saat önce";
    }
    else
    {
        strTemp = gun+" gün önce";
    }
    return strTemp;
}

Gördünüz gibi gayet basit ve anlaşılır bir yöntem. Sonraki yazıda görüşmek üzere hoşçakalın..