Yazılım Kültürü

Lemi Orhan ergin’in Kodla.co’nun düzenlemiş olduğu etkinlikteki “Yeni Nesil Yazılım Kültürü” başlıklı sunumunu izledikçe oldukça yararlı bilgiler içerdiğini gördüm. Arada görebilmek ve not etmiş olmak için buraya eklemek istedim.

 

 

 

MSSQL Fonksiyonları

Eğer sql de bir toplama işlemi yapıyorsa toplanan kolonlardan bir tanesinin null gelmesi, toplama işlemi yapılamayacağı için, sonucu null yapacaktır. Bunu önlemek için ISNULL(columnName,0) fonksiyonu kullanılabilir.

ISNULL(myColumn, 0 )

DATEDIFF(day, startDate,endDate) :

İki tarih aralığındaki zaman farkını yıl, çeyrek, ay, yılın kaçıncı günü, gün, hafta, haftanın günleri, saat, dakika, saniye, salise tipinde integer olarak alabilinmesini sağlar.

 

Select – Remove duplicate rows. : Duplicate kayıtların silinmesi için aşağıdaki kod parçacığı kullanılabilir.

  1. With cte as
  2. (select *, RANK( )
  3. over(partition By UserName, UserId order by UserId) as rnk from CV_tbl )
  4. select * from cte where rnk >1
  5. delete from DataCte where rnk =1

C# Komutlar

Select :  Varolan tablodaki kayıtların filtrelernmesini, belirlenen kriterleri sağlayan dataların gelmesini sağlar.

string find = “userId = ‘” + dtUsers.Rows[i][“userId”] + “‘ AND status = 1”;

DataRow[] foundRows = dtBooks.Select(find);

 

Merge(DataTable dt) : Başka bir tablonun datalarını bir tabloya eklemek için kullanılır. 

Copy data from a tablet o another table.

dtBooks.Merge(dtArchitecture);

 

Find MaxDate : Bir tablodaki maximum kolonu bulmayı sağlayan kod bloğudur.

DateTime maxDate =       Convert.ToDateTime(                        ((from DataRow dr in dt.Rows                          orderby Convert.ToDateTime(dr[“DateColumn”]) descending                          select dr).FirstOrDefault()[“DateColumn”]                          )  );

 

Clone() : Bir tablonun yapısını,  bir başka tabloya klonlamak için kullanılır.

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required error

” The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required” hatası mail gönderimi sırasında authentication sağlanamamasından kaynaklanan bir hatadır.

Daha önce .net de mail gönderimi ile ilgili Mail Gönderme yazısını paylaşmıştım. Mail gönderiminin nasıl yapıldığı için yazıya bakılabilir.

Bu hata aşağıdaki hatalardan kaynaklı olabilir. Genelde 3. seçenek çözüm olacaktır. Ben bu şekilde çözdüm en azından 🙂

  1. Gmail hesabı kullanıcı adı ve şifresinin yanlış girilmesi
  2. SSL ayarlarının true yapılmamış olmaması. EnableSsl = true; olması gerekmektedir. Yukarıda bahsettiğim yazıda örnek kullanımı mevcuttur.
  3. Less Secure Apps Settings    Ben bu adımda hata yaşamıştım. Gmail güvenlik sebebiyle daha az güvenli uygulamalara erişim için izin vermiyor. Erişim yapmaya .alıştığınızda mail adresinize bu durumu bildiren bir mail geliyor. Mavi ile belirtilen kısımdaki linke tıklayarak ayarın yapıldığı sayfaya gidebilirsiniz. Capturemail  Link aşaüıdaki sayfaya yönlendirecektir. Aşağıdaki şekilde ayarı açarak bu hatayı geçebilirsiniz.Capturemail2
  4. Uygulama Lokasyonundan Erişim  Gmailinizin o lokasyondan erişilebiliyor olması gerekir.

 

 

Mail Gönderme – .Net MVC

Bir çok web sayfasında yer alan İletişim kısmı genellikle ziyaretçilerin site sahibine erişmesi için kullanılır. Bazı siteler iletişim sayfasında sadece lokasyon ve iletişim bilgilerini bulundururken daha kurumsal olan ziyaretçinin site sahibiyle iletişime geçmesini sağlayacak olanaklar sunmaktır. Bunun en kolay yollarından bir tanesi de mesaj/mail göndermek için alanlarının yer almasıdır. Mail gönderme kısmını iki şekilde yapabilirsiniz. İlk olarak tomail vererek outlook vb. mail uygulamalarının açılmasını sağlayarak mail gönderilmesini sağlamak. Bu seçenekte kullanıcı hem siteden çıkmış hem de mail gönderme işlemi yapıyormuş gibi olacağından tercih edilmez.  İkinci alternatif olarak koddan bir buton tetiklenmesi ile mail gönderilmesidir. Bu yazıda .Net MVC controller’da mail gönderiminin nasıl yapıldığına değineceğim.

Bu iki şekilde yapılabiliyor.

Birincisi :

var fromAddress = “sendermail@gmail.com”;
// any address where the email will be sending
var toAddress = “tomail@gmail.com”;
//Password of your gmail address
const string fromPassword = “senderpassword”;
// Passing the values and make a email formate to display
string subject = “Subject”;
string body = “From: ” + fromAddress + “\n”;
body += “Email: ” + “” + “\n”;
body += “Subject: ” + “” + “\n”;
body += “Question: \n” + “” + “\n”;
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = “smtp.gmail.com”;
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, subject, body);

 

İkinci seçenek ise WebMail kullanılmasıdır.

WebMail.SmtpServer = “smtp.gmail.com”;
WebMail.SmtpPort = 587;
WebMail.SmtpUseDefaultCredentials = true;
WebMail.EnableSsl = true;
WebMail.UserName = “sender@gmail.com”;
WebMail.Password = “senderpassword”;
WebMail.From = “Sender email address@gmail.com”;

//Send email
WebMail.Send(to: “tomailadress”, subject: “Subject”, body: “MailBody”, cc: “”, bcc: “”, isBodyHtml: true);

 

Bu iki şekilde mail gönderimini sağlayabilirsiniz.

 

Godaddy mail adresini Gmaile Yönlendirme

Merhaba,

Kendi domain adresinize bağlı bir mail adresi kullanmak istediğinizde godaddy iki seçenek sunuyor. Bunlardan birincisi default gelen mail paketi. Kotası oldukça düşük olan bu paket sık mail alıp, gönderenler için kullanışsız. Bunun alternatifi olarak kurumsal mail diye isimlendirdikleri bir mail ürünleri bulunmakta. 3 seneliği 55 TL’ye yakın olan bir paketle mail adresini alabiliyorsunuz. Bu ön bilgiden sonra gelelim yazının konusuna. Yukarıda bahsedilen maili aldıktan sonra gmail de kullandığınız mail adresinize entegre maillerinizi kontrol etmek isterseniz aşağıdaki linkteki adımları izleyerek bunu sağlayabilirsiniz.

Olur da link uçarsa diye google’da “How to Send and Receive GoDaddy Email From Gmail ” şeklinde aram yaptığınızda nasıl yapıldığını görebilirsiniz.

Godaddy maili gmail’e yönlendirme

Bir tarih aralığının hafta başlangıç ve bitiş tarihlerini bulma

Bugünün ait olduğu haftanın başlangıç ve bitiş tarihlerini alır. Hafta başlangıcı olarak Pazar günü bitişini de Cumartesi olarak set eder. Pazartesi başlanması isteniyorsa AddDays kullanılabilir.

DateTime Firstday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek);
DateTime Endday = Firstday.AddDays(6);

C# Dosya Yolundan Dosya İsmi Bulma

C# da Path class’ı kullanılarak dosya yolu string şeklinde gelen alandan dosya ismi aşağıdaki şekilde bulunabilir.

string path = “D:\\Works\\consoleapplication.txt”;
byte[] fileBytes = System.IO.File.ReadAllBytes(@path);
string fileName = Path.GetFileName(path);

Uzantısız almak için Path.GetFileNameWithoutExtension() kullanılabilir.