Murat Uysal

girişimci / matematik mühendisi / yazılım uzmanı / hislerim ve deneyimlerimden yazılar

NopCommerce Plugin Yapısı Hakkında


NopCommerce üzerinde plugin yapısı çok başarılı şekilde kurgulanmış bir modelleme. Sözü hiç uzatmadan nopCommerce ile ilgili bu yapıyı çok detaya girmeden bir plugin geliştirmek için yapılması gerekenleri özetlemeye çalışacağım.

Öncelikle nopCommerce InstalledPlugins.txt dosyasına sahiptir. Bu dosya App_Data klasörü altında yer almaktadır. Bu dosya içerisinde sistemde yüklü olan pluginler listesi yer alır ve uygulama start aldığında ilgili dosya üzerinde yazılı olan plugin sınıf isimlerine göre dinamik olarak uygulamaya dahil edilir. 

Yeni bir plugin oluşturmak için öncelikle varolan bir plugini kopyalamanız işinizi kolaylaştıracaktır. Bu kopyaladığını plugin üzerinde namespace isimlerini çok dikkatli şekilde oluşturmak istediğiniz namespaces ismine replace etmenizdir.

Bu namespace isimleri düzenlendikten derlediğinizde /Plugins/BenimPluginlerim.OrnekPlugin şeklinde bir klasör altında dll ler oluşturulmuş olacaktır. 

DLL oluşturulduktan sonra halen uygulamanız üzerinde plugin aktif olmayacaktır. Çünkü InstalledPlugins.txt klasöründe yer almadığı için ilgili plugin NotInstalled olarak yönetim panelinde yer alıyor olacaktır. İsterseniz namespace bilgisini installedPlugins.txt klasörüne ekleyebilirsiniz veya yönetin panelinden plugins bölümünden eklediğiniz not installed konumdaki dll i install edebilirsiniz. Her iki durumda da plugin çalışır hale gelecektir.

Uyarı: Eğer plugin içerisinde install() metodu içerisinde db de tablo oluşturma veya plugin ile ilgili dil desteği kaynak kelimeleri de ekleniyorsa yönetim panelinden install yapılması gerekir. Aksi takdirde manuel olarak plugin yüklemesi yapılırsa bu kodlar çalışmayacağı için plugin için gerekli hazırlıklar eksik kalacağı için sorun çıkacaktır.

Eğer her şeyin yolunda olduğundan emin iseniz plugin'i deploy etmek için sadece ve sadece /Plugins/BenimPluginlerim.OrnekPlugin içerisindeki dosyaları sunucunuz üzerinde aynı uzantı altında eklenmesi gerekir. Bu eklenen dosyalar sonrası yönetim panelinden plugin i install etmeniz yeterli olacaktır.

Dikkat: Pluginin oluşturulduğu klasör içerisinde plugine özel dll ler eklendiğinde ilgili dll ler plugin klasörü içerisinde oluşturuluyor. Bu dll ler aynı zamanda Nop.Web içerisinde kullanılan bir dll de olabilmektedir. Bu nedenle plugin klasörü altındaki dll lerin iki kez yer alması yani hem ana /bin klasörü içerisinde hem de plugin klasörü içerisinde olması başta sorun çıkarmayabilse bile ileride ciddi sıkıntıların kaynağı olabilir. 


Teşekkürler iyi çalışmalar.




Comments are closed