29 Haziran 2015 Pazartesi

Asp.Net Web application vs Asp.Net Web Site

Web application
     Visual studiomuzdan ctrl+shift+N tuş kombinasyonu ile yeni bir web uygulamasi oluşturabiliriz. 


  • Proje bilgileri .csproj veya .vbproj uzantılı dosyada saklanır.
  • Sayfalara,sınıflara namespace eklenir
  • Projeyi tek bir assembly icerisinde toplanir ve versiyonlama islemi yapılır
  •  Canli ortama kaynak kodlar eklenmeyebilir
  •   Dağıtımını yaparken olusan assembly(.dll) dosyasını sunucuya atmamız yeterlidir.


  • Web Site
        Visual studiomuz dan Shift+Alt+N tuş kombinasyonu ile yeni bir web sitesi oluşturabiliriz.
    • Proje dosyasi ayri olarak olusturulmaz.Klasör yapısındaki tüm dosyalar projemize eklenir
    • Kodlar sunucuya ilk ulaştığı anda derleme yapılır.Her sayfa kendi assembly dosyasini oluşturur
    • Dağıtım yaparken projenin kaynak kodlarını Server’da IIS in klasörüne eklenmelidir veya önderleme çıktıları eklenmelidir.

    Kaynaklar
    https://msdn.microsoft.com/en-us/library/dd547590(v=vs.110).aspx
    http://serkanyarbas.com/web-application-projesi-ile-web-site-projesi-arasindaki-farklar/


    15 Haziran 2015 Pazartesi

    SQL T-SQL Sorguları4

    Sorgularımıza kaldığımız yeden devam ediyoruz biraz daha karışık diyebilceğimiz bir iki sorgu örnegini de ekliyoruz. Aşağıda select ifadesini kullanarak Northwınd veri tabanında CROSS JOIN,CAST, INNER JOIN, LEFT JOIN , RIGHT JOINFULL JOINHAVING,GROUP BY, ORDER BY, AS vs. fonksiyonları kullanarak çalışmalar yaptık.
    -- ilk 3 ürünü ile ilk 3 kategori ile her ürünün her kategori ile eşleşmesini sağlayalım.
    --1. Cozum
    SELECT  *
    FROM   (
       SELECT TOP(3) ProductName
       FROM Products
     ) as Table1
    cross join(
      SELECT TOP(3) CategoryName
      FROM Categories
      )AS Table2
    order by   Table2.CategoryName
    --2. Cozum
    SELECT
    ProductName,
    C.CategoryName
    FROM Products AS P
    CROSS JOIN Categories AS C
    WHERE ProductID<=3 AND C.CategoryID<=3

    --24000 TL'den fazla satılan ürün isimleri nelerdir?
    SELECT P.ProductName,
    CAST(CAST(SUM(OD.Quantity*OD.UnitPrice*(1-OD.Discount)) AS DECIMAL(8,2)) AS NVARCHAR(15)) + ' TL' AS Total
    FROM [Order Details] AS OD
    INNER JOIN Products AS P ON P.ProductID = OD.ProductID
    GROUP BY P.ProductName
    HAVING SUM(OD.Quantity*OD.UnitPrice*(1-OD.Discount)) > 24000
    ORDER BY Total DESC

    -- Siparişlerim hangi müşteriye, ne zaman, hangi çalışanım tarafından gerçekleştirilmiştir.
    -- CompanyName alfabetik, siparişler en yeniden en eskiye doğru ve aynı sipariş günü olanlarda çalışan adına göre alfabetik olsun.
    SELECT Cus.CompanyName, E.FirstName, O.OrderDate
    FROM Orders AS O
    INNER JOIN Employees AS E ON E.EmployeeID = O.EmployeeID
    INNER JOIN Customers AS Cus ON Cus.CustomerID = O.CustomerID
    ORDER BY Cus.CompanyName, OrderDate DESC, E.FirstName ASC

    -- Hangi ülkeye ne kadarlık satış yapmışım?
    SELECT O.ShipCountry, SUM(OrD.UnitPrice*OrD.Quantity) AS TotalRevenue
    FROM [Order Details] AS OrD
    INNER JOIN Orders AS O ON O.OrderID=OrD.OrderID
    GROUP BY ShipCountry
    ORDER BY TotalRevenue DESC

    -- Hangi kategoriden ne kadarlık satış yapmışım?
    SELECT C.CategoryID, C.CategoryName, SUM(OrD.UnitPrice*OrD.Quantity)
    FROM [Order Details] AS OrD
    INNER JOIN Products AS P ON P.ProductID=OrD.ProductID
    INNER JOIN Categories AS C ON C.CategoryID=P.CategoryID
    GROUP BY C.CategoryID,C.CategoryName

    -- EmployeeId=1 olan çalışanın satmış olduğu ürünleri listeleyelim.
    SELECT P.ProductName, COUNT(P.ProductID) , SUM(OD.Quantity * OD.UnitPrice)
    FROM Products AS P
    INNER JOIN [Order Details] AS OD ON P.ProductID = OD.ProductID
    INNER JOIN Orders AS O ON OD.OrderID = O.OrderID
    WHERE O.EmployeeID = 1
    GROUP BY P.ProductName

    -- ÖDÜLLÜ SORUMUZ
    -- Hangi siparişi hangi çalışan hangi müşteriden almış.
    -- Bu sipariş hangi kargo şirketi ile gönderilmiştir? Bu siparişte hangi kategori den
    -- Hangi tedarikçinin sağladığı hangi üründen kaç adet satın alınmıştır?

    SELECT 
    O.OrderID,
    E.FirstName,
    C.CompanyName,
    S.CompanyName,
    CA.CategoryName,
    SU.CompanyName,
    P.ProductName,
    OD.Quantity
    FROM
    Orders AS O
    INNER JOIN Employees AS E ON O.EmployeeID=E.EmployeeID
    INNER JOIN Customers AS C ON C.CustomerID=o.CustomerID
    INNER JOIN Shippers AS S ON O.ShipVia=S.ShipperID
    INNER JOIN [Order Details] AS OD ON OD.OrderID=O.OrderID
    INNER JOIN Products AS P ON P.ProductID=OD.ProductID
    INNER JOIN Categories AS CA ON CA.CategoryID=P.CategoryID
    INNER JOIN Suppliers AS SU ON SU.SupplierID=O.ShipVia

    SQL T-SQL Sorguları3

    Sorgularımıza kaldığımız yeden devam ediyoruz 
    Aşağıda select ifadesini kullanarak Northwınd veri tabanında INNER JOIN, LEFT JOIN , RIGHT JOINFULL JOINHAVING,GROUP BY, ORDER BY, AS vs. fonksiyonları kullanarak çalışmalar yaptık.

    Yararlı olması dileğiyle...
    --Federal Shipping(SHİPPER) ile tasinmis ve Nancy(EMPLOYEE)'nin almış oldugu siparişler(ORDER) ve adet ile tutarları

    SELECT e.FirstName,
    s.CompanyName,
    OD.Quantity,
    OD.UnitPrice,
    (OD.UnitPrice*OD.Quantity) AS [TOPLAM TUTAR]
    FROM Orders O
    INNER JOIN Shippers S ON S.ShipperID = o.ShipVia
    INNER JOIN Employees E ON E.EmployeeID = O.EmployeeID
    INNER JOIN [Order Details] OD ON OD.OrderID = O.OrderID
    WHERE  S.CompanyName LIKE 'Federal Shipping'
    AND E.FirstName = 'Nancy'

    --  Ürünleri ve bağlı bulundukları kategorileri listeleyiniz. Ancak ürünü olmayan kategorilerde olmalı.

    SELECT
    P.ProductName,
    C.CategoryName
    FROM Categories C
    LEFT JOIN Products P
    ON P.CategoryID = C.CategoryID

    --Ürünleri ve bağlı bulundukları kategorileri listeleyiniz. Ancak kategorisi olmayan ürünleri de gösterelim.
    SELECT P.ProductName, C.CategoryName
    FROM Categories AS C
    RIGHT JOIN Products AS P
     ON P.CategoryID = C.CategoryID



    -- Ürünleri ve bağlı bulundukları kategorileri listeleyiniz. Ancak kategorisi olmayan ürünler ve ürünleri olmayan kategoriler de listelensin.

    SELECT P.ProductName, C.CategoryName
    FROM Categories C
    FULL JOIN Products P ON C.CategoryID=P.CategoryID
    ORDER BY P.ProductName DESC



    -- En çok ürün aldığımız 3 tedarikçiyi, almış olduğumuz ürün miktarlarına göre raporlayalım...
    SELECT TOP(3) S.CompanyName,SUM(P.UnitsInStock+P.UnitsOnOrder) AS ADET
    FROM Products AS P
    INNER JOIN Suppliers AS S
    ON P.SupplierID = S.SupplierID
    GROUP BY S.CompanyName
    ORDER BY ADET DESC

    -- Her üründen toplam ne kadarlık satış yapılmıştır ve o ürünler hangi kategoriye aittir?

    select P.ProductName,sum (O2.Quantity*O2.UnitPrice) AS TOPLAM_ÜRÜN_FİYATI
    from Products as P
    inner join Categories as C on C.CategoryID=P.CategoryID
    inner join [Order Details] as O2 on O2.ProductID=P.ProductID
    group by P.ProductName
    ORDER BY P.ProductName

    select P.ProductName,c.CategoryName,sum (O2.Quantity*O2.UnitPrice) AS TOPLAM_URUN_FİYATI
    from Products as P
    inner join Categories as C on C.CategoryID=P.CategoryID
    inner join [Order Details] as O2 on O2.ProductID=P.ProductID
    group by P.ProductName,c.CategoryName
    ORDER BY P.ProductName


    select P.ProductName,c.CategoryName
    ,sum (O2.Quantity) as Quantity
    ,sum (O2.Quantity*O2.UnitPrice) AS TOTAL
    from Products as P
    inner join Categories as C on C.CategoryID=P.CategoryID
    inner join [Order Details] as O2 on O2.ProductID=P.ProductID
    group by P.ProductName,c.CategoryName
    ORDER BY P.ProductName

    -- CompanyName'leri arasında A geçen müşterilerin vermiş olduğu siparişlerin;
    -- Nancy, Andrew ya da Janet tarafından alınmış olanlarının;
    -- Speedy Express ile taşınmamış siparişler ve ne kadarlık kargo ödemesi yapılmıştır?

    select e.FirstName, s.CompanyName, c.CompanyName,
    o.Freight
    from Orders as o
    inner join Customers as c on c.CustomerID=o.CustomerID
    inner join Employees as e on e.EmployeeID=o.EmployeeID
    inner join Shippers as s on s.ShipperID=o.ShipVia

    where s.CompanyName!='Speedy Express'
    and ( e.FirstName='Nancy'
    or e.FirstName='Andrew'
    or e.FirstName='Janet' )
    and c.CompanyName like'%a%'

    -- CompanyName'leri arasında A geçen müşterilerin vermiş olduğu siparişlerin;
    -- Nancy, Andrew ya da Janet tarafından alınmış olanlarının;
    -- Speedy Express ile taşınmamış siparişlerin Müşteri Company Name'e göre TOPLAM ne kadarlık kargo ödemesi yapılmıştır?
    SELECT
    SUM(O.Freight) AS Kargo,
    C.CompanyName
    FROM Orders AS O
    INNER JOIN Customers As C On C.CustomerID = O.CustomerID
    INNER JOIN Shippers AS S On S.ShipperID = O.ShipVia
    INNER JOIN Employees AS E ON E.EmployeeID = O.EmployeeID
    WHERE C.CompanyName LIKE '%A%' AND
    --E.FirstName IN ( 'Nancy','Andrew','Janet') AND
    E.FirstName IN ( Select TOP(3) FirstName From Employees order by FirstName desc ) AND
    S.CompanyName!='Speedy Express'
    GROUP BY C.CompanyName
    HAVING
    --SUM(O.Freight)>100
    --SUM(O.Freight)>100 and SUM(O.Freight)<200 p=""> SUM(O.Freight) BETWEEN 100 AND 200

    14 Haziran 2015 Pazar

    SQL T-SQL Sorguları2

     Veri İşleme Dili (Data Manipulation Language) (DML)
         Veritabanı içerisindeki veriler ile işlem yapmamızı sağlayan komutlar. Verilerin gösterilmesi eklenmesini düzenlenmesini ve silinmesini sağlar. Dört adet veri işleme ifadesi bulunmaktadır.
    1. SELECT  :Veri seçme 
    2. INSERT   :Veri ekleme
    3. UPDATE :Veri düzenleme
    4. DELETE :Veri silme
        Aşağıda select ifadesini kullanarak Northwınd veri tabanında DATEDIFF, LEN, AVG, MAX, MIN, COUNT, ORDER BY, AS vs. fonksiyonları kullanarak çalışmalar yaptık.
    Yararlı olması dileğiyle...

    USE NORTHWND --(benim sql serverdaki ismi)
    go
    --100 TL den büyük ürünler hangileridir?
    select ProductName
    from Products 
    where UnitPrice>100

    --UnitsInStock (stok) değeri 10'un altında olan ürünlerin adı, fiyatı ve stok bilgileri nedir?
    select ProductID,ProductName
    from Products where UnitsInStock <10 div="">

    --"Brazil" 'de bulunan müşterilerin Şirket Adı, TemsilciAdi, Adres, Şehir, Ülke bilgileri nedir? 
    select c.CompanyName,c.ContactName,c.Address,City,Country
    from Customers as c where Country='Brazil'

    --"Brazil" 'da olmayan müşteriler kimler?
    select c.CompanyName,c.ContactName,c.Address,City,Country
    from Customers as c where Country!='Brazil'

    --"London" 'da ya da "Paris" 'de bulunan müşterilerim kimlerdir?
    select c.CompanyName
    from Customers as c where City='London' or City='Paris'

    --Hem "Mataderos  2312" 'da ikamet eden HEM DE ContactTitle bilgisi "owner" olan müşteriler kimlerdir?
    select c.CompanyName,c.Address
    from Customers as c where  ContactTitle='owner' and Address='Mataderos  2312' 

    --C ile başlayan ürünlerimin isimleri ve fiyatları nelerdir?
    select p.ProductName,p.UnitPrice
    from Products as p where ProductName like 'C%'

    --Adı (FirstName) 'A' harfiyle başlayan çalışanların (Employees); Ad, Soyad ve Doğum Tarihlerini listeleyiniz.
    select FirstName,LastName,BirthDate
    from Employees where FirstName like 'A%'

    --İsminde 'RESTAURANT' geçen müşterilerimin şirket adları nelerdir?
    select CompanyName
    from Customers where CompanyName like '%RESTAURANT%'

    --50TL ile 100 TL arasında bulunan tüm ürünlerin adları ve fiyatları nedir?
    select ProductName,UnitPrice
    from Products where UnitPrice>50 and UnitPrice<100 div="">

    --1 temmuz 1996 ile 31 Aralık 1996 tarihleri arasındaki siparişlerin (Orders), SiparişID (OrderID) ve SiparişTarihi (OrderDate) bilgilerini listeleyin.
    select OrderID,OrderDate
    from Orders where OrderDate between '7.1.1996' and '12.31.1996'

    --Ülkesi (Country) Ya Spain, Ya France, Ya da Germany olan müşteriler kimlerdir? (Hem OR kullanarak sorguyu yazın. Aynı sorguyu ayrıca IN kullanarak yazın)
    select CompanyName
    from Customers where Country in('Spain','France','Germany') --where Country ='Spain' and Country='France' or Country='Germany'

    --Faks numarasını bilmediğim müşteriler kimlerdir?
    select *
    from Customers where Fax is null

    --Müşterilerimi ülkeye göre alfabetik sıralayınız.
    select CompanyName
    from Customers 
    order by CompanyName asc

    --Ürünlerimi en pahalıdan en ucuza doğru sıralama, sonuç olarak ürün adı ve fiyatını istiyoruz.
    select ProductName,UnitPrice
    from Products 
    order by UnitPrice desc

    --Ürünlerimi en pahalıdan en ucuza doğru sıralasın, ama stoklarını küçükten-büyüğe doğru göstersin sonuç olarak ürün adı ve fiyatını istiyoruz.
    select ProductName,UnitPrice,UnitsInStock
    from Products 
    order by  UnitsInStock desc, UnitPrice asc

    --Kaç  adet müşterim vardır?
    select count (CustomerID)
    from Customers

    --1 Numaralı kategoride kaç adet ürün vardır?
    select COUNT(ProductName)
    from Products where CategoryID =1

    --Birim fiyatı en pahalı ve en ucuz ürünün fiyatları nelerdir?(Ürün adını istemiyorum sadece, pahalı fiyat ve ucuz fiyat değeri)
    select MAX(UnitPrice),MIN(UnitPrice)
    from Products 

    --Ürünlerimin ortalama fiyatı nedir?
    select avg(UnitPrice)
    from Products

    --En az kazandıran sipariş (Kaynak: Order Details)  ??
    select MIN(OD.UnitPrice-Discount )
    from [Order Details] AS OD

    --Müşterilerimin içinde en uzun isimli müşteri (harf sayısı)
    SELECT top(1) CompanyName, LEN(CompanyName)  AS lenn  FROM Customers
    order by lenn desc

    --Çalışanlarımın Ad, Soyad ve Yaşları nedir?
    select FirstName,LastName,DATEDIFF(yy, BirthDate, getdate()) as Yas,BirthDate
    from Employees