Makale Özeti

Visual Source Safe, kişisel veya takım halinde geliştirilen yazılım projelerinde üretilen kaynak kodların ve kullanılan destek dosyaların versiyon kontrolünü yönetmenizi sağlayan bir araçtır. Burada yönetmek kavramı özellikle önemlidir. VSS, içine eklenen dosyaların durmadan kopyasını alan basit bir aracın ötesinde, versiyonlar arası değişiklikleri tutan, bu değişimleri ekleme, silme ve değişim bazında gösterebilen, bir dosyanın bir anda sadece bir kullanıcı tarafından değiştirilebileceğini garanti eden, kendi erişim kontrol mekanizması olan ve Microsoft Visual Studio.NET ile tam entegre çalışan bir sistemdir.

Makale

Microsoft Visual Source Safe (VSS) – 1. Nedir?

Visual Source Safe, kişisel veya takım halinde geliştirilen yazılım projelerinde üretilen kaynak kodların ve kullanılan destek dosyaların versiyon kontrolünü yönetmenizi sağlayan bir araçtır. Burada yönetmek kavramı özellikle önemlidir. VSS, içine eklenen dosyaların durmadan kopyasını alan basit bir aracın ötesinde, versiyonlar arası değişiklikleri tutan, bu değişimleri ekleme, silme ve değişim bazında gösterebilen, bir dosyanın bir anda sadece bir kullanıcı tarafından değiştirilebileceğini garanti eden, kendi erişim kontrol mekanizması olan ve Microsoft Visual Studio.NET ile tam entegre çalışan bir sistemdir.


Şekil01 : Microsoft Visual Source Safe Temel Modülleri (VSS Explorer, VSS Administration, VSS Analyzer)

VSS proje dosyalarını kendine ait veritabanlarında tutar. Bu veritabanlarının sayısını artırmak mümkündür. Tüm dosyalar bir veritabanında tutulduğundan sözkonusu veritabanı dosyasını yedeklemek ve bir problem çıktığı zaman ayağa kaldırmak oldukça kolaydır. VSS veritabanı genelde tüm yazılım geliştiricilerin erişebileceği bir ağ sunucusunda konumlandırılır. Bu sunucular üzerinde standart olarak yedekleme yapıldığından, ek bir işleme gerek kalmadan, proje için yedekleme işlemi yapılmış olur.

VSS içerisinde kendi kimlik doğrulama mekanizmasını kullanır; işletim sisteminin (Windows) ve aktif dizin (Active Directory) dahilindeki kullanıcı doğrulama mekanizması ile entegre değildir. Bu bağlamda, VSS yönetim modülünde, her kullanıcı (yazılım geliştirici) için bir kullancı hesabı açılması gerekir. Proje dosyalarının statüsü, geçmiş versiyonların kimler tarafından ne zaman oluşturulduğu bu hesaba bağlı olarak oluşturulur. Bir proje dosyasının bir anda kimin tarafından değiştirildiği de o anda görülebilmektedir.

Microsoft, VSS ürününü oldukça uzun zaman önce geliştirmiş ve kullanıma sunmuştur. Bunun nedeni VSS gibi bir aracın yazılım geliştirme sürecinin olmazsa olmaz parçalarından birisi olmasıdır. Buna karşın, günümüzde bu aracı kullanan yazılım geliştirici sayısı tatmin edici düzeyde değildir. Kurumsal şirketlerin bilgi işlem deparmanlarının ve yazılım üreterek para kazanan yazılım şirketlerinin bir bölümünün, halen VSS gibi bir kaynak kontrol sistemini kullanmıyor olması oldukça şaşırtıcıdır. Yazılım geliştirme sürecinin en önemli çıktısı olan kaynak kodların ve proje dokümanlarının güvenliği konusunda daha hassas olunması gerekmektedir. Burada güvenlik kavramı kaynak kodun dış saldırılardan korunmasından daha farklı bir anlam taşımaktadır. Güvenlik açısından riski oluşturan, aslında yazılım geliştirme sürecinin doğasından gelen özellikleridir.

Öncelikle yazılım geliştirme sürecinin doğal bir parçası olarak, geliştirilen kodlar üzerinde sürekli değişiklikler yapılmakta, bazı durumlarda, yeni yapıdan eskiye dönmek gerekebilmektedir. VSS gibi kod kontrol sistemi kullanılmadığı durumlarda, dosyalar her değişiklikte bir yere kopyalanıp yedeklenemediğinden, eskiye dönmek mümkün olmamaktadır. Bu durumda da ilgili kodların tekrar yazılması gerekmektedir. Bir diğer risk, aynı kodun aynı anda birden fazla kişi tarafından değiştirilmesi durumunda ortaya çıkar. Böyle anlarda geliştirilen kodların birisi kaybolabilir. Aynı durumda, tek başlarına düzgün çalışan yeni kodlar, bir araya geldiklerinde hatalara neden olabilirler. Bu bağlamda VSS bir proje dosyasının bir anda yalnızca bir kişi tarafından değiştirilebileceğini garanti eder. Bu kısıtlamanın gerekliliğini daha iyi anlayabilmek için şu benzetmeyi kullanabiliriz: Bir kodun aynı anda birden fazla kişi tarafından değiştirilmesi ile bir tartışmada birden fazla kişinin aynı anda konuşması arasında bir fark yoktur. Böyle bir tartışmadan ne kadar tutarlı bir sonuç çıkarsa, aynı anda değiştirilen kodlar da, o kadar birbiri ile tutarlı ve uyumlu olur. Bir konuşma, aynı tartışmadaki diğer konuşmalara ne kadar bağlıysa, bir yazılım geliştirici tarafından bir proje dosyasında yapılan değişiklikler de, genellikle diğer yazılım geliştiricinin yaptığı değişikliklere o derecede bağımlıdır. Burada tabii ki yazılım geliştiricilerin halen dikkatli olması ve gerçekleşebilecek kayıplara karşı duyarlı olması gerekmektedir.

VSS kullanılması oldukça kolay bir araç olup, sürecin gereklerine paralel olarak bazı noktalarda esnek özelliklere de sahiptir. Geliştirme sürecinde bazen, VSS’in kurulu olduğu sunucuya erişimin mümkün olmadığı durumlar (örneğin müşteri lokasyonunda destek verirken) ortaya çıkabilir. Böyle durumlarda VSS ile bir süre için bağlantıyı kesip, lokalde çalışmak mümkündür. Tekrar VSS’e bağlanıldığında, VSS değişen kodları algılar ve gerekli uyarıları yapar. Bu noktada yapılması gereken VSS veritabanındaki kodlar ile lokaldeki kodları karşılaştırmak ve uygun işlemi yapmak olacaktır. VSS bu noktalarda kullanıcı için gerekli seçenekleri sunmaktadır.

VSS tüm özellikleri ile takım organizasyonunu kolaylaştıran bir araçtır. Proje dahilindeki bir veya birden fazla dosya bir kişiye, bir gruba ya da web ortamına aktarılmaya hazır olduğunda, bu işlem VSS üzerinden kolayca yapılabilir. Bu açıdan VSS, proje dosya paylaşımı için de uygun bir araçtır. Tüm bunların yanında VSS, Microsoft Access, Visual Basic, Visual C++, Visual FoxPro ve Microsoft Visual Studio.NET ile entegre biçimde çalışır. Bu yolla, uzun zaman VSS modüllerini hiç açmadan, VSS’in avantajlarından faydalanmak mümkün olur.

Burada VSS’in bir alternatifinden de bahsetmekte fayda var. Microsoft’un sponsorluğunda geliştirilen www.gotdotnet.com sitesi içerisinde de, VSS benzeri bir kaynak kod kontrol ve paylaşım sistemi bulunmaktadır. Bu sistem daha çok aynı proje için, dağınık lokasyonlarda çalışan amatör yazılım geliştirme takımları için geliştirilmiştir. Böyle durumlarda ortak bir ağ sunucusuna erişmek mümkün olmamaktadır. Site içinde bir çalışma alanı (workspace) oluşturularak, ortak proje dokümanlarını saklamak ve paylaşmak için bir alan oluşturulur. Siteden indirilen üç tipteki uygulamacık yardımı ile yazılım geliştirme aracınız ile site arasında entegrasyon sağlanmaktadır.

Bu yazımızda, Microsoft’un proje dosyalarının yönetimi için geliştirmiş olduğu Visual Source Safe uygulamasını genel hatları ile tanımış olduk. Bundan sonraki yazımızda, VSS içerisindeki temel modülleri ve yapıları daha yakından tanıycağız.

Dinçer Özturan
dincerozturan@yahoo.com