AspState Aktif Etmek için

by Behlul 5. January 2010 17:35

Sessionlarımızı kalıcı olarak sql de tutmak için

MSSQL'imizi kurduktan sonra

 

Comand prompt'tan

mevcut framework klasörüne erişip aşağıdaki kodu çalıştırdığımızda ilgili tabloların yartılıdığını görürürüz

 

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -ssadd -sstype p -U sa -P sasifresi -S .

Burdaki -P yi yazmazssak ilgili tabloların yaratılmadıgını göreceğiz bu aspstatelerin sql memory'sinde tutulmasını sağlar

ilgili sql yada server kapatıldıgında aspstateler gitmiş olur...

daha fazla bilgi için;

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -?

yazarak açıklamaları okumanızı tavsiye ederim

 

şimdi web config dosyamıza

<

 

sessionState mode="SQLServer" stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=ilgiliserver; user id=kullaniciID;password=sifre"

/>


yazmamız yeterli olacaktır.

Tags: ,

Coding | Hint

Over by Partition

by Behlul 29. December 2009 05:45

SELECT *
FROM(

      SELECT  *,
                 ROW_NUMBER() OVER (PARTITION BY TestMasterID ORDER BY TestMasterID desc ) as pos                
       FROM
  TestDetay
      
)as Detay INNER JOIN TestMaster as Master on Master.TestMasterID=Detay.TestMasterID
Where Detay.pos >2

Tags:

Coding | Hint

Redirect after 3 seconds

by Behlul 25. December 2009 07:43

<head>
   <META HTTP-EQUIV="refresh" content="3;URL=banu.htm">
</head>

Tags:

Coding | Hint

Birazcık Sihire Nedersiniz ?

by Behlul 25. December 2009 07:37

Şöyle güzel bir site açalım. Bol resim yazı grafik falan olsun.

sonra adres çubuğuna java script kodunu kopyala yapıştır yapalım.

Şimdi boş durmayalım sayfayı kendimize göre düzenleyelim.

Sürükle bırak metodu ile herşeyi serbestce değiştirebilirsiniz.

iyi eğlenceler :)

 

javascript:void(document.body.contentEditable="true");

Tags:

Coding

window.location.href simple link works in IE but not in Firefox

by Behlul 8. December 2009 19:25

Aynı Sayfa içinde window.location.href ' le verince Firefox ve chrome da sayfa postback oluyor.

bunun yerine window.location.hash kullanılırsa sorun çözülüyor....

< a  onclick="selectTab(2);" style="cursor: pointer;"><script type="text/javascript"

$(document).ready(function(){

$(

"#tabs").tabs();

 

 });

 

function selectTab(tab) {

var $tabs = $('#tabs').tabs();

$tabs.tabs('select', tab);

var locationObj = "#tabs"; return false;

window.location.hash = locationObj;

 

 }

</script>

 

Tags: , ,

Coding | Hint

IE'nin window.attachEvent i varsa Firefox'un ....

by Behlul 6. October 2009 16:10

 if  (window.addEventListener)

         window.addEventListener('load', function, false)

else if (window.attachEvent)

 window.attachEvent('onload', function);

else if (document.getElementById)

        window.onload=function;

Tags:

Coding | Hint

Improve Stored Procedure Performance

by Behlul 9. September 2009 16:34

Sometimes even the simplest things can make a difference.  One of these simple items that should be part of every stored procedure is SET NOCOUNT ON.  This one line of code, put at the top of a stored procedure turns off the messages that SQL Server sends back to the client after each T-SQL statement is executed.  This is performed for all SELECT, INSERT, UPDATE, and DELETE statements. Having this information is handy when you run a T-SQL statement in a query window, but when stored procedures are run there is no need for this information to be passed back to the client.

By removing this extra overhead from the network it can greatly improve overall performance for your database and application.

If you still need to get the number of rows affected by the T-SQL statement that is executing you can still use the @@ROWCOUNT option.  By issuing a SET NOCOUNT ON this function (@@ROWCOUNT) still works and can still be used in your stored procedures to identify how many rows were affected by the statement.

Tags: , ,

Coding | Hint

Sql ShortCuts

by Behlul 4. September 2009 18:44

Management studio'da kısa yolları kaydetmek için Tools ==> Options ==> Keybord seçerek

istenilen tuş kombinasyonuna ister yazdığımız bir function, ister bir store procedure atayabiliyoruz.

atamadan sonra Management Studio'yu tekrar başlatmak gerekiyor...

Tags: , ,

Coding | Hint

Disable Button After Click

by Behlul 12. February 2008 07:24

 

Aklımızda, blogumuzda dursun

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   If Not Page.IsPostBack Then

      btnEKTalepEkle.Attributes.Add(

"onclick", "btnEKTalepEkle.disabled=true;" & Me.GetPostBackEventReference(Me.btnEKTalepEkle))

  End If

Tags:

Coding | Hint

What is Project Management

by Behlul 14. January 2008 07:46

Budur....

Tags:

Coding | Hint

MultiLine TextBox MaxLength Problem & Solution

by Behlul 3. October 2007 07:30

Bildiğiniz gibi asp.net uygulamalarında textboxlara karakter sınırı koymak için maxlength adlı propertisini kullanabiliriz.

 Fakat textbox'ın textmode=multiline yapınca her nedense bu property çalışmıyor.(Bug mı acaba?)

 

Bu sorunu ekteki javascript'i kullanarak aşabiliriz.

   

    <script type="text/javascript" language="JavaScript">

    function textCounter(field,cntfield,maxlimit) {

        if (field.value.length > maxlimit)

            field.value = field.value.substring(0, maxlimit);

 

        else

            cntfield.value = maxlimit - field.value.length;

       }

    </script>

 

 

 

       <table>

           <tr>

               <td>

                   <input readonly type="text" name="Sayac" maxlength="3" value="230" style="width: 29px" />

                   Kalan karakter sayısı

               </td>

           </tr>

           <tr>

               <td>

                   <asp:TextBox runat="server" ID="txtKisitli" Width="250px" Height="100px" TextMode="MultiLine"

                       onKeyDown="textCounter(document.aspnetForm.txtKisitli,document.aspnetForm.Sayac,230)"

                       onKeyUp="textCounter(document.aspnetForm.txtKisitli,document.aspnetForm.Sayac,230)">

                   </asp:TextBox>

               </td>

           </tr>

       </table>

 

Tags:

Coding | Bug

Adobe LiveCycle Instructor

by Behlul 4. March 2007 10:34

Döküman yönetimi çağımızın sorunu. Halen basit masraf formlarımızın bile çıktısını alıp kişi kiş dolaştırıp en son muhasebeye kendi ellerimizle götürüyoruz. Bu zaman kaybı olduğu gibi onlarca ağacın kesilmesi anlamında geliyor. Şirket çalışanları basit bir masraf formunun kimden kime geçeceğini bilmek zorunda mı? 3 kuruşun peşine düşmüş gibi dakikalarca kime imzalatması gerektiğini öğrenmeli mi? Hayır. :) Adobe LiveCycle, bu ve bunun gibi iş akışı gereken her türlü işi bizim için yönetebilir.

Örneğin yine o basit masraf formlarımızdan başlayalım;

Şirketimizde, 1000ytl üzeri masraflar önce icra kurulu üyesine sonra amiri sonra muhasebeye gitsin.
                  1000ytl altında ki masraflar ise birim müdürü, ik ve daha sonra muhasebeye gitsin.

Eğer icra kurulu üyesi 30 dakika içinde form üzerinde hiçbir işlem yapmazsa form otomatik olarak birim müdür yardımcısına mail olarak gitsin ve X veritabanında ki y tablosundaki z kolonuna masrafı kaydetsin.

 

Evet bu yukarda örneklediğim senaryoyu ve daha karmaşık senaryoları Adobe LiveCycle ile rahatlıkla yönetebilr, Zaman ve para kaybını önleyebilrsiniz.

Ürünü incelemek ve daha detaylı bilgi  behlulbehram@gmail.com adresine sorularınızı gönderebilirsiniz.


Adobe LiveCycle ürününün;

LiveCycle Designer
LiveCycle Forms 
LiveCycle Workflow modüllerinin Trainer sertifikalarını, Munich'te katıldığım TTT eğitimini tamamlayıp, sınav ve sunumlarını yaparak aldım.

Destekleri için çalışma arkadaşlarım ve Evren Ayan hocama sonsuz teşekkürler.

 

Tags: ,

Coding

Login Sayfalarında "Beni Hatırla" (Cookie)

by Behlul 6. February 2007 07:33

Üyelik sistemlerinde sıklıkla karşılaşılan sorulardan biri de "Beni Hatırla" özelliğidir, makalemde Cookie kullanarak "Beni Hatırla" opsiyonunu login sayfalarına nasıl adapte edebileceğinizi anlatacağım.

Web sitesinin kullanıcıları hatırlaması için bir çok yöntem var. Örneğin Mac adresini kullanıcı ile eşleyerek veritabanına yazmak bunlardan biri. Fakat hem kullanım alanının çok verimli olmayışı hem de kullanılabilirliliğinin azlığı nedeniyle pek kullanılan bir yöntem değildir. Diğer ve etkin bir yöntem ise Cookiler.

Cookiler kullanıcı tarafında  saklanan text tabanlı dosyalardır. Bu dosyaların yönetimi, içeriği ve erişimi tamamen cooki'yi yaratan web sitesine aittir. Cookilerin ömürlerini biz belirleyebildiğimiz gibi, içerik değişiklikleri, silinmesi, expire olması gibi tüm özelliklerini de server tarafından yönetebiliriz. Ayrıca kullanıcı isterse cookieleri kapatabileceğinden yada internet tarayıcısı üzerinde bunları rahatlıka temizleyebileceğinden, tüm sistemi kesinlikle cookiler üzerine kurmamalıyız.  Bu yazıda Cookileri web sitesine giriş yaparken, kullanıcıyı hatırlamak için gerekli olan değeri kullanıcının bilgisayarına (Client Side) kaydederek saklamak için kullanacağız. Cookiler kullanıcı tarafında saklandığı için potansiyel güvenlik açıklarını da beraberinde getirir. Bu nedenle, kullanıcıyı tanımlamada kullanacağımız bilgiler, sistemimizi minimum düzeyde tehlikeye sokacak düzeyde olmalıdır. Bu nedenle cookie de saklanacak veri kullanıcı adı ve şifresi olmamalıdır.

Cookie yönetebilen bir login.aspx nasıl olmalı :

Bu uygulamada cookilere yazıcağımız değeri şifrelemek yerine veritabanında unique indetifier olarak tanımladığımız UserId ile dolduruyoruz. Bu bize cookie okunduğu zaman o kullanıcıyla ilgili herhangibir bilginin dışarı sızmasını engelliyor.

Bu sistem bize projemizin business tarafında kullanıcıadı ve şifre denetleyerek kullanıcları tanıma yönteminin dışında UserId kullanarak kullanıcı tanımlama fonksiyonuna ihtiyacımız olduğunu gösteriyor.

Öncelikle buttonumuzun click eventini yazalım:

 

     Cookie.buss buss = new Cookie.buss(); 
     DataTable user = new DataTable();   
     user = buss.GetUser(TextBox1.Text.Trim(), TextBox2.Text.Trim());
//ekrandan girilen kullanıcı adi ve şifreyi doğrulayan kullanıcı varmı?
         
if (user.Rows.Count>0)
         {
            
if (CheckBox1.Checked) //Beni hatırla checkbox'ı
            {
             Response.Cookies[
"behluluser"].Value = user.Rows[0]["UserId"].ToString(); //Cookiemizi yaratıp guid'imizi içine yazalım.
             Response.Cookies[
"behluluser"].Expires = DateTime.Now.AddYears(30);  //Cookiye 30 yıl yaşama şansı verelim.
            }
          Response.Redirect(
"http:\\www.behlulbehram.com"); //kullanıcı başarıyla girdi istediğimiz sayfaya yönlendirelim.
         }
        else 
            Label1.Text = "kullanıcı bulunamadi";

 

Not: Farklı windows kullanıcıları aynı siteye girselerde farklı cookiler yaratılır. Birbirlerini ezmezler. Örneğin A kişisi sistemimize girip beni hatırla derse
A'nın "behluluser" cookie'si yaratılır. Aynı bilgisayaradan B kişisi accountunu açip sisteme giriş yapıp beni hatırlayı seçerse B'nin "behluluser" cookiesi yaratılır.

Şimdide login.aspx'in page loadunda  nasıl bir işlem yapmalıyız onu görelim;

if (!IsPostBack)
{
   if (Request.Cookies["behluluser"] != null)//Kullanıcı Tarafında daha önceden yarattığım Cookie Varmı? 
   

      Cookie.
buss buss = new Cookie.buss();
      
DataTable user = new DataTable();

      
string myguid= Request.Cookies["behluluser"].Value; 
      user = buss.GetUserById(myguid);
         
if (user.Rows.Count > 0)//cookiedeki user gerçekten database de de var
            
{
               Response.Redirect(http://www.behlulbehram.com);
            }
        
else//cookie deki bilgi yanlış  biri oynamış ... silelim.
            
{
              Response.Cookies[
"behluluser"].Expires = DateTime.Now.AddYears(-30);
            }
   }
}

not: Cookileri silmek yerine expire etmek daha verimli bir yöntemdir.

ve login.aspx'i tamamlamış olduk. Derleyip çalıştırabiliriz.

Umarım cookileri nasıl kullanıcağımızla ilgili azda olsa fikir sahibi olmuşsunuzdur.

Sorularınız için

behlul.behram@bilgeadam.com
behlulbehram@gmail.com

Tags:

Coding

GUID := Globally Unique Identifier

by Behlul 25. December 2006 07:39

Globally Unique Identifier.

Ne demek bu Guid ?

Tekil 128 bit lik bir değer diyebiliriz. Bu tekillik oyle boyle bir tekillik diğil ama bir rivayete gore bir pc de uretilen guid değerini bir daha üretmek mümkün değil. Genelde büyük databaselerde primary key olarak kullanılıyor. Yada heran kullandığımız browserlerın açtığımız sayfaların sessionlarını guid kullanarak tutması iyi bir örnek olabilir.

Kullanımı basitce şöyle :=

using System;

namespace Behlul
{
  class MainClass
  {
    static void Main(string[] args)
    {
      System.Guid guid=System.Guid.NewGuid();
      Console.WriteLine(guid.ToString());
      Console.ReadLine();
    }
   }
 
}

işte bir guid := 6e42cdb4-e441-4c8f-8a77-1d2478ffb65a

Tags:

Coding

QR Message

Qr Message

Behlül Behram Kimdir?

2004 yılında Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümünden mezun oldu. 2000 yılından günümüze kadar C, C++, VB, VB.NET, C# dilleri ile bir çok proje yaptı. Halen bir medya kuruluşunda  "Yazılım Uzmanı" olarak çalışmaktadır...