30 Nisan 2011 Cumartesi

Nuget Nedir?


NuGet kısaca anlatmak gerekirse .Net projelerimizde kullanmak istediğimiz açık kaynak kodlu kütüphaneleri kolay ve basit bir şekilde kendi uygulamalarımıza eklememizi sağlayan ve yine açık kaynak kodlu olarak geliştirilen bir Visual Studio eklentisidir. NuGet öncesinde herhangi bir açık kaynak kodlu kütüphaneyi uygulamamızda kullanmak istediğimizde, kütüphanenin gereksinimde olduğu kütüphanelerin de peşinden koşmamız gerekiyordu. Aynı şekilde bu kütüphaneleri güncellemek de ayrı bir sorun teşkil ediyordu. NuGet aracılığı ile bu süreç artık çok daha basit ve hızlı bir şekilde yapılabilir hale geldi. NuGet ile galeriden seçtiğimiz kütüphaneleri projelerimize dahil etmek, güncellemek ya da kaldırmak Apple AppStore’den uygulama indirmek, güncellemek ve kaldırmak kadar basit bir hale getirilmiş. Galeriden uygulama geliştiricilerin kütüphanelerini indirebildiğimiz gibi kendi açık kaynak kodlu projelerimizi de NuGet aracılığı ile paketleyip başka geliştiricilerin beğenisine ve kullanımına sunabilirsiniz.


NuGet Nasıl Kullanılır?

http://nuget.codeplex.com/releases adresinden indireceğiniz NuGet yükleme dosyasını kullanarak veya Visual Studio Extension Manager aracılığı ile kurulumu yapabilirsiniz.


1
Resim-1
2
Resim-2
Kurulumunuzu tamamladıktan sonra NuGet Package Manager Console kullanarak ya da Add Library Package Reference penceresinden yeni paketler yükleyebilir, güncelleyebilir ve ya kaldırabilirsiniz. Unutmadan Add Library Package Reference seçeneği sadece solution açık durumda iken kullanılabilir. Bazı paketler ise sadece console aracılığıyla kullanabilir.

3
Resim-3
4
Resim-4
Varsa lisans sözleşmelerini kabul ettikten sonra NuGet sizin için paketin içeriğini ve ön gereksinimli  kütüphaneleri/paketleri otomatik bulur  ve yükler, gerekli dosyaları çözümünüze/projenize kopyalar, gerekli referansları projenize ekler ve hatta app.config & web.config  ayarlarının güncellenmesi gerekiyorsa bunları da yapar.
Çözümünüzde veya projenizde oluşturulmuş olan packages klasöründe yüklü paketleriniz bir arşiv çeşidi olan .nupkg formatında bulunur. Projenizi derledikten sonra gerekli bin klasörünüzde gerekli .dll görecebilirsiniz. Artık eklediğiniz kütüphaneleri kullanmaya başlayabilirsiniz.
Paket yüklemek için bir diğer yolda (bazı paketler için zorunlu tek yol) Package Manager Console kullanmaktır. UI aracılığıyla yüklemek kadar basit olmasa da bazen sunduğu gelişmiş komutlar yüzünden tercih edilebilir bir yükleme aracıdır. NuGet PM Console komutlarına
http://nuget.codeplex.com/documentation?title=Package%20Manager%20Console%20Command%20Reference  adresinden ve kullanımına da
http://nuget.codeplex.com/wikipage?title=Finding%20and%20Installing%20a%20Package%20Using%20the%20Package%20Manager%20Console adresinden göz atabilirsiniz.

Ayrıca kendi paketlerimizi oluşturmak konusunda http://nuget.codeplex.com/documentation?title=Creating%20a%20Package adresindeki dokümantasyonu inceleyebilirsiniz.

Gördüğünüz gibi işimizi kolaylaştıran, kullanımı da kolay olan ve hızlı gelişen/yayılan NuGet PM  yakında kullandığınız vazgeçilmez araçlardan biri olacaktır.
Cihan Demirel

Property Grid-Bölüm 2

Bir önceki makalemizde property grid nedir, nasıl kullanılır onlardan bahsetmiştik, bu makalemizde property grid üzerinde complex type’ları (sınıf içerisinde sınıfları) nasıl göstereceğimizden ve temel property gridde kullanacağımız bazı editörlerden bahsedeceğiz.

Bir sınıf içerisinde herhangi bir property başka bir sınıfın tipinde ise, property gride bunu belirtmek için type converter attribute’u kullanmamız gerekmektedir.

TypeConverter(GetType(ExpandableObjectConverter))

Yukardaki attribute ile property grid, ilgili propertnin genişletilebilir bir object olduğunu anlayıp, gride o sınıfın propertylerinide getirecektir.


Örnek olarak aşağıdaki gibi bir sınıfımız olsun

Public Class FiyatBilgi
    Private objFiyat As Decimal
    <Description("Ürünün fiyat bilgisi"), DisplayName("Fiyat"), Category("Genel")> _
    Public Property Fiyat() As Decimal
        Get
            Return objFiyat
        End Get
        Set(ByVal value As Decimal)
            objFiyat = value
        End Set
    End Property
    Private objKDVOran As Decimal
    <Description("Ürünün KDV oran bilgisi"), DisplayName("KDV Oranı"), Category("Genel")> _
    Public Property KDVOran() As Decimal
        Get
            Return objKDVOran
        End Get
        Set(ByVal value As Decimal)
            objKDVOran = value
        End Set
    End Property
    Private objOTVOran As Decimal
    <Description("Ürünün OTV oran bilgisi"), DisplayName("OTV Oranı"), Category("Genel")> _
    Public Property OTVOran() As Decimal
        Get
            Return objOTVOran
        End Get
        Set(ByVal value As Decimal)
            objOTVOran = value
        End Set
    End Property
    Public Overrides Function ToString() As String
        Return objFiyat
    End Function
End Class

Bu sınıfı başka bir sınıfın property’si olarak kullanalım.

Public Class Urun
   Private objAd As String
    <Description("Ürün adı"), DisplayName("Ürün Adı"), Category("Genel")> _
    Public Property Ad() As String
        Get
            Return objAd
        End Get
        Set(ByVal value As String)
            objAd = value
        End Set
    End Property
    Private objFiyat As FiyatBilgi
    <Description("Ürün fiyatı"), DisplayName("Fiyat"), Category("Genel"), TypeConverter(GetType(ExpandableObjectConverter))> _
    Public Property Fiyat() As FiyatBilgi
        Get
            Return objFiyat
        End Get
        Set(ByVal value As FiyatBilgi)
            objFiyat = value
        End Set
    End Property
    Sub New()
        objFiyat = New FiyatBilgi()
    End Sub
End Class
1
Property grid yukardaki gibi hiyerarşik olarak fiyat property’sini grid üzerinde gösterilmektedir.

Property gridde ayrıca bazı temel editörleri de kullanabiliriz. Örneğin bir dosya ismi yada bir klasör yolu girmek isteniyor ise bunları editör yardımı ile girdirebiliriz.
· Dosya seçim editörü attribute: Editor(GetType(System.Windows.Forms.Design.FileNameEditor), GetType(UITypeEditor))
 
Protected Friend objExcelFileName As String
    <Editor(GetType(System.Windows.Forms.Design.FileNameEditor), GetType(UITypeEditor))> _
    Public Property ExcelFileName() As String
        Get
            Return objExcelFileName
        End Get
        Set(ByVal value As String)
            objExcelFileName = value
        End Set
    End Property

· Klasör yolu seçim editörü attribute: Editor(GetType(System.Windows.Forms.Design.FolderNameEditor), GetType(UITypeEditor))

 
Protected Friend objFilepath As String
    < Editor(GetType(System.Windows.Forms.Design.FolderNameEditor), GetType(UITypeEditor))> _
    Public Property FilePath() As String
        Get
            Return objFilepath
        End Get
        Set(ByVal value As String)
            objFilepath = value
        End Set
    End Property
· Tarih girme editörü attribute: Editor(GetType(System.ComponentModel.Design.DateTimeEditor), GetType(UITypeEditor))

Protected Friend objBaslangicTarihi As Date
    < Editor(GetType(System.ComponentModel.Design.DateTimeEditor), GetType(UITypeEditor))> _
    Public Property BaslangicTarihi() As Date
        Get
            Return objBaslangicTarihi
        End Get
        Set(ByVal value As Date)
            objBaslangicTarihi = value
        End Set
    End Property


Armağan DÖKER

26 Nisan 2011 Salı

Türkiye’de Yazılım Sektörü, İç Piyasada Yaşanan Sıkıntılar


Daha önceki yazılarımızdan birinde Türkiye’deki Yazılım Sektörüne ve İç Talebe değinmiştik. Bu yazımızda TUBITAK tarafından yapılan bir analizi inceleyeceğiz. Analiz, yazılım sektöründe faaliyet gösteren firmalarda yapılmış olup, önemli veriler içermektedir. İlginç bir veri ile başlayalım, analize göre, Türkiye’de yazılım geliştiren firmaların yaklaşık %89’unun müşterilerle olan ilişkilerde problem yaşadığını göstermektedir. Firmaların %75,7’i müşterinin bilişim sektörünü bilmemesinden şikayet etmektedir. Öyle ki, müşteri bir talepte bulunmasına rağmen sektörden ya da firmadan tam olarak ne beklediğini kendisi de bilmemektedir. Ürün geliştirme süreci boyunca yeni gelen ya da güncellenen istekler projede ve üründe ciddi sıkıntılara neden olmaktadır. Firmaların %45,8’i müşterinin bilişim firmasının çalışma şeklini bilmemesinden dolayı sıkıntı yaşamaktadır. Firmaların %40’ı müşterilerin yerli bilişim firmalarına güvenmemelerinden, yabancı firmalarla çalışmayı tercih etmelerinden şikayet etmektedir.

r1

Şekil 1. Müşteri Sıkıntıları

Firmalara müşteriyi bilinçlendirmede en etkili yolun ne olduğu sorulduğunda, ilk sırayı firma düzeyinde yürütülen ikili ilişkiler almıştır. Bunu, müşteri ile yazılım firmalarını karşı karşıya getiren proje pazarları takip etmektedir. Üçüncü sırada ise müşterinin eğitilmesi yer almaktadır. Sonuç olarak, bilişim ürünlerine ihtiyaç duyan müşterilerin ya da son kullanıcıların yetersiz bilgiye sahip olmaları ve ihtiyaçlarını doğru analiz edememeleri, talep artışını olumsuz yönde etkilemektedir. Dolayısıyla, hem yazılım firmalarındaki insan kaynağının hem de müşterilerin ya da son kullanıcıların eğitim alması kaçınılmazdır.

r2
Şekil 2. Müşteri Bilinçlendirme Yöntemleri


Referanslar
1. Nermin SÖKMEN, Türkiye’de Yazılım Üreticilerinin Yetkinlik Düzeyi, Firmaların ve Sektörün Gelişimi cilt 1, TUBITAK, BILGEM

Deniz KILINÇ

15 Nisan 2011 Cuma

Türkiye’de Yazılım Sektörü ve İç Piyasada Talebe Bakış

Türkiye bilişim sektörü her yıl yüzde 14 oranında büyüme göstermekte olup, bilişim pazarının büyüklüğü 30-32 milyar dolara yaklaşmaktadır. Donanımın pazar payı %72 olup, yazılım ve hizmetlerde bu oran %28’dir. Diğer ülkelerdeki ortalamalara baktığımızda donanımın bilişim harcamalarından aldığı pay %39’dur (dünya ortalaması). Bilişim sektörünün gelişebilmesi ve bir sıçrama yapması için Türkiye’de yazılım ve hizmetlerin hızlı ve sağlıklı büyümesi gerekmektedir.

Sektörde 3.500-4.000 civarında firma faaliyet gösteriyor. Bu firmalar ağırlıklı olarak Ankara ve İstanbul’da faaliyetlerine devam ediyorlar. Ankara’da güvenlik ve savunma yazılımları ile kamu sektörüne yönelik yazılım geliştirme hizmetleri sunan firmalar çoğunlukta bulunuyor. İstanbul’da ise sistem yazılımları ve uygulama yazılımları üreten firmaların ağırlıklı olduğu görülüyor. İzmir ise yazılım konusunda son 3-4 yıldır atakta ve daha çok uygulama yazılımı (ERP, satış dağıtım, depo uyg., HBYS vb.) üretiyor. İhracata bakacak olursak, Türkiye’de 100 civarında şirket 50 ülkeye ve 12 serbest bölgeye yaklaşık 250 milyon dolar yazılım ihracatı gerçekleştiriyor (yazılım ihracatı ile ilgili detaylara önümüzdeki yazılarda değineceğiz).


Türkiye’de bilişim sektöründe ürün geliştiren firmaların neredeyse tamamı İç Pazar taleplerine karşılık vermek için ortaya çıkan bağımsız yerli firmalardır. Dolayısıyla iç pazar taleplerinin kendisi bu firmaların faaliyet alanlarını belirlemektedir. Sektörde yazılım ürünü geliştiren firmaların neredeyse %50’si imalat, otomasyon ve yönetim alanında hizmet vermektedir. Firmaların işletme maliyetlerini azaltma ve verimliliği arttırma gibi hedefleri olduğu sürece, bu sektörde, yeni yazılım ürünlerine ihtiyaç duyulacaktır. Bilgi güvenliği, yapay zeka, karar destek sistemleri ve haberleşme teknolojilerindeki son gelişmelerin bu sektörlerde kullanımıyla ve yazılım ürünlerine eklenmesiyle, piyasaya tamamen yeni çözümler sunulabilir.

Finans, bankacılık ve sigortacılık sektörüne getirilen denetleme mekanizmaları ile bilişim bu sektörün önemli bir parçası olmuştur. Firmaların %24’ü bu sektörlerde faaliyet göstermektedirler. Bilişim teknolojilerinin yardımıyla sigortacılık sektöründe “eksperlerin” ve sektördeki diğer kurumların faaliyetleri daha etkin bir şekilde denetlenebilmektedir. Bankacılık sektöründe interaktif bankacılık hizmetleri ve internet bankacılığı alanında hızlı gelişmeler yaşanmaktadır.

Türkiye’nin jeopolitik konumu, taşıma ve lojistik sektörünü önemli bir konuma getirmektedir. Depolama, taşıma ve gümrükleme, kişiselleştirme, çapraz sevkiyat, yolda birleştirme ve müşteriye özel işlemler (etiketleme, paketleme, palet bozma vs.) gibi iş süreçlerinin yönetimi için bilişim teknolojilerine ihtiyaç duyulmaktadır. Araştırma yapılan firmaların %20’si taşıma, depolama ve lojistik sektöründe faaliyet göstermektedir.

Kamu sektörüne hizmet veren yazılım firmaları bilişim sektöründeki %31’lik bir dilimdedirler. Özellikle 2000 yılından itibaren AB, tüm kamu hizmetlerinin elektronik ortamda erişilebilir hale gelebilmesi amacıyla “eAvrupa” ve “eAvrupa+” girişimlerini başlatmıştır. 2003 yılında Girişim “e-Dönüşüm” projesi hayata geçirilmiştir. “e-devlet” programıyla kamu, bilişim sektörünün sunduğu yeniliklerle yeniden yapılanma sürecine girmiş ve bu çerçevede pek çok programa imza atmıştır.

Telekomünikasyon sektöründe 2000 yılından bu yana gerçekleşen hızlı yenilenme ile sektörde yenilikçi ürünlere (donanım, yazılım) duyulan ihtiyaç sürekli artmaktadır. Önümüzdeki yıllar mobil teknoloji geliştiricileri ve sektöre mobil iş çözümleri sunan firmalar için oldukça önemlidir. 3G teknolojisinin getirdiği yenilikler, otomatik tanıma sistemleri (yüz tanıma ya da iris tanıma), iş modelleme teknikleri ve veriyi daha mükemmel değerlendirebilecek yazılımlar birlikte kullanılarak yeni nesil mobil iş çözümleri oluşmaktadır. Bu çözümler sağlık, eğitim, lojistik, üretim, finans, bankacılık, satış/dağıtım, sigortacılık sektörlerinde kolay hayata geçirilebilirler.
Referanslar
1. Nermin SÖKMEN, Türkiye’de Yazılım Üreticilerinin Yetkinlik Düzeyi, Firmaların ve Sektörün Gelişimi cilt 1, TUBITAK, BILGEM
2. http://www.bthaber.com.tr/?p=8065

Deniz KILINÇ