Perşembe
AutoCAD, ProgramlamaAutoCAD .NET API ile İlgili Bilmediklerimiz
Sn. Esen Karaduman .NET ile ilgili güzel bir yazı hazırlamış (Bakınız : Autocad .NET API ile programlamaya giriş.). Okurlarımız uzun zamandır AutoCAD programlama dilleri ile ilgili yazılar istiyorlar. Ancak bu tür okurlarımızın sayısı az ve programcılık kapsamlı bir konu olduğundan, daha çok LISP ve kuramsal ağırlıklı yazılara ağırlık veriyoruz. Esen Bey’in yazı dizisine başarıyla devam etmesini ve bizleri aydınlatmaya devam etmesini temenni ediyorum.
.NET, programcılarla tanıştırıldığında Microsoft’un önemli bir iddiası vardı: Herkes alıştığı programlama dilini kullanmaya devam edecek. Gerçekten de ilk sürümde VB, C++ (managed), J# (java) dilleri ve tamamen yeni bir dil olan C# birlikte çıkarıldı. Ancak .NET gerçekten farklı bir platform olarak çıkarıldı ve daha önceden VB6, C++ vb. kod dillerini kullananlar bu platformu değişik buldular. İşin aslı VB6 ile VB.NET arasında hiçbir benzerlik yok. Bu bakımdan .NET framework ana fikrini öğrenmeyen biri, .NET için bir şeyler geliştirmekte zorlanacaktır. Öte yandan Visual Studio 2002, 2003 ve 2005 (şimdi 2008) .NET için öylesine gelişkin ve kolay araçlar getirdi ki, bu söylediğim programların başına oturan kendisini hemen bir şeyler yazabilecek gibi hissediyor. Aşina olmayanların yapacağı şey biraz .NET öğrenmek.
Esen Bey, C# dilini AutoCAD ile birlikte kullanmayı anlatmış. C#, C++ kullananların çabuk adapte olabileceği güçlü bir dil. Microsoft bu dili amiral gemisi olarak görüyor. Bu sebeple Visual Studio içerisinde de özel bir yeri var. Ancak birçok Türkiye’li geliştirici VB.NET konusunda talepler gönderiyor bize. Bu taleplere aslında biraz şaşkınlıkla bakıyorum. Çünkü Visual Studio’yu ve .NET’i bir proje yapacak kadar bilenler ya da en azından bir .NET projesi üzerinde çalışanlar, kullanım açısından VB.NET, C#, J# ya da başka .NET dilleri arasında fark olmadığını, bütün bu dillerin bir arada da kullanılabileceğini ve hepsiyle de AutoCAD programlanabileceğini bilir. Öncelikle şekil 1′e bakarak VB.NET ile AutoCAD hazır giriş kodunu nasıl elde edebileceğimizi görelim.

Figure 1
Bu aşamadan sonrası Esen Bey’in anlattığı gibi gelişiyor ve oluşan kod aşağıdaki gibi oluyor.

Figure 2
Görüldüğü gibi kodlar arasında notasyon dışında pek fark yok. C#’ta ‘using’ direktifi kullanılırken VB.NET’te ‘Imports’ direktifi kullanılıyor.
.NET’in, yazılım geliştiriciye verdiği en büyük kolaylık, yazılan kodların tekrar kullanılabilirliği. Bildiğiniz gibi .NET ile hazırladığınız AutoCAD yazılımlarının uzantısı DLL oluyor. Ve hazırladığınız DLL’i yeni projenize referans gösterirseniz, içerisindeki tüm fonksiyonlara ulaşabiliyorsunuz.

Figure 3
Bu düşünceden hareketle takım çalışması yapabilmeniz, takımınızdaki her yazılımcının kendi alışık olduğu dilde geliştirme yapabilmesi kolaylaşmaktadır. Referans gösterilen .NET modülleri ‘using’ direktifi ile projeye bildirilir (Şekil 4).

Figure 4
Aynı modüller VB.NET projelerinde ‘Imports’ direktifi ile kullanılabilir. Bu işlemler tamamlandıktan sonra bu kütüphaneler içerisindeki fonksiyonlar isim alanları verilerek kullanılabilir (Şekil5).

Figure 5
Şekilde kırmızı ile işaretlediklerim firmamızın kütüphaneleri, mavi ile işaretlediklerim ise AutoCAD .NET kütüphaneleridir.
Gördüğünüz gibi .NET söz konusu ise her dil kullanılabilir. Ancak her dilin kendine özgü kolaylıkları ve güçlülüğü vardır. Bu sebeple biz firmamızda C++ (unmanaged) ve C# tercih ediyoruz. Örneğin bir değişken kümesi (structure) tipindeki veriyi binary olarak kodlamak için en kolay yol C++ kullanmaktır. Ama bu C# için de çok zor bir şey değildir (Şekil 6).

Figure 6
Bu yazıdaki amacımız program kodları verip size bunları açıklamak değil. Bunun yerine .NET dillerinin hangisini seçeceğimiz konusunda biraz bilgi vermek. Bu sebeple şekil 6′daki fonksiyonu açıklamayacağım. Ama sizler de fark etmişsinizdir ki, bu tür bir fonksiyonu hazırlamak oldukça üst seviyede bir deneyim gerektirmektedir. Bu tür bir deneyim sadece profesyonel (para için yazılım yapan) yazılım firmalarında ve akademisyenlerde olabilir. Bu cümleyi buraya yazdıktan sonra yazıyı bağlamadan bir konudan daha bahsetmek istiyorum.
.NET modülleri binary dosyalar olmasına karşın içleri çok rahat okunabilir dosyalardır. Kewin Walmsley Through the Interface: Protecting intellectual property in AutoCAD … başlıklı yazısında bu konudan bahsetmişti. Şimdi ne demek istediğimiz hakkında bir örnek resim verelim (Şekil 7). Bu işlemi reflector denilen 1MB lık kurulumu bile olmayan bir yazılım yapıyor. .dll ya da .exe dosyanızın içerisinde neler olup bitiyor hepsini görebiliyorsunuz. Ancak AutoDESK ve Microsoft gibi firmalar bile kodlarını korumaya gerek duymuyorlar. Siz de kodunuzu korumaya ihtiyaç duymayabilirsiniz. İllaki korumak isterseniz de piyasada bu işi yapan yazılımlar var.

Figure 7
Bu bilgiyi de verdikten sonra yazımızı bağlayabiliriz. Eğer profesyonel yazılım yapmak istiyorsanız, öncelikle profesyonel bir yazılımcıyı firmanızın bünyesinde tutmanız gerekiyor. Geliştireceğiniz projeye ve ekibinizin olanaklarına göre yazılım dilini seçmeniz gerekiyor. Güçlü bir proje için bu C++, en azından C# olmalı. .NET kullanıyorsanız, çok güçlü arabirimler (user interface) hazırlayabilirsiniz ve kodlarınızın tekrar kullanılabilirliği daha kolaydır. .NET arabirimine managed C++ ile Object ARX üzerinden de ulaşabilirsiniz.
Esen Bey’e hazırladığı yazı için teşekkürü borç biliriz. Yazı dizisinin devamını heyecanla bekliyorum. Tüm yazılımcı arkadaşlara buradan iyi şanslar dilerim.
Viewed 328 kere okunmus. Bu hafta: 5 Bu gun: 2 En son: 4 December 2008, 1:33Post Tags: AutoCAD, Programlama
Related Posts
Popular
- DOGRULT.LSP: Seçilen Çizgiyi En Yakın Dik Açıya Getirir
12/03/2008 10:14 am
3 Comments - 289 Adet elektrik sembolü Download köşemizde
12/02/2008 10:06 pm
5 Comments - Bilgisayar Tarihi 2
12/01/2008 05:58 pm
2 Comments - Gelecek Nesil Depolama Ortamı: SSD (Katı Halli Disk)
11/28/2008 07:51 pm
2 Comments - Kaynak Kodlarınızı Web Sayfanızda Fiyakalı Gösterin
11/27/2008 05:35 pm
1 Comment