Entegrasyon | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar entegrasyon

Windows 10 UWP uygulamasında Log için Slack kullanmak

22 February 2016 Yorum yapılmamış

Bu makaleyi okumadan önce Windows 10 UWP uygulamasında {x:Bind} kullanarak basit DataBinding makalesini okumanızı tavsiye ederim.

Slack, http://www.slack.com adresinde hizmet veren, son yılların en başarılı uygulamalarından birisi. Kendi sitelerinde yazana göre;

Slack is a messaging app for teams that is on a mission to make your working life simpler, more pleasant, and more productive

Geçen hafta aldığım çok ilginç bir email‘de bir uygulamada loglama için Slack kullanabilir miyiz? sorusu vardı.

Bu makalede Windows 10 UWP uygulamasında Slack entegrasyonu yapacağız, fakat aynı yöntemler ile rahatlıkla bir web uygulamasında veya web service‘inde aynı entegrasyon kurulabilir.

Öncelikle Slack üzerinde ücretsiz olarak bir hesap, hesabı oluşturduktan sonra yeni bir Channel oluşturmamız gerekiyor. Örneğin SlackLoggerApp-Logs isimli bir channel oluşturmak için;

Yeni bir public channel oluşturunca Slack sayfasında aşağıdaki gibi bir mesaj gözükmeli;

Got it! butonuna tıkladığımızda bizi channel‘in sayfasına yönlendirmeli;

https://{hesap}.slack.com/apps/build/custom-integration adresine giderek yazacağımız uygulamanın entegre olacağı Slack web servisini oluşturuyoruz. Bunun için Incoming WebHooks seçeneğini seçerek ilerlememiz lazım;

Gelen ekranda uygulamamızı geliştirirken ihtiyaç duyacağımız tüm bilgiler yer alıyor. Özellikle Webhook URL ve Sending Messages alanındaki bilgilere kesinlikle ihtiyacımız olacak;

Bu noktaya geldikten sonra Visual Studio‘yu açalım ve yeni bir Blank App (Universal App) projesi oluşturalım;

Projeyi oluşturduktan sonra MainPage.xaml dosyasını açalım ve aşağıdaki kodları yazalım;

<Page
	x:Class="SlackLogger.MainPage"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:local="using:SlackLogger">

	<StackPanel Background="#1abc9c" Padding="10">
		<TextBox Header="Adınız" Margin="5" BorderBrush="Transparent" Text="{x:Bind FirstName, Mode=TwoWay}" />
		<TextBox Header="Soyadınız" Margin="5" BorderBrush="Transparent" Text="{x:Bind LastName, Mode=TwoWay}" />
		<TextBox Header="EMail Adresiniz" Margin="5" BorderBrush="Transparent" Text="{x:Bind EMail, Mode=TwoWay}" />
		<TextBox Header="Mesajınız" Margin="5" Height="300" BorderBrush="Transparent" Text="{x:Bind MessageBody, Mode=TwoWay}" />
		<Button Content="Gönder" Margin="5" Height="40" HorizontalAlignment="Stretch" Click="{x:Bind Send}" />
	</StackPanel>

</Page>

Önce bir StackPanel nesnesi oluşturduk, içerisine 4 adet Textbox 1 adet Button nesnesi ekledik.

Textbox nesnelerinin Header özelliklerine verdiğimiz değerler ile birer başlığa sahip olmalarını sağladık.

BorderBrush özelliklerine verdiğimiz Transparent değer sayesinde çerçevelerin gözükmemesini sağladık.

Son olarak, Text özelliklerine ve Click olayına {x:Bind} tipinde değerler vererek Databinding yapıyoruz. Burada önemli olan nokta, Textbox‘ların Text özelliklerine yaptığımız Databinding‘de Mode özelliğine TwoWay değerini vererek, iki yönlü Databinding yapmak. Böylece ekranda bir değer değiştirildiği zaman Databinding yapıldığı property‘nin değeri otomatik olarak güncellenecek.

Böylece çalıştırdığımızda aşağıdaki gibi gözüken bir uygulama elde edeceğiz;

Databinding için FirstName, LastName, EMail ve MessageBody property‘lerini, ayrıca Send() methodunu yazmamız lazım. MainPage.xaml.cs dosyasını açalım ve aşağıdaki kodları ekleyelim;

public string FirstName { get; set; }
public string LastName { get; set; }
public string EMail { get; set; }
public string MessageBody { get; set; }

private async void Send()
{
	var client = new HttpClient();

	var payload = "{\"text\": \"" + FirstName + " " + LastName + "(" + EMail + ") : " + MessageBody + "\"}";

	await client.PostAsync(new Uri("https://hooks.slack.com/services/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"), new HttpStringContent(payload));
}

Böylece Gönder butonuna basıldığında Slack‘te oluşturduğumuz public channel‘ın web service‘ine istediğimiz bilgiyi gönderebileceğiz. Bu makaledeki örnekte Ad Soyad (EMail) : Message formatında bilgiyi Windows.Web.Http namespace‘i altında yeralan HttpClient sınıfının PostAsync() methoduna HttpStringContent tipinde gönderiyoruz.

Gönder butonuna bastığımızda, Slack, aşağıdaki notification‘ı gösterecek;

Eğer Slack‘teki public channel‘ın sayfasını açacak olursak, orada da mesajı görebileceğiz;

Proje Yönetimi Süreç Haritası

05 March 2013 Yorum yapılmamış

PMI methodolojisine göre Proje Yönetim Süreç Haritası 5 süreç grubu‘na ve 9 bilgi alanı‘na dağıtılmış 42 süreçten oluşmaktadır.

PMBOK‘ta bu süreçler aşağıdaki gibi haritalanmıştır;

Başlangıç
Entegrasyon Yönetimi
Proje Başlatma Belgesinin Geliştirilmesi

İletişim Yönetimi
Paydaşların Belirlenmesi

Planlama
Entegrasyon Yönetimi
Proje Yönetim Planının Geliştirilmesi

Kapsam Yönetimi
Gereksinimlerin Toplanması
Kapsamın Tanımlanması
İş Kırılım Yapısının Oluşturulması

Zaman Yönetimi
Aktivitelerin Tanımlanması
Aktivitelerin Sıralanması
Aktivite Kaynaklarının Tahmin Edilmesi
Aktivite Sürelerinin Tahmin Edilmesi
Zaman Çizelgesinin Geliştirilmesi

Maliyet Yönetimi
Maliyetlerin Tahmin Edilmesi
Bütçenin Belirlenmesi

Kalite Yönetimi
Kalitenin Planlanması

İnsan Kaynakları Yönetimi
İnsan Kaynakları Planının Geliştirilmesi

İletişim Yönetimi
İletişimin Planlanması

Risk Yönetimi
Risk Yönetiminin Planlanması
Risklerin Tanımlanması
Niteliksel Risk Analizinin Yapılması
Niceliksel Risk Analizinin Yapılması
Risk Yanıtlarının Planlanması

Tedarik Yönetimi
Tedariklerin Planlanması

Yürütme
Entegrasyon Yönetimi
Projenin Yürütülmesi, Yöetilmesi ve Yönlendirilmesi

Kalite Yönetimi
Kalite Güvencesinin Sağlanması

İnsan Kaynakları Yönetimi
Proje Ekibinin Oluşturulması
Proje Ekibinin Geliştirilmesi
Proje Ekibinin Yönetilmesi

İletişim Yönetimi
Bilgilerin Dağıtılması
Paydaş Beklentilerinin Yönetilmesi

Tedarik Yönetimi
Tedariklerin Yürütülmesi

İzleme ve Kontrol
Entegrasyon Yönetimi
Proje Çalışmalarının İzlenmesi ve Kontrolü
Entegre Değişiklik Kontrolünün Gerçekleştirilmesi

Kapsam Yönetimi
Kapsamın Doğrulanması
Kapsamın Kontrolü

Zaman Yönetimi
Zaman Çizelgesinin Kontrolü

Maliyet Yönetimi
Maliyetlerin Kontrolü

Kalite Yönetimi
Kalite Kontrolünün Gerçekleştirilmesi

İletişim Yönetimi
Performansın Raporlanması

Risk Yönetimi
Risklerin İzlenmesi ve Kontrol Edilmesi

Tedarik Yönetimi
Tedarik İşlerinin İdaresi

Kapanış
Entegrasyon Yönetimi
Projenin ya da Fazın Kapatılması

Tedarik Yönetimi
Tedariklerin Kapanışı

Proje Yönetimi (Project Management) Nedir?

02 March 2013 Yorum yapılmamış

İş yaşantımızda sıklıkla duyduğumuz Proje, Benzersiz bir ürün veya hizmet oluşturmak için yürütülen geçici bir girişimdir.

Bir çalışmanın proje olması için başlangıç ve bitiş zamanları olması lazım, aksi taktirde çalışma proje olarak değil, operasyon olarak değerlendirilmelidir.

Proje ve Operasyon faaliyetlerinin özellikleri;

Operasyon

  • Sınırlı sayıda kaynak tarafından gerçekleştirilir (insan-makina-yazılım-vs.)
  • Hiç değişmeden yada az değişikliğe uğrayarak tekrarlar
  • Sürekliliği vardır
  • Daha önce yapılmış olabilir, daha sonra da tekrarlama olasılığı vardır
  • Tüm faaliyet belirli/tanımlıdır

Proje

  • Sınırlı sayıda kaynak tarafından gerçekleştirilir (insan-makina-yazılım-vs.)
  • Tamamen yenidir
  • Bir defaya mahsus gerçekleştirilir
  • Zamanla gelişim gösterir
  • Daha önce yapılmamış olmalıdır
  • Daha sonra birebir aynı şekilde yapılamama
  • Tüm faaliyet belirli/tanımlı değildir

Proje Yönetimi, proje faaliyetlerinin proje hedeflerine ulaşmak için planlanması, raporlanması ve kontrolüdür. Bu faaliyetler gerçekleştirilirken performans, maliyet, zaman sınırlamaları içinde kalınması ve proje büyüklüğünün kabul edilebilir sınırlar içerisinde tutulması gerekmektedir.

Proje Yönetimi süreçlerinin şirketlerde daha fazla karşılaşılır olması özellikle aşağıdaki sebeplerden kaynaklanmaktadır;

  • Projelerin daha kapsamlı olması
  • Küreselleşmenin getirdiği rekabet ortamı
  • İletişimdeki zorlukların artması

Proje Yönetimi faaliyetlerinin şirketlere kazandırdıkları;

  • Kaynakların daha efektif yönetilmesi
  • Toplam kalite’de iyileşme
  • Karlılığın artması
  • Risklere ve Fırsatlara karşı hazırlıklı olmak
  • Daha gerçekçi hedefler belirlenebilir

Dünya’nın en büyük kar-amacı-gütmeyen organizasyonlarından biri olan PMI‘ın (Project Management Institute) resmi yayını olan PMBOK‘a (Project Management Body of Knowledge) göre Proje Yönetimi Süreçleri (Processes) aşağıdaki 5 madde’de toplanmıştır;

  • Başlangıç (Initiating)
  • Planlama (Planning)
  • Yürütme (Executing)
  • İzleme ve Kontrol (Monitoring and Controlling)
  • Kapanış (Closing)

PMBOK‘ta tanımlanan 9 adet Bilgi Alanı (Knowledge Area) vardır;

  • Entegrasyon (Integration)
  • Kapsam (Scope)
  • Zaman (Time)
  • Maliyet (Cost)
  • Kalite (Quality)
  • İnsan Kaynakları (Human Resources)
  • İletişim (Communications)
  • Risk (Risk Management)
  • Tedarik (Procurement)