Posts Tagged :

create

Components on Blazor 1024 557 mezo

Components on Blazor

Hi my fellow Padawans

Blazor is a frontend framework like Angular or React but mostly like React and it has components for create pages and reusable objects functionalities.

But how can we create a component and use it on the pages in our Blazor application?

First Read this Article and create your first Blazor application 🙂

Then on your Solution Explorer find Pages and right click on it and Add -> Razor Component

On Add New Item windows write your components name and create it

I decided to make something different and I created Todo.Razor file and I add these codes on the page

@page "/todo"
@using BlazorApp1.Data;

<h3>Todo</h3>

<ul>
    @foreach (var todo in todos)
    {
            <li>@todo.Title</li>
    }
</ul>

<input placeholder="Something todo" @bind="newTodo" />
<button @onclick="AddTodo">Add todo</button>

@code {
    private List<TodoItem> todos = new();
    private string? newTodo;

    private void AddTodo()
    {
        if (!string.IsNullOrWhiteSpace(newTodo))
        {
            todos.Add(new TodoItem { Title = newTodo });
            newTodo = string.Empty;
        }
    }
}

And find NavMenu.razor file inside of the Shared folder on your Solution Explorer. Find the last item of menu divs and Add this code:

  <div class="nav-item px-3">
            <NavLink class="nav-link" href="todo">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Todo
            </NavLink>
        </div>

You will have a NavMenu.Razor page like this:

<div class="top-row ps-3 navbar navbar-dark">
    <div class="container-fluid">
        <a class="navbar-brand" href="">BlazorApp1</a>
        <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
            <span class="navbar-toggler-icon"></span>
        </button>
    </div>
</div>

<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="counter">
                <span class="oi oi-plus" aria-hidden="true"></span> Counter
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="fetchdata">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="todo">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Todo
            </NavLink>
        </div>
    </nav>
</div>

@code {
    private bool collapseNavMenu = true;

    private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;

    private void ToggleNavMenu()
    {
        collapseNavMenu = !collapseNavMenu;
    }
}

When you open the webpage you will see the Todo on your left navigation menu and then you will see your amazing Todo application like below:

If you want to use this component in other pages for example add this component on the home page. Go to your Index.Razor inside of the Pages folder and add this code :

<Todo/>

Your index.Razor will look like this

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, Everyone!</h1>

Welcome to your new app. Hello 

<SurveyPrompt Title="How is Blazor working for you?" />




<Todo/>

Then we RUN our app oooorrr we can Hot Reload and we will see the result like below:

That is easy isn’t it ?

I hope that is helpful

May the knowledge be with you

C# ile Powerpoint Sunumu Hazırlamak 554 382 mezo

C# ile Powerpoint Sunumu Hazırlamak

Merhaba arkadaşlar
Uzun süreden beri bir makale yazmaya vakit bulamıyorum ama yavaş yavaş geri dönüyorum. Bu yazıda sizlere zevkli küçük bir örnek göstermek istiyorum. 😀 C# üzerinden program yardımı ile PowerPoint sunumu hazırlamanın nasıl olduğu ile ilgili başlangıçta çok işinize yarayacak bir kod parçası
Bunun için öncelikle bir windows Forms projesi açalım ve 1 tane Buton ekleyelim 🙂 Projemiz içersine Referans olarak 2 önemli kütüphane eklememiz gerekiyor. Sağa tıklayıp “Add Reference” dedikten sonra “COM” sekmesi içersinde bulunan microsoft graph 15.0 object library ve microsoft PowerPoint 15.0 object library kütüphanelerini seçip ekleyelim.
Artık gerisi çok kolay 🙂 işte bundan sonra işi yapacak olan kod parçası

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;

namespace testToCreatePttFileFromImages
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string pictureFileName = “C:\\picToVideo\\2.jpg”;

Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();

Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;

// Create the Presentation File
Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);

Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];

// Create new Slide
slides = pptPresentation.Slides;
slide = slides.AddSlide(1, customLayout);

// Add title
objText = slide.Shapes[1].TextFrame.TextRange;
objText.Text = “The Header Of The Presentation”;
objText.Font.Name = “Arial”;
objText.Font.Size = 32;

//objText = slide.Shapes[2].TextFrame.TextRange;
//objText.Text = “this text come after the heading with bullet”;

Microsoft.Office.Interop.PowerPoint.Shape shape = slide.Shapes[2];
slide.Shapes.AddPicture(pictureFileName, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, shape.Left, shape.Top, shape.Width, shape.Height);

//slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = “the text is for the notes to specific page”;

pptPresentation.SaveAs(@”c:\picToVideo\fppt.pptx”, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
pptPresentation.Close();
pptApplication.Quit();

}
}
}

SQL _ Trigger 713 381 mezo

SQL _ Trigger

Merhaba arkadaşlar

Fazla zamanım olmadığı için blogla fazla ilgilenemiyorum  işte o nadir bulduğum zamanlardan birtanesinde daha  yararlı olacağını umduğum bir konu ile sizlerleyim. (TV programı gibi oldu ama idare edin artık :D) .

Bugün sizlere parmaklarımın yazabildiği kadar trigger anlatmak istiyorum.

Trigger Nedir?  Önce bu soruya çok basit bir bakış açısı ile bakalım yani trigger in türkçe meali ile.  Ne dersiniz ? Evet dediğinizi duyar gibiyim adeta 😀  Trigger tetik demektir. Nasıl yani tetik bildiğimiz silahlardaki tetikten işte 😉  Tetik çekildiğinde nasıl silah bir takım işlemler gerçekleşiyor ve kurşun atıyor . Sql dede bazı işlemlerden sonra otomatik olarak başka işlemlerin yapılmasını yani tetiklenmesini isteyebiliriz böyle bir yapıyı Trigger dediğimiz kod parçaları gerçekleştirirler…

Peki Trigger dediğimiz olay nasıl yazılır yada yapılır???

 

Triggerlar, Query ekranında T-SQL kodu ile veya Management Studio ile oluşturulup yönetilebilirler ve  View  ve tablolar üzerinde tanımlanabilir.  CREATE TRIGGER komutunu  kullanabilmek için sysadmin, db_owner veya db_ddladmin  rolüne sahip olmak gerekir.  Bir trigger başka bir tabloya erişecekse bu tablo için de trigger oluşturan kullanıcının erişim izni veya güncelleme izni olması gerekir.

 

Peki trigger ‘ ları ne zaman kullanırız ?

*  Değişiklikleri takip etmek için,

* Birincil anahtar üretmek için,

* Karmaşık iş kurallarını gerçekleştirmek için,

* E-posta atmak gibi olayları otomatik olarak yapmak için,

* Standart hata mesajlarının dışında bir hata mesajı elde etmek için,

* Veritabanı erişimlerini takip edebilmek için,

* Nesnede meydana gelebilecek değişiklikleri takip ve engellemek için kullanabiliriz.

 

Trigger dediğimiz yapı kendi içinde 2 ye tekrar o  bölünenlerden biride  ikiye ayrılır 😀 çokmu karışık oldu ? 😀 yani özetle şöyle :

DDL Trigger’lar: Create, Alter ve Drop işlemleri gerçekleştiğinde çalışan trigger’lardır.

DML Trigger’lar: Insert, Update ve Delete işlemleri gerçekleştiğinde çalışan trigger’lardır.

CREATE TRIGGER tetikleyici_adiON tablo_adiFOR veya AFTER veya INSTEAD OF (INSERT veya UPDATE veya DELETE)AS Sql ifadeleri

 

After (For) Trigger’ı: After triggerları, kendiyle ilişkili işlem gerçekleştikten hemen sonra ateşlenir.

Veritabanındaki temel işlemler için (ekleme, silme ve güncelleme) After triggerları tanımlanabilir.

Create Trigger Tg_SilinenKayıtlar

On Employees

After Delete

As

Begin

Declare @Ad nvarchar(50)

Declare @CalisanID İnt

Select @Ad=FirstName,@CalisanID=Employees From Deleted

Select CalisanID,Ad+’-Silinmiştir’,GetDate()From Deleted

Insert Into CalisanKayitRapor Values(@CalisanID,@Ad+’- Silindi’,GetDate())

End

Instead Of Trigger’ı: Instead of triggerları, belirlenen işlem gerçekleşirken devreye girer ve kendi içinde tanımlanan komutları icra etmeye başlar. Yani, belirlenen işlemin yerine geçer. Instead of triggerlari işlemlerin arasına girebildiğinden kontrol amaçlı kullanılabilirler. Tıpkı After triggerları gibi temel veritabanı işlemleri için Instead Of triggerları  tanımlanabilir.

Alter Trigger Tg_CalisanKayitRaporOn EmployeesAfter InsertASBegin

Declare @Ad Nvarchar(50)

Declare @CalisanID int

Select @Ad = FirstName,@CalisanID = EmployeeID From Inserted

 

Insert Into CalisanKayitRapor Values(@CalisanID,@Ad,GetDate())

End

 

INSERT – UPDATE – DELETE

Trigger devreye girdikten sonra Inserted veya Deleted tablolarında yeni eklenen veya silinen kayıtların bir kopyası tutulur.

Trigger Update (ALTER)

CREATE ile oluşturulmuş bir tetikleyiciyi daha sonra üzerinde değişiklikler

yapmak üzere tekrar açmak isteyebilirsiniz. Bunun için, tablonuzda oluşturulmuş bir tetikleyici üzerindeyken sağ tıklayarak açılan menüden Modify komutunu vermeniz gerekir.

 

Trigger Silmek (DROP)

Oluşturulan bir tetikleyiciyi DROP komutuyla ya da tetikleyici üzerinde sağ tıklayarak açılan menüden Delete komutunu vererek silebilirsiniz.

Delete Trigger Tg_CalisanKayitRapor

Trigger Enable ya da Disable

Oluşturulan bir tetikleyici, her zaman aktif durumdadır. Tetikleyiciyle ilgili bir durum oluştuğunda otomatik olarak devreye girer. İstenildiğinde oluşturulan bu tetikleyiciler pasif

hâle getirilebilir. Tetikleyici üzerinde sağ tıklayarak açılan menüde Disable komutunu verdiğinizde tetikleyici pasif hâle gelir.

ALTER TABLE tablo_adiDISABLE TRIGGER Musteri_SilmeveyaENABLED TRIGGER Musteri_Silme

 

Umarım yararlı olur…

 

M.Zeki Osmancık.

 

SQL _ Views 150 150 mezo

SQL _ Views

Merhaba arkadaşlar bu yazımızda MSSQL de bulunan View yapısından bahsetmek istiyorum. Bu yazının sonunda View yapısını nasıl yazıldığını ne işe yaradığını öğrenmiş olacaksınız.

View yapılarını bilinenin aksine sadece ihtiyacımız olduğunda kullanmamız işimizi kolaylaştıracağı gibi bizi gereksiz yüktende kurtaracaktır. Yerinde kullanıldığında veritabanında çok daha verimli çalışmalar yapmamızı sağlarlar.

Peki nedir bu view ? View’ler  bir veya birden fazla tablonun istenilen verilerinin bir arada sunulmasını sağlayan tanımlanmış sorgulardır. View leri sanal tablolar olarakda nitelendirebiliriz. Aynı oluşturduğumuz tablolar gibi satır ve sütunlara sahiptir. Birden fazla sütunun birleşerek tek bir komut altında topladığımızı düşünebiliriz. Hatta sadece tek bir tablo ile ilgili bir view oluşturduğumuzda İnsert Update Delete gibi işlemlerinide gerçekleştirebiliriz. View ler için sanal kelimesini kullanıyoruz çünkü üzerinde veri tutmazlar , sadece istenen veriye ulaşılması için bir araçtır aslında. Bir view yazdığımızda ne oluyor acaba ? Bize neler kazandırıyor bir göz atalım.

*İlk olarak birden fazla tablo ile çalışırken gereksiz karmaşadan kurtuluyoruz. Yani ne demek bu ? Biz uzun bir SQL sorgusu yazdığımızda her seferinde bu uzun ve karmaşık kodla uğraşmak yerine bir view işimizi görüyor.

*Bir diğer artısı ise veri ulaşım performansını arttırmak.

*Veri erişimini sınırlamak ve kontrol altında tutmak

View oluştururken dikkat etmemiz gereken hususlar:
Oluşturulan View de;
-Compute ya da Compute By cümleciği,
-Into anahtar sözcüğü,
-Option cümleciği
kullanılamaz.
-View’ler temporary tablo dediğimiz geçici olarak oluşturulan tablolara referans verilemez. Bu tablolardan veri istenemez.
-Order By cümleciği sadece TOP operatörü ile birlikte kullanıldığında kullanılabilir.
-Bir View farklı tablolardan gelen aynı isimlere sahip farklı sütunları içerebilir.
-View’lerdeki sütunlar aritmetik ifadelere sahip olabilir

-Bir view oluşturabilmek için database üzerinde sysadmin (system administrator),  db_owner (database owner), db_ddladmin (data definition language administrator) yetkilerine sahip olmalıyız.

Northwind veritabanını kullanarak örneklerimizi verelim ve bir view nasıl yazılıyor nasıl kullanılıyor görelim 😉

Syntax  olarak

CREATE VIEW [View_Ismi]ASSQL Kodları.

Haydi  sizle önce çok basit bir Select sorgusu sonra karışık bir select sorgusu ile örnek verelim.

Birde karmaşık olana bakalım.

Bu kadar uzun bir kodla ( hatta bundan daha uzunda olabilirdi belki ) her seferinde uğraşmak insanı yorabilir karışıklığa ve hatalara olanak sağlar işte bu karışıklık ve hatalara meydan vermemek için View kullanmalıyız diyoruz.

Kodlarla çok güzel yazdık bu View i peki hiç bilgimiz yoksa kod bilmiyorsak olamazmı ?  O zaman ne yapacağız bu View denen zıkkımı yaratmak için çok basit :

Öncelikle Object explorer penceresinde database imiz içersinde bulunan klasörlerden Views klasörüne sağ tık yapıyoruz ve New View diyoruz.

Ardından bizden hangi tablolarla alakalı çalışma yapmak istediğimizi soruyor bizde istediğimiz tabloları seçiyoruz.

Seçtikten sonra zaten biraz önce uzun uzun yazdığımız kodları bizlere otomatik olarak yazılmış halinin canlı halini getiriyor ekrana tek yapmamız gereken kaydetmek 😀

Basit olarak bir view oluşturma işlemi bu kadar arkadaşlar bir başka makalemizdede bu View in içindekine  , dibindekine , altında yatan koca ayzberge (iceberg) bakacağız

Görüşmek üzere…

    Join our Newsletter

    We'll send you newsletters with news, tips & tricks. No spams here.