in .net, geliştirme, orchard core

Orchard Core: Modern ve Modüler Uygulama Geliştirme Çatısı

İki yılı aşkın süredir tam zamanlı olarak üzerinde çalıştığım ve geliştirdiğim uygulamaların çekirdeğinde yer alan Orchard Core’u biraz tanıtmak istiyorum. Orchard aslında 2010’lı yıllarda .Net ile geliştirilmiş bir CMS olarak ortaya çıkmış ve uzunca zaman CMS üzerinde derinleşmiş bir uygulama idi. O zamanlarda kullanıp, bir kaç web sitesi yayına almışlığım vardı. .Net ekossiteminin gelişmesi, platform bağımsız ve açık kaynak olması ile beraber, Orchard –> Orchard Core olarak geliştirilmeye ve evrilmeye başlandı. İlk beta versiyonu 2018 yılında yayınlandı ve şuan en güncel sürüm olarak 1.8.3 bulunuyor.

Orchard Core’un gelişimini takip ettiğim ve geçmiş versiyonlarıylada geliştirmeler yaptığım için, yeni geliştireceğimiz web uygulamaları konusunda ciddi bir adaydı. Modern, çoklu kiracılı, modüler bir uygulama geliştirmek meşakkatli, çokça altyapıya emek isteyen bir iş. Çok özel ihtiyaçlarınız yada kısıtlanırız yoksa, bir uygulama geliştirme çatısı kullanmak çok avantajlı. Özellikle küçük ve orta büyüklükteki geliştirim yapan şirketlerin bu tarz araçlar kullanmasını çok faydalı buluyor ve Orchard Core gibi uygulamaların üzerine eğilmeleri gerketiğini düşünüyorum.

Web tabanlı bir uygulama geliştirmek isteyen ve ASP.NET Core ile geliştirim yapabilecekler için Orchard Core bir çok özelliği kendi bünyesinde barındırıyor. CMS özelliği isteyin yada istemeyin, Orchard Core modüler olduğu için, sadece uygulama geliştirme altyapısı olarakta kullanabilirsiniz, CMS modülü vasıtasıyla içerik girip, bu içerikleri çok esnek bir yapıda yönetebileceğiniz yetenek setinede sahip olabilirsiniz. Çoklu kiracılı yapıyı desteklediği için, tek bir kurulumda N tane uygulamayı izole olarak yönetebilir, her birinin gerekiyorsa yönetim ekranları birbirinden izole olarak çalışabilmektedir.

“Document database” yaklaşımı sayesinde, veriler json formatında tutulmakla birlikte, SQL ile veri çekebilmeye destek vermesi için, her bir veri tipi için index tablolarını otomatik oturularak veri tutulmakta ve hibrit bir yaklaşık benimsenmiştir.

Orchard Core’un bir çok temel özelliğine https://docs.orchardcore.net/en/latest/ sayfasındaki dokümantasyonlardan erişebilirsiniz.

Orchard Core kullanan bir geliştirici, biraz fullstack takılarak, zengin bir web uygulamasını tek başına geliştirebilir. Sağladığı tema ve modül destekleri, liquid desteği, graphql, rest api desteği, yönetim panelinden sql ve dinamik veri yapıları desteği bir çok önemli bir çok özelliği bünyesinde bir harmoni ile bulundurması sayesinde, geliştiricilerin sadece ihtiyaç ile ilgilenmesine olanak sağlamaktadır.

Bir ihtiyaç için geliştirim yapacakken, bunun logu nasıl yazılacak, veriyi girip, yönetebileceğin ekranlardan, yetkilendirmeye, api desteği sunmaya, cache ve performans gibi noktalara takılmadan geliştirebilmeye olanak sağlaması ciddi katalizör oluyor.

Özellike C# ile web uygulaması geliştiren kişilerin, C# ile haşır neşir olmuş arayüz gelişticilerin kullanmasını faydalı buluyorum.

Orchard Core ile ilgileniyor veya bir destek ihtiyacınız varsa, eposta ile iletişime lütfen çekinmeden geçin.

Faydalı linkler:

https://github.com/OrchardCMS/OrchardCore

https://www.youtube.com/@Lombiq

.Net Core 2.0 & .Net Standart 2.0 – DailyBuilds

.Net Core, 1.1 versiyonuyla barındırdığı kütüphaneler ile birlikte benim için gayet stabil hale gelmişti ki, ufukta görünen 2.0 (veya 1.2) ve netstandart 2.0 süürmleri, full framework’ten uyarlanacak yüzlerce api’leri ile çok cazip hale gelmeye başladı.

Benim gibi .Net Core üzerinde uygulama geliştiriyorsanız ve size aşağıda ki grafikte bulunan kütüphaneler gerekiyorsa, şimdiden dailybuild versiyonunu indirip denemeye başlayabilir, nisan 2017 gibi release olması beklenen versiyona önceden göz atabilirsiniz.

Öncelikle; https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md adresinde linki bulunan size uygun son build’i indirin, sonrasında “dotnet –version” ve “dotnet –info” komutlarıyla sdk’nın doğru kurulduğuna “2.0.0-*” versiyon numarasını görüp emin olun.

Hangi versiyonda çalışacağınıza tam emin olmak istiyorsanız, “dotnet new” komutuyla oluşturacağınız mini projenin csproj dosyasında ki versiyonu dikkate almalısınız.

Mevcut projenizde MSBUILD kullandığınızı varsayarsak, csproj dosyasını aşağıda ki gibi düzenleyin;


<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeFrameworkVersion>2.0.0-beta-001507-00</RuntimeFrameworkVersion>
</PropertyGroup>

Gerekli olacak dev nuget paketleri için, Nuget kaynağı olarak https://dotnet.myget.org/F/dotnet-core/api/v3/index.json adresini ekleyin.

Sonrasında daha önceden Full Framework’te kullandığınız bir çok kütüphanenin artık tamamen uyarlandığını göreceksiniz.

Happy Hacking!

 

EF 7 – Reverse Engineering

Entity Framework 7 ile birlikte, Database-First olarak adlandırılan, mevcut veritabanından edmx üretme ile kullanılan yöntem son bulmuş oldu. Fakat benim gibi, database first kullanmasanızda, direk code first olarak modelleri ve context’i kendiniz oluşturmak istemeye bilirsiniz. Aslında sizin bir reverse engineer’a ihtiyacınız bulunmakta. EF 6 ile kullanıla bilen bir visual studio eklentisi ile bu işi yapabiliyorduk, yani mevcut veritabanından ilgili model, mapping ve context’i üretebiliyorduk. (https://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d)

EF 7 ve .Net Core 1.0 ile birlikte hayatımıza girmeye başlayan yeni yaklaşımlardan biri command tool’lar oldu. Artık diğer bazı dillerde olduğu gibi komut ekranından bir çok işlemi yapabilmemiz mümkün hale geliyor. Bu command line tool özelliklerinden bizim kullanacağımız ise “EntityFramework.Commands” özelliği. Adım adım ilerleyecek olursak;

  • Sisteminizde .Net Core 1.0 ile birlikte RC1 kurulu olmalı (https://go.microsoft.com/fwlink/?LinkId=627627)
  • Projeniz project.json dosyasında aşağıda ki command ve paketler olmalı;
  • "dependencies": {"EntityFramework.Core": "7.0.0-rc1-final", // core EF7
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final", // MSSQL provider for EF7
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final", // MSSQL design tools required for database rev eng
    "EntityFramework.Relational": "7.0.0-rc1-final", // shared between relational stored in EF7
    "EntityFramework.Relational.Design": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final" // EF7 dnx command line interface commands
    },"commands": {
    "ef": "EntityFramework.Commands"
    }

dnvm

  • Bir command promt açın (cmd.exe) ve “dnvm” komutunu yazın.
  • solda ki ekran görüntüsünde  de göreceğiniz üzere dnvm’i göreceksiniz.
  • bu adımda “dnvm upgrade” komutu vererek, dnvm’ i güncellemeniz ve command-line araçlarının aktifleştirmesini sağlamanız gerekiyor.

 

dnx

  • dnvm’i upgrade ettikten sonra, Dnx (.Net Execution Environment)’ ı çalıştırmanız gerekiyor. Eğer başarılı bir dnvm upgrade işlemi yaptıysanız, dnx komutu sonucu yanda ekranı göreceksiniz.
  • dnx komutunu başarıyla gördüyseniz, “dnx ef” komutu için projenizin içerisine gitmelisiniz, project.json dosyasının olduğu dizine.
  • dnxef
  • İlgili dizine girince “dnx ef” komutuyla entity framework commant tool’u görmüş oluyoruz.
  • göreceğiniz üzere, database, dbcontext ve migrations komutları mevcut, biz dbcontext üreteceğimiz için aşağıda ki komutu çalıştırıyoruz;
  • dnx ef dbcontext scaffold "server=ServeName;database=DBNAME;user id=sa;password=PassWord" EntityFramework.MicrosoftSqlServer -a -c "DbContextName" -o Model

Komutu verdikten sonra ilgili model ve context’in projenizde üretildiğini göreceksiniz. EF 6 kullanıcıları için mapping’ler baya değişmiş gelicektir, artık Fluent Api’ye geçiş yapıyoruz, buyrun (https://ef.readthedocs.org/en/latest/modeling/index.html#fluent-api)

RC2 güncellemesiyle birlikte, “dnx” komutunun “dotnet” ile değişiceğinizde dipnıt olarak belirteyim.

Emrah.

java2net / Jar dosyayı c# projede kullanmak / IKVM

Farklı sebeplerden dolayı jar projeyi, c# projenizde yahut tam tersi olan c# projenizi java projeniz içerisinde kullanmak isteyebilirsiniz. En basit yöntemiyle jar projeyi c#’ta yeni process başlatarak kullanabilirsiniz. Fakat eğer kullanmak istediğiniz java projesi uygunsa, projeyi dll yada exe haline getirip kullanmak daha kolay ve yönetilebilir olacaktır.

IKVM  – java2net yada net2java için harika bir dönüştürücü.

Örnek olarak bir java projemiz olduğunu varsayalım, projenin çıktısı projemiz.jar olsun. ve projemizinde kütüphane bağımlılıkları olduğunu varsayalım, bunlarda “lib” klasörünün içerisinde abc.jar, cde.jar olsunlar. Varsaydığımız projemiz.jar dosyasını ikvm’nin binary versiyonu indirip (http://weblog.ikvm.net/),  java jdk yüklü makinanızda herhangi bir yere çıkartın, ikvm

 

ardından, jdk yüklü cihazınızda command promt açıp; “cd  ikvm-8.0.5449.1\bin” komutuyla ikvm path’ine geçiniz ve mecvut komut satırı artık ikvm çalıştırmaya hazır, bunu denemek için sadece ikvm yazıp, ikvm versiyonunu öğrenebilirsiniz.

Jar dosyasımızı dll yapmak için, projemiz.jar dosyasını ve bağımlılığı olan lib klasörünü ikvm bin klasörünün içerisine kopyalıyoruz. sonra dönüştürmek için gerekli komutları veriyoruz.

ikvmc -out:projemiz.dll -recurse:lib\*.jar projemiz.jar

-out : çıktımızın ismi,
-resource : bağımlılıklar, örnekte lib klasörünün altında ki tüm .jar dosyalarını eklemesini belirttim.

örnekte oluşturulacak .dll dosyasını release modda çıkaracaktır, eğer debug yapabilmek istersek;

ikvmc -debug -out:projemiz.dll -recurse:lib\*.jar projemiz.jar

şeklinde belirtmemiz yeterli olacaktır.

Oluşturduğumuz .dll yada exe çıktısını ise projemize referans olarak ekleyebilir ve ilgili nuget paketini yükleyerek kolayca kullanabiliriz. Nuget paketi şart değil, gerekli olan ikvm dll dosyalarını sizde ekleyebilirsiniz fakat nuget daha kolay olacaktır.

Ikvm nuget paketleri : http://www.nuget.org/packages/IKVM/

Yararlı olması dileğiyle.

git fetch upstream / “Fork” ladığınız depoyu orjinal depodan senkronize edin

Fork’ladığınız projenin zamanla güncellenmesi sonucunda mevcut deponuz geri kalabilir ve önemli bug fix ve güncellemelerden mahrum kalmış olabilirsiniz. Bu durumun üstesinden gelmek ve kolayca çözmek için mevcut git kütüphanesi yeterli.

1-  öncelikle git command prompt ekranında git remote -v

# origin  https://github.com/adiniz/forkladiginizProje.git (fetch)
# origin  https://github.com/adiniz/forkladiginizProje.git (push)

remote -v komutu çıktısında göreceğiniz üzere fetch ve push adresleri kendi oluşturduğunuz deponun adresleri, şimdi aşağıda ki şekilde upstream linklerini ekleyerek orjinal deponun linkini ekliyoruz;

2 – git remote add upstream

git remote add upstream https://github.com/octocat/Spoon-Knife.git

remote add upstream komutuyla, orjinal deponun adresini ekliyoruz, bu sayede fetch yapacağımız zaman orjinal depoyu seçebileceğiz. Komut ile ekledikten sonra tekrardan git remote -v komutuyla origin ve upstream adreslerini görebiliriz.

# origin  https://github.com/adiniz/forkladiginizProje.git (fetch)
# origin  https://github.com/adiniz/forkladiginizProje.git (push)
# upstream https://github.com/orjinalRepoAdi/ORIGINAL_REPOSITORY.git (fetch) 
# upstream https://github.com/orjinalRepoAdi/ORIGINAL_REPOSITORY.git (push)

3 – git merge upstream/master
İkinci adımda eklemiş olduğumuz orjinal depodan artık istediğimiz branch’e merge yapabilir yada direk fetch yapabiliriz.

Referanslar;
1 – https://help.github.com/articles/fork-a-repo/
2 – https://help.github.com/articles/syncing-a-fork/

Paradoks

Yaşadığımız Alem’de bolca paradoks mevcut. Bazıları senelerdir insanların cevabını aradığı, bir kısmı ise mantıklı cevabı verilebilse de kısım insanlar tarafından yeterli görülmeyen cinsten. Jim Al-Khalili’nin son kitabı Paradoks’tan yola çıkarak yazdım bu makaleyi (Al-Khalili kimdir?).

Paradoks kelimesinin wiki karşılığı;

Paradoks, görünüşte doğru olan bir ifade veya ifadeler topluluğunun bir çelişki oluşturması veya sezgiye karşı bir sonuç oluşturmasıdır. Çoğunlukla, çelişkili görünen sonuç veya sonuçların aslında çelişkili tarafları vardır. Paradoks teriminin karşılığı olarak Türkçede yanıltmaççatışkı ve çelişki sözcükleri kullanılmaktadır.

Al-Khalili’nin Everything and Nothing serisini bilenler bilir, üslubu çok kuvvetli ve anlatılması çok zor konuları güzel örneklemeler ile anlatabilen, çözümlemesi zor konuları çok daha alt düzey bir seviyeye anlatmayı başarabilen  bir tarzı var. Kitapta çokça bilenen paradoksları, zamanı geldiğinde gerektiği kadar fizik ile bize anlatmış ve paradoks’ların çözümlerinede yer vermiş, sadece paradoks okumuyor, çözümü ve arkasında ki matematiksel doğruyuda öğreniyorsunuz.

Paradoks ile ilgisi olan güzel bir video ile paylaşımı bitireyim;

Barry Schwartz Seçme Çelişkisi Üzerine

Visual Studio 2012 – TFS 2012 | Neler Yeni ?

Asp.Net uygulamalarını Visual Studio 12 Rc’den bu yana 12 üzerinde geliştirmekteyim. Direk Rc ile başlayan birliktelik her geçen zaman daha da pekişiyor, 2010 kullanıcılarını önce hızı ve arayüzü vuruyor kalbinden, hiç kimse kullandığı IDE’nin hantal olmasını hatta mümkünse üçüncü parti yazılım kurduğunda yavaşlamasını istemez.  Bir ReSharper, productivity tools, python tools vs bunlar hep 2010’da yavaşlamaya çok ciddi sebep olan uygulamalardı, Microsoft bunların artık yavaşlatmadığını söylesede tamda öyle değil fakat hakkını yememek lazım VS 12 bu konuda epey başarılı. VS 2010 yada 2008’den 12 ortamına balıklama geçenler genelde 12 ile birlikte gelen incelikleri bilmiyorlar ve araştırmaya gerekte duymuyorlar (Çoğunluk .Net geliştiricisi tipi).

Kısa kısa neler yeni, keşfettiklerim;

VS 12 yenilikleri :

– Methodların bağımlılıkları ölçülebiliyor, studio 10’a kadar bağımlılığı normal kabul ediyor.

– Async ve await tam desteklenir hale geldi, önceden async method yazmak zordu, .net 4.5 ile gelen übüyük geliştirmelerden biride bu oldu.  .Net 4.5 ile gelen yenilikler  burada.

– Aspx de yaptığınız değişiklikler örn: textbox’ın label olarak değiştirilmesi gibi yapılan işlemler designer kısmına yansımıyordu ve build olmuyordu. Bu küçük ama miğde bulandıran hata sonunda giderilmiş.

– Artık C# ve VB’den sonra Js, Css, JQuery gibi dillerde VS 12’de ana dil olarak kabul edilmiş ve tam intellicence desteği getirilmiş. Örn: Js kodunda “go to declaration” diyebiliyoruz.

– Css tarafında ciddi geliştirmeler var, yazılan kodun diğer tarayıcılarda da sorunsuz görüntülenmesi adına çeşitli önermelerde bulunuyor, explorer için yazdığınızın webkit’te düzgün görünmesi için bunuda ekleyin diyebiliyor.

– VS 12 içine Page Inspector eklenmiş, studio içinde açılan sayfanın inspector vasıtasıyla incelenmesi harika bir özellik, ekstra gereksinimlerden kurtarıyor.

– NuGet çok önemli hale gelmiş, NuGet nedir diyenler için burada. Python da ki pip yada easy_install.

– Code Analyze aracını kullanarak uygulamanızda ki hataları, yanlış kullanımları bulabiliyorsunuz, sizinde hata kabul ettiğiniz bulguları bug olarak atayabiliyorsunuz, otomatik hata yeri vs gibi detaylı bilgide eklenmiş oluyor.

– Production with IntelliTrace harika bir özellik olmuş, bu konuyu detaylıca burada bulabilirsiniz. Kısaca, canlı ortamda oluşan hataları sistem logluyor ve bunu VS 12’nin açabileceği bir formatta kayıt ediyor, canlıda oluşan hatanın tam olarak neden oluştuğuna dair geliştiriciyi ciddi bir ayıklama işleminden kurtarıcı verileri içeriyor.

– Suspend özelliği eklenmiş, debug yaparken çok can alıcı bir noktaya gelirizde olmaz olur başka bir işe bakmamız gerekir ya, işte o esnada hayat kurtarabilecek bir özellik. Suspend yaptığınız debug işlemine aynı kaldığınız nokradan Resume diyerek devam edebiliyorsunuz. Suspend tuşu nerede ? Suspende “automagically” ünvanını layık görmüşler 🙂

– Architecture Explorer sayesinde yazılım en dış katmandan içe doğru incelenir hale gelmiş, projeye yeni dahil olanların adaptasyonunu hızlandırabilecek bir özellik.

– Dahili Mockup aracı gelmiş, bir çok şirket ücretli mockup araçları kullanır, müşteriye yada geliştiriciye bunlar üzerinden ilerleyerek geliştirimin sağlıklı ilerlemesini sağlar, VS 12 ile ekstra araca gereksiniminiz kalmıyor ve PowerPoint yüklü her makinada oluşturulan mockup’ı açabiliyorsunuz.

– Microsoft Test Manager 2012’ye Exploratory Testing özelliği eklenmiş. Kısaca; önce test ediceğiniz projeyi tfs’ten seçiyorsunuz, testi başlatıyorsunuz ve test yapıcağınız uygulamayı gezmeye başlıyorsunuz, bu sırada test manager sizin her adımınızı detaylıca kayır ediyor, sizin bul buldugunuz noktada “create bug” diyerek bug kaydı açabiliyorsunuz. Sıradan bir kayıda göre, aldığınız ekran görüntüsü, yaptığınız işlemler, izlediğiniz adımlar otomatik bug kaydına ekleniyor ve geliştiricinin önüne sağlam bir rapor gelmiş oluyor. Geliştirici açısından güzel bir yenilik.

– Coded UI Test özelliği bence dikkate değer bir özellik. Birçoğumuzun yazdığı ve kullandığımız Unit Testlerin Arayüzden yapılan versiyonu gibi düşünebiliriz. File – New  – Project – Test – Coded UI Test diyerek oluşturabiliyoruz testi. Örneğin üyelik formu düşünelim, Coded UI testi başlattıktan sonra, üye olmaya çalışıyoruz bu esnada aslında test yapmış oluyoruz. yaptığımız bu testi kayıt altına alıyor ve bunu istediğimiz kadar random veriylede besleyerek arka arkaya yaptırabiliyoruz. Test Manager 12 ile birlikte projelerimiz için oluşturacağınız Coded UI testlerini her build sonrasında çalıştırarık, uygulamanızın her geliştirim sonrasında ki stabilitesini ölçebilirsiniz, bence değerli kısmıda burası.

– Code Clone Analyze, bir diğer güzel bir özellik olan klon kod yakalama&analiz etme özelliği. Büyük projelerde daha doğrusu birden çok yazılımcının birazda kopuk çalıştığı durumlarda karşılaşılabilecek bir durumdur benzer methodları yazmak (aynı işi yapanlar). Bu araç sayesinde bir birine tam eşleşenler ve yakın eşleşenler diye size projenizde ki kodların analizini sunuyor, bulguları refactor için tfs vasıtasıyla atayabiliyorsunuz ve daha bir sürü özellik.

– VS Ultimate özelliği ile birlikte Load Testing geliyor. Bu özellik 2010 Ultimate içerisinde de bulunuyordu fakat çok yol kat etmiş, gerçek bir stres aracı haline gelmiş diyebiliriz. Burada önemli noktaya değinmek lazım; VS içinde gelen stres aracının amacı özellikle asp.net projelerini test etmek, raporlamak ve analiz etmek asla Hp LoadRunner vs uygulamalar ile karşılaştırılmamalı. LoadTesting çok uzun ve bence derin bir konu olduğundan bunu ayrı bir makale ile anlatacağım.

TFS 2012 ile birlikte yeni gelen özelliklerden bazıları ise;

– TeamExplorer vasıtaylı tüm platformlardan Tfs kullanımı sağlanıyor, Eclipse plug-in’i sanırım çıkmış.

– 12 öncesinde workspace olarak sadece server var idi, artık local‘i de eklemişler nihayet. Bu sayede offline modda çalışmak çok kolaylaştı, önceden tfs’e bağlı olmadan çalışmak delirmek için bire bir idi.

– Hala baseline muhabbeti geliştirilmemiş, changeset’ten baseline yapın gibi mantık devam ediyor sanırım.

– ALM yönetimce iyileştirmeler ve daha fazla senkronizasyon sağlanmış, buralar yönetim tarafını ilgilendiriyor. Bakınız fazlası için burada.

 

Tüm bu yeniliklerin Brian Keller (buradan) tarafından notlarını buradan indirebilirsiniz (okumalısınız!). Yine Brian tarafından paylaşılan bu özellikleri kolayca test edebilmeniz için hazırlanmış sanal makineler mevcut onlarıda buradan indirebilirsiniz.

 

 

 

PhoneGap ile Mobil Aplikasyon* Geliştirmek

PhoneGap üst seviye web standtartlarını kullanıp (html5, css3, javascript), Android, Blackberry, iOS, bada, Symbian gibi popüler platformlar için derleme yapabileceğiniz hoş* bir framework.

Mevcut olarak bir sürü alternatifi olduğu düşünüldüğünde phonegap ile geliştirmenin başlıca avantajının yeni sahibi olan Adobe olduğunu belirtmek gerekir. Birliktelik ile  Adobe Dreamweaver 5.5 ile phonegap dahili olarak  geliştirmeye hazır geliyor. Adobe desteği ve sürekli artan geliştirilerinin gücü artı çoklu platform desteği sayesinde parlayan yıldız PhoneGap.

Başlarken;

— Dreamweaver 5.5 kurmanız gerekiyor. Kurduktan sonra başlangıç proje olarak “mobil” ardından phonegap ile başlayabilirsiniz.

— Java SDK kurmalısınız. Malum, android ve java 🙂

— Android SDK kurmalısınız ve Sdk Manager vasıtasıyla Android 2.2 ve bileşenlerini kurmanız gerekiyor.

Bu adaımları geçtikten sonra Dreamweaver ayarlarından “Site – Mobile Applications –  Configure..” adımını izliyerek Android SDK’yı kurmalı veya yolunu göstermelisiniz. Android’i ister kendiniz, istersenizde “easy install” seçeneğiyle kurabiliyorsunuz. Kendiniz kurduğunuz takdirde android kurulu dizini göstermeniz kafi olucak. Android kurulumu konusunda sıkıntı yaşayanlar Dreamweaver’ı güncelleyerek sorunu aşabilirler. Güncelleme sırasında internet bağlantınızın da sorunsuz olması gerektiğini belirteyim. Buradan update’e ulaşabilirsiniz. Güncellemenin getirdikleri burada.

Başlangıç için güzel bir kaç video ders, iyi fikir verebilir;

PhoneGap’in desteklediği özelliklerde şöyle.


Gerekenleri sağladığınız takdirde, uygulamanızı oluşturarak bir güzel mobil cihazınızda kullanabilirsiniz. Android’in similatörü biraz can sıksada (kendi açımdan), iyi fikir veriyor.

Tabi tüm bu işlemleri tanımak adına dreamweaver vasıtasıyla gerçekleştirdim. Eclipse yada Aptana Studio ile phonegap eklentisiyle devam etmeyi düşünüyorum. Sanırım django ile de kullanacağım, gerekli görürsem bununla ilgili küçük bir yazı yazarım.

—————
*Hoş: işe yarar.
*Aplikasyon: içim ısınmadı ama application yerine nispeten türkçe gibi duran kelime.



django-profile kurulumu ve dikkat edilmesi gereken noktalar.

Son yazdığım projede profil uygulamasına gerek duydum ve bunun için django-profile kullandım. Aslında içindeki demo uygulaması ve kurulum yönergeleri oldukça açık, yazma sebebim türkçe çevirisini yapmak niteliğinde.

Öncelikle python dizinine eklemek zorunda olduğunuz uygulamalar;

* Python Imaging Library http://www.pythonware.com/products/pil/ ,
* İndirdiğiniz django-profile içinden çıkan “userprofile” dizinini,
* gdata http://gdata-python-client.googlecode.com/files/gdata.py-1.1.0.tar.gz gdata içinden src klasörünün içindekiler kopyalanmalı.

* Google maps api key edinmelisiniz ve install.txt içindeki şekilde settings.py’yi düzenlemelisiniz.

* installed apps ve url.py değişikliğinide yaptıktan sonra django-profile içindeki media dizininin içeriğini kendi static media klasörünüze kopyalayın.

* django-profile/demo/templates içindeki dosyaları kendi tema klasörünüze kopyalayın. base.html kullanıyorsanız incelleyipte kopyalamanızda fayda var. Kendi base.html’iniz içine ilgili javascript dosyalarını eklemeyi unutmayın. Dilerseniz personal.html gibi dosyalara kendi araçlarınızı ekleyebilirsiniz.

* demoprofile örneğinde göreceğiniz models.py içeriği sizi yanıltmasın, userprofile’i settings.py’ye eklediğimiz için manage.py syncdb komutuyla gerekli tablolara sahip olacağız.

Bunları tamamladıktan sonra sanırım hiç bir sorun yaşamadan django-profile uygulamasını projenizde kullanabilirsiniz. Türkçe çeviri dosyası eksik, bunuda küçük bir çalışmayla halledebilirsiniz. Yaptığınız çeviriyi “locale” adındaki klasörün içinde oluşturmanız gerektiğinide belirteyim.

Yeni başlayanlara kolay sağlamasını umduğum anlatımım umarım birilerine faydalı olur.

PrestaShop için Ödeme Sistemi Çözümleri

AçıkKaynak dünyasının bilinen alış veriş sitesi çözümlerinden prestashop içinde bir sürü ödeme çözümünü barındırıyor. Posnet, 3DSecure, Paypal, GooglePos ve bir sürü benzeri modul. Ortak ödeme sistemi kullanmak istemiyorsanız ve daha profosyonel bir çözüm istiyorsanız, posnet ve 3d secure modellerini kullanmak zorundasınız.

Piyasada bir çok modul para ile satılmakta, Sistem açıkkaynak ama bir çok işe yarar ödeme sistemi için istenen meblalar bence çok yüksek. Posnet ve OOS sistemini kullanan iki modul test ettim. Bunları nette gerekli araştırma yaparak bulabilirsiniz.Bir çok kişi bu işten çıkar sağladığı için herkesin sözüne güvenmemeniz gerektiğini hatırlatırım. OOS sistemini kullanan modulu prestashop forumlarında bulunabilir.
-Posnet (modüllü) sabit ip ve 128 bit uyumlu ssl gerektiriyor, eğer bunlara sahipseniz yada olacaksanız, est api gibi basitçe işinizi gören fakat taksit yapmayan bir modul kullanabilirsiniz. Bu sayede müşterileriniz ödemeyi sizin siteniz üzerinden yaparlar. Her hangi bir yönlendirmeye gerek kalmaz. Ödeme bilgisini ve doğrulamayı vs panelinize yansıtır. Aynı durum oos sitemini kullanan modul için geçerli değil.
-OOS, ortak ödeme sayfası ile ödeme işlemi ise, basit bir yönlendirme ile sizi bankanızın ödeme ekranına yönlendiriyor ve kredi kartı bilgileri burada girilerek ödeme gerçekleştiriliyor. Çoğu kişinin ihtiyacına cevap vereceğini düşünmüyorum fakat hiç yoktan iyidir. Alternatif olarak kullanıyorum.
Tecrübesiz kullanıcılar için önemli notlar:


-Sahip olduğunuz sabit ip’nizi bankanıza bildirin, ve sisteminizin bu ip üzerinden çalıştığına emin olun. Çoğu zaman (hosting’den kaynaklı) sabit ip’niz haricindeki bir ip, bankanız ile iletişime geçmeye çalışıyor. Bu sorunu hata kodlarından anlayabilirsiniz.
-Bankanızın size verdiği verileri eksiksiz olarak module ekleyin, ve posnet yönetici ekranından “anahtar” oluşturun. İlk seferimde anahtar konusu nedeniyle çok zorluk çekmiştim. Ne yazık ki bazı bankaların dökümantasyonları başarısız.
-Test ortamını denedikten sonra gerçek ortamda denemelere geçin. Bankanızın deneme araçlarını kullanın, hataları çoğu zaman sadece bu araçlar ile görebilirsiniz. Hata kodu göremeden kimse size yardımcı olamaz, hatayı kabul etmez.
Est Api ve diğer oos sistemi;