C# ile Outlook 2007 Üzerinde Randevu Oluşturma ve Okuma

Cumartesi, 06 Şub 2010 burakkanmaz 2 yorum

C# ile, ister Outlook Add-In ister normal bir Windows Form uygulaması yaparken eğer Outlook üzerindeki takvim verilerine (randevulara) erişmek ve yeni randevular oluşturmak kolaylıkla yapılabilmektedir. Bu amaçlar için oluşturduğum metotları beraber inceleyelim.

Öncelikle yeni bir randevu oluşturalım,

using Outlook = Microsoft.Office.Interop.Outlook;

public void CreateAppointment(string subject, string location, string body, DateTime startDate, DateTime endDate)
        {
            var outlookApp = new Outlook.Application();
            var oAppointment =
                (Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem);
            oAppointment.Subject = subject;
            oAppointment.Location = location;
            oAppointment.Body = body;
            oAppointment.Start = startDate;
            oAppointment.End = endDate;
            oAppointment.ReminderSet = true;
            oAppointment.ReminderMinutesBeforeStart = 15;
            oAppointment.ReminderPlaySound = true;
            oAppointment.Importance = Outlook.OlImportance.olImportanceHigh;
            oAppointment.BusyStatus = Outlook.OlBusyStatus.olBusy;
            oAppointment.Save();
        }

Bu metod sırasıyla öncelikle Outlook’a bağlanıyor, ardından yeni bir Appointment (randevu) oluşturuyor.

Daha sonra bu randevunun Subject (Konu) kısmını, Location (Konum, Yer) kısmını, başlama ve bitiş tarihlerini metot tanımlamasından alarak yazıyoruz. Eğer dilersek bu randevuyu 15 dakika kalasıyla hatırlatmasını sağlıyoruz ve bu hatırlatmayı yaparken ses çalmasını da ayarlıyoruz. Diğer yüksek öncelikli ve durumu meşgule çevirme seçeneklerimizi de belirledikten sonra Save komutu ile bu randevuyu Outlook’a kaydediyoruz.

Outlook içerisinde ki tüm takvim öğelerini kullanmak için ise şu metodu kullanabiliriz.

public List<Outlook.AppointmentItem> GetAppointments()
        {
            var outLookApp = new Microsoft.Office.Interop.Outlook.Application();
            Outlook.NameSpace nms = outLookApp.GetNamespace("MAPI");
            Outlook.MAPIFolder mpiFolder = nms.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
            string body;
            var appItems = new List<Outlook.AppointmentItem>();
            foreach (Outlook.AppointmentItem task in mpiFolder.Items)
            {
                appItems.Add(task);
            }
            return appItems;
        }

Bu metot ile takvimdeki tüm öğeleri alacağız. Öncelikle Outlook’a bağlanmak için gerekli tanımımızı yapalım. Daha sonra MAPI klasörlerine erişmek için bir nesnemizi oluşturalım ve bu bağlantıyı Calendar ile ilişkili olarak başlatalım.

Ardından geri döndürmek için Outlook’un AppointmentItem nesne tipini tutacak bir liste oluşturalım. Daha sonra foreach ile MAPI klasöründe ki tüm takvim öğeleri arasında gezinerek listemize atalım. Son olarak listemizi geri döndürelim ve kullanalım.

İşte bu kadar basit bir şekilde Outlook Takvim öğelerine erişebilir ve yönetebilirsiniz. Bu metotları geliştirmek sizin elinizde ;)

C# ile RichTextBox’tan Veri Okuyup Yazmak

Cumartesi, 06 Şub 2010 burakkanmaz 2 yorum

Bugün Imagine Cup projemizde ekip içerisinde daha rahat kod transferi ve kopyama yapıştırma yapmak amacıyla 30-40 dakika uğraşıp bir program yazdım. Bu program sayesinde aşağıdaki bilgiyi öğrendim ve sizlerle paylaşıyorum.

C# ile RichTextBox’tan biçimli (renkli ve formatlı) yazı okumak ve yazmak için yapmanız gereken şey,

rtb1.Rtf.ToString(); // TextBox’un içerisinde ki veriyi RTF şekilde okumak için

yazmak için ise,

rtb1.Rtf = blabla // TextBox’un içerisine RTF formatlı veri yazmak için blabla değişkeni yerine verinizi yazın.

Projemiz için yaptığım örnek aşağıda. Amacı takım içerisinde senkronize bir şekilde hızlı kod paylaşımı :)

image

BilişimDergi 11.Sayısı Yayınlandı

Çarşamba, 03 Şub 2010 burakkanmaz yorum yok

image İstanbul Üniversitesi Bilgisayar Mühendisliği Bölümü öğrencileri tarafından çıkarılan BilişimDergi 11. sayısını okuyucularına sundu. Aylık konu kısıtlaması getirmeksizin; her bölgeden, her üniversiteden insanların makalelerinin, internet ortamında, belirli konseptler dahilinde yayınlandığı BilişimDergi’nin Şubat sayısı yazıları şunlardır:

Keyifli Okumalar…

SQL Server’da Tablonun Yapısını Değiştirme Sorunu

Çarşamba, 03 Şub 2010 burakkanmaz 2 yorum

SQL Server üzerinde daha önce oluşturduğunuz bir tablonun yapısını değiştirmek istediğinizde aşağıdaki hatayı alabilirsiniz.

Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-create.

image 

Bu sıkıntıyı gidermek için yapmanız gereken şey ise Tools –> Options –> Designers altında ki "Prevent saving changes that require table re-creation" seçimini kaldırmaktır. Burda önemli olan husus şu, eğer bunu kaldırırsanız tablo üzerinde yapacağınız değişikliklerde eğer tablo içerisinde veri varsa bu veri silinecektir.

image

Bu çözümü benimle paylaşan Fatih Coşkun‘a teşekkürler..

Türkiye’nin Tüm İl, İlçe ve Semt Bilgileri

Salı, 02 Şub 2010 burakkanmaz 5 yorum

Yazılım geliştiren bir çok kişinin çok işine yaracak bir İl, İlçe ve Semt listesi buldum bugün. Bu liste Türkiye’de ki tüm il, ilçe ve semtleri grup grup içeriyor. Ayrıca SQL kodu da bulunuyor. Böylelikle direk SQL veritabanına atarak projelerinizde kullanabileceksiniz.

Excel dosyasından bir görüntü,

image

Bu listeyi indirmek için buraya tıklayabilirsiniz.

C# ile SSL Kullanarak Mail Göndermek

Pazar, 31 Oca 2010 burakkanmaz 3 yorum

.NET ile SSL (https) kullanarak mail göndermek için hazırladığım ve bir çok projede kullandığım kodları sizlerle de paylaşmak istiyorum.

Öncelikle şu iki kütüphaneyi kodumuzun en üstüne yazarak sayfamıza referans gösteriyoruz.

using System.Net; // Güvenlik doğrulaması için gerekiyor
using System.Net.Mail; // Mail gönderimi için kullanılacak kütüphane

Daha sonra mail nesnelerimizi oluşturalım,

SmtpClient smtpClient = new SmtpClient(); // Yeni bir SMTP bağlantı nesnesi
MailMessage mailMessage = new MailMessage(); // Yeni bir mail mesajı nesnesi

Hemen ardından öncelikle mail nesnemize bilgileri girerek göndereceğimiz e-mail ayarlarını yapalım,

mailMessage.To.Add("burak@kanmaz.net");
// ^– Mailin gönderileceği kişi, eğer dilerseniz Add metodu ile birden fazla kişiyi ekleyebilirsiniz. Ya da Bcc.Add ve Cc.Add metotlarını da kullanabilirsiniz.
mailMessage.From = new MailAddress("isim@soyisim.com"); // Gönderen e-mail adresi
mailMessage.Subject = "Sitemize Hoşgeldiniz"; // E-Mailin başlığı
mailMessage.IsBodyHtml = true; // Eğer HTML bir mail gönderecekseniz true olmalı
mailMessage.Body = "Merhaba <b>Burak</b>"; // Mailinizin içeriği

Evet, şimdi e-mailimizi hazırladığımıza göre hemen bağlantı ayarlarımızı yapıp e-mailimizi gönderelim,

NetworkCredential networkCredential = new NetworkCredential("isim@soyisim.com", "123456");
// ^—SMTP Auth yapabilmemiz için göndericinin e-mail bilgilerini yazmalıyız.
smtpClient.Credentials = networkCredential; // Bu bilgiler ile SMTP oturumunu açacağız
smtpClient.Port = 587; // SMTP bağlantı portumuzu belirliyoruz.
smtpClient.Host = "smtp.soyisim.com"; // Mail sunucumuzun adresi
smtpClient.EnableSsl = true; // SSL kullanarak bağlanmak istediğimiz için true yapıyoruz

Süperiz, tüm ayarlarımızı yaptıktan sonra son olarak mailimizi gönderiyoruz..

smtpClient.Send(mailMessage);

Eğer dilerseniz tüm bu kodları bir try-catch bloğuna koyarak daha kararlı bir kod yazmış olursunuz.

Unutmadan şunu da ekleyelim, bu bir C# kodu olduğu için bu şekilde e-mail gönderimini hem ASP.NET ile web üzerinden hem de masaüstü uygulaması (Windows Form) üzerinden yapabilirsiniz.

Windows Azure Hayatımıza Girmeye Başladı

Cuma, 29 Oca 2010 burakkanmaz yorum yok

imageGeçtiğimiz yıl boyunca “Azure, Azure ..” diye sesler duyuyorduk. 1 Ocak 2010 itibariyle ise Azure hayatımıza girdi. Ben ise (okul en büyük engeldir diyorum ama :D) final sınavlarım nedeniyle ancak bu konuyu oturup yazmaya fırsat buldum.

 

Peki Azure Nedir? kısaca tanımlamak gerekirse (ilerleyen günlerde Azure ve Cloud dünyası hakkında bol bol makale ve seminerler ile detaylarına ineceğim), bilgisayarınızla ilgili tüm donanım ve servis ihtiyaçlarınızı internet üzerinden karşılayabileceğiniz bir sistem. Örneklemek gerekirse; bilgisayarınıza kurarak çalıştıracağınız bir uygulamayı (bu bir ticari yazılım olabilir, grafikleme yazılımı ve hatta oyunlar bile olabilir) internet üzerinde kurmak ve sadece internet tarayıcısı olan bir bilgisayar ile tüm bunlara ek donanım ihtiyacı gerektirmeden erişmek ve kullanmak şeklinde örnekleyebiliriz.

Şu an için Microsof dünyanın 6 yerinde bir futbol sahası genişliğine server farm’ları kuruyor. Bir örümcek ağı gibi sunucular düzenleniyor. Bu sunucular günümüz itibariyle ihtiyaçtan fazlasına sahip bir kapasitedeler. Fakat 2 yıl sonrası için belkide çok yetersiz kalacaklardır :)

 

image

Şu an için genel bir tanımlamaya girdik. İlerleyen günlerde daha teknik detaylara girerek çalışmalarımızı sürdüreceğiz. Takipte kalın ;)

Silverlight ile Facebook’a Masaüstünden Erişin

Çarşamba, 27 Oca 2010 burakkanmaz 3 yorum

Silverlight’ın o muhteşem grafik yeteneklerini kullanarak Facebook’ta gezinmeyi kim istemez?

Silverlight 4 kullanılarak hazırlanmış olan bu Client ile Facebook’u gezinmek çok daha zevkli ve görsel yönden çok iştah açıcı oluyor :) Bunun yanı sıra gerçekten çok hızlı ve daha kolay kullanıma sahip ;)

image

Ayrıca dilerseniz paylaşılmış tüm öğeleri, yapılan yorum sayısı kadar fotoğrafların büyüdüğü şekilde görebiliyorsunuz,

image

Ve tabi ki tüm durum mesajlarını tek ekranda görme imkanı,

image

Bence yavaş yavaş bunu kullanmanın zamanı geldi. Çünkü facebook browser üzerinde zaman zaman deli edebiliyor insanı :)

Bu client’ı indirmek için http://www.silverlight.net/content/samples/apps/facebookclient/ adresine gidebilirsiniz. Client’ın çalışabilmesi için bu sitede linki verilen Silverlight 4 BETA’yı kurmanız gerekmektedir. Daha sonra sayfayı yenilediğinizde sisteminize bu program kurulacaktır.

ASP.NET’te HTML Post Güvenliği

Çarşamba, 27 Oca 2010 burakkanmaz yorum yok

ASP.NET ile yaptığınız bir sitede eğer herhangi bir editör (FCKEditor, TinyMCE vb.) kullanıyorsanız ve bilgileri postback yaptığınızda aşağıdaki hatayı alacaksınız. Bu aslında bir hata değil ASP.NET’in güvenlik korumasının bir önlemesidir.

Hatanın başlığını okuduğumuzda potansiyel bir tehlike (yani html kodu gönderildiğini) söylüyor. Eğer ne yaptığınızın farkıda iseniz, aşağıdaki kodlar ile bu korumayı kaldırabilirsiniz.

image

 

Tüm sayfalarınızda bu korumayı kaldırmak için web.config içerisinde system.web tagının içerisine aşağıdaki kodu yazın.

<pages validateRequest="false" />

 

Sadece tekil bir sayfada kaldırmak için ise aspx dosyasının en üstünde bulunan Page tanımlamasının içerisine aşağıdaki kodu yazın.

ValidateRequest="false"

Blogumun Doğum Günü

Cumartesi, 16 Oca 2010 burakkanmaz 4 yorum

image 2009 yılının 16 Ocak’ında Efsane Geri Döndü yazımla yenilediğim blogum bugün 1.yılını  doldurdu :) Daha öncesinde 2-3 defa blog maceram olsa da onlar 3-4 ay sürdü ve sildim.

Bu 1 yıl içerisinde sitemi takip eden ve yorumlarıyla bana geri dönüş yapan tüm ziyaretçilerime en samimi dileklerimle teşekkür ederim :) Sizler ile kutluyoruz bu yıl dönümünü.

Ufacık bir istatistik vereyim sitemle ilgili,

  • Toplam Yazı Sayısı : 130
  • Toplam Yorum Sayısı : 414
  • Tekil Ziyaretçi : 72.611
  • Ziyaret : 92.499
  • Sayfa Görüntüleme : 187.162
  • Ziyaretçi başına ortalama gösterim : 3
  • Robot SGösterimleri : 129.533
  • Günlük Ortalama Ziyaretçi : 196
  • Günlük ortalama Sayfa Gösterimi : 505

Doğum Günün Kutlu Olsun Blogum! :))