11 Nis 2009 Silverlight 3 Beta - Lokal Mesajlaşma (Local Messaging) Kategori: Silverlight Etiketler: Silverlight 3 BetaSilverlight 3 Yorum Merhaba arkadaşlar, bu makalemizde Silverlight 3 Beta ile birlikte gelen Lokal Mesajlaşma (Local Messaging) işleminin nasıl yapıldığını inceleyeceğiz.Silverlight 3 Beta ile birlikte gelen Local Messaging(Lokal Mesajlaşma) özelliği ile iki Silverlight uygulaması arasında iletişim kurup birbirlerine mesajlar göndermesini sağlayabiliyoruz. İster bir sayfada ki iki Silverlight uygulaması arasında, ister sekmeler(tab) arasında ki sayfaların içerisinde yer alan Silverlight uygulamalarında ve istersek farklı browserlar da bulunan Silverlight uygulamalarının birbirleriyle haberleşmesini sağlayıp buna bağlı olarak çeşitli işlemler yapıp birbirleri arasında veri alışveriş yapabiliyoruz. Yani Internet Explorer da çalışan bir Silverlight uygulaması, Safari de çalışan Silverlight uygulamasına bir mesaj gönderebiliyor. Safari de çalışan uygulama da bu mesaja bağlı olarak işlemler yapabiliyor. System.Windows.Messaging namespace’i altında mesaj göndermek ve mesajı almak için 2 sınıf var. Mesajı göndermek için LocalMessageSender, Mesajı almak için LocalMessageReceiver sınıfını kullanıyoruz. Yeni bir Silverlight uygulaması oluşturalım. Bu uygulama bizim için başka bir uygulama ile iletişim kurup o uygulamaya mesaj gönderecek. Bu uygulama içinde bir TextBox ve bir de Button olsun. Butona bastığımızda TextBox’a girilen bilgiyi diğer uygulamaya göndereceğiz. [XAML] <UserControl xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006”x:Class="Silverlight30LocalMessaging.MainPage" Width="400" Height="300"> <Grid x:Name="LayoutRoot" Background="White"> <TextBox x:Name="txtMessage" Margin="82,86,86,0" VerticalAlignment="Top" Text="" TextWrapping="Wrap"/> <Button x:Name="btnGonder" Margin="163,124,173,0"VerticalAlignment="Top" Content=" Gönder"/> </Grid></UserControl> Butona tıklandığında mesaj gönderme işlemini yapacağız, bunun için ilk olarak Click eventini oluşturalım. Bu Event içinde mesajı gönderebilmemiz için postaci isminde LocalMessageSender nesnesi oluşturalım. LocalMessageReceiver nesnesinin SendAsync metodunda alıcıya göndereceğimiz bilgiyi bildiriyoruz. Mesaj gönderildiğinde tetiklenen SendCompleted isminde bir event var. Bu eventinin eventargument’in Response özelliği ile mesajı alanın bize gönderdiği cevabı alabiliriz. [C#] namespace Silverlight30LocalMessaging{ public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); // Button için Click Eventini oluşturalım. this.btnGonder.Click += new RoutedEventHandler(btnGonder_Click); } void btnGonder_Click(object sender, RoutedEventArgs e) { // Local Messaging özelliğini kullanabilmemiz için System.Windows.Messaging namespace’i altında yer alan Local MessageSender sınıfını kullanıyoruz. Yapıcı metotda alıcı için bir isim belirtiyoruz. System.Windows.Messaging.LocalMessageSender postaci = new System.Windows.Messaging.LocalMessageSender("Adres"); // Gönderilecek olan mesajı SendAsync metodu ile gönderiyoruz. postaci.SendAsync(txtMessage.Text); // Mesaj yerine gettiğinde çalışacak olan eventi oluşturalım. postaci.SendCompleted += new EventHandler<System.Windows.Messaging.SendCompletedEventArgs>(postaci_SendCompleted); } // Mesaj yerine gettiğinde çalışacak olan event. Mesajı alan silverlight uygulaması geriye bir yanıt gönderebilir, e.Response özelliği ile alıcının bize yolladığı bu yanıtı verir. void postaci_SendCompleted(object sender, System.Windows.Messaging.SendCompletedEventArgs e) { MessageBox.Show(e.Response); } }} Mesajı gönderdik, mesajı alacak bir alıcı yani başka bir Silverlight uygulamasına ihtiyacımız var. Bunun için bir Silverlight uygulaması daha oluşturalım. Bu uygulamada sadece TextBlock olsun. TextBlock kontrolünün text özelliğinde gönderilen mesajı görüntüleyeceğiz. [XAML] <UserControl x:Class="Silverlight30LocalMessagingAlici.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300"> <Grid x:Name="LayoutRoot" Background="White"> <TextBlock x:Name="tbAlici" FontSize="20" HorizontalAlignment="Center" VerticalAlignment="Center" ></TextBlock> </Grid></UserControl> Uygulama çalıştığında Mesajları alabilmek için alici adında LocalMessageReceiver nesnesi oluşturalım. LocalMessageReceiver nesnesinin gönderilen mesajları alabilmesi için Listen metodunu çağırmamız gerekir. Uygulamaya Mesajlar asenkron olarak gelecektir, Mesaj geldiğinde haberdar olabilmemiz için MessageReceived isimli bir event var. Bu event ile gelen mesajı alıp, mesajı gönderene cevap gönderebiliriz. Gelen mesajı almak için MessageReceived eventinin argümanları arasında Message isimli bir özellik var. Mesajı gönderene cevap göndermek için de Response özelliğini kullanabiliyoruz [C#] namespace Silverlight30LocalMessagingAlici{ public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); // Uygulama çalıştığında çalışacak olan event. this.Loaded += new RoutedEventHandler(MainPage_Loaded); } void MainPage_Loaded(object sender, RoutedEventArgs e) { // Uygulama çalıştığında mesajın alınabilmesi için LocalMessageReceiver nesnesini oluşturalım. Yapıcı metodunda gönderen tarafında bildirilen adresi bildiriyoruz. System.Windows.Messaging.LocalMessageReceiver alici = new System.Windows.Messaging.LocalMessageReceiver("Adres"); // Alıcıyı mesajları alabilmesi için açıyoruz. Alici dinlemeye başladı… alici.Listen(); // Mesaj geldiğinde çalışacak olan eventi oluşturalım. alici.MessageReceived += new EventHandler<System.Windows.Messaging.MessageReceivedEventArgs>(alici_MessageReceived); } void alici_MessageReceived(object sender, System.Windows.Messaging.MessageReceivedEventArgs e) { // Mesaj geldi, EventArgument’de Response isimli bir özellik var. Bu özellik mesajı gönderene bir yanıt gönderiyor. e.Response = "Teşekkürler, Mesaj alındı !"; // EventArgument’in Message özelliği bize gönderilen mesajı veriyor. tbAlici.Text = e.Message; // EventArgument’in SenderDomain özelliği mesajı gönderen uygulamanın adresini veriyor. // e.SenderDomain; } }} Şimdi uygulamalarımızı test edelim, iki uygulamayı da çalıştıralım. Farklı browserlar da test edelim, Chrome’da mesajı gönderen uygulamayı çalıştıralım. Bu makalenin de sonuna geldik başka bir makale de görüşmek üzere. Silverlight ile kalın ;)Sem GÖKSU www.semgoksu.com | www.yazilimgunlugu.com sem.goksu@yazilimgunlugu.com Kaynaklarmsdn.comsilverlight.net
07 Nis 2009 Sem Göksu Açık Kaynak Kodlu Blog Sistemi Kategori: Yazılım Etiketler: ASP.NETSem Göksu Blog SistemiSilverlightSQL Server 2005 63 Yorum Sem Göksu Blog SistemiSem Göksu Blog Sistemi ile kendi bloğunuzu oluşturabilirsiniz. Blog içerisinde Caching, SQL Paging, Re-Write Path gibi bir çok konu işlenmiştir. Kullanılan Teknolojiler- ASP.NET 3.5- ASP.NET AJAX 1.0- Silverlight- JavaScript- Enterprise Library 3.0- SQL Server 2005Blog Özellikleri- İçerikler- Makaleler- Kitap Önerileri- Çalışmalar- Silverlight Fotoğfraf Galerisi- Kaynaklar- Takip ettiklerim- IE 8 Hızlandırıcı- RSS - Tema- Arama- Yorum- Arşiv- CMSBlog sistemini indirmek için http://www.semgoksu.com/semgoksu.rar adresini kullanabilirsiniz. Rar dosyası içerisinde bulunan semgoksu.sql isimli dosyayı çalıştırdığınız da veritabanınız hazır olacak. Bloğu kendinize uyarlamak için web.config içerisindeki ayarları yapmanız yeterli olacaktır. Bu ayarlar,Connection StringBloğun kullanacağı veritabanı için gerekli olan ConectionString bilgisi.HostEmail gönderimi için gerekli olan host bilgisi.Email Email'in gönderileceği email hesabı.PasswordEmail adresinin şifresi.SenderEmailGönderilecek olan mail adresi.SiteNameBlog ile ilgili açıklama.SiteOwnerBloğun sahibiSiteLinkBloğun adresi.SiteShortLinkBloğun kısa adresi.AdminUserCMS'e girişte kullanacağınız kullanıcı adı. AdminPassCMS'e girişte kullanacağınız şifre.Bloğu kullandıktan sonra bana bilgi verirseniz çok sevinirim :)
05 Nis 2009 ASP.NET Webinerleri Kategori: Yazılım Etiketler: ASP.NETWebiner 6 Yorum Uzun zamandır ASP.NET ile ilgili webiner düzenlemek istiyordum. Fakat Çağlayan Arıkan'ın bloğunda "Bilenler Bilmeyenlere Bilgisayar Öğretiyor" isimli bir yazı okudum ve aklıma böyle bir webiner dizisi düzenlemek geldi. Anlatmayı düşündüğüm konular aşağıda, eğer eklemek istediğiniz konu ya da konular varsa yazmanız yeterli. Süre konusunda henüz bir planlama yapmadım ama en kısa sürede başlamak istiyorum :)- WEB Uygulamalarına Giriş- ASP.NET Giriş - ASP.NET ile Durum Yönetimi- ASP.NET Web Kontrolleri - 1- ASP.NET Web Kontrolleri - 2- ASP.NET Web Kontrolleri - 3- ASP.NET Data Kontrolleri - 1- ASP.NET Data Kontrolleri - 2- ASP.NET Data Kontrolleri - 3- ASP.NET Validation Kontrolleri - ASP.NET Master Page Kavramı- ASP.NET User Control Kullanımı- ASP.NET Tema Kullanımı- ASP.NET Ajax 1.0
03 Nis 2009 Visual Studio 2010 HTML ve Script Snippets Özelliği Kategori: Yazılım Etiketler: ASP.NET 4.0Visual Studio 3 Yorum İlk sürümünden bu yana Visual Studio da Code Snippets özelliği bulunmaktaydı. Visual Studio 2010 ile birlikte HTML ve Script'ler için de Snippets özelliği geldi. İster HTML kontrolleri, ister sunucu kontrolleri ve istersekte script'ler için Snippets özelliğini kullanarak hızlı bir şekilde kontrol ve scriptler oluşturabiliyoruz.Örneğin HTML tarafında button yazalım,Tab tuşuna iki kere basalım,Button kontrolümüz kullanılmak üzere hazır :)
01 Nis 2009 ASP.NET 4.0 - Page.Description ve Page.Keyword Özellikleri Kategori: ASP.NET Etiketler: ASP.NETASP.NET 4.0 3 Yorum Merhaba arkadaşlar bu makale de ASP.NET 4.0 ile Page sınıfına gelen 2 yeni özelliği inceleyeceğiz. Bu özellikler Description ve KeywordsASP.NET 4.0 ile birlikte Page sınıfına Description ve Keyword isimli iki yeni özellik eklendi. Bu özellikleri kullanarak web uygulamalarına keywords ve desctiption meta etiketlerini ekleyebiliyoruz.ASP.NET 4.0 Öncesi ASP.NET 4.0 öncesinde keywords ve description meta etiketlerini <head> etiketi arasına yazabiliyorduk. <headrunat="server"> <title>Page Description ve Page Keyword Özelliği</title> <meta name="keywords" content="Buraya sayfa ile ilgili anahtar kelimeler gelecek..' /> <meta name="description" content="Buraya sayfanın açıklaması gelecek..." /></head>ASP.NET 4.0 YaklaşımıASP.NET 4.0 ile birlikte sayfa direktiflerinden Keywords ve Description özelliğini kullanarak meta etiketini belirleyebiliyoruz. [HTML] <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Keywords="Anahtar kelimeler…" Description="Sayfa ile ilgili açıklama…"%> Bu bilgilerin veritabanından geleceğini de düşünürsek bu işlemi dinamik olarak da yapabiliriz. [C#] protected void Page_Load(object sender, EventArgs e){ this.Keywords = "Anahtar kelimeler…"; this.Description = "Sayfa ile açıklama…"; } Eğer sayfada head etiketi arasında tanımlı keywords yada description meta etiketi varsa bizim belirlediğimiz bilgiler üzerine yazılacaktır.