28 Kasım 2023 Salı

EpochTime'dan DateTime'a Yolculuk

 Merhaba Arkadaşlar,

SQL tarafında bazı tablolarda tarih alanına alternatif olarak EpochTime değeri tutulmaktadır. Bu değer genel bir terim olup 01.01.1970den bu zamana geçen saniyeyi bize vermektedir.


Eğer tablolarınızda böyle bir alan tanımlanmışsa bu alanın tanımlanmasındaki ana hedef aşağıdakilerden birisi olabilir:

  • taşınabilirlik
  • hesaplama kolaylığı
  • veri saklama ve işlem hafifliği
  • sıralama ve karşılaştırma kolaylığı
Dezavantajlarıda vardır ki bunlardan ilki gözle baktığınızda bu sayısal ifadenin hangi zamana karşı geldiğini yakalayamayız. Bu durumda kendimize bir converter yazmamız gerekecektir. Bugün birlikte bu converter'ı yazıyor olacağız.

SQL ortamında;

--EpochTime2Date
declare @epochtime bigint=1700392556;
select DATEADD(second,@epochtime,'19700101') as convertedTime

--Date2EpochTime
select cast(datediff(second,'1970-01-01',getdate()) as bigint) as epoch

C# Ortamında;

 public long Date2EpochTime(DateTime dt)
 {
            DateTime epochDateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
            TimeSpan timeSpan = dt-epochDateTime;
            return (long)timeSpan.TotalSeconds;
 }

 public DateTime EpochTime2Date(long epochValue)
 {
            DateTime dt = new DateTime();
            return  dt.AddSeconds(epochValue);
 }








10 Kasım 2023 Cuma

.Net 6 ile Geliştirilmiş Projeyi Sunucu Ortamında Https Sertifikalı Yapma

Merhaba Arkadaşlar, 


Web sitelerinde https:// yani güvenli bağlantı olması için ssl sertifikasını yüklüyor olmamız gerekecektir. Burada yüklemiş olduğumuz sertifika, girilen verilerin client ile server arasında veri iletimi esnasında şifreli olmasını sağlar. 









Bir siteye web sertifikası yüklemek istediğimizde ise aşağıdaki basamaklardan sırayla geçebiliriz.

Aşağıdaki örnekte .net 6 ortamında prod ortamı için sertifika yükleme örneği bulunmaktadır.

1. Power shell üzerinden new-guid diyip yeni bir Guid generate ediyoruz. (sunucu ortamında)

2..Net 6 ile geliştirmiş olduğumuz uygulama içine publish edilmesi durumunda tanıması için 80 ve 443 portunu aşağıdaki kod örneğindeki gibi ekliyoruz



3. Program.cs içerisine eklemiş oldugumuz app.UseHttpsRedirection(); kodu http tarafıyla girilmek istendiği zaman otomatik olarak https tarafına yönlendirme yapmasını sağlayacaktır.

4. sunucu ortamında .net 6 sdk'sını kurduk.

5. sunucu ortamında cmd'yi run as administrator olarak çalıştırıp sırayla aşağıdaki komutları çalıştırdık.

 * dotnet dev-certs https --clean

 * dotnet dev-certs https

 * dotnet dev-certs https --trust


Ayrıca sunucuya yüklenmiş olan sertifikaları görmek istersek;
netsh http show sslcert 


Daha önce eklenmiş olanları silmek istersek;
netsh http delete sslcert ipport=10.10.10.10:443   


Yeni bir sertifika eklemek için;
netsh http add sslcert ipport = 10.10.10.10:443 certhash = 518E7213569963F5F34ECCFE87F148DC6BECAB04C appid = {8a1c86ca-0f9d-4663-a740-e8ce8291ce9d}

SQL Çalışma Sorularının Çözümü

 -Ürünler tablosundaki ürünlerden Rengi siyah,silver ya da multi renkte olanları fiyat bilgisine göre büyükten küçüğe getirilip gösterilecek...