<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gökhan Doğru &#8211; Gökhan Doğru</title>
	<atom:link href="https://www.gokhandogru.net/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.gokhandogru.net</link>
	<description>Sadece yazılımcıyım, format atmayı bilmiyorum.</description>
	<lastBuildDate>Tue, 17 Jan 2023 00:21:28 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.6</generator>

<image>
	<url>https://www.gokhandogru.net/wp-content/uploads/2019/12/cropped-Başlıksız-1-1-32x32.png</url>
	<title>Gökhan Doğru &#8211; Gökhan Doğru</title>
	<link>https://www.gokhandogru.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Decorator Design Pattern Nedir?</title>
		<link>https://www.gokhandogru.net/decorator-design-pattern-nedir/</link>
					<comments>https://www.gokhandogru.net/decorator-design-pattern-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Tue, 17 Jan 2023 00:20:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[decorator design nedir?]]></category>
		<category><![CDATA[decorator design pattern]]></category>
		<category><![CDATA[Decorator Design Pattern Nedir?]]></category>
		<category><![CDATA[decorator design pattern oop]]></category>
		<category><![CDATA[decorator pattern nedir?]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=904</guid>

					<description><![CDATA[Decorator design pattern, bir nesnenin özelliklerini ve davranışlarını dinamik olarak değiştirmek için kullanılan bir tasarım kalıbıdır. Bu tasarım kalıbı, bir sınıfın özelliklerini ve davranışlarını değiştirmek için başka bir sınıfın üstüne ekleme (decorate) yapmasını sağlar. C# dilinde, decorator pattern'i kullanmak için öncelikle bir arayüz (interface) veya bir temel sınıf tanımlanır. Daha sonra, bu arayüzü veya temel sınıfı kullanan decorator sınıfları oluşturulur.]]></description>
										<content:encoded><![CDATA[<p>Decorator design pattern, bir nesnenin özelliklerini ve davranışlarını dinamik olarak değiştirmek için kullanılan bir tasarım kalıbıdır. Bu tasarım kalıbı, bir sınıfın özelliklerini ve davranışlarını değiştirmek için başka bir sınıfın üstüne ekleme (decorate) yapmasını sağlar. C# dilinde, decorator pattern&#8217;i kullanmak için öncelikle bir arayüz (interface) veya bir temel sınıf tanımlanır. Daha sonra, bu arayüzü veya temel sınıfı kullanan decorator sınıfları oluşturulur. (<img class="alignnone" src="https://seeklogo.com/images/C/chatgpt-logo-02AFA704B5-seeklogo.com.png" alt="" width="16" height="16" />)</p>
<p>Şimdi Decorator yapısını göstereceğim örnekle daha iyi anlayacağınızı düşünüyorum 🙂</p>
<p>Örneğin, aşağıdaki gibi bir <strong>arayüz</strong> ve<strong> temel sınıf</strong> tanımlayabilirsiniz:<br />
<script src="https://gist.github.com/dgokhan/d807bfd57ce1275be98210dab3c06bd5.js"></script><script src="https://gist.github.com/dgokhan/cfb14c9bae4b43daf5070da61e5e796a.js"></script></p>
<p>Daha sonra, bu arayüzü kullanan <strong>decorator</strong> sınıfları oluşturabilirsiniz:<br />
<script src="https://gist.github.com/dgokhan/17b7120ddd978159ca4130163514109b.js"></script><script src="https://gist.github.com/dgokhan/62a15adb45b45172b74819faa26afb79.js"></script></p>
<p>Bu şekilde, SimpleCoffee nesnesi üzerine <strong>Americano</strong> veya <strong>Cappuccino</strong> eklemeleri yaparak nesnenin özelliklerini ve davranışlarını değiştirebilirsiniz.</p>
<p><img loading="lazy" class="hoverZoomLink alignnone wp-image-907 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_5.png" alt="" width="540" height="155" srcset="https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_5.png 540w, https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_5-300x86.png 300w" sizes="(max-width: 540px) 100vw, 540px" /></p>
<p>Umarım konuyu anlaşılabilir bir şekilde sizlere anlatabilmişimdir.</p>
<p>Örnek proje halini aşağıda ki Github logosuna tıklayarak gidebilirsiniz;<br />
<a href="https://github.com/dgokhan/DotNET-Design-Patterns" target="_blank" rel="noopener"><img loading="lazy" class="alignnone wp-image-623 size-medium hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png" sizes="(max-width: 300px) 100vw, 300px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png 358w" alt="" width="300" height="113" /></a></p>
<div id="hzViewer" style="background: none; line-height: 0px; overflow: hidden; padding: 5px; position: absolute; z-index: 2147483647; visibility: hidden; opacity: 1; cursor: pointer; pointer-events: none; display: none;"></div>
<div id="hzViewer" style="background: none; line-height: 0px; overflow: hidden; padding: 10px 5px; position: absolute; z-index: 2147483647; visibility: visible; opacity: 1; top: 493px; left: 323px; width: auto; height: auto; cursor: pointer; pointer-events: none; display: none;"></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/decorator-design-pattern-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Factory Method Design Pattern Nedir?</title>
		<link>https://www.gokhandogru.net/factory-method-design-pattern-nedir/</link>
					<comments>https://www.gokhandogru.net/factory-method-design-pattern-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sat, 14 Jan 2023 22:57:27 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Design Pattern]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[c# factory method design pattern]]></category>
		<category><![CDATA[design pattern factory]]></category>
		<category><![CDATA[factory design pattern nedir]]></category>
		<category><![CDATA[factory method design pattern]]></category>
		<category><![CDATA[factory method design pattern nedir?]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=898</guid>

					<description><![CDATA[Factory Method Design Pattern, bir sınıfın nesnelerinin oluşturulmasını, alt sınıflar tarafından gerçekleştirilen bir yöntemle yapmasını sağlar. Bu yöntem, oluşturulacak nesnenin türünü belirlemek için kullanılır. Bu desen, nesnenin oluşturulması sırasında kullanılan kodun kalabalık olmamasını ve nesnenin oluşturulması işlemlerinin değiştirilebilir olmasını sağlar. Örneğin, bir araba firmasının farklı farklı tipte araç oluşturmasını düşünebiliriz.]]></description>
										<content:encoded><![CDATA[<p>Factory Method Design Pattern, bir sınıfın nesnelerinin oluşturulmasını, alt sınıflar tarafından gerçekleştirilen bir yöntemle yapmasını sağlar. Bu yöntem, oluşturulacak nesnenin türünü belirlemek için kullanılır. Bu desen, nesnenin oluşturulması sırasında kullanılan kodun kalabalık olmamasını ve nesnenin oluşturulması işlemlerinin değiştirilebilir olmasını sağlar. Örneğin, bir araba firmasının farklı farklı tipte araç oluşturmasını düşünebiliriz. (<img loading="lazy" class="alignnone" src="https://seeklogo.com/images/C/chatgpt-logo-02AFA704B5-seeklogo.com.png" alt="" width="16" height="16" />)</p>
<p>Her arabada olabilecek/arabanın ortak özelliklerini belirttiğim <strong>Car</strong> adında bir <strong>abstract class</strong> oluşturuyorum.<br />
<script src="https://gist.github.com/dgokhan/775a1e779fa710e6444b54f05720f250.js"></script></p>
<p>Araba tiplerini, kalıtım sayesinde<strong> Car </strong>abstract sınıfından alarak <strong>Sedan</strong>, <strong>SUV</strong> ve <strong>Hatchback</strong> araç tiplerini oluşturuyorum.<br />
<script src="https://gist.github.com/dgokhan/c3b60ec0fb6e27dbc17d76884b6c970c.js"></script><br />
<script src="https://gist.github.com/dgokhan/e9ff5387cd534950b1c8e2278bd682e3.js"></script><br />
<script src="https://gist.github.com/dgokhan/5176d62a4aa2dea1c990ff5446c36ff2.js"></script></p>
<p>Programda oluşabilecek type hatalarını engellemek ve belirli tiplerin dışına çıkılmaması adına <strong>CarTypes</strong> adında bir <strong>enum</strong> oluşturuyorum.<br />
<script src="https://gist.github.com/dgokhan/83d359b7d38bf8357222683d7f0b063e.js"></script></p>
<p>Şimdi sıra geldi Factory&#8217;imizi oluşturmaya..<br />
<strong>CarFactory</strong> adında bir public class oluşturuyorum ve içine <strong>Create</strong> adında geriye <strong>Car</strong> modelinde değer döndüren bir method hazırlıyorum.<br />
<script src="https://gist.github.com/dgokhan/f8ee3573bfec3d23e911ab76d0c163b1.js"></script></p>
<p>* Koddan anlaşılacağı üzere, ben <strong>CarFactory</strong>&#8216;de <strong>Create</strong> methoduna Sedan tipini gönderdiğimde bana <strong>new Sedan();</strong> bloguna girip oluşturduğum nesnin artık <strong>Sedan</strong> yapısında;<br />
4 teker olacağını, sunroof ve elektrikli olmayacağının bilgisini vermiş oluyor.</p>
<p><script src="https://gist.github.com/dgokhan/e4cb5dd4e8dc9dd4b652babaee106610.js"></script></p>
<p>Şimdi bakalım Fabrikamız gerçekten bir Sedan arabamı üretmiş? 🙂<br />
<img loading="lazy" class="size-medium wp-image-899 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_3-300x140.png" alt="factory method design pattern" width="300" height="140" srcset="https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_3-300x140.png 300w, https://www.gokhandogru.net/wp-content/uploads/2023/01/Screenshot_3.png 337w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Eğer Factory.Create&#8217;içine Hatchback gönderirseniz; Sunroof&#8217;ı olmayan, elektrikli ve 4 tekerlekli bir araba üretecektiniz 🙂</p>
<p>Umarım konuyu anlaşılabilir bir şekilde sizlere anlatabilmişimdir.</p>
<p>Örnek proje halini aşağıda ki Github logosuna tıklayarak gidebilirsiniz;<br />
<a href="https://github.com/dgokhan/DotNET-Design-Patterns" target="_blank" rel="noopener"><img loading="lazy" class="alignnone wp-image-623 size-medium hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png" alt="" width="300" height="113" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png 358w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/factory-method-design-pattern-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>MauiScooter &#8211; Maui UI</title>
		<link>https://www.gokhandogru.net/mauiscooter-maui-ui/</link>
					<comments>https://www.gokhandogru.net/mauiscooter-maui-ui/#comments</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Wed, 08 Jun 2022 10:22:26 +0000</pubDate>
				<category><![CDATA[Maui]]></category>
		<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[.net maui türkçe]]></category>
		<category><![CDATA[maui]]></category>
		<category><![CDATA[maui scooter ui]]></category>
		<category><![CDATA[maui türkiye]]></category>
		<category><![CDATA[maui ui]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=876</guid>

					<description><![CDATA[Herkese selamlar, Askerden döndükten sonra baktım ki Maui üzerinde baya bir geliştirmeler yapılmış bende hemen beğendiğim bir tasarımı Maui üzerinde kodlamaya başladım:p Tasarımı koda dökmeye başlamadan önce tasarımı kafamdan parçalara bölmeye başlıyorum ki ilerde Row,Column&#8216;ların birbirine karışmasını engelliyorum. Eğer sizde bir tasarımı koda dökecekseniz önceden kafanızda böyle parçalarsanız ilerleyen aşamalarda sorun yaşamazsınız 🙂 1) Fontların...<p><a class="read-more" href="https://www.gokhandogru.net/mauiscooter-maui-ui/">Read More</a></p>]]></description>
										<content:encoded><![CDATA[<p>Herkese selamlar,</p>
<p>Askerden döndükten sonra baktım ki <strong>Maui</strong> üzerinde baya bir geliştirmeler yapılmış bende hemen beğendiğim bir tasarımı Maui üzerinde kodlamaya başladım:p<br />
<img loading="lazy" class="alignnone wp-image-883 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2022/06/MobilePart-min.png" alt="" width="1024" height="768" srcset="https://www.gokhandogru.net/wp-content/uploads/2022/06/MobilePart-min.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2022/06/MobilePart-min-300x225.png 300w, https://www.gokhandogru.net/wp-content/uploads/2022/06/MobilePart-min-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><br />
Tasarımı koda dökmeye başlamadan önce tasarımı kafamdan parçalara bölmeye başlıyorum ki ilerde <strong>Row</strong>,<strong>Column</strong>&#8216;ların birbirine karışmasını engelliyorum.<br />
Eğer sizde bir tasarımı koda dökecekseniz önceden kafanızda böyle parçalarsanız ilerleyen aşamalarda sorun yaşamazsınız 🙂</p>
<p><img loading="lazy" class="alignnone wp-image-881 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2022/06/4.png" alt="" width="1024" height="768" srcset="https://www.gokhandogru.net/wp-content/uploads/2022/06/4.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2022/06/4-300x225.png 300w, https://www.gokhandogru.net/wp-content/uploads/2022/06/4-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><br />
<strong>1) Fontların yüklenmesi</strong></p>
<p><img loading="lazy" class="alignnone wp-image-880 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2022/06/3.png" alt="" width="895" height="447" srcset="https://www.gokhandogru.net/wp-content/uploads/2022/06/3.png 895w, https://www.gokhandogru.net/wp-content/uploads/2022/06/3-300x150.png 300w, https://www.gokhandogru.net/wp-content/uploads/2022/06/3-768x384.png 768w" sizes="(max-width: 895px) 100vw, 895px" /><br />
* <strong>RobotoFontFamily</strong> proje üzerinde ki kullanılan ana fontumuz,<br />
* <strong>MaterialDesignIcons</strong> ise projemizde ki iconları göstereceğimiz font.</p>
<p><img loading="lazy" class="alignnone wp-image-882 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2022/06/56-min.png" alt="" width="895" height="447" srcset="https://www.gokhandogru.net/wp-content/uploads/2022/06/56-min.png 895w, https://www.gokhandogru.net/wp-content/uploads/2022/06/56-min-300x150.png 300w, https://www.gokhandogru.net/wp-content/uploads/2022/06/56-min-768x384.png 768w" sizes="(max-width: 895px) 100vw, 895px" /><br />
Fontlarımızı <strong>Resources &gt; Fonts</strong> klasörüne attıktan sonra <strong>MauiProgram.cs</strong> içine tanımlamarı yapıyoruz.</p>
<p>Font yüklememiz bu kadar basit. Şimdi sıra geldi tasarımda ki parçacıkları teker teker oluşturmaya 🙂</p>
<p><img loading="lazy" class="alignnone wp-image-878 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2022/06/1.png" alt="" width="895" height="447" srcset="https://www.gokhandogru.net/wp-content/uploads/2022/06/1.png 895w, https://www.gokhandogru.net/wp-content/uploads/2022/06/1-300x150.png 300w, https://www.gokhandogru.net/wp-content/uploads/2022/06/1-768x384.png 768w" sizes="(max-width: 895px) 100vw, 895px" /></p>
<p><script src="https://gist.github.com/dgokhan/855db4e79c64fe8cb9f19bfcd267b9e4.js"></script></p>
<p><img loading="lazy" class="alignnone wp-image-879 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2022/06/2.png" alt="" width="895" height="447" srcset="https://www.gokhandogru.net/wp-content/uploads/2022/06/2.png 895w, https://www.gokhandogru.net/wp-content/uploads/2022/06/2-300x150.png 300w, https://www.gokhandogru.net/wp-content/uploads/2022/06/2-768x384.png 768w" sizes="(max-width: 895px) 100vw, 895px" /></p>
<p><script src="https://gist.github.com/dgokhan/645c23526d7cba633007254ec0517ef1.js"></script></p>
<p><script src="https://gist.github.com/dgokhan/4253f17452456bab22d5624c242c443d.js"></script></p>
<p><img loading="lazy" class="alignnone size-medium" src="https://github.com/dgokhan/MauiScooter/raw/main/preview.gif?raw=true" width="600" height="338" /></p>
<p>Üşengeç arkadaşlarımız için Github üzerinden projeyi indirip, istediği değişikliği yapabilir ve düzenleyebilirler. 🙂</p>
<h3><strong>Kaynak Kodu &amp; Full Source</strong></h3>
<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://github.com/dgokhan/MauiScooter" target="_blank" rel="noopener"><img loading="lazy" class="alignnone wp-image-623" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png" sizes="(max-width: 358px) 100vw, 358px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png 358w, https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png 300w" alt="" width="395" height="149" /></a></figure>
</div>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://www.linkedin.com/in/dgokhan/" target="_blank" rel="noopener"><img loading="lazy" class="hoverZoomLink alignnone wp-image-624" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-1024x248.png" sizes="(max-width: 149px) 100vw, 149px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-1024x248.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-300x73.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-768x186.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_.png 1200w" alt="" width="149" height="36" /></a></figure>
</div>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://www.instagram.com/dxgokhan/" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-628 hoverZoomLink alignnone" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1024x291.png" sizes="(max-width: 153px) 100vw, 153px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1024x291.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-300x85.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-768x218.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1536x436.png 1536w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-2048x581.png 2048w" alt="" width="153" height="44" /></a></figure>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/mauiscooter-maui-ui/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>GitGuardian Nedir?</title>
		<link>https://www.gokhandogru.net/gitguardian-nedir/</link>
					<comments>https://www.gokhandogru.net/gitguardian-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Wed, 10 Nov 2021 20:31:27 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[git guardian nedir]]></category>
		<category><![CDATA[git guardian türkçe]]></category>
		<category><![CDATA[gitguardian]]></category>
		<category><![CDATA[gitguardian faydaları]]></category>
		<category><![CDATA[gitguardian ne işe yarar]]></category>
		<category><![CDATA[gitguardian nedir]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=854</guid>

					<description><![CDATA[Github, GitLab, Azure vb. platformlarında ki paylaştığınız projelerin güvenlik açıklarını sizlere bildiren bir geliştirici aracıdır. Örneğin Github üzerinde Public olarak paylaştığınız bir projede ConnectionString'i değiştirmeyi unutup, commit'i gönderdiniz. GitGuardian bu konuda devreye giriyor ve proje üzerinde ki ConnectionString, Api-Key&#038;Token, Sertifika vb. key-value'leri kontrol edip sizleri güvenlik konusunda uyarıyor.]]></description>
										<content:encoded><![CDATA[<p>Herkese selamlar,</p>
<p>İki gün önce Github üzerinde ki bir projemi güncellerken güvenlik ile alakalı bir mail bildirimi aldım. Konu güvenlik ile alakalı olunca GitGuardian dikkatimi çekti ve derinden incelemeye başladım. Biraz araştırdıktan sonra hoşuma giden bu aracı sizinle paylaşmak istiyorum..</p>
<p><img loading="lazy" class="alignnone wp-image-856" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg" alt="" width="24" height="23" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-150x150.jpg 150w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1.jpg 424w" sizes="(max-width: 24px) 100vw, 24px" /><strong>GitGuardian Nedir?<br />
</strong><br />
Github, GitLab, Azure vb. platformlarında ki paylaştığınız projelerin güvenlik açıklarını sizlere bildiren bir geliştirici aracıdır. Örneğin Github üzerinde Public olarak paylaştığınız bir projede ConnectionString&#8217;i değiştirmeyi unutup, commit&#8217;i gönderdiniz. GitGuardian bu konuda devreye giriyor ve proje üzerinde ki ConnectionString, Api-Key&amp;Token, Sertifika vb. key-value&#8217;leri kontrol edip sizleri güvenlik konusunda uyarıyor.</p>
<p><strong><img loading="lazy" class="alignnone wp-image-856" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg" alt="" width="24" height="23" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-150x150.jpg 150w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1.jpg 424w" sizes="(max-width: 24px) 100vw, 24px" />GitGuardian&#8217;ı Nasıl Kullanabilirim?</strong></p>
<p><a href="https://dashboard.gitguardian.com/auth/signup"><strong>GitGuardian.com</strong></a> üzerinden &#8216;<strong>Sign up with Github&#8217;</strong> seçeneği ile github hesabınızı eşleştirebilir veya üyelik formunu doldurup üye olabilirsiniz. Üyeliğinizi tamamladıktan sonra isterseniz tek bir projenizi, isterseniz tüm projelerinizin güvenlik açıklarını kontrol ettirtebilirsiniz.<br />
<img loading="lazy" class="alignnone wp-image-861 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/Basliksiz-1-min.png" alt="" width="1541" height="867" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/Basliksiz-1-min.png 1541w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Basliksiz-1-min-300x169.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Basliksiz-1-min-1024x576.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Basliksiz-1-min-768x432.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Basliksiz-1-min-1536x864.png 1536w" sizes="(max-width: 1541px) 100vw, 1541px" /></p>
<p>*Üyeliğinizin son aşamasında &#8216;All Repositories&#8217; seçeneğine tıkladığınızda tüm projelerinizi taramaya başlayacaktır.<br />
Tüm projelerime baktığımda Public olarak paylaştığım RPG projesinde 3 tane riskli durumun olduğunu belirtiyor içine girip sorunun neden kaynaklandığını birlikte inceleyelim.</p>
<p><img loading="lazy" class="alignnone wp-image-863 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_2-min.png" alt="" width="1735" height="605" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_2-min.png 1735w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_2-min-300x105.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_2-min-1024x357.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_2-min-768x268.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_2-min-1536x536.png 1536w" sizes="(max-width: 1735px) 100vw, 1735px" /></p>
<p><strong>Generic High Entropy Secret</strong> sorunun üstüne tıklayıp, içine girdiğimde ;<br />
<img loading="lazy" class="alignnone wp-image-864 size-full" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_5-min.png" alt="" width="1388" height="804" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_5-min.png 1388w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_5-min-300x174.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_5-min-1024x593.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/11/Screenshot_5-min-768x445.png 768w" sizes="(max-width: 1388px) 100vw, 1388px" /><br />
<strong>CommandLineArgumentsTests.cs</strong> içinde paylaşmış olduğum <strong>accessTokenValue</strong> key&#8217;imin açık olduğunu ve gizlemem gerektiğini belirtiyor.<br />
Sizde kendi projelerinizde ki güvenlik açıklarını tespit edip, projenizi güncelleyebilirsiniz.</p>
<p><strong><img loading="lazy" class="alignnone wp-image-856" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg" alt="" width="24" height="23" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-150x150.jpg 150w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1.jpg 424w" sizes="(max-width: 24px) 100vw, 24px" />GitGuardian hangi platformlarda kullanılabilir?<br />
</strong></p>
<ul>
<li>Azure</li>
<li>Github</li>
<li>Gitlab</li>
<li>Bitbucket</li>
<li>Circle</li>
<li>Drone</li>
<li>Jenkis</li>
<li>Travis</li>
</ul>
<p><strong><img loading="lazy" class="alignnone wp-image-856" src="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg" alt="" width="24" height="23" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-300x286.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1-150x150.jpg 150w, https://www.gokhandogru.net/wp-content/uploads/2021/11/e7appqbukd2bqfb7lky1.jpg 424w" sizes="(max-width: 24px) 100vw, 24px" />Uyarı bildirimlerini entegre edebiliyor muyuz?</strong></p>
<p>GitGuardian bildirimlerini Discord, Slack, Pager Duty, Splunk ve özel entegrasyonlarla dışarıya aktarmanız mümkün. bknz: <a href="https://dashboard.gitguardian.com/workspace/180888/integrations">Dökümantasyonlar</a></p>
<p>Umarım konunun sizlere faydası olmuştur.<br />
Bir başka makalede görüşmek üzere..<br />
<img loading="lazy" class="alignnone " src="https://hips.hearstapps.com/digitalspyuk.cdnds.net/16/34/1471962283-giphy-5.gif" width="263" height="197" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/gitguardian-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wi-Fi üzerinden Debugging Yapmak [Xamarin&#038;Android Studio]</title>
		<link>https://www.gokhandogru.net/wi-fi-ile-debugging-yapmak-xamarinandroid-studio/</link>
					<comments>https://www.gokhandogru.net/wi-fi-ile-debugging-yapmak-xamarinandroid-studio/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sun, 25 Apr 2021 14:49:42 +0000</pubDate>
				<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[android studio wifi connect]]></category>
		<category><![CDATA[android studio wifi debug]]></category>
		<category><![CDATA[xamarin debug]]></category>
		<category><![CDATA[xamarin wifi connect]]></category>
		<category><![CDATA[xamarin wifi debug]]></category>
		<category><![CDATA[xamarin wifi ile bağlantı]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=775</guid>

					<description><![CDATA[Hojjgeldinizzzz hoşgeldinnnizzz.. Android uygulamalarımızı kimi zaman emulatörde kimi zaman prod bir telefonda debugging yapmak isteriz. Hele ki büyük bir proje yapıyorsak telefonda ön izleme almak çok daha önemli olabiliyor. Benim gibi kendi telefonlarında test eden arkadaşlar için &#8220;nerde bu usb kablosu?&#8221; derdini güzel bir yöntemle ortadan kaldıracağız. 🙂 Pekii nasıll?? * Anlatacağım yöntem bu zamana...<p><a class="read-more" href="https://www.gokhandogru.net/wi-fi-ile-debugging-yapmak-xamarinandroid-studio/">Read More</a></p>]]></description>
										<content:encoded><![CDATA[<p>Hojjgeldinizzzz hoşgeldinnnizzz..</p>
<p><img loading="lazy" class="alignnone wp-image-776" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/DifficultGrouchyDugong-max-1mb.gif" alt="" width="324" height="243" /></p>
<p>Android uygulamalarımızı kimi zaman emulatörde kimi zaman prod bir telefonda debugging yapmak isteriz. Hele ki büyük bir proje yapıyorsak telefonda ön izleme almak çok daha önemli olabiliyor. Benim gibi kendi telefonlarında test eden arkadaşlar için &#8220;nerde bu usb kablosu?&#8221; derdini güzel bir yöntemle ortadan kaldıracağız. 🙂</p>
<p><strong>Pekii nasıll??</strong></p>
<p>* Anlatacağım yöntem bu zamana kadar herhangi bir platformda sorunsuz debug almış, <strong>adb</strong> komutlarında sorun yaşamayan, projelerine hali hazırda devam eden arkadaşlar içindir. Yaşanabilecek sorunlar için konu altında bazı çözüm yolları sunacağım.</p>
<p><strong>Hadi başlayalım..</strong></p>
<p>1-) Son kez olmak üzere, telefonumuzu usb ile bilgisayara bağlayalım.<br />
2-) Bilgisayardan CTRL + R kombinasyonu ile çalıştır komutuna <strong>cmd</strong> yazıp CMD panelimizi açalım.<br />
<img loading="lazy" class="alignnone wp-image-784 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-1-min-300x52.png" alt="" width="612" height="106" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-1-min-300x52.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-1-min-768x132.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-1-min.png 977w" sizes="(max-width: 612px) 100vw, 612px" /></p>
<p>3-) Komut satırına <strong>adb devices</strong> ile bilgisayara tanımlanan cihazları listeleyelim.<br />
<img loading="lazy" class="alignnone wp-image-793 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/m-min-300x45.png" alt="" width="613" height="92" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/m-min-300x45.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/m-min-1024x154.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/04/m-min-768x115.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/04/m-min.png 1234w" sizes="(max-width: 613px) 100vw, 613px" /></p>
<p><span style="font-size: inherit;">* Eğer sizde benim gibi birden fazla devices görüyorsanız hem usb ile telefona bağlanmışınız hem de altta emülatör açık kalmış demektir. Emülatörü kapatın ve tekrar adb list çekin sadece sizin usb ile bağladığınız telefon gözükecektir.</span></p>
<p><span style="font-size: inherit;">4-) Adb debug portunu 5555 olarak ayarlayıp, adb&#8217;nin yeniden başlamasını bekleyin.<br />
</span><img loading="lazy" class="alignnone wp-image-792 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/ds-min-300x45.png" alt="" width="613" height="92" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/ds-min-300x45.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/ds-min-1024x154.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/04/ds-min-768x115.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/04/ds-min.png 1234w" sizes="(max-width: 613px) 100vw, 613px" /><br />
<span style="font-size: inherit;"><br />
5-) Telefonunuzun modem üzerinden hangi IP adresini aldığını öğrenmek için Ayarlar -&gt; Bağlantılar -&gt; Wifi -&gt; Gelişmiş bölümünden IP adresinizi alın.<br />
</span><img loading="lazy" class="alignnone wp-image-785 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-2-min-300x170.png" alt="" width="579" height="328" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-2-min-300x170.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-2-min-1024x581.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-2-min-768x436.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/04/Basliksiz-2-min.png 1272w" sizes="(max-width: 579px) 100vw, 579px" /></p>
<p><span style="font-size: inherit;">6-) Adb connect ile IP&amp;Port üzerinden bağlantınızı kurun.<br />
</span><span style="font-size: inherit;"><img loading="lazy" class="alignnone wp-image-794 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-1-300x45.png" alt="" width="613" height="92" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-1-300x45.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-1-1024x154.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-1-768x115.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-1.png 1234w" sizes="(max-width: 613px) 100vw, 613px" /><br />
* <strong>connected to 192.168.*****:5555</strong> yazdıktan sonra usb kablonuzu çıkarıp IDE&#8217;mizi tekrar kontrol edelim.</span></p>
<p>&nbsp;</p>
<p>&#x1f4f1;Visual Studio ;<br />
<img loading="lazy" class="alignnone wp-image-789 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-300x91.png" alt="" width="524" height="159" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min-300x91.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/n-min.png 493w" sizes="(max-width: 524px) 100vw, 524px" /><br />
<span style="font-size: inherit;"><br />
&#x1f4f1;Android Studio ;<br />
<img loading="lazy" class="alignnone wp-image-790 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/04/Screenshot_1-min-300x135.png" alt="" width="524" height="236" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/04/Screenshot_1-min-300x135.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/04/Screenshot_1-min.png 439w" sizes="(max-width: 524px) 100vw, 524px" /><br />
<img loading="lazy" class="alignnone " src="https://cdn.vox-cdn.com/thumbor/a5EcHSnHLRfQyzSFvhmPSnibCq0=/0x0:420x314/1400x1400/filters:focal(136x115:202x181):format(gif)/cdn.vox-cdn.com/uploads/chorus_image/image/55279403/tenor.0.gif" width="297" height="297" /></span></p>
<p>&nbsp;</p>
<p>Umarım bu makalede sizlere faydalı olabilmişimdir.<br />
İlerleyen sağlıklı günlerde tekrardan görüşmek üzere&#8230;:)</p>
<p>Kaynakça<br />
• <a href="https://docs.microsoft.com/en-us/xamarin/android/get-started/installation/set-up-device-for-development">https://docs.microsoft.com/en-us/xamarin/android/get-started/installation/set-up-device-for-development</a></p>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 298px; left: 386px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 377px; left: 386px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 957px; left: 83px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 748px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 559px; left: 378px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 557px; left: 378px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 1582px; left: 329px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 589px; left: 121px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 1880px; left: 268px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 452px; left: 378px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 944px; left: 83px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 1350px; left: 121px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 1804px; left: 370px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 888px; left: 83px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/wi-fi-ile-debugging-yapmak-xamarinandroid-studio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Xamarin.Forms – XamExxen UI</title>
		<link>https://www.gokhandogru.net/xamarin-forms-xamexxen-ui/</link>
					<comments>https://www.gokhandogru.net/xamarin-forms-xamexxen-ui/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Thu, 28 Jan 2021 00:41:40 +0000</pubDate>
				<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[maui]]></category>
		<category><![CDATA[xamarin design]]></category>
		<category><![CDATA[Xamarin UI]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=682</guid>

					<description><![CDATA[Herkese selamlar arkadaşlar, geçenlerde Gerald Verslius&#8217;un Xamarin hakkında paylaşmış olduğu yeni makalesini (Xamarin Community Toolkit: A Must-Have Xamarin Library) okuduktan sonra aslında kendimin de uzun zamandır Xamarin ve Xamarin.UI hakkında bir şey paylaşmadığımı, artık yeni bir şeyler yapmak gerekiyor diye kendi kendime mızmızlanırken bir reflesh ile LinkedIn anasayfamın en üstüne Ömer Aslan Exxen paylaşımı beliriverdi....<p><a class="read-more" href="https://www.gokhandogru.net/xamarin-forms-xamexxen-ui/">Read More</a></p>]]></description>
										<content:encoded><![CDATA[<p>Herkese selamlar arkadaşlar, geçenlerde Gerald Verslius&#8217;un Xamarin hakkında paylaşmış olduğu yeni makalesini (<a href="https://devblogs.microsoft.com/xamarin/xamarin-community-toolkit/" target="_blank" rel="noopener">Xamarin Community Toolkit: A Must-Have Xamarin Library</a>) okuduktan sonra aslında kendimin de uzun zamandır Xamarin ve Xamarin.UI hakkında bir şey paylaşmadığımı, artık yeni bir şeyler yapmak gerekiyor diye kendi kendime mızmızlanırken bir reflesh ile LinkedIn anasayfamın en üstüne Ömer Aslan Exxen paylaşımı beliriverdi. Artık şans mı ? Kader mi bilemedim ama kafamda &#8220;neden olmasın?&#8221; dedim ve hemen kendisiyle iletişime geçip tasarım için izin istedim:) Sağolsun ki kullanmamda bir sakınca olmadığını belirti ve başladım kolları sıvamaya.. <br /><br />Eğer sizlerde bir şeyler denemek istiyorsanız <a href="https://dribbble.com/omeraslanoa" target="_blank" rel="noopener">dribbble</a> profiline buradan ulaşabilirsiniz. 🙂 <br /><br /><img loading="lazy" class="wp-image-683 hoverZoomLink alignnone" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenInfo-300x225.jpg" alt="" width="988" height="741" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenInfo-300x225.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenInfo-1024x768.jpg 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenInfo-768x576.jpg 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenInfo-1536x1152.jpg 1536w, https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenInfo.jpg 1600w" sizes="(max-width: 988px) 100vw, 988px" /> <br /><br />Peki şimdi bu tasarımı nasıl böleceğiz? nereye ne koyacağız? gelin ilk önce iskelet yapısını oluşturalım.. <br /><br /><img loading="lazy" class="wp-image-685 hoverZoomLink alignnone" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenGuid-300x225.png" alt="" width="983" height="737" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenGuid-300x225.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenGuid-768x576.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/XamExxenGuid.png 1024w" sizes="(max-width: 983px) 100vw, 983px" /> <br /><br />* Unutmayın ki Responsive bir yapı oluşturmak istiyorsanız <strong>Grid</strong> adlı arkadaşı bol bol kullanacaksınız. Yok burada bu yakıştı, şurada şu olsun gibi eylemlere girmeyiniz sonuçta bunu 5.2&#8243; kullanan telefonlarda olacak 11&#8243; kullanan tabletlerde olacak.. hep ben hep ben yok birazcık da biz diyin:) <br /><br />Tasarımımıza geri dönecek olursak ilk önce kullanacağımız renkleri paletime (App.xaml) döküyorum.<br /><br /><img loading="lazy" class="alignnone size-medium wp-image-696 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/Colors-300x44.png" alt="" width="300" height="44" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/Colors-300x44.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Colors.png 510w" sizes="(max-width: 300px) 100vw, 300px" /> <br /><br /><script src="https://gist.github.com/dgokhan/8bd99aa022723ceea674c3b9acac9bd4.js"></script> <br /><strong>* Ufak bir dipnot *</strong> <br />Label, Grid, Button vb. araçlarınıza direk olarak BackgroundColor = &#8220;#00000&#8221; veya TextColor = &#8220;#ffffff&#8221;  vermek ilerde başınızı duvarlara vurmanıza neden olabilir.. neden mi? Artık çoğu uygulamalar Gece Modu olmadan kullanılmıyor. Biz bile Twitter,Instagram vb. uygulamaları Dark Theme&#8217;de kullanıyoruz bu yüzden ilerde tek tek renk değiştirmek yerine tek bir noktadan şıp diye erişebilir ve boşa gidecek saatlerinizi kurtarmış olabilirsiniz.<br /><br /><del> </del></p>
<p class="LC20lb DKV0Md">&#x274c; <span style="color: #ff0000;"><del style="font-size: inherit;">TextColor=&#8221;#FFFFFF&#8221;  </del><span style="font-size: inherit;"> </span></span></p>
<p class="LC20lb DKV0Md">&#x2705;<span style="color: #339966;"> TextColor=&#8221;{StaticResource colorWhite}&#8221; <br /></span><br /><br /><strong>*Ufak bir dipnot 2*</strong> <br />Iconlar için Android veya IOS katmanına asla resim yüklemiyoruz! Icon işleri için uzun zamandır fontawesome kullanan birisi olarak son 6aydır projelerimin tüm icon ve resim ihtiyacını artık materialdesignicons ile hallediyorum. Nedir bu materialdesignicons derseniz; Projenize 879 KB ile 26.315 responsive icon ekleyebiliyorsunuz desem? peki nasıl diyecek olursanız en aşağıda kaynak 3e ve daha sonrasında kaynak 4&#8217;e bakmanızı tavsiye ediyorum. <br /><br />Şimdi parça parça artık kodlarımızı oluşturmaya başlayalım.<br /><br /><img loading="lazy" class="alignnone wp-image-700 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/TopBar-min-300x51.jpg" alt="" width="371" height="63" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/TopBar-min-300x51.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/TopBar-min.jpg 325w" sizes="(max-width: 371px) 100vw, 371px" /> <br /><br /><script src="https://gist.github.com/dgokhan/9f3a9dc15920c001e13e419bbd67ecf2.js"></script> <br /><img loading="lazy" class="alignnone wp-image-699 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/Slider-min-300x181.jpg" alt="" width="375" height="226" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/Slider-min-300x181.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Slider-min.jpg 323w" sizes="(max-width: 375px) 100vw, 375px" /> <br /><br /><script src="https://gist.github.com/dgokhan/c71af26a2e124fecfac084f94669da6a.js"></script> <br /><img loading="lazy" class="alignnone wp-image-702 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/Search-min-300x53.jpg" alt="" width="374" height="66" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/Search-min-300x53.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Search-min.jpg 323w" sizes="(max-width: 374px) 100vw, 374px" /> <br /><br /><script src="https://gist.github.com/dgokhan/76be0b8be187edad4d66e8c3de5ac944.js"></script><br /><img loading="lazy" class="alignnone wp-image-701 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/KeepWatch-min-300x148.jpg" alt="" width="377" height="186" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/KeepWatch-min-300x148.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/KeepWatch-min.jpg 322w" sizes="(max-width: 377px) 100vw, 377px" /> <br /><br /><script src="https://gist.github.com/dgokhan/714f49ab1e7cd16716aa3982645fb8bf.js"></script><br /><img loading="lazy" class="alignnone wp-image-703 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-4-min-300x192.jpg" alt="" width="378" height="242" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-4-min-300x192.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-4-min.jpg 458w" sizes="(max-width: 378px) 100vw, 378px" /> <br /><br /><script src="https://gist.github.com/dgokhan/3942670ecd1d9c3318897230d30f1199.js"></script><br />Sorunsuz bir şekilde kodlarımızı dahil ettiğimizde MainPage.xaml bu şekilde olacaktır.<br /><br /><img loading="lazy" class="alignnone size-medium" src="https://raw.githubusercontent.com/dgokhan/XamExxen/main/gif/MainPage.gif" width="494" height="542" /><br /><br />Şimdi sıra geldi <strong>SharedTransitions </strong>kullanmaya.. (kaynak 1) <br />* <strong>SharedTransitions&#8217;</strong>ta ki en önemli detay: Anasayfadan içerik sayfasına gidecek olan Image Transition.Name&#8217;lerin aynı olmasıdır!<br />Eğer iki Image Transtion.Name&#8217;leri birbirinden farklı bir isimde olursa efektsiz-düz bir geçiş yapacaktır. Buna mutlaka dikkat edin:)<br /><br /><img loading="lazy" class="alignnone wp-image-722 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/Untitled-300x38.png" alt="" width="1310" height="166" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/Untitled-300x38.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Untitled-1024x129.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Untitled-768x97.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Untitled-1536x194.png 1536w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Untitled.png 1847w" sizes="(max-width: 1310px) 100vw, 1310px" /><br /><br /><strong>SharedTransitions </strong>sorunsuz olduğunda geçişi fark edeceksiniz.<br /><br /><img loading="lazy" class="alignnone size-medium" src="https://raw.githubusercontent.com/dgokhan/XamExxen/main/gif/DetailPage.gif" width="494" height="542" /><br /><br /><br />Üşengeç arkadaşlarımız için Github üzerinden projeyi indirip, istediği değişikliği yapabilir ve düzenleyebilirler.<br />Şuan Mac olmadığı için IOS tarafında test yapamıyorum ama kısa bir süre sonra projeyi ios-update adında bir güncelleme göndereceğim:)<br />IOS tarafını da kullanmak isteyen arkadaşlar Android.Image&#8217;leri IOS katmanına taşırsa sorun yaşamayacaklardır.<br /><br /><br /></p>
<h3 style="text-align: center;"><strong>Full Kaynak Kodu &amp; Full Source</strong></h3>
<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://github.com/dgokhan/XamExxen" target="_blank" rel="noopener"><img loading="lazy" class="aligncenter wp-image-623" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png" sizes="(max-width: 358px) 100vw, 358px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png 358w, https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png 300w" alt="" width="395" height="149" /></a></figure>
</div>
<div class="wp-block-image" style="text-align: center;">
<figure class="aligncenter size-large is-resized"><a href="https://www.linkedin.com/in/g%C3%B6khan-do%C4%9Fru-2b0762158/" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-624 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-1024x248.png" sizes="(max-width: 149px) 100vw, 149px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-1024x248.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-300x73.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-768x186.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_.png 1200w" alt="" width="149" height="36" /></a></figure>
</div>
<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://www.instagram.com/dxgokhan/" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-628 hoverZoomLink aligncenter" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1024x291.png" sizes="(max-width: 153px) 100vw, 153px" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1024x291.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-300x85.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-768x218.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1536x436.png 1536w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-2048x581.png 2048w" alt="" width="153" height="44" /></a></figure>
</div>
<p>&nbsp;</p>
<p>• Kaynaklar <br /><strong>1) Xamarin.Plugin.SharedTransitions :</strong> <a href="https://github.com/GiampaoloGabba/Xamarin.Plugin.SharedTransitions" target="_blank" rel="noopener">https://github.com/GiampaoloGabba/Xamarin.Plugin.SharedTransitions</a><br /><strong>2) Xamarin.Forms 4.8 – Gradients :</strong> <a href="https://devblogs.microsoft.com/xamarin/xamarinforms-4-8-gradients-brushes/" target="_blank" rel="noopener">https://devblogs.microsoft.com/xamarin/xamarinforms-4-8-gradients-brushes/</a><br /><strong>3) Using Font Icons : Goodbye Images, Hello Fonts! :</strong> <a href="https://montemagno.com/using-font-icons-in-xamarin-forms-goodbye-images-hello-fonts/" target="_blank" rel="noopener">https://montemagno.com/using-font-icons-in-xamarin-forms-goodbye-images-hello-fonts/</a><br /><strong>4) Embedding Fonts in Xamarin.Forms :</strong><a class="" href="https://www.youtube.com/watch?v=vhl1ISTlFpA" target="_blank" rel="noopener"> https://www.youtube.com/watch?v=vhl1ISTlFpA</a></p>
<div class="wp-block-image" style="text-align: center;"> </div>
<div class="wp-block-image"> </div>

<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 4507px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 401px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<div id="hzImg" style="border: 4px solid #ffff00; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: hidden; opacity: 1; display: none;"> </div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 4497px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 4273px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<div id="gtx-anchor" style="position: absolute; visibility: hidden; left: 174.203px; top: 4834.42px; width: 153.969px; height: 19px;"> </div>
<div class="jfk-bubble gtx-bubble" style="visibility: visible; left: -438px; top: 4709px; opacity: 1;" role="alertdialog" aria-describedby="bubble-3">
<div id="bubble-3" class="jfk-bubble-content-id">
<div id="gtx-host" style="min-width: 200px; max-width: 400px;"> </div>
</div>
<div class="jfk-bubble-closebtn-id jfk-bubble-closebtn" tabindex="0" role="button" aria-label="Close"> </div>
<div class="jfk-bubble-arrow-id jfk-bubble-arrow jfk-bubble-arrowdown" style="left: 241.203px;">
<div class="jfk-bubble-arrowimplbefore"> </div>
<div class="jfk-bubble-arrowimplafter"> </div>
</div>
</div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 1295px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 4111px; left: 5px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 4177px; left: 131px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/xamarin-forms-xamexxen-ui/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JWT Login&#038;Register Panel &#124; Node.JS &#038; MySQL</title>
		<link>https://www.gokhandogru.net/jwt-loginregister-panel-node-js-mysql/</link>
					<comments>https://www.gokhandogru.net/jwt-loginregister-panel-node-js-mysql/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sat, 16 Jan 2021 02:23:08 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[jwt login]]></category>
		<category><![CDATA[jwt node js türkçe]]></category>
		<category><![CDATA[mysql node js jwt connect]]></category>
		<category><![CDATA[mysql node js register]]></category>
		<category><![CDATA[node js jwt ile giriş]]></category>
		<category><![CDATA[node js jwt login register]]></category>
		<category><![CDATA[node js mysql]]></category>
		<category><![CDATA[node js mysql login]]></category>
		<category><![CDATA[node js token code login]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=595</guid>

					<description><![CDATA[JWT Login&#038;Register Panel &#124; Node.JS &#038; MySQL]]></description>
										<content:encoded><![CDATA[
<p>Herkese selamlar arkadaşlar, uzun zamandır hem iş gereği hem de kişisel projelerimden ötürü .net etkisinden bir türlü çıkamadığımı fark ettim. Daha önce ki yıllarda .Net dışında Php, Node.JS, ve Swift ile (*web ve mobil alanlarda) geliştirdiğim projeleri hem unutmamak hem de sizlere bir şeyler öğretmek için tekrar ele alacağım.<br /><br />Şimdi senaryomuza bakacak olursak.. JWT,MySQL ile <strong>giriş ve kayıt olmayı </strong>en basit şekilde kurgulayalım.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" class="wp-image-597" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-2.png" alt="" width="891" height="445" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-2.png 895w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-2-300x150.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/Basliksiz-2-768x384.png 768w" sizes="(max-width: 891px) 100vw, 891px" /></figure>



<p>Node.JS işlerimize başlamadan önce MySQL serverimiz de &#8220;NodeLoginDB&#8221; adında bir database oluşturalım.</p>



<p><script src="https://gist.github.com/dgokhan/7456bd1ae968e3ea58f32a461e22702a.js"></script></p>



<figure class="wp-block-image size-large"><img loading="lazy" width="991" height="228" class="wp-image-602" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-1.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-1.png 991w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-1-300x69.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-1-768x177.png 768w" sizes="(max-width: 991px) 100vw, 991px" /></figure>



<p>Veritabanımızı başarılı bir şekilde oluşturduktan sonra Node.JS&#8217;e geri dönüp hemen terminalden veya bash&#8217;den gereken paketleri kuralım:)</p>



<ul>
<li><strong>Terminal </strong>veya <strong>bash </strong>&gt;
<ul>
<li>npm install <strong>hbs</strong></li>
<li>npm install <strong>bcryptjs</strong></li>
<li>npm install <strong>cookie-parser</strong></li>
<li>npm install <strong>dotenv</strong></li>
<li>npm install <strong>jsonwebtoken</strong></li>
<li>npm install <strong>mysql</strong></li>
<li>npm install <strong>-g nodemon</strong></li>
</ul>
</li>
</ul>



<p>Ana dizine <strong>app.js</strong> adında bir script oluşturup kurduğumuz paketlerin gerekli bir kısımını Importlamaya başlıyalım:)</p>



<p><script src="https://gist.github.com/dgokhan/a667f10688ae3827c32a4f4ad22a5127.js"></script></p>



<p><strong>CSS</strong>, <strong>JS </strong>ve <strong>Images </strong>dosyalarımızı projemizin <strong>assets </strong>klasörüne dahil etmeyi de unutmayalım:)</p>

<p><script src="https://gist.github.com/dgokhan/66a9b25dbb7e45f39edc9bd86d82e6ff.js"></script></p>

<p>Projemizin <strong>view </strong>katmanını <strong>Handlebars (.hbs) </strong>ile yapacağımız için view engine&#8217;miz de belirtiyoruz ve ana dizine views adında bir klasör oluşturuyoruz.</p>

<p><script src="https://gist.github.com/dgokhan/af8c61dae05a2cfd024071326f9d414c.js"></script></p>

<p><strong>Cookies </strong>ve <strong>json </strong>işlemleri için klasik encodedleri de app.use ile ekliyoruz.</p>

<p><script src="https://gist.github.com/dgokhan/b9c1535cfadd56cfc38c34e2505eb2b1.js"></script></p>

<p><strong>Routes </strong>ayarları yapmak için ana dizine <strong>Routes </strong>adında bir klasör oluşturalım ve içine<strong> auth.js</strong> atında bir script oluşturalım.</p>

<p><script src="https://gist.github.com/dgokhan/3208adaaf77ba7b2a0a758005ad2c221.js"></script></p>

<p>Bütün işlemleri yaptıktan sonra <strong>app.js</strong> scriptimiz bu şekilde olacaktır.</p>



<p><script src="https://gist.github.com/dgokhan/63737fc1dee00aaa396ea0309238a280.js"></script></p>



<p>Burada routing mantığını iyice kavramanız gerekiyor, yanlış bir routing yaparsanız &lt;form action=&#8221;&#8230;&#8221;&gt; veya herhangi bir yönlendirme de yanlış adrese gider durursunuz o yüzden app.js bittikten sonra iyice kodları okuyup, bu kod nasıl işliyor/nasıl yönleniyor diye bakmanızda fayda var 🙂</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" src="https://memegenerator.net/img/instances/75948564.jpg" alt="" width="765" height="437" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="895" height="447" class="wp-image-605" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/nodejsloginrouting.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/nodejsloginrouting.png 895w, https://www.gokhandogru.net/wp-content/uploads/2021/01/nodejsloginrouting-300x150.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/nodejsloginrouting-768x384.png 768w" sizes="(max-width: 895px) 100vw, 895px" /></figure>



<p>Şimdi sitemize <strong>../auth</strong> olarak gelen requestleri yönlendirmek için ana dizine <strong>routes </strong>klasörünü açıp<strong> auth.js</strong> scriptini oluşturalım.</p>

<p><script src="https://gist.github.com/dgokhan/38b937497363d002543d4b2ae2f54623.js"></script></p>

<p>Eveeett routing,asset vb ayarlamaları yaptıktan sonra şimdi sıra geldi <strong>MySQL</strong>&#8216;e bağlanmamıza&#8230;</p>



<p>Ana dizinimize<strong> .env </strong>adında bir settings dosyası oluşturalım ve database bilgilerimizi yazalım.</p>

<p><script src="https://gist.github.com/dgokhan/d0464938424d93565ffd3812b057900b.js"></script></p>

<p><strong>routes/auth.js</strong>&#8216;den gelen <strong>../login</strong> ve<strong> ../register</strong> requestleri yönlendirecek olan <strong>controllers </strong>klasörü açıp, içine<strong> auth.js</strong> scriptini oluşturalım.</p>

<p><script src="https://gist.github.com/dgokhan/ab5198d43c07ed6acade0e1fff44fdfe.js"></script></p>

<p>Şimdi MySQL bağlantısını kontrol edebilmek için &#8221; npm run start &#8221; yazarak localhost&#8217;u hayata kaldırıyorum..</p>



<figure class="wp-block-image size-large"><img src="https://media4.giphy.com/media/lVF1IzSO16ZH2/200.gif" alt="" /></figure>



<p>Leeeeeeeetttsss goo&#8230;</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="839" height="319" class="wp-image-611" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-3.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-3.png 839w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-3-300x114.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-3-768x292.png 768w" sizes="(max-width: 839px) 100vw, 839px" /></figure>



<p>Evet projemiz başarıyla <strong>MySQL&#8217;e </strong>bağlandığını görüyoruz:) Şimdi github&#8217;da paylaştığım tasarımı projemize dahil ediyoruz eğer sizin beğendiğiniz bir login&amp;register page var ise onu projenize ekleyebilirsiniz. <strong>*NOT*</strong> Kendi tasarımınızı kullanacak iseniz <strong>&lt;form action=&#8221;/auth/login&#8221; method=&#8221;POST&#8221;&gt;</strong> bölümünü eklemeyi unutmayınız. <br /><br /><strong>Label Admin Template Source;</strong></p>



<ul>
<li><strong>assets </strong>: <a href="https://github.com/dgokhan/NodeJS-LabelAdminPanel/tree/main/assets" target="_blank" rel="noreferrer noopener">https://github.com/dgokhan/NodeJS-LabelAdminPanel/tree/main/assets</a></li>
<li><strong>views </strong>: <a href="https://github.com/dgokhan/NodeJS-LabelAdminPanel/tree/main/views" target="_blank" rel="noreferrer noopener">https://github.com/dgokhan/NodeJS-LabelAdminPanel/tree/main/views</a></li>
</ul>



<p>Githubda ki assets klasörünü ve views .hbs&#8217;leri indirip projeye dahil ettiğimize göre sıra <strong>auth.js</strong>&#8216;e kayıt olma ve giriş yapma methodlarını eklemeye geldi..</p>



<p>&nbsp;</p>



<p><strong>#Register</strong></p>

<p><script src="https://gist.github.com/dgokhan/59b77f1c83de5c270eedeecbaeae9069.js"></script></p>

<p>Kayıt olma bölümünde ilk önce kullanıcının bize gönderdiği kullanıcı adı ile veritabanında arama yapıyoruz. Eğer o kullanıcı adına sahip birisi var ise<strong> &#8216;That username is already in use&#8217;</strong> bilgisini dönüyoruz eğer böyle bir kullanıcı yok ise kullanıcının şifresinin hashlenmiş halini veritabanına gönderip üye olmasını sağlıyoruz:)</p>



<p>Unutmayın.. ne olursa olsun hiçbir zaman database&#8217;ye görünür bir şekilde <strong>şifre kaydetmeyiz!</strong> Şirketlerin kendilerine göre yazdığı şifreleme ile veya MD5 gibi şifrelemeler ile şifrelenir. Bizde şifrelerimiz açık bir şekilde gözükmemesi için <strong>bcrypt </strong>ile şifremizi hashleyeceğiz. Böylelikle olası bir database saldırısı sonucunda verilerimiz çalınsa bile müşterilerimizin şifrelerini bulmalarını zorlaştıracağız..</p>



<p>&nbsp;</p>



<p>Yukarda bahsi geçen abimiz bu kadarcık bir kod 🙂</p>

<p><script src="https://gist.github.com/dgokhan/d6a9e9fd228be7417350641a1077ea1c.js"></script><br /><br /></p>

<p>#Login</p>

<p><script src="https://gist.github.com/dgokhan/cbc9748717ef57e90572b60196272754.js"></script></p>

<p>JWT ile ilgili kodlarımız;</p>



<p><script src="https://gist.github.com/dgokhan/be2476113357b7bd1f7b4f7757aa54eb.js"></script></p>



<p><strong>maxAge: 20000 </strong>bırakırsanız giriş yaptıktan 20 saniye sonra token ölecektir ve kullanıcıyı tekrar login sayfasına yönlendirecektir. Eğer tokenin 1saatte ölmesini istiyorsanız maxAge: 3600000 yapmanız gerekmektedir. (1saniye = 1000ms &#8216;den istediğiniz dakikayı ayarlayabilirsiniz.<strong> (1000*60)*dakika </strong>)</p>



<p>&nbsp;</p>



<p>Şimdi <strong>localhost:8000</strong>&#8216;i yenileyip <strong>localhost:8000/register</strong> sayfasına gidelim ve kayıt bilgilerimizi girelim:)</p>



<figure class="wp-block-image size-large is-resized is-style-rounded"><img loading="lazy" class="wp-image-616" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-4.png" alt="" width="590" height="451" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-4.png 778w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-4-300x229.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-4-768x587.png 768w" sizes="(max-width: 590px) 100vw, 590px" /></figure>



<p>Evet başarıyla kullanıcı kaydımızı olduk fakat bildirim yeşil yerine kırmızı bir uyarı gibi olmuş, bunlar hep hızlı kod yazayım derken copy&amp;paste hatalarınadn:).. neyse orayı makaleyi paylaşmadan hemen önce düzenlerim:p Bu arada gelin veritabanımıza bir bakalım:)</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" class="wp-image-617 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-5-1024x135.png" alt="" width="1024" height="135" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-5-1024x135.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-5-300x40.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-5-768x101.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-5.png 1162w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Kayıt olma başarılı &#x2714;&#xfe0f;bir de giriş yapmayı deneyelim bakalım..</p>



<figure class="wp-block-image size-large is-resized is-style-rounded"><img loading="lazy" class="wp-image-619" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-7.png" alt="" width="564" height="466" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-7.png 708w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-7-300x248.png 300w" sizes="(max-width: 564px) 100vw, 564px" /></figure>



<figure class="wp-block-image size-large is-style-default"><img loading="lazy" width="1024" height="337" class="wp-image-618 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-6-1024x337.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-6-1024x337.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-6-300x99.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-6-768x253.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-6-1536x506.png 1536w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-6.png 1589w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" src="https://media3.giphy.com/media/l3q2LH45XElELRzRm/200.gif" alt="" width="479" height="325" /></figure>



<p>Şimdi database işlemlerimiz ve token oluşturmamız tamam geriye sadece siteye giriş yaptıktan sonra cookies&#8217;de ki token kodunu kontrol etmek kaldı..</p>



<p>Hemen <strong>routes/pages.js</strong>&#8216;e geri gelip <strong>verifyToken </strong>adında bir function açalım..</p>

<p><script src="https://gist.github.com/dgokhan/d9f6c25029da501244417549f1379907.js"></script></p>

<p>Ardından <strong>../ </strong>anasayfaya yapılan requestlere verifyToken yapıp tokeninin yaşayıp/yaşamadığını kontrol ettirelim.</p>

<p><script src="https://gist.github.com/dgokhan/70c63bef2fec1e8f4a7f86a54796ff83.js"></script></p>

<p>Eğer token <strong>yaşıyor ise</strong> kullanıcı hiç bir sorun yaşamadan sitede ki işlemlerini yapmaya devam edecektir. <br />Fakat token <strong>süresi biter ise </strong>kullanıcı direk giriş yapma ekranına yönlendirelecektir.<br /><br />Proje ağacımızın son hali;</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" class="wp-image-620" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-8.png" alt="" width="183" height="440" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/image-8.png 246w, https://www.gokhandogru.net/wp-content/uploads/2021/01/image-8-125x300.png 125w" sizes="(max-width: 183px) 100vw, 183px" /></figure>



<p>Bu yazımızında sonuna geldik. Bu makalede NodeJS &amp; MySQL veritabınında ki kullanıcıyı JWT kontrolü ile giriş yapmayı ve veritabanına kaydolmayı anlatmaya çalıştım.<br />Eğer projelerden vakit bulabilrsem yakında NodeJS, Swift ve Xamarin dersleri de çıkarmaya çalışacağım.<br /><br />Sağlıkla ve yazılımla kalmanız dileğiyle, hamınızı öpürem. &#x1f1e6;&#x1f1ff; &#x1f1f9;&#x1f1f7; &#x1f5a5;&#xfe0f;</p>



<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://github.com/dgokhan/NodeJS-LabelAdminPanel" target="_blank" rel="noopener"><img loading="lazy" width="358" height="135" class="wp-image-623" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github.png 358w, https://www.gokhandogru.net/wp-content/uploads/2021/01/logo_github-300x113.png 300w" sizes="(max-width: 358px) 100vw, 358px" /></a></figure>
</div>



<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://www.linkedin.com/in/g%C3%B6khan-do%C4%9Fru-2b0762158/" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-624 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-1024x248.png" alt="" width="149" height="36" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-1024x248.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-300x73.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_-768x186.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/1200px-LinkedIn_Logo_2013.svg_.png 1200w" sizes="(max-width: 149px) 100vw, 149px" /></a></figure>
</div>



<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><a href="https://www.instagram.com/dxgokhan/" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-628 hoverZoomLink" src="https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1024x291.png" alt="" width="153" height="44" srcset="https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1024x291.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-300x85.png 300w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-768x218.png 768w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-1536x436.png 1536w, https://www.gokhandogru.net/wp-content/uploads/2021/01/instagram-logo-1-2048x581.png 2048w" sizes="(max-width: 153px) 100vw, 153px" /></a></figure>
</div>



<p>&nbsp;</p>

<div class="jfk-bubble gtx-bubble" style="visibility: visible; left: -453px; top: 1550px; opacity: 1;" role="alertdialog" aria-describedby="bubble-3">
<div id="bubble-3" class="jfk-bubble-content-id">
<div id="gtx-host" style="min-width: 200px; max-width: 400px;"> </div>
</div>
<div class="jfk-bubble-closebtn-id jfk-bubble-closebtn" tabindex="0" role="button" aria-label="Close"> </div>
<div class="jfk-bubble-arrow-id jfk-bubble-arrow jfk-bubble-arrowup" style="left: 226.5px;">
<div class="jfk-bubble-arrowimplbefore"> </div>
<div class="jfk-bubble-arrowimplafter"> </div>
</div>
</div>
<p><img id="hzDownscaled" style="position: absolute; top: -10000px;" /></p>
<p><img id="hzDownscaled" style="position: absolute; top: -10000px;" /><img id="hzDownscaled" style="position: absolute; top: -10000px;" /></p>
<div id="hzImg" style="border: 4px solid #ffffff; line-height: 0px; overflow: hidden; padding: 0px; margin: 4px; position: absolute; z-index: 2147483647; border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.4) 0px 1px 3px; visibility: visible; opacity: 1; top: 6598px; left: 193px; cursor: pointer; pointer-events: none; width: auto; height: auto; background-color: #ffffff; display: none;"> </div>
<p><img id="hzDownscaled" style="position: absolute; top: -10000px;" /><img id="hzDownscaled" style="position: absolute; top: -10000px;" /></p>
<p><img id="hzDownscaled" style="position: absolute; top: -10000px;" /><img id="hzDownscaled" style="position: absolute; top: -10000px;" /></p>]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/jwt-loginregister-panel-node-js-mysql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Microsoft .NET MAUI nedir? MAUI Hakkında Bilgiler..</title>
		<link>https://www.gokhandogru.net/microsoft-net-maui-nedir-maui-hakkinda-bilgiler/</link>
					<comments>https://www.gokhandogru.net/microsoft-net-maui-nedir-maui-hakkinda-bilgiler/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sat, 06 Jun 2020 00:25:32 +0000</pubDate>
				<category><![CDATA[Maui]]></category>
		<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[.net maui türkçe]]></category>
		<category><![CDATA[dotnet maui]]></category>
		<category><![CDATA[maui blazor]]></category>
		<category><![CDATA[maui framework]]></category>
		<category><![CDATA[maui hakkında bilgileri]]></category>
		<category><![CDATA[maui ne zaman çıkacak]]></category>
		<category><![CDATA[maui nedir?]]></category>
		<category><![CDATA[maui türkiye]]></category>
		<category><![CDATA[microsoft maui]]></category>
		<category><![CDATA[microsoft maui nedir?]]></category>
		<category><![CDATA[mobil yazılım maui]]></category>
		<category><![CDATA[xamarin ile maui farkları neler?]]></category>
		<category><![CDATA[xamarin maui nedir?]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=486</guid>

					<description><![CDATA[Herkese selamlar arkadaşlar, bugün okuduğum makaleler ve yaptığım araştırmalar sonucunda, size Kasım 2021&#8217;de .NET 6 ile birlikte gelecek olan Maui&#8216;den bahsedeceğim. Microsoft her yıl Windows, Windows Phone, Microsoft Azure ve diğer Microsoft teknolojilerini kullanan yazılım mühendisleri için yapmış olduğu Microsoft Build konferansında mobil uygulama geliştiricileri için çok güzel haberler verildi. Peki nedir bu güzel haberler?...<p><a class="read-more" href="https://www.gokhandogru.net/microsoft-net-maui-nedir-maui-hakkinda-bilgiler/">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>Herkese selamlar arkadaşlar, bugün okuduğum makaleler ve yaptığım araştırmalar sonucunda, size Kasım 2021&#8217;de .NET 6 ile birlikte gelecek olan <strong><em>Maui</em></strong>&#8216;den bahsedeceğim.<br /><br />Microsoft her yıl Windows, Windows Phone, Microsoft Azure ve diğer Microsoft teknolojilerini kullanan yazılım mühendisleri için yapmış olduğu Microsoft Build konferansında mobil uygulama geliştiricileri için çok güzel haberler verildi. Peki nedir bu güzel haberler? demeden önce gelin Xamarin hakkında ufak bir geçmişe gidelim&#8230;<br /><br />Microsoft, 2016&#8217;da Evolve konferansı gerçekleşmeden hemen önce Xamarin&#8217;i satın aldığı açıklanmıştı. Bu, Xamarin markası için büyük bir adımdı, ancak Microsoft&#8217;un platformu nasıl benimseyeceği, nasıl bir ilerleme kaydedeceği sürekli merak edilen bir konuydu. Microsoft, bu konuda Xamarin adının aynı kalacağına söz verdi ve geliştirmelerine aynı isimle devam etti.. Peki 2021 Kasım&#8217;da gelecek olan <strong>Maui </strong>nedir?</p>



<div class="wp-block-image">
<figure class="alignright is-resized"><img loading="lazy" class="wp-image-490" src="https://www.gokhandogru.net/wp-content/uploads/2020/06/mobileu-parthi-1024x697.png" alt="" width="702" height="478" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/06/mobileu-parthi-1024x697.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/06/mobileu-parthi-300x204.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/06/mobileu-parthi-768x523.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/06/mobileu-parthi.png 1175w" sizes="(max-width: 702px) 100vw, 702px" /></figure>
</div>



<p class="has-large-font-size" style="text-align: left;">&#x264f;&#xfe0f; <strong> .NET MAUI Nedir?</strong></p>



<p><em><strong>Maui</strong></em>, aslında Xamarin&#8217;in yerine geçecek olan, Xamarin&#8217;in evrimleşmiş halidir. Peki nasıl bir yenilikler bizi bekliyor?</p>



<p>• Bu evrimin en güzel yanlarından birisi, tek bir kod tabanından tek bir projeye sahip olmasıdır. Eskisi gibi artık <strong>İOS </strong>ve <strong>Android </strong>için farklı katmanlar yok! 3 katman 1&#8217;e iniyor.</p>



<p>• MVVM&#8217;nin yanı sıra <strong><em>Maui</em></strong>, Elm Mimarisi olarak da bilinen yeni ve heyecan verici <strong>MVU </strong>(Model-View-Update) tasarım desenini de destekleyecek ve <strong>Blazor </strong>desteğini alacak.</p>



<p>• Yeni gelecek .NET CLI desteği ile basit bir komutla projeyi bir anda başlatılmasını sağlayabileceğiz. Artık dakikalarca beklemekte yok 😉<br /><br />• Xamarin geliştiricilerinin en önemli araçlarından biri olan Xamarin.Essentials artık nuget paketi veya eklenti olarak değil, Maui projesi içinde System.Device olarak dahil olacak.</p>



<p>&nbsp;</p>



<p>&nbsp;</p>



<p style="font-size: 30px; text-align: left;">&#x1f575;&#x1f3fb; <strong>.NET MAUI yeniliklerine bir göz atalım.. </strong></p>



<div class="wp-block-image">
<figure class="alignright is-resized"><img loading="lazy" class="wp-image-548" src="https://www.gokhandogru.net/wp-content/uploads/2020/06/platformdifferences-1024x568.png" alt="" width="546" height="303" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/06/platformdifferences-1024x568.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/06/platformdifferences-300x166.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/06/platformdifferences-768x426.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/06/platformdifferences-1038x576.png 1038w, https://www.gokhandogru.net/wp-content/uploads/2020/06/platformdifferences.png 1216w" sizes="(max-width: 546px) 100vw, 546px" />
<figcaption>macOS desteği artık Microsoft&#8217;a geçmesi belki de en güzel haberlerinden&#x1f60d;</figcaption>
</figure>
</div>



<figure class="wp-block-image is-resized"><img loading="lazy" class="wp-image-547" src="https://www.gokhandogru.net/wp-content/uploads/2020/06/toolsdifferences-1-1024x378.png" alt="" width="539" height="199" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/06/toolsdifferences-1-1024x378.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/06/toolsdifferences-1-300x111.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/06/toolsdifferences-1-768x283.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/06/toolsdifferences-1.png 1188w" sizes="(max-width: 539px) 100vw, 539px" />
<figcaption>* Flutter/Dart vb. geliştirmeleri Visual Code üzerinde yapabilirken <strong>Xamarin</strong>i yapamamak biraz can sıkıcıydı fakat Maui ile o dert artık ortadan kalkıyor!</figcaption>
</figure>



<div class="wp-block-image">
<figure class="alignleft is-resized"><img loading="lazy" class="wp-image-551" src="https://www.gokhandogru.net/wp-content/uploads/2020/06/miscdifferences-1024x523.png" alt="" width="606" height="310" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/06/miscdifferences-1024x523.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/06/miscdifferences-300x153.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/06/miscdifferences-768x392.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/06/miscdifferences.png 1186w" sizes="(max-width: 606px) 100vw, 606px" />
<figcaption>dotNet CLI desteği ile çok daha hızlı projeler!</figcaption>
</figure>
</div>



<figure class="wp-block-image is-resized"><img loading="lazy" class="wp-image-550" src="https://www.gokhandogru.net/wp-content/uploads/2020/06/featuresdifferences-1024x557.png" alt="" width="610" height="332" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/06/featuresdifferences-1024x557.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/06/featuresdifferences-300x163.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/06/featuresdifferences-768x418.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/06/featuresdifferences.png 1206w" sizes="(max-width: 610px) 100vw, 610px" />
<figcaption></figcaption>
</figure>



<p>.</p>



<p style="font-size: 30px; text-align: left;">&#x267b;&#xfe0f; <strong>Maui&#8217;nin yeni proje yapısı;</strong></p>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="365" class="wp-image-576" src="https://www.gokhandogru.net/wp-content/uploads/2020/06/Başlıksız-2-1-1024x365.jpg" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/06/Başlıksız-2-1-1024x365.jpg 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/06/Başlıksız-2-1-300x107.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2020/06/Başlıksız-2-1-768x274.jpg 768w, https://www.gokhandogru.net/wp-content/uploads/2020/06/Başlıksız-2-1.jpg 1220w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul>
<li>Renderers uygulamasında basitleştirilmiş mimari.</li>
<li>Animasyon geliştirmeleri.</li>
<li>UI özelleştirmesi için daha fazla ve daha iyi araçlar.</li>
</ul>



<p style="font-size: 30px; text-align: left;">&#x1f4f2; <strong>Peki Xamarin.Forms projelerinde bir sorun yaşanacak mı?</strong></p>



<p>Tabiki <strong>hayır.</strong> Maui, Xamarin.Forms ile geliştirdiğimiz projelerde herhangi bir sıkıntı yaratmayacak. <br />Kasım 2021&#8217;de gelecek olan güncelleme ile sıkıntısız devam edebileceğiz.<br /><br />*Ayrıca MVVM veya MVU kullanımı tamamen opsiyonel olup, isteyen istediği dizaynı projesinde kullanabilecektir.</p>



<p style="font-size: 30px; text-align: left;">&#x1f6a7; <strong>.NET MAUI Yol Haritası</strong></p>



<ul>
<li><strong>2020 sonu :</strong> <em>Önizleme 1</em></li>
<li><strong>2021 başı : </strong><em>Önizleme 2 ve Önizleme 3</em></li>
<li><strong>2021 ortası :</strong> <em>Önizleme 4 ve Önizleme 5</em></li>
<li><strong>Eylül 2021 : </strong><em>İlk sürüm denemeleri</em></li>
<li><strong>Kasım 2021 : </strong>Genel kullanıma sunulması.</li>
</ul>



<p style="font-size: 30px; text-align: left;">&#x1f441;&#x200d;&#x1f5e8; <strong>Blazor nedir ve faydaları nelerdir?</strong></p>



<figure class="wp-block-embed-youtube alignright wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio">
<div class="wp-block-embed__wrapper">https://www.youtube.com/watch?v=doaMSHQtXYQ</div>
</figure>



<p><strong>Blazor </strong>sistemi; size xaml yapılarının içinde javascript yazarmışcasına kodunuza direk müdahale etme şansı sağlıyor diyebiliriz. Konuyu açmak adına şöyle bir örnek veriyorum; Bir mobil uygulamamız var ve butona tıkladığında ekrandaki sayacın artmasını istiyoruz.. bunun için ilk önce xaml kodunu çıkarmanız gerekiyor daha sonra MVVM&#8217;den <strong>Command </strong>veya <strong>Clicked </strong>verdiğiniz noktaya gidip sayacı arttıracak kodlarımızı yazmanız gerekiyor. Fakat Blazor ile javascript yazarmışcasına buton nesnemize <strong>OnClick </strong>verip bir kaç alt satırda butonun iş kodunu yazabiliyoruz. <br /><br />Blazor frameworkünü daha çok javascript yazmakla uğraşmak istemiyorum, javascriptide c# ile yazıp geçeyim diyen arkadaşların bildiği bir frameworktür kullanımı Xamarin&#8217;de de aynıdır. <br /><br />*<strong>Blazor</strong>&amp;<strong>Mobile </strong>konusunda kafanızda daha kalıcı birşey oluşmasını istiyorsanız sağ tarafta ki bulunan videoyu izlemenizi şiddetle tavsiye ediyorum.</p>



<p>&nbsp;</p>



<p>&nbsp;</p>



<blockquote class="wp-block-quote is-style-large">
<p>Peki siz bu yeni <strong>Maui </strong>hakkında ne düşünüyorsunuz?<br />Yorumlarınızı ve düşüncelerinizi yorum olarak belirtebilirsiniz 🙂</p>
</blockquote>



<p style="font-size: 12px;">Kaynak/References;<br />• <a href="https://www.telerik.com/blogs/time-to-evolve-net-multi-platform-app-ui-maui">https://www.telerik.com/blogs/time-to-evolve-net-multi-platform-app-ui-maui</a> <br />• <a href="https://marcofolio.net/xamarin-maui/">https://marcofolio.net/xamarin-maui/</a> <br />• <a href="https://gunnarpeipman.com/dotnet-maui-announced/">https://gunnarpeipman.com/dotnet-maui-announced/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/microsoft-net-maui-nedir-maui-hakkinda-bilgiler/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Xamarin.Forms – XamNike UI</title>
		<link>https://www.gokhandogru.net/xamarin-forms-xamnike-ui/</link>
					<comments>https://www.gokhandogru.net/xamarin-forms-xamnike-ui/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Sun, 31 May 2020 02:23:03 +0000</pubDate>
				<category><![CDATA[Xamarin]]></category>
		<category><![CDATA[xamarin nike design]]></category>
		<category><![CDATA[xamarin tasarım]]></category>
		<category><![CDATA[Xamarin UI]]></category>
		<category><![CDATA[xamarin ui design]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=462</guid>

					<description><![CDATA[Herkese selamlar dostlar, Geçenlerde paylaştığım XamFilm UI‘den bilgimi geliştirecek çok güzel geri dönüşler aldım. Bilgimin daha da artması ve githubda ki xamarin community’e faydamın dokunması adına hemen yeni tasarım arayışlarına girdim. Fakat ne kadar güzel tarafları olsa da üzüldüğüm noktalarda yok değildi.. mesela içeriklerimin ve sitenin dili Türkçe olmasına rağmen ziyaretçinin %17 Türkiye, %83ü yurt dışı...<p><a class="read-more" href="https://www.gokhandogru.net/xamarin-forms-xamnike-ui/">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>Herkese selamlar dostlar,<br><br>Geçenlerde paylaştığım<a rel="noreferrer noopener" href="https://www.gokhandogru.net/xamarin-forms-xamfilm-ui/" target="_blank"> XamFilm UI</a>‘den bilgimi geliştirecek çok güzel geri dönüşler aldım. Bilgimin daha da artması ve githubda ki xamarin community’e faydamın dokunması adına hemen yeni tasarım arayışlarına girdim. Fakat ne kadar güzel tarafları olsa da üzüldüğüm noktalarda yok değildi.. mesela içeriklerimin ve sitenin dili Türkçe olmasına rağmen ziyaretçinin %17 Türkiye, %83ü yurt dışı olması beni biraz üzdü, durum böyle olunca ilerisi için fikirlerim birazcık değişti. O yüzden siteyi ilerleyen zamanlarda sadece kodların bulunacağı ingilizce ve türkçe olmak üzere ikiye ayırmayı düşünüyorum. İngilizce açıklamalarda çok fazla detaya inemesemde Türkçe makale tarafında güzel püf noktalarını, detayına kadar vereceğim. Her neyse bunlar ileri planlarımız şimdi gelelim konumuza XamNike tasarımımıza &#x1f642; </p>



<figure class="wp-block-image"><img loading="lazy" width="1014" height="487" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/nike-app-xd-redesign-1014x487-min.jpg" alt="" class="wp-image-464" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/nike-app-xd-redesign-1014x487-min.jpg 1014w, https://www.gokhandogru.net/wp-content/uploads/2020/05/nike-app-xd-redesign-1014x487-min-300x144.jpg 300w, https://www.gokhandogru.net/wp-content/uploads/2020/05/nike-app-xd-redesign-1014x487-min-768x369.jpg 768w" sizes="(max-width: 1014px) 100vw, 1014px" /><figcaption>kaynak;  <a href="https://www.uplabs.com/posts/nike-app-redesign-concept">https://www.uplabs.com/posts/nike-app-redesign-concept</a> </figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" width="1024" height="768" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileu-parthi-min-1-1024x768.png" alt="" class="wp-image-466" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileu-parthi-min-1-1024x768.png 1024w, https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileu-parthi-min-1-300x225.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileu-parthi-min-1-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Tasarım aslında çok basit gözükse de ürün ve ürün arkasında ki mavi daire yerleştirmesi biraz işlerimi zorlaştırmıştı 🙂<br>Fakat birkaç deneme ile istenilene çok yakın bir sonuç aldım 🙂</p>



<p>İlk önce mimarimizin Grid Row yüksekliklerimizi belirleyelim&#8230;<br><br>*NOT | Grid.Row = 1 &#8216;in Auto olma sebebi ScrollView kullanacağımız için ne kadar veri/tasarım varsa o kadar esneyip,bükülecek olmasıdır. Aynı durum ürün açıklaması içinde geçerlidir. Ürün açıklaması ne kadar uzunsa o kısım o kadar uzun olmalıdır herhangi bir boyut/piksel verirseniz olası durumlarda taşmalar veya büyük boşluklar görebilirsiniz o yüzden bu tarz esnek yerler için Auto kullanmalısınız. </p>



<script src="https://gist.github.com/dgokhan/f96a0b8703aae277b92e91d2f5e03cba.js"></script>



<p>Geriye gitmek için ve kaydetmek için biraz kolaya kaçıyorum ama gayet iş görür 🙂</p>



<figure class="wp-block-image"><img loading="lazy" width="500" height="84" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-5.png" alt="" class="wp-image-469" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-5.png 500w, https://www.gokhandogru.net/wp-content/uploads/2020/05/image-5-300x50.png 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<script src="https://gist.github.com/dgokhan/14e5fe81d4ee8ee7b03a1b53ffb23c7a.js"></script>



<figure class="wp-block-image"><img loading="lazy" width="496" height="880" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled.png" alt="" class="wp-image-473" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled.png 496w, https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled-169x300.png 169w" sizes="(max-width: 496px) 100vw, 496px" /></figure>



<script src="https://gist.github.com/dgokhan/7f5503d55ced637863295fcef35fb1b4.js"></script>



<figure class="wp-block-image"><img loading="lazy" width="498" height="62" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-7.png" alt="" class="wp-image-472" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-7.png 498w, https://www.gokhandogru.net/wp-content/uploads/2020/05/image-7-300x37.png 300w" sizes="(max-width: 498px) 100vw, 498px" /></figure>



<script src="https://gist.github.com/dgokhan/8721fd3d99f67ce25a45c0bde9f1e4aa.js"></script>



<p>Eğer ben üşengecim sen bana seriden github kodlarını gönder diyorsan buyruuunn;</p>



<figure class="wp-block-image is-resized"><img loading="lazy" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542.png" alt="" class="wp-image-427" width="263" height="263" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542.png 512w, https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542-150x150.png 150w, https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542-300x300.png 300w" sizes="(max-width: 263px) 100vw, 263px" /></figure>



<p><a href="https://github.com/dgokhan/XamNike">https://github.com/dgokhan/XamNike</a> <br><br>ve uğraşlarımızın sonucu:)</p>



<figure class="wp-block-image"><img src="https://github.com/heRanarchy/XamNike/raw/master/images/nike.gif" alt=""/></figure>



<ul><li>Unutmayın ki proje MVVM olarak yapılmamıştır. MVVM örnekleri için başka makalelerde paylaşacağım bu sadece onpage-design&#8217;dir.</li><li>Projede Material Design Icons ve ffimageloading kullanılmıştır.</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/xamarin-forms-xamnike-ui/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Xamarin.Forms &#8211; XamFilm UI</title>
		<link>https://www.gokhandogru.net/xamarin-forms-xamfilm-ui/</link>
					<comments>https://www.gokhandogru.net/xamarin-forms-xamfilm-ui/#respond</comments>
		
		<dc:creator><![CDATA[Gökhan Doğru]]></dc:creator>
		<pubDate>Tue, 26 May 2020 19:02:24 +0000</pubDate>
				<category><![CDATA[Xamarin]]></category>
		<guid isPermaLink="false">https://www.gokhandogru.net/?p=410</guid>

					<description><![CDATA[Herkese selamlar dostlar, Bu aralar Xamarin&#8217;de birşeyler karalıyım, yeni bloglar yazayım, accuk kendimi geliştireyim diyordum fakat araya öyle saçma işler çıkıyordu ki sürekli ertelenip duruyordu.. Amaaa taa ki bugüne kadar 🙂 Bugün şans eseri gezerken güzel bir Figma projesi buldum ve incelerken dedim ki &#8220;neden bunu Xamarin.Forms&#8217;da yapmayalım?&#8221; hazır boş zamanım varken araya da başka...<p><a class="read-more" href="https://www.gokhandogru.net/xamarin-forms-xamfilm-ui/">Read More</a></p>]]></description>
										<content:encoded><![CDATA[
<p>Herkese selamlar dostlar,<br><br>Bu aralar Xamarin&#8217;de birşeyler karalıyım, yeni bloglar yazayım, accuk kendimi geliştireyim diyordum fakat araya öyle saçma işler çıkıyordu ki sürekli ertelenip duruyordu.. Amaaa taa ki bugüne kadar 🙂 Bugün şans eseri gezerken güzel bir Figma projesi buldum ve incelerken dedim ki &#8220;neden bunu Xamarin.Forms&#8217;da yapmayalım?&#8221; hazır boş zamanım varken araya da başka bir iş girmeden açtım hemen Visual Studio&#8217;yu.. </p>



<p><img loading="lazy" width="3200" height="2400" class="wp-image-411" style="width: 900px;" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileui-min.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileui-min.png 3200w, https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileui-min-300x225.png 300w, https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileui-min-768x576.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/05/mobileui-min-1024x768.png 1024w" sizes="(max-width: 3200px) 100vw, 3200px" /></p>



<p>kaynak;   <a href="https://dribbble.com/shots/10795979-Movie-App-Free">https://dribbble.com/shots/10795979-Movie-App-Free</a> </p>



<p>Kuracağımız dizaynın mimarisini kafamda şu şekilde oluşturuyorum ve hemen işe koyulmaya başlıyorum.<br><img loading="lazy" width="1590" height="2400" class="wp-image-413" style="width: 650px;" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled-min.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled-min.png 1590w, https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled-min-199x300.png 199w, https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled-min-768x1159.png 768w, https://www.gokhandogru.net/wp-content/uploads/2020/05/Untitled-min-678x1024.png 678w" sizes="(max-width: 1590px) 100vw, 1590px" /></p>



<p>Tasarım toplamda 1 +4 olarak 5 kısımdan oluşuyor.  O yüzden banner dışında oluşan 4 kısmı hemen RowDefinitions ile oluşturuyorum.<br><br>Row 0 : Image (banner)<br>Row 1 : Frame<br>Row 2 : Grid<br>Row 3 : Grid  <br>Row 4 : Grid   </p>



<script src="https://gist.github.com/dgokhan/d4d1151fbe39791ac71f6be84e878903.js"></script>



<p># Part I</p>



<figure class="wp-block-image"><img loading="lazy" width="538" height="425" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-2.png" alt="" class="wp-image-419" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-2.png 538w, https://www.gokhandogru.net/wp-content/uploads/2020/05/image-2-300x237.png 300w" sizes="(max-width: 538px) 100vw, 538px" /></figure>



<script src="https://gist.github.com/dgokhan/8df8e64f51174e9eac44415ed8502471.js"></script>



<figure class="wp-block-image"><img loading="lazy" width="536" height="161" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-1.png" alt="" class="wp-image-422" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-1.png 536w, https://www.gokhandogru.net/wp-content/uploads/2020/05/image-1-300x90.png 300w" sizes="(max-width: 536px) 100vw, 536px" /></figure>



<script src="https://gist.github.com/dgokhan/cd4919a39e305e125ddc90b924ab6896.js"></script>



<figure class="wp-block-image"><img loading="lazy" width="538" height="135" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-3.png" alt="" class="wp-image-425" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-3.png 538w, https://www.gokhandogru.net/wp-content/uploads/2020/05/image-3-300x75.png 300w" sizes="(max-width: 538px) 100vw, 538px" /></figure>



<script src="https://gist.github.com/dgokhan/408bc2e73a45f7c6ec3bec896a97c5ad.js"></script>



<figure class="wp-block-image"><img loading="lazy" width="538" height="208" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-4.png" alt="" class="wp-image-426" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/image-4.png 538w, https://www.gokhandogru.net/wp-content/uploads/2020/05/image-4-300x116.png 300w" sizes="(max-width: 538px) 100vw, 538px" /></figure>



<script src="https://gist.github.com/dgokhan/592bd160cf33593b9adf5eb663d53200.js"></script>



<p>Github kaynak kodları;<br><img loading="lazy" width="512" height="512" class="wp-image-427" style="width: 150px;" src="https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542.png" alt="" srcset="https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542.png 512w, https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542-150x150.png 150w, https://www.gokhandogru.net/wp-content/uploads/2020/05/5347-github_102542-300x300.png 300w" sizes="(max-width: 512px) 100vw, 512px" /> </p>



<p><a href="https://github.com/dgokhan/XamFilm">https://github.com/dgokhan/XamFilm </a></p>



<p></p>



<p>Umarım Xamarin.UI&#8217;da kendini geliştirecek arkadaşlara faydalı olmuştur. Kafanıza takılan ve sormak istediğiniz bir soru varsa konu altından sorabilir, geliştirmek istediğiniz noktayı Github üzerinden commitleyebilirsiniz. 🙂</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.gokhandogru.net/xamarin-forms-xamfilm-ui/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
