22 Temmuz 2024 Pazartesi

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 şekilde sql kodunu yazınız.(in yapısı kullanalım)

select * from Production.Product where Color in('Black','Silver','Multi') order by ListPrice desc


-Person.Address tablosunda addressline1 datası içinde road içeren kayıtların sadece Addressline1 ve Postakodu bilgilerini türkçe başlıklarla gözükecek şekilde getiriniz

select AddressLine1 'Adres Satırı 1',PostalCode 'Posta Kodu' from Person.Address
where AddressLine1 like '%road%'


8 Haziran 2024 Cumartesi

.Net 8 Projesinde Excel Export Nasıl Alabilirim

 Merhaba arkadaşlar, 

.net ile geliştirdiğimiz bir uygulamamız var ve biz bu verileri excel olarak indirebilmek istiyorsak bu durumda nugget üzerinden paket indirerek bu işlemi yapabiliriz. 



Proje türünü alttaki gibi seçtik. 



Projeye nugget üzerinden paket olarak ClosedXml ekledim

Sonrasında alttaki gibi kodlar yazarak projenin bin/Debug/ içerisine .xlsx formatında excel oluşturmasını sağlamış olduk.
     
  using var workbook = new XLWorkbook();
  var worksheet = workbook.Worksheets.Add("Veriler");

  List<Kisi> kisiler = new List<Kisi>()
  {
      new Kisi() {Ad="Nagihan",Soyad="Esendal"},
      new Kisi() {Ad="Eda",Soyad="Yazıcı"},
      new Kisi() {Ad="Ela",Soyad="Öztürk"},
      new Kisi() {Ad="Melis",Soyad="Er"},
  };

  worksheet.Cell(1, 1).Value = "Ad";
  worksheet.Cell(1, 2).Value = "Soyad";

  int sayac = 0;
  for (int i=2;i<kisiler.Count+2;i++)
  {
      worksheet.Cell(i, 1).Value = kisiler[sayac].Ad;
      worksheet.Cell(i, 2).Value = kisiler[sayac].Soyad;
      sayac++;
     
  }

  worksheet.Columns().AdjustToContents();


  var filePath = Path.Combine(Environment.CurrentDirectory, "veriler.xlsx");
  workbook.SaveAs(filePath);

  Console.WriteLine($"Excel dosyası oluşturuldu: {filePath}");


Excel dosyasını kontrol ederseniz buradaki listeyi excel olarak çıktı alabildiğimizi görmüş olursunuz.




2 Mart 2024 Cumartesi

SQL Server ve SQL Server Management Studio Kurulumu

Merhaba arkadaşlar, bu makalede SQL Server kurulumunu inceleyeceğiz. Öncelikle kurulum yapmak istediğimiz bilgisayarın işletim sistemine bakmamız gerekecektir. Bunun için bilgisayara sağ tıklayıp özellikler menüsünden bilgisayardaki işletim sistemi öğrenebiliriz.

SQL Server: Database ve Database objelerini tutar.
SQL Server Management Studio : SQL'e baglanmak için kullandığımız program.

Eğitimlerde hem SQL Server'ı hem de SQL Server Management Studio'yu kurmamız gerekir. 


1. SQL Server kurulumu
2. SQL Server Management Studio kurulumu

 
SQL Server'ı kurmak için buraya  tıklayınız. SQL Server Express versiyonunu eğitimlerde kullanıyoruz. Ücretsiz bir versiyon olup, SQL Server'ın bütün özelliklerine sahiptir.

















Installation type olarak Basic seçiyoruz.


Bu kurulumu tamamladıktan sonra, 2. olarak SSMS (SQL Server Management Studio) kurmamız gerekecektir.


SQL Server Management Studio kurulumu işlemi için lütfen buraya tıklayınız. 

SSMS kurulumu için eski bir makaleme bakarak kurulumu tamamlayabilirsiniz. Ordaki eski versiyonu anlatıyordu. Siz burdaki linkten güncel versiyonu indirip makaledeki aşamaları takip ederek kurulumu tamamlayabilirsiniz. Makeleye gitmek için tıklayınız


İyi Çalışmalar,


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}

3 Ekim 2023 Salı

Asp.Net 6 Projelerinde Log Yapısnın Eklenmesi

 Merhaba Arkadaşlar,

Asp.net core 6 ile geliştirdiğimiz bir projenin production'a çıktığında yani kullanıcılar tarafında kullanıma açıldığında buradaki yaşanan hatalı senaryoların kaydını tutmak gerekir ki bu bugfix aşamasında çok büyük önem taşımaktadır. Bu aşamada yapabileceğimiz kullanabileceğimiz log yapısını projemize eklemek için proje tarafında bazı konfigurasyonlar yapmak gerekecektir. 


Sırasıyla yapmamız gerekenleri aşağıdaki sırayla yapabiliriz.

Projemiz içerisindeki appsetting.json içerisine aşağıdaki gibi bir ayarlama yapmamız gerekir. Loglarında önem sırasını değiştirebileceğimiz ve hatalı olması durumundaki hataları loglamamız gerekiyorsa bu durumda bunu LogSettings içerisindeki LogLevel'da belirtebiliriz. Aşağıdaki örnekte sadece Error ve Info durumundaki logları yazmasını sağlamış olacağız.

appsettings.json

{

  "Logging": {

    "LogLevel": {

      "Default": "Error",

      "Microsoft.AspNetCore": "Warning",

      "IsBilge": "Information"

    }

  },

  "LogSettings": {

    "LogLevel": [ "Error", "Info" ]

  }

}


Log Ayarları için LogSettings.cs'i ekledik projemize ve kodlarınız aşağıdaki gibi yazdım.

   public class LogSettings

    {

        public List<string> LogLevel { get; set; }

    }


Log yapısını kullanabileceğimiz LogSettings'i de içerisinde barındıran LogService.cs yapısını ekledim.

    public class LogService

    {

        private readonly LogSettings _settings;

        public LogService(IOptions<LogSettings> settings)

        {

            _settings = settings.Value;

        }

        public List<string> GetLogLevel()

        {

            return _settings.LogLevel;

        }

     public void Log(string logFilePath, string log,string type)

        {

            string okunan = ""; //içine configten gelen değer ya da değerler gelecek.

            if (okunan.Contains(type)){

                System.IO.File.AppendAllText(logFilePath, log);

            }           

        }

    }

Program.cs içerisine aşağıdaki kodlarla register etmemiz gerekecektir.

var builder = WebApplication.CreateBuilder(args);

builder.Services.Configure<LogSettings>(builder.Configuration.GetSection("LogSettings"));

builder.Services.AddScoped<LogService>(); // MyService sınıfınızı ekleyin

builder.Services.AddControllersWithViews();


Sıra geldi log yazmak istediğimiz Controller içerisindeki ilgili metotta bunları kullanmaya. 


    public class HomeController : Controller

    {        

        private readonly LogSettings_settings;

        private readonly LogService_myService;


        public HomeController(ILogger<HomeController> logger, LogService service, IOptions<LogSettings> settings)

        {

            _logger = logger;

            _settings = settings.Value;

            _myService = service;

        }

        public IActionResult Index()

        {

            _myService. Log(logFilePath, "bilgi amaçlıdır", "Info");

           _myService. Log(logFilePath, "hata var, "Error");

            return View();

        }

}

Log projedeki sıkıntılı durumları görmenizi sağladığı gibi kullanılma oranını da görmenize yardımcı olacaktir.

Log hayat kurtarır :)

İyi Çalışmalar,


11 Şubat 2023 Cumartesi

Visual Studio 2022 Kurulumu

 Merhaba Arkadaşlar,


Visual Studio bizler için etkin kod yazmayı sağlayan bir kod geliştirme ortamıdır.
İçerisinde farklı dilleri yazmamıza imkan tanımaktadır. Bu diller C#, C, C++, F# (Fonksiyonel Programlama), Pyhton vb. gibi dillerdir.

Visual Studio'nun çeşitli versiyonları var hangisini kullanmalıyım?
Visual Studio Community olan versiyonu bireysel developerlar için yeterli olacaktır. Enterprise olan sürümü daha çok kurumsal firmalar tarafından kullanılmaktadır. Bu versiyonu indirmeniz durumunda bir ayın sonunda sizden bir key girmenizi isteyecektir. Bu key bilgisini girmeniz durumunda programı kullanabilirsiniz.

Eğitimler ve bireysel çalışmalarımız için Visual Studio Community versiyonunu indirip kurabilirsiniz.

Nasıl İndiririm?
Visual Studio Community 2022 İndirmek için buraya tıklayınız.

Bilgisayarınıza indirilmiş olan .exe uzantılı dosyayı çalıştırmanız durumunda online olarak kurulum gerçekleşecektir. Kurulum esnasında internet bağlantınızın olması önemlidir. Bağlantınız ne kadar hızlıysa kurulumu o kadar hızlı tamamlayacaktır.






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...