Ana Sayfa
Forumlar
Hakkımızda
Yükleniyor. Lütfen bekleyin ...
Kategoriler
ASP.NET
C# & VB.Net
Visual Studio ve Araçlar
Sharepoint
.NET Framework
SQL Server
Mobil Teknolojileri
Dynamics
Silverlight
İş Zekası
Windows Embedded Sistemler
Yazılım Mimarisi
Yazgeliştir
Yazar olmak ister misiniz?
Forumlar
Kitap Önerileri
Haberler
Yazarlar
İpuçları
Görüşleriniz
Hakkımızda
İstatistikler
En son kayıt olan üye:
bahattin
Şuanki online üyeler (
2
) :
ieandd
,
mrv_26
C# & VB.Net Kategorisi
»
Microsoft Tag API Kullanımı
Microsoft Tag API Kullanımı
Print Versiyonu
Yazar:
Tamer Öz
Tarih:29.07.2009
Puan:
5
(Oy Kullanan:
4
)
Okuma Sayısı:
1348
Makaleyi İşaretle
Makale Özeti
Bu makalemde sizlere Microsoft Tag'dan ve yeni çıkmış olan API'sinin nasıl kullanılabildiğinden bahsedeceğim. Microsoft tarafından geliştirilen ve henüz Beta olan Microsoft Tag, temelde bir barkod gibi çalışmaktadır. Ancak barkoddan farklı olarak renkli olduğundan daha fazla bilgi barındırabilmektedir. Bu bilgiler bir web sitesi adresi, bir contact kartı, bir metin veya bir telefon numarası olabilmektedir. Ayrıca bu bilgiler şifre ile korunabilmekte veya sadece bir geçerlilik tarihi kapsamında erişilebilir olmaktadır. Tüm bunların yanısıra Bir Tag'ı okuyabilmek için sadece bir cep telefonunuz olması yeterli olacaktır. Birçok cep telefonu modelinde başarıyla çalışan Tag'ın okuyucusu monitör gibi ortamlardan da etiketi kolaylıkla yakalayabilmektedir. Gelecekte kartvizitlerin üzerinde, marketteki fiyat etiketlerinin yanında, reklam borşürlerinde sıklıkla görüyor olmalız olasıdır.
Paylaşım
Makale
Merhabalar
Bu makalemde sizlere Microsoft Tag'dan ve yeni çıkmış olan API'sinin nasıl kullanılabildiğinden bahsedeceğim.
Microsoft tarafından geliştirilen ve henüz Beta olan Microsoft Tag, temelde bir barkod gibi çalışmaktadır. Ancak barkoddan farklı olarak renkli olduğundan daha fazla bilgi barındırabilmektedir. Bu bilgiler bir web sitesi adresi, bir contact kartı, bir metin veya bir telefon numarası olabilmektedir. Ayrıca bu bilgiler şifre ile korunabilmekte veya sadece bir geçerlilik tarihi kapsamında erişilebilir olmaktadır. Tüm bunların yanısıra Bir Tag'ı okuyabilmek için sadece bir cep telefonunuz olması yeterli olacaktır. Birçok cep telefonu modelinde başarıyla çalışan Tag'ın okuyucusu monitör gibi ortamlardan da etiketi kolaylıkla yakalayabilmektedir. Gelecekte kartvizitlerin üzerinde, marketteki fiyat etiketlerinin yanında, reklam borşürlerinde sıklıkla görüyor olmalız olasıdır.
Microsoft Tag'ı internet üzerinden kullanmak için
http://tag.microsoft.com
adresine girmeniz ve üye olmanız gerekmektedir. Oldukça kolay ve kullanışlı bir arayüze sahip olduğundan bu makalemde daha çok biz programcıları ilgilendiren API'nin nasıl kullanıldığına değineceğim.
Api'yi kullanabilmek için öncelikle
http://tag.microsoft.com/ws/accessrequest.aspx?wa=wsignin1.0
adresine girip kullanım için aşağıdaki gibi bir form doldurmanız gerekiyor.
Bu formu doldurarak başvurunuzu tamamladıktan sonra 1 veya 2 gün içerisinde size web servisinin adresini ve size özel token'ı içeren bir mail gelecektir. Bu mail geldikten sonra web servisi kullanmaya başlayabilirsiniz. Makalemin içinde verdiğim kod örneklerinde bana ait token'ı sizlerle paylaşamayacağım için token'ı "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00" olarak kullanacağım.
İsterseniz uygulamamızı yazmaya başlayalım.
Öncelikle uygulamamıza mail ile gelen web servisinin referansını ekliyoruz.
Yeni bir kategori oluşturma:
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
TagService.
Category
insCategory =
new
MicrosoftTagAPISample.TagService.
Category
();
insCategory.Name =
"Dummy_Category"
;
insCategory.UTCStartDate =
DateTime
.Now;
insCategory.UTCEndDate =
DateTime
.Now.AddDays(10);
//Tarih atanmazsa bitiş tarihi olmayan bir kategori yaratmış olursunuz.
bool
result = insMIBPContractClient.CreateCategory(insUserCredential, insCategory);
if
(result)
{
MessageBox
.Show(
"Category Successfully Created"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Creating Category"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Microsoft Tag'ın Api'lerini kullanarak işlem yapmak için öncelikle
MIBPContractClient
class'ının bir instance'ını almamız gerekmektedir. Sonrasında ise bize mail ile gelen token'ı
UserCredential
nesnesinin bir instance'ına atarayarak servise yaptığımız her istekte göndermemiz gerekmektedir.
Bunun devamında yeni bir kategori oluşturmak için öncelikle Category nesnesinin bir instanece'ını almalı, bu instance üzerinde tüm değerlerini atamalıyız. Oluşturduğumuz kategorinin bir son geçerlilik tarihi olmasını istemiyorsak UTCEndDate property'sine değer atamamamız gerekiyor. Bunun hemen ardından ise
MIBPContractClient
nesnesinin örneğinin CreateCategory isimli metoduna Credential bilgisi ve oluşturmak istediğimiz kategoriyi temsil eden nesne örneğini geçirmeliyiz. Bu metod işlemimizin başarılı olup olmadığı bilgisini geri döndürmektedir.
Bir kategoriyi düzenleme :
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
TagService.
Category
insCategory =
new
MicrosoftTagAPISample.TagService.
Category
();
insCategory.Name =
"Dummy_Category_New"
;
insCategory.UTCStartDate =
DateTime
.Now;
insCategory.UTCEndDate =
DateTime
.Now.AddDays(10);
//Tarih atanmazsa bitiş tarihi olmayan bir kategori yaratmış olursunuz.
bool
result = insMIBPContractClient.UpdateCategory(insUserCredential,
"Dummy_Category"
, insCategory);
if
(result)
{
MessageBox
.Show(
"Category Successfully Updated"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Updating Category"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Kategori düzenlemenin çalışma mantığı kategori eklemek ile aynıdır. Burada dikkat edilmesi gereken tek bir nokta var o da değiştirilmek istenen kategorinin adının UpdateCategory metoduna 2. parametre olarak geçilmesi ve 3. parametre olarak bu isimdeki kategorinin yeni bilgilerinin gönderilmesidir.
Bir kategoriyi pasif etme:
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
bool
result = insMIBPContractClient.PauseCategory(insUserCredential,
"Dummy_Category_New"
);
if
(result)
{
MessageBox
.Show(
"Category Successfully Paused"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Pausing Category"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Bir kategoriyi pasif etmek için
MIBPContractClient
nesnesinin PauseCategory metoduna kategorinin adını ve credential'ları göndermek yeterlidir.
Bir kategoriyi aktive etme:
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
bool
result = insMIBPContractClient.ActivateCategory(insUserCredential,
"Dummy_Category_New"
);
if
(result)
{
MessageBox
.Show(
"Category Successfully Activated"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Activating Category"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Aynı şekilde bir kategoriyi aktive etmek için
MIBPContractClient
nesnesininActıvateCategory metoduna kategorinin adını ve credential'ları göndermek yeterlidir.
Yeni bir tag oluşturma:
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
TagService.
URITag
insURITag =
new
MicrosoftTagAPISample.TagService.
URITag
();
//DialerTag, FreeTextTag, VCardTag nesnelerinin örnekleri alınarak bu tiplerde de tag'lar aynı mantıkla oluşturulabilir
insURITag.Title =
"New_URI_Tag"
;
insURITag.MedFiUrl =
"http://www.tameroz.com"
;
insURITag.UTCStartDate =
DateTime
.Now;
insURITag.UTCEndDate =
DateTime
.Now.AddDays(10);
//Tarih atanmazsa bitiş tarihi olmayan bir tag yaratmış olursunuz.
bool
result = insMIBPContractClient.CreateTag(insUserCredential,
"Dummy_Category_New"
, insURITag);
if
(result)
{
MessageBox
.Show(
"Tag Successfully Created"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Creating Tag"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Yeni bir tag oluşturmak için öncelikle oluşturmak istediğimiz tag tipinden bir nesnenin örneğini almamız gerekmektedir. Bu tip DialerTag, FreeTextTag, VCardTag veya URITag tiplerinde olabilmektedir. Instance'ını aldığımız bu nesnenin ilgili property'lerinin doldurduktan sonra bu nesneyi
MIBPContractClient
nesnesinin CreateTag metoduna göndermemiz gerekmektedir. Bu metod ayrıca bizden oluşturulacak tag'ın hangi kategori altında oluşturulacağına dair bir parametre de almaktadır. Burada yine tag'ın geçerlilik bitiş tarihini belirlemek istemiyorsak bu özelliğe değer atamamamız gerekmektedir.
Bir Tag'ı güncelleme:
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
TagService.
URITag
insURITag =
new
MicrosoftTagAPISample.TagService.
URITag
();
//DialerTag, FreeTextTag, VCardTag nesnelerinin örnekleri alınarak bu tiplerde de tag'lar aynı mantıkla oluşturulabilir
insURITag.Title =
"New_URI_Tag"
;
insURITag.MedFiUrl =
"http://www.yazgelistir.com"
;
insURITag.UTCStartDate =
DateTime
.Now;
insURITag.UTCEndDate =
DateTime
.Now.AddDays(10);
//Tarih atanmazsa bitiş tarihi olmayan bir tag yaratmış olursunuz.
bool
result = insMIBPContractClient.UpdateTag(insUserCredential,
"Dummy_Category_New"
,
"New_URI_Tag"
, insURITag);
if
(result)
{
MessageBox
.Show(
"Tag Successfully Updated"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Updating Tag"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Tag güncellemede ki mantık temelde bir kategorinin güncellenmesindeki mantık ile aynıdır. Güncellenmek istenen tag'ın adı, kategorisi ve yeni hali UpdateTag metoduna gönderilerek tag'ın sistemde güncellenmesi sağlanır.
B
ir Tag
'ı pasif etme :
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
bool
result = insMIBPContractClient.PauseTag(insUserCredential,
"Dummy_Category_New"
,
"New_URI_Tag"
);
if
(result)
{
MessageBox
.Show(
"Tag Successfully Paused"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Pausing Tag"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Bir tag'ı pasif etmek için
MIBPContractClient
nesnesinin PauseTag metodunun kullanılması gerekmektedir.
Bir Tag'ı aktive etme :
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
bool
result = insMIBPContractClient.ActivateTag(insUserCredential,
"Dummy_Category_New"
,
"New_URI_Tag"
);
if
(result)
{
MessageBox
.Show(
"Tag Successfully Activated"
);
}
else
{
MessageBox
.Show(
"An Error Occured While Activating Tag"
);
}
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Bir tag'ı aktive etmek için
MIBPContractClient
nesnesinin ActivateTag metodunun kullanılması gerekmektedir.
Bir Tag'ı Windows uygulamasında görüntüleme:
try
{
TagService.
MIBPContractClient
insMIBPContractClient =
new
MicrosoftTagAPISample.TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
MicrosoftTagAPISample.TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
byte
[] b=insMIBPContractClient.GetBarcode(insUserCredential,
"Main"
,
"Tamer Vcard"
,MicrosoftTagAPISample.TagService.
ImageTypes
.jpeg,2, MicrosoftTagAPISample.TagService.
DecorationType
.HCCBRP_DECORATION_FRAMEPLAIN,
false
);
MemoryStream
ms =
new
MemoryStream
(b);
Image
i=
Image
.FromStream(ms);
PictureBox
pb =
new
PictureBox
();
pb.SizeMode =
PictureBoxSizeMode
.Zoom;
this
.Controls.Add(pb);
pb.Dock =
DockStyle
.Fill;
pb.Image = i;
}
catch
(
Exception
ex)
{
MessageBox
.Show(ex.ToString());
}
Bir tag'ı görüntülemek için
MIBPContractClient
nesnesinin GetBarcode metodunun kullanılması gerekmektedir. Bu metod bizden sırasıyla credential'ları, bastırmak istediğimiz barkodun kategori adını ve barkod adını, output olarak gelecek resmin biçimini
(Jpg, gif, pdf, png vs vs.), in
ç olarak tag'ın boyutunu ve tag'ın gözükme şeklini alacaktır. Tag'ın gözükme şekli ile ilgili örnekleri makalemin en sonunda vereceğim.
Bir Tag'ı Web uygulamasında görüntüleme :
try
{
Response.Clear();
TagService.
MIBPContractClient
insMIBPContractClient =
new
TagService.
MIBPContractClient
();
TagService.
UserCredential
insUserCredential =
new
TagService.
UserCredential
();
insUserCredential.AccessToken =
"00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
;
byte
[] b = insMIBPContractClient.GetBarcode(insUserCredential,
"Main"
,
"Tamer Vcard"
, TagService.
ImageTypes
.jpeg, 2, TagService.
DecorationType
.HCCBRP_DECORATION_DOWNLOAD,
false
);
Response.BinaryWrite(b);
Response.ContentType =
"Image/JPEG"
;
}
catch
(
Exception
ex)
{
Response.Write(ex.ToString());
}
Şimdi isterseniz tag'ın görüntülenme şekli ile hangi parametre geçilirse nasıl bir değer çıkacağına dair örnekleri aşağıda verdim.
DecorationType.HCCBENCODEFLAG_STYLIZED
DecorationType.HCCBRP_DECORATION_DOWNLOAD
DecorationType.HCCBRP_DECORATION_FRAMEPLAIN
DecorationType.HCCBRP_DECORATION_NONE
Umarım faydalı bir makale olmuştur.
Tamer Öz
tamer.oz@yazgelistir.com
oztamer@hotmail.com
Makaleyi nasıl buldunuz?
Makaleye puan vermek için üye girişi yapmanız gerekmektedir.
v2.4
Geri Bildirim (Feedback)
Site içerisinde yazılan tüm makalelerin yazım ve yayınlama hakkı aksi belirtilmediği sürece sadece yazarlara aittir.
Yazgelistir.Com Ekibi - 2006 -
Yazgelistir.com