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

Microsoft Tag

www.behlulbehram.com

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 Türkiyenin önde gelen bilişim firmalarının birinde   "Yazılım Geliştirme Uzmanı" olarak çalışmaktadır...


Yandex.Metrica