12 Temmuz 2018 Perşembe

Swagger Controller include, exclude from document


Asp.Net Web Api Swasbuckle eklentisini kullanırken eğer herhangi bir controller sınıfımız api de gösterilmesin ister isek aşağıdaki tanımlamayı yapmamız controller ımızı gizlemek için yeterlidir.

[ApiExplorerSettings(IgnoreApi=true)]
public class MyController : ApiController
Böylece gizli bir metodumuz yada kullanılmasını istemediğimiz metodlarımızı saklamış oluruz.


In English: 

Asp.Net Swasbuckle  package lead controllers in metadata layer and we can lead include/exclude feature via [ApiExplorerSettings] annotation as following peace of code in our controller;

[ApiExplorerSettings(IgnoreApi=true)]
public class MyController : ApiController

Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

12 Haziran 2018 Salı

Devexpress using with Angular2+


After tousands of code in Asp.Net projects with DevExpress. When the time is coming for angular 2+ front-end applications, we are ready to go for it.

Couse of that devexpress now supporting angular 2+ for current features like jquery, asp.net, etc. In order to discover and get some experience about dev express with angular. Lets start to visit https://js.devexpress.com/Overview/DataGrid/ page and click "See Demo" options and check them with "Angular" source code tab.

To Start development with angular in real life we need to figure out someting such as download nodejs, gulp, etc.

If you want to follow official steps and get more knowledge instead of faster startup, let visit https://github.com/DevExpress/devextreme-angular/blob/master/README.md


My Steps to test angular2+ with Dev Express

1- Download node.js in offical angular page:   https://nodejs.org/en/download/

2- download angular via node console with typing following command in command line


npm install -g @angular/cli

3-Creating new angular project which is calling test-project

 ng new test-project
cd test-project

4-To build and run project with dev express, we need to install gulp with following command
npm install --global gulp-cli

5- lets install dev express npm module

npm install --save devextreme devextreme-angular

6- Now we are ready to use any of dev express component.
To say hello world. lets add a dev express button.

 - add to dev express button into app.component.html

<dx-button text="Press me" (onClick)="helloWorld()"></dx-button>

 - add to following function into app.component.ts

helloWorld() {
        alert('Hello world!');
    }

 - define dev express button into app.module.ts as an import item.

import { DxServerTransferStateModule } from 'devextreme-angular';

@NgModule({
    ...
    imports: [
        ...
        DxServerTransferStateModule,
        ...
    ]
})
export class AppModule {}


- time to run :)
ng serve --open








Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Angular 2+ Failed to build project with JSZip library Issue Solving


While installing some of node packages you may have an issue as follow;


ERROR in ./node_modules/jszip/lib/readable-stream-browser.js
Module not found: Error: Can't resolve 'stream' in 'C:\Users\username\angularprojectname\node_modules\jszip\lib'


just need to follow file path road to reach readable-stream-browser.js file and change content as below to solve issue like a charm :)


Before :

module.exports = require("stream");

After :

module.exports = require("readable-stream");
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

31 Mayıs 2018 Perşembe

Asp.Net Web Api - Swagger Dökümantasyon Alt Yapısı Ekleme


Backend tarafında rest api alt yapısı geliştirirken en büyük problemlerden biri şüphesiz ki bu API endpointlerini kullanacak kişilerle çok iyi iletişim kurabilecek bir dökümantasyon oluşturmak ve tabi bunun yanında kendi apilerini test caseler dışında kod yazmadan minimum efort ile manuel test edecek bir ortam olması.

Daha önce .Net ile Rest Api geliştirirken Microsoft un sunduğu Help Page alt yapısından bahsetmiştim, buraya tıklayarak bu yazıma ulaşabilirsiniz. Microsoft bu tarafta bize her ne kadar hem yardım dökümanı oluşturma ve test edebilme üzerine güzel nuget package lar sunsa da , bu işi daha profesyonel, görsel ve fonksiyonel bir şekilde swagger ile yapabiliyoruz.

Peki .Net Web Api projemizde swagger alt yapısını nasıl kullanabiliriz ?

(Normalde swagger ın .Net e özel nuget ı olsa da uygulaması biraz zahmetli ve uzun olduğu için ben kendi bulduğum kurulumu çok basit bir nuget package üzerinden anlatıyor olacağım.)

Bu işlem oldukça kolay aşağıdaki adımları izlememiz yeterli.
1-) İlk olarak swagger için gerekli xml dökümantasyon sistemini projemizde aktif etme işlemini yapıyoruz.
 Bunun için projemize sağ tuş tıklayarak 'Properties' seçeneğine tıklıyoruz. Ardından 'Build' sekmesine geçip, 'XML Documentation File' check ini işaretliyoruz.

2-) Sonrasında projemize sağ tuş tıklayıp - > 'Manage Nuget Packages' seçeneğine tıklıyoruz.

3-) Browse Sekmesine 'Swashbuckle' yazıp aratıyoruz.

4-) İlk çıkan kayda tıklayıp 'Install' diyoruz.

5-) Ardından projemizi çalıştırıp url ye ek olarak /swagger yazıyoruz.

6-) Ve swagger kütüphanemiz hazır :)


Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

11 Mayıs 2018 Cuma

Angular5 Build Prod with base href


In normally angular2 and higher version projects building for prod with following command;



ng build --prod 


But sometimes we need to subdomain like domainname.com/subdomainname/ , in this situation we need to use base-href command to deploy properly otherwise it won't be work without console error.

To use base-href and define subdomain whichs is work like a directory, we just need to use following command:


ng build --prod --base-href /subdomainname/



with this command , we can solve this issue and deploy our project without any problem..
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

5 Mayıs 2018 Cumartesi

angular5 projemize nasıl html editor ekleriz ?


Angular5 projemize basit bir html editor implemente etmek için aşağıdaki aşamalrı uygulamamız yeterlidir.



1. cmd ekranını açıyor ve proje dosyamızı açıyoruz.

örnek : cd /projedosyamız
cd /projedosyamız

2. proje dosyamızda node package manager yardımı ile ngx editör pluginini indiriyoruz.

npm install ngx-editor --save

3. app.module.ts dosyamızda import kısmına plugin tanımını yapıyoruz.

import { NgxEditorModule } from 'ngx-editor';
@NgModule({
  imports: [ NgxEditorModule ]
})


4. ve son olarak ilgili modülü kullanmak istediğimiz html dosyamıza aşağıdaki kod parçası ile ekliyoruz.

<app-ngx-editor [(ngModel)]="htmlContent"></app-ngx-editor>




Kaynak : https://www.npmjs.com/package/ngx-editor




Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

30 Nisan 2018 Pazartesi

Git Repository Load to Online Repository


while uploading local git repository to online private git repository you can use the following way;


cd /projectFilePath
git init
git remote add origin https://your .git repo url
git add .
git commit -m "initial commit"
git push origin master



Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

ionic cordova resources issue


When you come to resource command operation which is help you to provide all versions for android and ios icon and splash images. You may get an exception as following;


ionic cordova resources android --no-timeout
Collecting resource configuration and source images - done!
Filtering out image resources that do not need regeneration - done!
Uploading source images to prepare for transformations - failed!
HTTP Error 400: POST https://res.ionic.io/api/v1/upload

{"Error":"unable to read uploaded image","Width":0,"Height":0,"Type":"png","Vector":false}


to solve this problem you just need to use following web site and try to compress your images then try it again, its going to work like a charm :)


website:  https://tinypng.com/


Try to use resources command for ios and android as following;

ios resources command :


ionic cordova resources ios --no-timeout



android resources command :


ionic cordova resources android --no-timeout




Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

ionic3 facebook plugin build issue


While debugging your application with new facebook plugin  in ionic3(android platform) and you may get an exception. Its mostly deal with facebook version and cordova version dependency inconsistency.

To solve this problem, you just need to follow these steps

 - remove facebook exist plugin and all the related files in your app folder.


cordova plugin rm cordova-plugin-facebook4

 - remove and re-add android plugin


cordova platform rm android && cordova platform add android

 - Add your facebook plugin with the following command


cordova plugin add https://github.com/amritk/cordova-plugin-facebook4 --save --variable APP_ID="your facebook app ID" --variable APP_NAME="Your facebook App Name"


thats all. If you have any question about this issues please feel free the left comment to this post.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

17 Nisan 2018 Salı

asp.net mvc ve web api csc.exe not found hatası


Asp.Net MVC ve Web Api projelerinde roslyn/csc.exe dosyası bulunamadı hatası alabiliriz. Bu sorunun kökten çözümü için roslyn eklentisini projemizden kaldırabiliriz.


Bu işlem için sırası ile aşağıdaki işlemleri yapmamız yeterlidir.
 - Projemize sağ tuş tıklayıp "Manage Nuget Packages..." seçeneğini seçiyoruz.
 - "Browse" sekmesinden "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" eklentisini aratıyoruz.
 - İlgili eklenti projemize ekli olduğu için sağ kısımdan "UnInstall" seçeneğini seçiyoruz ve ilgili eklentiyi kaldırıyoruz.

Projemizi tekrar publish ettiğimizde "roslyn" klasörü artık projemizde olmayacak ve problem çözülmüş olacak.

Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

16 Nisan 2018 Pazartesi

Web Sitesine Ait SMTP Host Bilgilerine Erişmek


Mail yönlendirme, yazılım üzerinden mail gönderimi, yada mail problemlerini inceleme gibi konular üzerinde çalışırken bazen ilgili websitesinin aktif çalışan smtp host bilgilerini kontrol etmek isteyebiliriz.

Bu işlemler için sırası ile aşağıdaki işlemleri yapmamız yeterlidir.

Windows için :
 - Başlat -> Çalıştır (cmd.exe)
 - nslookup yazıp enter a basıyoruz.
 - Ardından set type=MX yazıp enter a basıyoruz.
 - domain adımızı yazıyoruz örnek : google.com

Bu işlemler sonrasında sunucu IP, smtp IP, smtp host bilgilerine detaylı ulaşabiliyoruz.

Linux , Macbook Terminal :

 - Terminal i açıyoruz.
 - dig google.com MX yazıp enter a basmamız yeterlidir. (google.com yerine site adımızı yazıyoruz:)

Karşımıza aşağıdaki gibi bir ekran çıkacaktır.



Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

7 Nisan 2018 Cumartesi

kod ekleme


selam kod ekleme böyle olur.
// Comment

  uploadFile() {
    let loader = this.loadingCtrl.create({
      content: "Uploading..."
    });

    var params = {'token':localStorage.getItem("token"),'videoTitle':'test videosu'};
  
    console.log("Upload file called!");
    let filename = this.imageURI.split('/').pop();
    loader.present();
    const fileTransfer: FileTransferObject = this.transfer.create();
    let options: FileUploadOptions = {
      fileKey: "file",
      fileName: filename,
      chunkedMode: true,
      mimeType: "image/jpg",
      params:params
    };

testds
fsd

Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

5 Nisan 2018 Perşembe

ionic 3 facebook app connect - Plugin not installed


ionic 3 de facebook app connect ile ilgileniyor ve uygulamanızı browser yada ionic dev app uygulamasından test etmeye çalışıyorsanız muhtemelen plugin_not_installed hatası alıyorsunuzdur.

Öncelikle projenize gerekli komponentleri yükledi ve facebook app oluşturup bağlantıları yaptı iseniz ve facebook connect çalışmıyor ise yapmanız gereken işlem test işlemini android studio yada xcode ile telefonunuzu usb den bağlayıp telefonda test yapmanız gerekiyor.

Telefonda usb ile bağlayıp xcode yada android studio üzerinden test yapmadığınz sürece ilgili native kütüphane yüklenmedi hatasını almaya devam ediyor olacaksınız.
Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

3 Nisan 2018 Salı

Asp.Net Web API Help Page ve Help Page Simple Test Eklentisi


Asp.Net Web Api - Help Page Sayfası Ekleme

Asp.Net Web API projelerimizde genellikle geliştirdiğimiz api parametre, link ve diğer detayları hakkında dökümantasyon yapmamız gerekir. Bu dökümantasyonu rest api endpoint lerini kullanacak departman, yada kişilere ieltiriz.

Bizi bu dökümantasyon zahmetinden kurtarmak için microsoft otomatik olarak yazdığımız apilerin dökümantasyonunu yapan bir "help page" alt yapısı geliştirmiş. İlgili alt yapıyı kullanarak web api dökümantasyonu sağlamak için sırası ile aşağıdaki işlemleri yapmamız yeterlidir.

Aşamalar

1.Visual Studio da projemizi açıyoruz.
2.Visual Studio "Tool" menüsünden NuGet Package Manager -> Package Manager Console u açıyoruz.
3.Bu alt kısımda açılan console ekranında aşağıdaki komutu yazıp enter a basıyoruz.

C# Projesi için  :

Install-Package Microsoft.AspNet.WebApi.HelpPage


Visual Basic Projesi için :

Install-Package Microsoft.AspNet.WebApi.HelpPage.VB

4. İşlem tamamlandığında Visual Studio Solution 'da root dizinde "Areas/HelpPage" dizini oluşmuş olacak. Bunun anlamı yükleme işlemimiz başarıyla tamamlandı demek oluyor.

5. Son olarak projenizde Asp.Net MVC alt yapısı da kullanmıyor iseniz Global.asax dosyanıza aşağıdaki kodu eklemeniz gerekiyor.


Eklenecek Kod :

protected void Application_Start() {

AreaRegistration.RegisterAllAreas();

 }

Not : Muhtemelen Application_Start metodu vardır Global.asax dosyanızda sadece içindeki kısmı eklemeniz yeterlidir.


Karşımıza aşağıdaki gibi bir ekran gelecektir.


Yukarıdaki görselde ben sadece login ve register apileri eklemiştim ilgili apileri görebiliyoruz. Üzerlerine tıkladığımızda api parametre ve açıklamalarını da görebiliriz.


Asp.Net Web Api - Help Page Simple Test Eklentisi Ekleme

Test Client Eklentisini Yükleyelim

Asp.Net Web Api projemiz üzerinde sağ tuş tıklayarak , "Manage Nuget Packages" seçeneğini seçiyor ve artından "WebApiTestClient" kelimesini aratıyoruz. Çıkan ekrandan "Web Api Test Client" eklentisini yüklüyoruz. İlgili ekran aşağıdaki gibi olmalıdır.




İlgili eklentiyi ekledikten sonra aşağıdaki dosyalar projemize yüklenmiş olacak; 
 - Scripts\WebApiTestClient.js
 - Areas\HelpPage\TestClient.css
 - Areas\HelpPage\Views\Help\DisplayTemplates\TestClientDialogs.cshtml
 - Areas\HelpPage\Views\Help\DisplayTemplates\TestClientReferences.cshtml


Test Client Eklentisini Web Api Help Page Alt Yapısına Ekleyelim

Areas\HelpPage\Views\Help/Api.cshtml dosyasını açıyor ve aşağıdaki iki parça kodu aşağıdaki resimdeki görüldüğü gibi ekliyoruz. (Resimdeki seçili kısım gibi en alta ekleme yapılmalı)

 - @Html.DisplayForModel("TestClientDialogs")
 - @Html.DisplayForModel("TestClientReferences")

Eklenecek Kod :

@Html.DisplayForModel("TestClientDialogs")

@section Scripts{
<link type="text/css" href="~/Areas/HelpPage/HelpPage.css" />
@Html.DisplayForModel("TestClientReferences")
 }


Bu ekleme sonrasında artık tüm web api metodlarımızın detay sayfalarında test butonu çıkacak ve api metodlarımızı rahatca test edebileceğiz. Son ekran aşağıdaki gibi olacaktır.





Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

23 Mart 2018 Cuma

Android Studio Admob Free Plugin Hatası


ionic ile uygulama geliştirirken admobfree eklentisini kurduysanız ve imzalanmış sertifika çıktısını alırken eğer android studio kullanıyorsanız aşağıdakine benzer hatalar alabilirsiniz.

örnek Hata : 

error: package name.ratson.cordova.admob.banner does not exist


İlgili admobfree hatası muhtemelen sizin cordova admob free eklentinizin versiyonu ile ilgili olabilir,  bu hatayı gidermek için son versiyonu aşağıdaki github hesabından giderebilirsiniz. Bu işlem için sırası ile console (terminal) ekranında aşağıdaki komutları çalıştırmanız yeterlidir.


Mevcut plugin i silmek için: 

cordova plugin rm cordova-plugin-admob-free

Yeni versiyonu yüklemek için : 

cordova plugin add https://github.com/RenaudROHLINGER/lycwed-cordova-plugin-admob-free

Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

15 Mart 2018 Perşembe

ionic ile Geliştirilen Projemizi Android Store'da Yayına Almak




İonic framework ile uygulamamızı geliştirdik. Şimdi sıra geldi yayınlamaya, normalde https://ionicframework.com/docs/v1/guide/publishing.html linki takip ederek bu işlemi yapabilirsiniz ama ionic in kendi sitesinde hem işleri uzatıyor hemde biraz kafa karıştırıyor. Ayrıca android play store console için de gerekli bilgi bulunmuyor.


Yapmamız gereken temel işlemler neler  : 


1.Play Stre Developer Hesabı:  Android Play Store dan 100 TL gibi bir ödeme ile hesap açıyoruz. Aşağıdaki linke girerek google mail hesabımız ile oturum açıp ödeme işlemini gerçekleştirebiliriz.

Play Store Developer Hesabı için Giriş :
https://play.google.com/apps/publish

2.Release APK Çıkarma :

 - İonic uygulamamıza Console/Terminal üzerinden cd komutu ile giriş yapıyoruz.

 - Terminal/Console üzerinde "ionic cordova build android --prod --release" komutunu çalıştırıyoruz.

Buradaki --prod ve --release komutları oldukça önemli.

--prod  : uygulamanızı production için derliyor ve uygulama localinizde çalışandan çok daha hızlı hale geliyor.

--release : Uygulamamızı imzalanmamış release apk sını release klasörüne taşıyor. Bu bizim imzalama yapabileceğimiz .apk dosyamız oluyor.

bu işlem sonrasında "UygulamaDizini/Platforms/android/app/release/" klasöründe app-release.apk ismi ile dosyamızı görebiliriz.

3.İmzalanmış Apk Üretimi : 

Bunun için ionic framework sitesinde ne kadar karmaşık şeyler bulunsa da console dan bunlarla uğraşmaya hiç gerek yok.

Sırası ile aşağıdaki işlemleri yapıyoruz.
- Android Studio uygulamamızı açıyoruz.
- "Var olan bir android studio projesini aç" seçeneğini seçiyoruz.
- "UygulamaDizini/Platforms/android/" dizinini android studio da açıyoruz.
- Build Menüsünden "İmzalanmış Sertifika Oluştur" seçeneğini seçiyoruz.(Generate Signed APK)
- İlk çıkan pencerede ileri diyoruz, Ardından aşağıdaki gibi bir ekran karşımıza gelecektir.


Bu ekrandan "Generate new.." seçeneğini seçip formu dolduruyoruz. şifre kısmına istediğiniz bir şifreyi girebilirsiniz ama unutmayın bu şifre artık uygulamayı her yayınlamak istediğinizde kullanacağınız bir şifre, ayrıca uygulamakey.keystore dosyasını da sakın kaybetmeyin yoksa sonra uygulamanızı bu sertifika ile imzalamadıkça uygulamanızı store da güncelleyemezsiniz.

 - Oluşturma işlemi sonrası "key store password:"   kısmına keystore formunda girdiğiniz şifreyi girin.
 - "key alias" kısmına uygulama adınızı girebilir aşağıdaki şifreye de istediğiniz şifreyi yine belirleyebilirsiniz. Sonrasında ileri ileri diyerek tamamlıyorsunuz işlemi.
 - Android studio size imzalanmış apk çıktığında sağ altta bildirim olarak görüntülüyor. Ve Tıklayıp ilgili dizine ulaşıyorsunuz.

Artık imzalanmış apk mız hazır store a bu dosyayı atmamız yeterli :)

4. APK Dosyamızı Store ya Yükleme ve Android Projemizi Yayına Alma İşlemi :




 - Play Store Console hesabımıza girdiğimizde yukarıdaki gibi bir ekran görüyor olacağız. Sağ üst kısımda duran "Uygulama Oluştur Butonuna Tıklıyoruz."
 - Ardından gelen sayfadaki formu dolduruyoruz ve kayıt ediyoruz. Şimdi artık detay sayfasına geliyoruz. sol kısımda ünlem olan menülerin içeriklerini dolduruyor ve uygulamamız için gerekli bilgileri tamamlıyoruz.
 - APK Dosyamızı ise sol menüdeki "Uygulama Sürümleri" menüsünden "Uygulama Sürümleri" kısmına tıklayarak gelen sayfadan sağ üstteki "Üretim Sürümünü Yönet" butonuna tıklayarak çıkan sayfadan yüklüyoruz.

 - Yükleme sonrası Sağ alttan sırası ile önce kaydet, sonrada incele butonlarına tıklıyor ve sonraki sayfadan yayınla butonuna tıklayarak uygulamamızı yayınlıyoruz.

Hepsi bu kadar artık uygulamamız 1-2 saate yayında :)



Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

14 Mart 2018 Çarşamba

Bitbucket ve Git Kullanarak projemizi cloud ortamda takım ile paylaşmak


Takım olarak çalıştığımız projeler için bir yerden sonra mutlaka bir versiyon takip sistemine ihtiyacımız oluyor. Bu ihtiyacı karşılamak için arayışa girdiğimizde ise karşımıza çok çeşitli servis ve seçenekler çıkıyor ve kafamızı biraz karıştırıyor açıkcası.

Bu yazımda son zamanlarda front-end ağırlıklı projelerimde takım projelerimde kullanmaya başladığım bitbucket.org dan bahsediyor olacağım.

Bitbucket Hakkında

Versiyon Takip
Bitbucket kısaca takımınız ile birlikte cloud ortamda kodlarınızı saklayarak çalışmalarınızın her bir versiyonunu takip edebilmenizi sağlayarak takım halinde proje geliştirmenize imkan sağlayan bir servistir.

Proje Yönetim
Bitbucket kendi içerisinde proje yönetim imkanı sağlamasının yanı sıra trello, jira gibi proje yönetiminde kullandığınız uygulamalara da entegre çalışıp proje takibinizi yapmanızı sağlıyor.

Ücretlendirme
Ücret politikası geliştiriciler için oldukça makul düzeyde, eğer 5 kişi ve altında ekip üyeniz var ise sınırsız boyutta ve adette proje için tamamen ücretsiz kullanabiliyorsunuz. 5 kişi ve üstü ekipler için ücretlendirmeyi aşağıdaki görselde inceleyebilirsiniz.





Detaylı bilgi için: https://bitbucket.org/ web sitesini ziyaret edebilirsiniz.



Nasıl Başlarım?  

Adım adım aşağıdaki süreci izleyerek mevcut projemizi bitbucket a taşıyabiliriz.
1.https://bitbucket.org adresinden siteyi biraz inceleyin.
2.https://bitbucket.org/account/signup/ linkini ziyaret ederek üyelik işleminizi tamamlayalım.
3.Ardından Repositories kısmından yeni bir git reposu oluşturalım. Karşımıza aşağıdaki gibi bir ekran geliyor olacak.

4. Bu ekranda "Get Started with command line" kısmının altndaki ilk seçenek olan "I have an exist project" seçeneğini seçiyoruz ve karşımıza aşağıdaki ekran geliyor.

5. Bu ekrandaki direktifler doğrultusunda git bash console umuzu açıyor ve öncelikle cd projedosyayolu yazarak ilgili dizine giriyoruz. Sonrasında 2.step kısmındaki komutları yazıyor ve projemizi git repository mize ekliyoruz.
6. Hepsi bu kadar şimdi tek yapmamız gereken kodlarımız için ilk commit işlemimizi yapmak.
Aşağıdaki kodları sırası ile yazıyoruz.

git status                                           (Bu işlem commit edilecek kodlarımızı bize gösterecek)
git add -A                                         (Bu işlem kodlarımızı commit için local repository de hazırlıyor)
git commit -m "proje ilk commit"   (commit açıklamamızı yazıyoruz.)
git push                                             (Kodlarımızı bitbucket repository mize gönderiyoruz.)

İşte bu kadar artık bundan sonrasu için git pull ve git push işlemleri ile projemizde ekibimiz ile çalışmaya başlayabiliriz.




Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

13 Mart 2018 Salı

Readonly ve Const Değişken arasındaki fark nedir ?


Bu yazımda günlük kullanımda genellikle karıştırılan tipler olan readonly ve const değişkenleri inceliyor olacağız.

Öncelikle bu tipleri temel anlamda inceleyelim.

Readonly : Gerçek zamanlı olarak uygulamamız çalışırken güncellenebilir. Fakat bu güncellenme işlemi sadece contructor da yapılabilir. Constructor metodumuzda readonly değişkeni dilediğimiz kadar güncelleyebiliriz.


Const : Sadece uygulama derleme öncesi bir değer ataması yapabilir. Sonrasında uygulama çalışması esnasında bir güncelleme yapamayız.



Kullanım Alanları 

Const : 

Genel kullanım aşağıdaki şekildedir : 

public class Urun{

const string urunBirimi = "Adet";
const bool garantiDurumu =true;

/*
.
.diğer tanımlamalarımız burada
.
*/

//constructor
public Urun(){



}//Constructor Kapanış

}//Class Kapanış





Aşağıdaki şekilde kullanımı yapamayız : 


public class Urun{


/*Burada bir hata alıyor olacağız. Atama işlemi program çalıştırılmadan önce yapılmalıdır şeklinde.*/
const string urunBirimi ;

const bool garantiDurumu =true;

/*
.
.diğer tanımlamalarımız burada
.
*/

//constructor
public Urun(){

/*burada da uygulama çalışması esnasında atama yapamadığımız için bir hata alıyor olacağız.*/
this.urunBirimi = "Kilogram";

}//Constructor Kapanış

}//Class Kapanış


Özet:
Özet olarak yalnızca uygulama bazında genel tanımlamalarımız için const değişken tiplerini kullanırız.




Readonly : 

Genel kullanım aşağıdaki şekildedir : 

public class Urun{

/*varsayılan değeri olarak Adet belirleniyor */
readonly string urunBirimi = "Adet";
readonly bool garantiDurumu =true;

/*
.
.diğer tanımlamalarımız burada
.
*/

//constructor
public Urun(string _urunBirimi, bool _garantiDurumu){

/*Constructor içerisinde ilgili class ı oluştururken değer ataması yapabilir class ın hareket durumları ve tanımlama birimini belirleyebilirsiniz. */
this.urunBirimi = _urunBirimi;
this. garantiDurumu =  _garantiDurumu;

}//Constructor Kapanış

}//Class Kapanış





Aşağıdaki şekilde kullanımı yapamayız : 


public class Urun{

readonly string urunBirimi ;

readonly bool garantiDurumu =true;
readonly urunAdi;

/*
.
.diğer tanımlamalarımız burada
.
*/

//constructor
public Urun() {

//constructor içerisinde tanımlama yapabiliyoruz..
this.urunBirimi = "Kilogram";

}//Constructor Kapanış


public UrunEkle(string urunAdi,string urunBirimi, string garantiDurumu){
this. urunAdi = urunAdi;


/*Aşağıdaki iki atama işleminde hata alıyor olacağız. Çünkü readonly değişkenler constructor dışında değiştirilemezler.*/
this.urunBirimi = urunBirimi;
this.garantiDurumu  = garantiDurumu;

}


}//Class Kapanış


Özet:
Özet olarak uygulamamız içerisinde class nesne örneklerinin oluşturulmaları esnasında nesnelerin kimliklerini ve hareket kabiliyetlerini belirlemek istiyor ve sonrasında uygulama akışında ilgili değişkenlerin değiştirilmemesini istiyor isek readonly değişkenleri kullanabiliriz.

Readonly ve Const Arasındaki Temel Farklar

 - Const tipine sadece tanımlama sırasında değer atanır, readonly tiplerine tanımlanırken ve constructor metodları içerisinde değer ataması yapılabilir.

 - Const tipleri metodlar içerisinde tanımlanabilir, fakat readonly tiplerini metodlar içeirsinde tanımlayamayız.

 - Const tipini statik anahtar kelimesi ile statik metod ve tanımlama olarak kullanamayız fakat readonly tipleri statik olarakta kullanabiliriz.

 - Const tipleri sadece derleme aşamasında tanımlanan sabitlerdir, readonly tipleri uygulama çalışma zamanında tanımlanan sabitlerdir.



Örnek : (Dependency Injection,  Readonly Değişken Kullanımı)

Biraz daha üst seviye bir örnek vermek gerekir ise Dependency Injection Design Pattern ını implemente ederken, soyut tipleri sadece constructor da değiştirmemiz ve uygulamanın geri kalanında ilgili değişkenlerin değiştirilmemesi gerekir. Bunun için readonly değişkenleri kullanabiliriz.


public interface IDBUrun{

void Ekle(string urunAdi);

void Guncelle(string urunAdi, string urunDurumu);

void Sil(string urunAdi);

}//Class Kapanış



public class DBUrun : IDBUrun {

void Ekle(string urunAdi){

//ürün ekleme kodları
}

void Guncelle(string urunAdi, string urunDurumu){

//ürün Güncelleme kodları
}

void Sil(string urunAdi){

////ürün silme kodları
}



}//Class Kapanış



public class Urun{

private readonly IDBUrun dbUrunIslem = null;


//constructor
public Urun(IDBUrun _IDBUrun){

//dependency injection ile constructor da ilgili soyut class ımızı implemente ediyoruz.
this.dbUrunIslem = _IDBUrun;

}


void UrunEkle(string urunAdi){

//dependency injection ile elde ettiğimiz class ımızın ekle metodunu kullanıyoruz.
this. dbUrunIslem.Ekle(urunAdi);

}


}//Class Kapanış














Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.