C# ın geleceği xamarin ve mono projesi

Şu anda konuyu okuyanlar (Üyeler: 1, Ziyaretçi & Botlar: 0)


insanimsi

Profesör
Yasaklı
Katılım
28 Tem 2018
Mesajlar
1,049
Puanları
83
Konum
Aiur
Arkadaşlar öncelikle merhaba :)
Beni bilen bilir ille de kodlama öğreneceğim diyen biriyim fakat onlar bilir ki benim microsoft teknolojilerine karşı önyargım da vardır :D
C# ı asıl sevmeme sebebim m linux desteği olmamasıydı fakat zamanında mono projesini duymuştum ve xamarini bunlar hakkında görüşlerinizi alabilir miyim sizce java rakibi olabilir mi multi platform ve os konusunda ve sizce hayata uzun bir süre daha devam edecek mi :)
Mesaj otomatik birleştirildi:

@ertan2002 hocam rahatsız ediyorsam özür dilerim ama yardım edermisiniz lütfen :)
 
Son düzenleme:

Amenofis

Üyecik
Katılım
27 Ara 2010
Mesajlar
25
Puanları
3
Farketmez başla birinden zaman kaybetme. Dil bilmek başka şey, program yazabilmek çok başka şey. Biri sadece ezberdir, diğeri tecrübe. Bir problemin zilyon tane çözümü olabilir. Bu çözümlerden en verimlisini bulmak ancak uzun süren tecrübelerden sonra mümkün olabilir.

Daha önce dediğim gibi; programın çalışacağı platformu değil, ne tür uygulamalar üzerinde çalışmak istiyorsunuz ona odaklanmanız lazım. Merakınız, hevesiniz hangi konular üzerinde? Oyun mu yapacaksınız? E bunun için işletim sistemleri hakkında bişey bilmeniz gerekmiyor ki. Oyunu yapıyorsunuz, oyun motorunuz tek tıkla istediğiniz platforma çıktı sağlıyor. Fakat o oyunu yapabilmek tecrübe istiyor işte. İstersen 10 tane dil bil, bu sana fayda sağlamaz.
 

kmurat

Dekan
Katılım
8 Şub 2014
Mesajlar
5,701
Puanları
113
Diğer konuda sözünü ettiğin Forum girişimi için gerekli olanlar : WampServer WAMP sunucu (açılımı: Windows, Apache sunucu, mySql, PHP) Senin projen için odaklanman gereken olay bu.

Mono Windows dışındaki İşletim sistemleri için .NET. .Netframwork'ten farklı kitaplıklar kullanır. Mesela Winforms yerine GTK# kullanır. Xamarin de, mobil cihazlar için C# (veya .NET). Yine Windows'takinden farklı kitaplıklar kullanır. Windows dışındaki işletim sistemlerinde Java daha çok tercih ediliyor.

Sana en kolay gelenden başla. Nereden ve ne için başladığının bir önemi yok. Sana ne kolay gelir? senin ne ilgini çeker? bunları önce deneyerek kendin öğrenmelisin. Başarı için önce kendini keşf etmelisin.
 

ertan2002

Asistan
Katılım
9 Ara 2008
Mesajlar
303
Puanları
28
bence sadece zaman kaybediyorsun.. her hangi bir C tabanli dille programlama temellerini at, daha sonra hangi dilde ilerleyecegine karar ver.. Suan yaptigin arastirmalarin hic bir önemi yok cünkü uzmanligi tercih edebilecek bi seviyede degilsin..

Linux ya da mac'de calisacak bir programa neden ihtiyacin var? Piyasada kullanilan bir sey degil. Firmalar linux tabanli ürünler üretiyorsa onlarin muhtemelen özel cihazlar üretmis oluyor. Yoksa bir firmanin hem linux hem windows hem mac icin program yazdirmasi cok nadirdir ya da cok büyük firmalardir.. Eger türkiye'de is yapmak istiyorsan .net teknolojisi üzerinden ilerlemeni tavsiye ederim. Zorluklarla mücadele ederim dersen java ögrenebilirsin (cross platform icin iyi olabilir), ancak daha basit ve cross platform istiyorsan python iyi bir tercih olacaktir (raspberry pi de de kullanabilirsin rahatca). Yerinde olsam python üzerinden ilerlerdim..

Xamarin mobil dünya icin olusturulmus bir kütüphanedir. Mono projesi daha farklidir ve sanildigi gibi cross platformlarda cok güclü degil. Sadece xamarin iyi. Zaten microsoft satin aldi xamarin'i. Ben evde mac ve windows kullaniyorum. Sebebi ise ios uygulama gelistirme (mac'de), digerleri icin ise normal pc kullaniyorum. Sirketlerde ise zaten sadece windows kullaniyoruz. Ama mesela bir web servis yaptim lisans aktivesiyle ilgili. Normalde webservislerini wcf ile yaparim (bir .net teknolojisi) ancak sef dedi ki linux'da da calisabilecek bi sey olsun (cünkü firmanin bazi ürünlerinde linux kullanilabiliyor) o yüzden ben de nodejs kullandim hem webservis tarafini hem admin panelini nodejs ile yaptim (ki webci degilim).

Suan bireysel olarak flutter ögreniyorum (belki bi gün bununla ilgili bir yazi yazarim). Ancak is yerinde mobile gelistirme icin xamarin.forms kullaniyoruz.
 

Ben Kenobi

Dekan
Katılım
6 Kas 2011
Mesajlar
7,364
Puanları
113
C#'ın geleceği konusunda herhangi bir olumsuz durum yok lakin C#'ı Linux, Mac vs gibi ortamlarda derlemek, Xamarin, Mono vs çok çok sıkıntılı, bu işlere girmeye hiç gerek yok, eğer her yerde rahat çalışsın diyorsan Java, Python vs yazmak daha mantıklı, C++ da yazılabilir lakin ilgili işletim sisteminde kodu tekrar derlemen gerekir.
C#'ın geleceği konusunda sıkıntı olmasa da Microsoft'un yeni projelerinin geleceği iyi değil, Metro App, UWP vs öldü.
 

akin.bicer

Üyecik
Katılım
7 Tem 2019
Mesajlar
12
Puanları
1
Merhaba insanimsi;

Sadece C# dili üzerinde geliştirmekten ziyade OOP İlkelerini biliyor olma sizin için daha iyi bir başlangıç olur. C# Windows, MAC, Linux gibi ortamlarda destek vermektedir. Eğer destek vermeseydi .NET Core gibi bir platform olmazdı. Şuan internette türkçe-ingilizce bir sürü kaynak var, makaleler var. Okuyun inceleyin, sorun araştırın. Şuan C# ile İnsan Sağlığı üzerine yaptığım projede TÜBİTAK 4006 Bilim Fuarında okul birincisi oldum. Daha sonra Milli Eğitim Bakanlığı'na Öğrencilerin Güvenliği için "Yüz Tanıma İle Güvenli Geçiş Sistemi" projesi yaptım. Ankara'da birkaç okul bunu test ediyorlar. İnşallah bunu iyi yerlere getireceğimden eminim.

Yaptığınız tüm projeleri Cloud hesaplarınıza ve öğrendiniz herşeyi OneNote'a kaydedin. Ben 3 yıldır yazılım sektöründeyim. Şuan C#, Java, C++, HTML, ASP.NET MVC, Python, Bash Script, Power Shell alanlarda tecrübem var. Umarım seninde ilerideki hayatından daima başarılı olursun.

İyi Çalışmalar Dilerim...
Akın BİÇER
 

Ben Kenobi

Dekan
Katılım
6 Kas 2011
Mesajlar
7,364
Puanları
113
Linux, Mac desteği lafta.
.Net'in gui kısmının misal en önemli iki parçası Winforms ve WPF, .Net core içerisinde var ama Linux ve Mac de çalışmıyor.
İleride de çalışacak gibi gözükmüyor, Microsoft'un bu bağlamda bir önceliği ve projesi yok hatta tam tersi bunu yapmayı kesinlikle düşünmediklerini belirttiler, o zaman koymasalardı, ne anladım bu işten, her işleri gibi göz boyamadan öte değil.
asp.net gibi projeleri ise linux'te çalıştırmak zaten mantıksız hatta biraz daha ileri gidecek olursam asp.net'in felsefesi yeni nesil html5 ile artık mantıksız hale geldi, bugün html5, css3 ve herhangi bir framework'a bağlı olmadan saf javascript birleşimleri ile dahi çok daha kapsamlı web siteleri yapabilmek mümkün, eskiden birçok şeyin şimdikine kıyasla daha zor olduğu zamanlarda kolaylık sağlıyordu belki evet, hala da sağlıyor lakin sırf kodlaması bir miktar daha kolay olduğu için artık yüksek ve ciddi dezavantajları alternatifleri çok çok daha iyi bir seçenek haline getiriyor, çünkü bugün bırakın php'yi ön balancer proxy tarzı nginx veya apache koyup statik sayfaları html css js ile gösterip dinamik bileşenleri de ajax ile java'ya göndermek ve oradan da postgresql ile varsa veri akışını sağlamak dahi bir kez öğrendikten sonra oldukça kolay, bir kez yaptıktan sonra da oldukça performanslı, güvenli ve stabil.
 

akin.bicer

Üyecik
Katılım
7 Tem 2019
Mesajlar
12
Puanları
1
Linux, Mac desteği lafta.
.Net'in gui kısmının misal en önemli iki parçası Winforms ve WPF, .Net core içerisinde var ama Linux ve Mac de çalışmıyor.
İleride de çalışacak gibi gözükmüyor, Microsoft'un bu bağlamda bir önceliği ve projesi yok hatta tam tersi bunu yapmayı kesinlikle düşünmediklerini belirttiler, o zaman koymasalardı, ne anladım bu işten, her işleri gibi göz boyamadan öte değil.
asp.net gibi projeleri ise linux'te çalıştırmak zaten mantıksız hatta biraz daha ileri gidecek olursam asp.net'in felsefesi yeni nesil html5 ile artık mantıksız hale geldi, bugün html5, css3 ve herhangi bir framework'a bağlı olmadan saf javascript birleşimleri ile dahi çok daha kapsamlı web siteleri yapabilmek mümkün, eskiden birçok şeyin şimdikine kıyasla daha zor olduğu zamanlarda kolaylık sağlıyordu belki evet, hala da sağlıyor lakin sırf kodlaması bir miktar daha kolay olduğu için artık yüksek ve ciddi dezavantajları alternatifleri çok çok daha iyi bir seçenek haline getiriyor, çünkü bugün bırakın php'yi ön balancer proxy tarzı nginx veya apache koyup statik sayfaları html css js ile gösterip dinamik bileşenleri de ajax ile java'ya göndermek ve oradan da postgresql ile varsa veri akışını sağlamak dahi bir kez öğrendikten sonra oldukça kolay, bir kez yaptıktan sonra da oldukça performanslı, güvenli ve stabil.
Geri bildiriminiz için teşekkür ederim. Yukarıda bahsettiğiniz Linux, MAC desteğini önceden yoktu. .NET Framework yapısı bu sistemlerde entegre olamıyordu. Microsoft Cross-Platform düşüncesi ile .NET Core mimarisini ileriye sundular. Artık yeni nesil programlama sistemi ile her platformda çalışan bir yapı geliştiricilere sundurlar. Ama şunu da bilmek gerekiyor; bir teknolojiye bağlı kalıp ve diğer dilleri önemsememek, birde kötülemek bir yazılımcıya birşey katmaz. Bir yazılımcıyı yazılımcı kılan tecrübeleri ve OOP İlkeleridir. Şuan Microsoft "Kardeşim ben kepenkleri kapatıyorum" dese hiç telaşlamam. Çünkü bir Class'ın yapısı, işleyişini metotların yapılarını biliyorum. Bu dil kavgaları yüzyıllarca devam eden bir tartışma konusudur. Ama şöyle bir durum daha var. Şuan Türkiye'de birçok geliştirici Windows Tabanlı proje geliştiriyor. Bu yüzden ilk önce bunların önüne geçip insanları açık kaynak kodlu sistem ile tanıştırıp bu konuyu bir kez daha göz önüne almamız gerekiyor.

Bilgilerinize, İyi Çalışmalar Dilerim...
Akın BİÇER
 

Ben Kenobi

Dekan
Katılım
6 Kas 2011
Mesajlar
7,364
Puanları
113
Söylediklerinizde teorik olarak haklı olsanız da pratikte dünya öğretilenler gibi değil.
Microsoft dünyasına ait toolchainlerin workflowu ile diğer dünyalara ait toolchainlerin workflowu birbirinden farklı.
Bu bağlamda diğer dünyalarda bir programlama dilinden başka programlama diline geçiş kolayken Microsoft'a ait bir programlama dilinden başka bir programlama diline geçiş daha zor oluyor.
Bu durumun temel sebebi ise standartlar.
Projelerin çoğu yazılım dünyasınca kabul görmüş bir takım standartlar (posix, iso, ieee.... vs) uyarken Microsoft ise kendi standartlarını kendi belirliyor ve yapılan işler low level veya en iyi ihtimalle mid level bir seviyede birbirinden ayrılmaya başlıyor.
Misal C#ta static linking yapmak ile C++'da static linking yapmak veya Java'da static linking yapmak oldukça farklı.
Lakin biri native diğeri hibrit dil olmasına rağmen C++'daki static linking yapma biçimi Java ile daha yakın.
Misal PostgreSql, OracleSql, MySql kullananlar birbiri arasında çok daha rahat geçiş yaparken Microsoft'a ait MsSql kullanların farklı bir Sql kullanmaya başladıkları zaman bu adaptasyonun daha sancılı olacağına şahit olursunuz.

Sadece bu da değil, uzun vadeli projeler için Microsoft genellikle uygun değildir.
Çünkü sırf sizi kendi ürettiği başka bir ürünü kullanmaya zorlamak için hemen hiçbir eksiği olmayan ürününüze ait desteği bir anda bıçak gibi kesebilir ve altyapı değişimleri sizin şirketinize hiç gerek yokken milyonlarca liraya mal olabilir.
Bunun örnekleri çok vardır, en güncel örneği UWP platformudur, Microsoft UWP'yi resmen ölüme terketti ve buraya yatırım yapanlar veya projelerini bu temel üzerine kuranlar ettikleri zarar ile kaldılar.
Bunun için alanında Qt hariç rakibi olmayan WPF desteğini sırf geliştiricileri UWP'ye geçtirmek için keseceklerdi lakin buraya yapılan yatırım biraz fazla olunca göze alamadılar lakin UWP birkaç ay önce ölene kadar WPF'e yeni özellik eklemeyi vs yıllardır bırakmışlardı.

Bana göre iyi oldu, Qt gibi güzel bir platformun kullanım oranı arttı, orası ayrı mesele tabi. :D
 

akin.bicer

Üyecik
Katılım
7 Tem 2019
Mesajlar
12
Puanları
1
Bu konuda haklısınız Ben Kenobi. Zaten Microsoft'un en büyük yanlışlığı UWP'yi piyasaya sunmasıydı. Daha sonra WPF'in geleceği hala var. WPF göre daha çok fronted tabanlı olarak geliştirmeye yöneltiyor gibi geldi bana... Söylediğiniz gibi diller arası farklılıklar ve yapılan değişiklikler bazen biz geliştiricilere olumsuz yanlarını gösterebiliyor...
 

insanimsi

Profesör
Yasaklı
Katılım
28 Tem 2018
Mesajlar
1,049
Puanları
83
Konum
Aiur
 
Üst
stat counter