Projenin Tasarlanması ve Klasör Alt Yapısının Oluşturulması

Tekrar Merhaba;

CSharp Programlama Dili ile ilgili makalelerimize devam ediyoruz. Bundan önceki makalemde de belirttiğim gibi toplam 15 makaleden oluşacak bir diziyi sizlerle paylaşacağım. Bu 15 makalede amacım Türkiye'de faaliyet gösteren, dış merkezli (uluslar arası) bir firmanın kullandığı bir projenin adım adım nasıl hayata geçtiğini sizlerle paylaşmak, bu paylaşım sırasında da CSharp Programlama Dili ile proje tasarlama ve geliştirme konularındaki tecrübelerimi sizlere aktarmaktır.

 Bu tarz kapsamlı projeleri hayata geçirmeye başlamadan önce en önemli konu yapılan işin analizinin doğru bir şekilde yapılması ve hayata geçecek olan projenin ön taslağının hazırlanmasıdır. Bu konunun doğru yapılabilmesi için talepte bulunan firma ile yapılan görüşmelerin çok büyük önemi vardır. Bu aşamada karşınızdaki kişiler size sadece ne istediklerini anlatmaktadır. Bu aşamadan sonra size düşen, anlatılanları karşınızdaki kişilerinde anlayacağı bir yapıya getirip projelendirmektir.
 
Bundan sonraki makalelerde detayına gireceğimiz proje için yapılan toplantıları özetleyecek olursam anlatmak istediklerimi daha net kavrayacağınızı düşünüyorum. İlgili firma ile yapılan toplantılarda firma sıkıntı yaşadığı konuları aktardı (Yaptıkları işleri, iş akışı sırasında yaşadıkları sıkıntıları özellikle çok uluslu bir yapıya hizmet verdiklerinden dolayı merkezi yönetimde yaşanılan iletişim kopukluklarından bahsettiler). Firma Çin merkezli olup, Türkiye, Almanya ve Kanada'da ana servis ve satış merkezleri olan ve aynı bölgelerdeki müşterilerine satış ve servis hizmeti veren bir yapıya sahip. Bu ülkelerdeki büyük çaplı sanayi firmalarına makine satışı yapıp garanti kapsamında servis hizmeti veren bir firma. Firmanın hayata geçirmek istediği proje kapsamında;
 
  • Bölgelerde yapılan makine satışları takip etmek,
  • Stoklarında bulunan makine sayısını güncel olarak izlemek,
  • Servise giden elemanların günlük faaliyet raporlarını kayıt altına alıp izlemek (Hangi firmaya gidildi, yapılan servis işlemine ait detaylar, sorunun çözülüp çözülmediği vb. konuların kayıt altına alınması)
  • Müşterilerinin web ortamından servis talebinde buluna bilmeleri
  • Yine servis öncesi, web ortamından yapılacak görüşmeler ile sorunun çözülebilmesi ile ilgili forum yapısına sahip yazışma ortamının olması,
    • Servis elemanı ve müşteri firma yetkilisinin yazışabileceği bir ortamın olması
    • Bu yazışmaların merkezden yetkili kişiler tarafından izlenebilmesi
    • Makinede yaşanan sorun hakkında ön bilgi verilmesi, servis elemanının da anlatılanlara göre müşteri firma yetkilisini yapılacak işlemler konusunda yönlendirmesi.
  • Müşterilerin web ortamından servis veya makine ile ilgili şikayetlerini belirtebilmesi
  • Satış elemanlarının günlük faaliyetlerini, kayıt altına alıp izlemek.
    • Hangi müşterilerle görüşmeye gidildi, sonucu ne oldu vb.
  • Hazırlanan sayfaların dinamik olarak çoklu dil desteğini sağlaması
    • Kullanıcı bazında, isteyen kullanıcının web projesini Türkçe, İngilizce veya Almanca olarak kullanabilmesi.
 
Yukarıdaki paragrafta ve maddelerde yapılan toplantılar sonucu istenilen proje biraz daha netleşti ve ana başlıklar altında maddeleştirildi. İstenilen maddelere baktığınızda bir programcı olarak yapmanız gerekenler biraz daha net hale geldi. Yukarıdaki paragrafta ihtiyaç duyulan konulara programcı gözüyle bakıldığında projenin ana klasör yapısı ortaya çıkmıştır.
 
Sisteme girecek olan kullanıcı ve müşterilerin kartlarının açılması, satılacak olan makinelerin ürün kartlarının tanımlanması, servis elemanlarının faaliyet raporlarının izlenmesi, servis elemanları ile müşteriler arasında geçen yazışmaların izlenmesi, müşteri şikayetlerinin izlenmesi, satış elemanlarının faaliyet raporlarının izlenmesi için AdminPanel (Yönetici Paneli) klasörünün oluşturulması ve ilgili sayfaların bu klasör altında toplanması
 
Servise giden teknik servis elemanlarının faaliyet raporlarını gireceği, müşterilerle yazışabileceği ControlPanel (Servis Elemanlarının Kullanacağı Panel) klasörünün oluşturulması ve ilgili sayfaların bu klasör altında toplanması.
 
Müşterilerin servis elemanları ile yazışabileceği ve kullandıkları makinelerle veya gerçekleşen servislerle ilgili şikayetlerini dile getirebilecekleri CompanyPanel (Müşteri Paneli) klasörünün oluşturulması ve ilgili sayfaların bu klasör altında toplanması.
 
Satış görüşmelerine giden teknik servis elemanlarının faaliyet raporlarını gireceği SalesPanel (Satış Elemanlarının Kullanacağı Panel) klasörünün oluşturulması ve ilgili sayfaların bu klasör altında toplanması.
 
Sayfaların genelinde kullanılacak olan filtreleme ekranları için gerekli tarih seçim sayfası, çoklu dil desteği için gerekli olan XML dosyalarının duracağı Tools klasörü
 
Tüm sayfalarda kullanılacak olan resim dosyalarının saklanacağı Images klasörü
 
Tüm sayfalarda kullanılacak olan JavaScript dosyalarının toplanacağı Script klasörü
 
Servis elemanları ve müşterilerinin yazışmalarını gerçekleştirecekleri component olan DevExpress HTML Editors için gerekli DevExpress klasörü
 
Tüm sayfalarda kullanılacak olan kod kontrol işlemlerinin gerçekleştirileceği sayfaların (MS-SQL Bağlantı kontrolleri, şifreleme kontrolleri vb.) App_Code klasörü.
 
Projeye programcı gözü ile baktığınız zaman yukarıda bahsedilen klasörler altında, proje yazım aşaması ilerledikçe onlarca dosya birikecektir. İlk başta önemsiz gibi görünen klasör alt yapısı doğru oluşturulduğu zaman sizde böyle bir projenin sahibi olduğunuzda veya yazılım ekibi içerisinde yer aldığınızda göreceksiniz ki yazılım geliştirme işi çok daha rahat ve anlaşılır hale gelecektir.

Proje Klasör Yapısı

Proje Klasör Yapısı

3 comments

1.  Anonymous (23 Aralık, 2010 - 13:30) says:

makaleniz çok aydınlatıcı teşekkürler. Benim sormak istediğim analiz vs.. herşeyi yaptıktan sonra programlama kısmıyla alakalı. incelediğim bir kaç kapsamlı açık kaynak kod projelerinden bir programcı olarak fazla birşey anlamıyorum.Geliştirilirken farklı yollar izleniyor. Bu benim dile pek hakim olmadığımdanda kaynaklanıyordur sanırım. Bahsetmiş olduğum sağlam altyapılı bir projeyi nasıl yapacağım.Çalışmak istediğiniz yerlerde böyle projeleri tek başınıza yapabilirmisiniz diye soruyorlar.

2.  Anonymous (24 Ekim, 2010 - 14:04) says:

İlerleyen makalelerde projenin dökümantasyonu hakkında tecrübelerinizden bahsederseniz sevinirim. Geliştirme ekibine yeni katılabilecek geliştiriciler veya gerçekleşecek yazılımcı değişikliklerinde projeye adaptasyonu hızlandırmak için nasıl bir dökümantayon izliyorsunuz ?

3.  mpirpanlar (28 Ekim, 2010 - 20:53) says:

İlginiz için teşekkürler. makalelerin devamı gelecek. sitemizi takip etmeye devam edin...