Makale Özeti

Microsoft Project’in özellik ve fonksiyon kümesini genişletmek veya diğer sistem ve uygulamalarla entegre edebilmek için farklı alternatif yollar bulunmaktadır. Bu alternatifler genel olarak, istemci temelli ve sunucu temelli olmak üzere iki kategori altında gruplanabilir. Ancak, çoğu çözüm dahilinde hem istemci temelli, hem de sunucu temelli metodlar birlikte kullanılmaktadır. Bu makalede Project 2003 üzerinde yapılacak uygulama geliştirme çalışmalarında kullanılabilecek metodlar genel hatları ile incelenecektir.

Makale

Microsoft Project ve Project Server 2003 ile Uygulama Geliştirmeye “Giriş”


Microsoft Project’in özellik ve fonksiyon kümesini genişletmek veya diğer sistem ve uygulamalarla entegre edebilmek için farklı alternatif yollar bulunmaktadır. Bu alternatifler genel olarak, istemci temelli ve sunucu temelli olmak üzere iki kategori altında gruplanabilir. Ancak, çoğu çözüm dahilinde hem istemci temelli, hem de sunucu temelli metodlar birlikte kullanılmaktadır. Bu makalede Project 2003 üzerinde yapılacak uygulama geliştirme çalışmalarında kullanılabilecek metodlar genel hatları ile incelenecektir.

İstemci Temelli Yaklaşımlar


İstemci temelli yaklaşım dahilinde Microsoft Project’in özellik ve fonksiyonalitesi, VBA, Proje Rehberi (Project Guide) ve Özgün Görünümler (Custom Views), OLEDB Servis Sağlayıcıları (OLEDB Providers), COM kütüphaneleri ve yönetilebilir kütüphaneler kullanarak genişletilebilir. Gelin bu yöntemlere kısaca göz atalım:

Visual Basic for Applications (VBA): Offis Ailesi Uygulamalarının tümünde olduğu gibi Microsoft Project 2003 içerisinde de VBA makro kaydedicisi ve makro yazmak için kullanılan script editörü bulunmaktadır. Bu eklentiler, Project içerisinde tekrarlanan işleri kaydetmenize ve basit makrolar yazabilmenize olanak verir. Bunların ötesinde script editörünü kullanarak, Project’i Microsoft Ofis ailesinin Word, Excel, Outlook gibi diğer üyeleri ile entegre eden daha karmaşık çözümler geliştirmek de mümkündür.

Proje Rehberi ve Özgün Görünümler: Proje Rehberleri Project içerisinde 2002 yılından bu yana bulunmaktadır. Proje Rehberleri proje yönetim hedefleri dahilinde kullanıcıları yönlendiren ve onların belirli işleri yapabilmelerine yardım eden özel sihirbazlar ve görünüm biçimlerinden oluşur. Project üzerinde yapacağınız geliştirme süreçlerinde, varsayılan rehber ve görünümler değiştirilebileceği gibi, yeni rehber ve görünümler de geliştirilebilir. Geliştirme sürecinde, genellikle, bir XML içerik dokümanı oluşturulur ve bu dokümandan geliştirilen işlevsel HTML sayfalarına referans verilir. Sözkonusu HTML sayfalar içerisinde genellikle scriptler yardımı ile Project nesne modeline erişerek özel işlemler yapılır.

Project OLE DB Servis Sağlayıcıları (Providers): Lokal makinedeki bir Project dokümanındaki bilgilere Project OLE DB servis sağlayıcısı yardımı ile erişilebilir. Bu kütüphane kullanılarak ana sunucularda hizmet veren Project Server’lardaki bilgilere de erişmek mümkündür. Ancak, Project Server’dan bilgilere programatik olarak erişmek için, Project OLE DB Servis Sağlayıcısı yerine, bu makalenin sonraki bölümlerinde değinilecek olan Project Bilgi Servisi (Project Data Service) kullanmak daha yerinde bir karar olacaktır. Project OLE DB Servis sağlayıcısı ile iligili daha detay bilgilere, Project’in kurulu olduğu dizindeki PJOLEDB.HTM sayfasından erişielebilir.

COM Eklentileri (add-ins): Project içerisindeki COM (Component Object Model) eklentileri sayesinde, Project ana menüsüne yeni menü elemanları eklemek ve bu menülerden belirli bir işlev için tasarlamış olduğunuz özgün formlar açmanız mümkündür.

Yönetilebilir Kodlar İle Entegrasyon: Microsoft.NET ortamında, VB.NET, C#.NET gibi dillerde yazmış olduğunuz uygulamaları Project’in COM tabanlı nesne modeli ile entegre etmek için, Project 2003 kurulum dizini altında yer alan Primary Interop Assembly (PIA) kullanılabilir.

Project 2003 PIA, normalde Project’in kurulum dizininde bulunmaktadır. “Global Assembly Cache” içerisinden sözkonusu kütüphaneyi görmek için “Windows Başlangıç menüsü”nden, “Çalıştır”a tıklayınız. Açılan penceredeki metin alanına assembly yazınız. Bu komut “Assembly Penceresi”ni açacaktır. Bu pencere içerisinde aşağıya doğru incelerseniz Microsoft.Office.Interop.MSProject kütüphanesini görebilirsiniz. Eğer “Global Assembly Cache” içerisinde, “Project PIA”ini göremiyorsanız; kurulum sırasında sözkonusu kütüphaneleri kurulacaklar arasından kaldırmış olabilirsiniz. Bu durumda “Denetim Masası’ndan “Program Ekle/Kaldır”ı seçeneğinin altında, Microsoft Office için “Değiştir” butonunu tıklayarak “.NET Programmability Support” geçen kısımları bilgisayarınıza yükleminiz gerekiyor. Bu konuda How to: Install Office Primary Interop Assemblies adresindeki makale size yol gösterecektir.

Sunucu Temelli Yaklaşımlar


Proje yönetiminin kurumsal boyuta taşındığı durumlarda, yapılacak uygulama geliştirme faaliyetlerinde Microsoft Office Project Server 2003 ön plana çıkmaktadır. Bu faaliyetlerde genellikle Project Web Access kullanılmakta ve erişilmekte olan web sayfaları sunucu temelli olduğundan, geliştirilecek çözümlerde sunucu temelli metodlar kullanılmaktadır. Buradaki çözümler Microsoft Windows SharePoint Services ile de doğrudan ilişkili olmaktadır.

Project Bilgi Servisi (PDS – Project Data Service): Project Bilgi Servisi (PDS), Project Server için geliştirilmiş XML temelli bir programlanabilir uygulama arayüzüdür (API). PDS, Microsoft Project Server 2003’te 2002’ye oranlar oldukça geliştirilmiştir. Göze çarpan yenilikler arasında, kurumsal projelerin ihtiyaçlarını karşılayacak, zamanlama yöntemleri ve gelişmiş kullanıcı yönetimi sayılabilir.

Project Server’ın diğer uygulamalar ile entegrasyonu genellikle PDS üzerinden yapılmaktadır. Project 2003 SDK’sı içerisinde bu konuda birçok örnek uygulamaya erişmek mümkündür. PDS ile geliştirilebilecek çözümleri sınırlayacak herhangi bir kural bulunmamaktadır bunun da ötesinde Project Server’daki her türlü bilgiye erişmek için Project Bilgi Servisi’nin kullanılması önerilmektedir. Project Server ile ilgili uygulama geliştirme kiti (SDK) dahilinde PDS Extender diye bilinen; PDS’in fonksiyonalitesini genişleten bileşenlerin VB 6.0. ile geliştirilmesi ile ilgili örneklere erişmek mümkündür. Bunun yanında yönetilebilir kodlar ile PDS fonksiyonalitesinin nasıl gelişletilebileceği ile ilgili örneklerde SDK içerisinde bulunmaktadır.

Kurumsal Veri Bakım Servisi (EDM - Enterprise Data Maintenance Service): Project Server 2003 dahilindeki EDM servisi Project Bilgi Servisi (PDS) üzerinde yapılandırılmıştır. EDM servisi, kurumsal projeleri, kaynakları ve diğer özel bilgileri, programatik olarak yönetmek için, ileri düzeyde geliştiricilere yönelik geliştirilmiş bir altyapıdır. Sözkonusu servis, sistemler arasında iletişimin SOAP ile veya XML dosya transferleri üzerinden yürütülmesini sağlamaktadır. Dosya transferi yönteminde, Project Server ile entegre edilmesi istenen sistemlerin belirli bir ağ paylaşımına XML dokümanı kaydetmesi sağlanır. Project Server ise aynı ağ paylaşımını kontrol ederek, gelen dosyaları işleyecek şekilde ayarlanır. Project Server, XML dokümanı içerisindeki verileri işledikten sonra bir cevap dosyasını aynı ağ paylaşımına bırakabilektedir.

Nesne Bağlantı Sağlayıcıları (OLP - Object Link Providers): OLP, Project Server’ı doküman yönetim sistemleri, zaman yönetim sistemleri, kontrat yönetim uygulamaları gibi diğer programlar ile entegre etmek için kullanılır. OLP aynı zamanda Project Server’ın Windows SharePoint servisleri ve Microsoft SharePoint Portal Server ile entegre edilmesi için temel altyapıdır.

Project Server Web Part’ları ve URL Seçenekleri: URL seçenekleri Microsoft Project web erişim arayüzü (Microsoft Project Web Access) dahilinde her sayfada hangi bölümlerin görüneceğini ve hangi alanların görünmeyeceğini belirleyen seçeneklerdir. Buna ek olarak, Microsoft Project Server içerisinde saklanan verilerin şirket çapında görüntülenebilmesi için, Microsoft SharePoint Servisleri ile birlikte kullanılmak üzere geliştirilmiş altı özel Web Part bulunmaktadır.

Bunlara ek olarak Project Server’a ait özel görünümlerden (view) türeyen ve URL seçeneklerini destekleyen kendi Web Part’larınızı yazmanız mümkündür. Bunu yapmak için .NET Framework üzerinde geliştirilmiş assembly’yi kullanabilirsiniz. İşin boyutunu biraz daha büyüterek Microsoft Visula C# ile ek kodlamalar yaparak sözkonusu altyapıyı özelleştirebilmeniz de mümkündür. Bu konuda daha fazla bilgi için “Installing and Using the Custom Web Parts .NET Assembly” başlıklı makaleyi incelemenizi öneririz.

Microsoft Project 2003 SDK’sı içerisinde birçok örnek çözüm bulunmaktadır. Bu çözümler hem Project Bilgi Servisleri’ni (PDS) hem de diğer teknolojileri kullanarak Microsoft Project Server’ı diğer uygulamalar ile nasıl entegre edebileceğinizi göstermektedir.

MSDN’de bulunan, Microsoft Project 2003 SDK’sının tam sürümünde, içerisinde örnek kodlar da bulunan HTML tabanlı bir yardım dokümantasyonu mevcuttur. Sözkonusu dokümantasyon dahilinde aşağıdaki konulara ayrıntıları ile değinilmektedir:

Microsoft Office InfoPath 2003 ile Entegrasyon
Microsoft Windows SharePoint Servisleri ile Entegrasyon
Microsoft Windows SharePoint Servisleri kullanarak Projeye Özel Siteler Yaratılması
Kurumsal Raporlama : Birden fazla Project Server’dan toplanan bilgiler ile oluşturulan raporlar
Veri Ambarı ve Portfolyo Analizi : Project Server Portfolio Analyzer’da kullanılmak üzere SQL Server Analysis Manager ile OLAP Şemaları hazırlama.
Biztalk Server Workflow ile Project Server 2003’ün Entegrasyonu ve İş Süreçlerinin Otomasyonu
Project Server 2003 ile Siebel CRM’in Siebel Solution Starter kullanarak Entegrasyonu

Diğer Kaynaklar


Microsoft Project ve Project Server 2003 üzerine çözüm geliştirme konusudaki en güncel ve detaylı kaynaklar MSDN web sitesinde yerlalmaktadır. Bizler de www.yazgeliştir.com’da Project konusunda makaleler yazmaya ve sizlerle paylaşmaya devam edeceğiz.

Özellikle Microsoft Project Server 2003 üzerinde sağlam uygulamalar geliştirebilmek için Microsoft Project’i iyi kavramak gerekmektedir. Bu nedenle önce Microsoft Project konusuna yoğunlaşmak uzmanlarca tavsiye edilmektedir.

Ayrıca Microsoft Project 2003, Microsoft SharePoint servislerinde olduğu gibi, doğru bir şekilde kurulup konfigüre edilmediğinde sağlıklı çalışmamaktadır. Bu nedenle kurulum aşamasında dikkatli olmak gerekmektedir. Bu bağlamda, kurulum ve konfigurasyon sürecinde Project Server 2003 Technical Library dokümantasyonundan faydalanılması gerekmektedir.

Project Guide and Custom Views

Create a COM Add-in for Microsoft Office Project 2003