Sharepoint Web Part Geliştirmeye Giriş


14/2/2008 ·

Sharepoint Microsoft’un uzun bir süreden beri varolan bir “İçerik Yönetim” sistemi. Aslında bu ifade biraz yetersiz, çünkü Sharepoint php üzerinde yazılmış benzer içerik yönetim sistemi göre büyük farklar getiriyor.

İçerik yönetim sistemlerinin en büyük sorunu, halihazırda bulunan sistem işleyişi dışına çıkılamaması veya çıkılabilse bile gerekli API’lerin bulunmayışı ve geliştiricinin en ufak bir geliştirme veya değişiklik faaliyeti için bir kod denizi içerisinde boğulmasıydı.

Microsoft bu sorunu aşmak için son derece akıllıca bir yöntem geliştirdi, sharepoint üzerinde çalışan bütün ufak uygulamalar “Web Part” adı verilen eklentiler halinde geliyor. Geliştirici ise bu eklentileri sayfalara ekliyor ve istediği gibi düzenliyor. 

Buraya kadar herşey güzel gözüküyor, ama bir gün sistemde yeni bir ihtiyaç doğduğunda, ve bu ihtiyacı karşılayacak bir “Web Part” bulunmadığında diğer PHP uygulamalarında olduğu gibi yan uygulamalar yazılma gereksinimi ortaya çıkıyor. Bu noktada Microsoft çok akıllıca bir çözüm bulmuş ve Sharepoint üzerinde kendi “Web Part”’larınızı geliştirme olanağı sunmuş.

İnternet üzerinde Web Part geliştirme ile ilgili malesef çok makale yok, olanlar da daha çok teorik düzeyde kalıyor. Bundan dolayı bu makalede, basit bir Web Part nasıl geliştirilir onu anlatacağım. 

Web Part geliştirmek için önümüzde iki seçenek var, birincisi Sharepoint kurulu bir server üzerinde geliştirme yapmak, ikincisi ise http://www.microsoft.com/downloads/details.aspx?FamilyId=05E0DD12-8394-402B-8936-A07FE8AFAFFD&displaylang=en adresinden Windows Sharepoint Services’ ı indirip bilgisayarınızaa kurmak. Benim tavsiyem geliştirme kolaylığı açısından birinci yolu takip etmeniz.

Üzerinde Sharepoint kurulu bir server kullandığınızı varsayıyorum, kurulum yaptıktan sonra Visual Studio içinde yeni bir proje eklemek istediğimizde karşımıza “Web Part” seçeneği de çıkıyor, projeyi yarattığımızda karşımıza aşağıdaki kod ekranı çıkıyor.

using System;

using System.Runtime.InteropServices;

using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace WPTEST
{

    [Guid("997e1909-9850-4eff-b7f5-f99382c23f0d")]
    public class WPTEST : System.Web.UI.WebControls.WebParts.WebPart

    {
        public WPTEST()

        {
            this.ExportMode = WebPartExportMode.All;

        }

       protected override void Render(HtmlTextWriter writer)

        {
            // TODO: add custom rendering code here.

            // writer.Write("Output HTML");

        }

    }

}

Görüldüğü gibi sadece bir Constructor ve  bir Override edilmiş bir Render metodundan başka bir fonksiyona sahip olmayan bir sınıfla karşı karşıyayız. Code-Behind dosyası burada ama Designer nerede diyorsanız, sizi kötü bir süpriz bekliyor, bir designer yok; bu yüzden arayüz işlemlerinin hepsini de Code-Behind’dan halletmek gerekiyor.

Şimdi Render metodumuza şu ifadeyi yazalım:

protected override void Render(HtmlTextWriter writer)

        {

            writer.Write("test:Bu bir başlıktır'");

        }

Gördüğünüz gibi burada aslında sayfada ne gösterilecekse HTML olarak onları belirtiyoruz, yani istediğimiz HTML elemanlarını da kullanabiliriz.

Şimdi Project menüsünden Properties'i seçelim. Gelen ekranda DEBUG'ı  seçelim. Burada Start Browser URL içine makinamızda çalışır durumda bulunan bir Sharepoint uygulamasının adresini yazalım, örneğin "http://sharepoint:33456". Şimdi F5'e bastığımız anda projemiz build edilecek ve belirttiğimiz Sharepoint uygulamasının içine Web Part olarak eklenecek. Sayfaya yeni bir Web Part eklemek istediğimizde, listede bu Web Part'ın da yer aldığını göreceksiniz.

Şimdi gelelim ufak bir ipucuna; Sharepoint'de test makinalarınızda geliştirdiğiniz web part'ları uygulama makinanıza atmak eskiden çok can sıkıcı bir iş idi. Microsoft bu soruna da çözüm bulmuş durumda, uygulama sunucunuza atmak sitediğiniz web part klasörünü taşıyın ve daha sonra komut isteminden bu klasörün içinde ...debugin klasörüne gidin.

"setup.bat install weburl http://extranet.sirketim.com" komutunu çalıştırdığınızda web part otomatik olarak uygulama sisteminize de eklenmiş olur. Buradaki "http://" ibaresinden sonra gelen kısım sizin Sharepoint uygulamanızın adresidir.

Bu makalede Sharepoint Web Part geliştirme konusuna basit bir giriş yaptık, bundan sonraki makalede gerçek bir Web Part nasıl geliştirilir bunu ele alacağız.

 

 

Yorum (yok) Yorum yaz!

Asp.Net ile Ajax'a Giriş


15/1/2008 ·

Ajax, uzun adıyla Asynchronous Java****** and XML, Java****** ve XMLHttpRequest’leri birarada kullanarak etkileşimli Web siteleri yaratmak için üretilmiş bir tekniğin adıdır.

Ajax, aslında tek başına yeni bir teknoloji değildir, varolan birçok web teknolojisinin birbirine entegre edilmiş halidir.

Ajax’dan önce bir web sayfasında herhangi bir ServerSide işlem yapıldığında bütün sayfa sunucudan istenirdi, Ajax’dan sonra ise sadece formun ilgili kısmının sunucudan istenilmesi sağlandı. Bu tekniğin getirdiği büyük artılardan biri hızın artması bir diğeri ise kullanıcı ile etkileşimin artmasıdır.

Asp.Net platformu Ajax’ı uzunca bir süredir desteklemektedir. Bu makalemizde Asp.Net kullanarak Ajax konusuna bir giriş yapacağız. Öncelikle bilgisayarınızda Visual Studio 2008 (http://www.microsoft.com/express adresinden indirebilirsiniz) veya Visual Studio 2005 ile beraber Ajax kütüphanesini ve kontrol kitini indirmelisiniz (http://www.asp.net/ajax/downloads adresinden indirebilirsiniz).

Şimdi Asp.Net kullanarak Ajax konusuna bir giriş yapalım. Visual Web Developer’ı açalım ve file menüsünden New Project’e tıklayalım. Gelen menüden Asp.Net Website’ı seçelim ve sitemize bir isim verelim, örneğin “AjaxTest”.

Asp.Net’de Ajax içeren her sayfada Script Manager adı verilen bir Control kullanmamız gerekir. Bu Control’ü eklemek için açılan Default.aspx sayfasında Design’a tıklayalım. Toolbox’dan “Ajax Extension”’ı seçelim ve buradan da Script Manager Control’ünü sayfamıza sürükleyip bırakalım.

Şimdi de sayfamıza yine Toolbox’daki “Ajax Extensions” bölümünden iki adet Update Panel Kontrolünü sürükleyip bırakalım. Şu ana kadar sayfamızda Ajax kullanmak için gerekli bütün kontrolleri eklemiş olduk.

Daha sonra sayfamıza iki adet label ekleyelim. Bunun için Toolbox’dan label’ı sürükleyip Update Panel1’in üstüne bırakmamız yeterli. İkinci label’ı da Update Panel2’nin üzerine bıraktıktan sonra ToolBox’dan bu defa iki adet Button ekleyelim. Buttonlardan birine sağ tıklayalım ve Properties’i seçelim, Text özelliğine “Bir” yazalım, ikinci Button içinde aynı işlemi yapıp Text özelliğine “İki” yazalım. Bu Button’ları Update Panellerin dışında bir yere eklememiz gerekmekte.

Update Panel1’in üzerine gelip sağ tıklayalım ve açılan menüde Triggers’daki açılan menüye tıklayalım. Açılan pencerede Add’e tıklayalım. Sağ tarafta ControlId’ye tıklayalım ve açılan menüden Button1’i seçelim. Aynı işlemi bir kez de Update Panel2 için tekrarlayalım ama bu defa Button2’yi seçelim. Her iki durumda da Event Name’ “Click” olarak seçmeliyiz. Ayrıca her panel için Update Mode’u Conditional seçmeliyiz.

Tekrar Designer’a geri dönelim ve Button1 ve Button2’ye çift tıklayalım. Bu sayede her ikisi içinde “Click” eventini üretmiş olduk. Bundan sonra kodumuzu aşağıdak şekilde değiştirelim.

using System;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        ZamanGoster();

    }

    protected void Button2_Click(object sender, EventArgs e)

    {

        ZamanGoster();

    }

    private void ZamanGoster()
    {
        Label1.Text = DateTime.Now.ToLongTimeString();

        Label2.Text = DateTime.Now.ToLongTimeString();

    }

}

Burada hangi Button’a basılırsa basılsın iki label’ın da değerini değiştiriyoruz. Programı çalıştırdığınız zaman basılan düğme hangi Update Panel’de bir event’i tetikliyorsa ancak o panelin içindeki label’ın değerinin değiştiğini göreceksiniz. İşte Ajax bu şekilde işliyor, sayfanızın bir kısmı durağan iken diğer bir kısmında istediğiniz gibi değişiklik yapabiliyorsunuz.

Bu makalede Asp.Net ile Ajax uygulamarına bir giriş yapmış olduk. Daha sonraki yazılarda bu konu üzerine eğilmeye devam edeceğiz.

 

 

Yorum (yok) Yorum yaz!

OpenCV 'ye Giriş


14/1/2008 ·

OpenCV, uzun adıyla “Open Computer Vision”, Intel tarafından desteklenen, C üzerinde geliştirilen açık kaynak kodlu bir görüntü işleme kütüphanesidir. Gerek ileri düzey görüntü işleme uygulamaları gerekse basit uygulamalar için OpenCV gelişmiş ve uygulaması kolay bir kütüphanedir.

Bu makalede, OpenCV kullanarak Visual Studio 2008 platformu üzerinde “görüntü işleme” konusuna bir giriş yapacağız.

Bilgisayar görüntüleri her nokta için tutulan renk değerlerinden oluşur, işte bu renk değerlerinin her birine kanal(“channel”) adı verilir. 800 * 600 bir resmi ele aldığımızda aslında her satırında 600 nokta olan 800 satırlı bir noktalar kümesi ve bu noktalara ait kanal değerlerinden bahsetmiş oluruz. Örneğin siyah beyaz bir resim için tek bir kanal var iken, renkli bir resimde genelde üç kanal bulunur, Red (kırmızı) kanal, Blue (mavi) kanal ve Green (Yeşil) Kanal. Bu kanalların her biri 0’dan 255’e kadar bir değere sahiptir, Kırmızı bir noktanın değeri RGB (255,0,0) iken, Yeşil bir noktanın (0,255,0)’dır. Görüntülenebilecek bütün renkler bu üç kanalın değerlerinin değişmesiyle oluşur. Görüntü işleme bu kanalların değerlerinin işlenmesi üzerine kuruludur.

Şimdi OpenCV kullanarak bilgisayarda görüntü işlemeyle ilgili bir örnek yapalım. Öncelikle eğer bilgisayarınızda Visual Studio 2008 kurulu değil ise, http://www.microsoft.com/express adresinden Visual C++ 2008’i indirmeniz gerekmektedir. Daha sonra http://sourceforge.net/projects/opencvlibrary adresinden OpenCV kütüphanesini indirmelisiniz.

OpenCV’yi kullanabilmek için Visual C++’da bir takım ayarlar yapmanız gerekmektedir;

-Visual C++’ı açtıktan sonra “Tools” menüsünden “Options”’a tıklayın. Buradan “Projects” altındaki “VC++ Directories”’i seçin. Gelen sayfada, “Show Directories For” listesinden “Library Files”’ı seçin. Yeni düğmesine tıklayın ve OpenCV’i kurduğunuz klasörü seçin (Örnek: C:Program FilesOpenCV”).

-“Show Directories For” listesinden bu defa “Library Files”’ı seçin ve yukarıdaki gibi lib dosyalarının bulunduğu klasörü ekleyin (Örnek: “C:Program FilesOpenCVlib”).

-“Show Directories For” listesinden “Include Files”’ı seçin ve aşağıda bulunan örnekteki gibi, kendi bilgisayarınızda OpenCV’nin kurulum klasöründe olan altklasörleri ekleyin.

"C:Program FilesOpenCVcvinclude"
"C:Program FilesOpenCVcxcoreinclude"
"C:Program FilesOpenCVotherlibshighgui"
"C:Program FilesOpenCVcvauxinclude"
"C:Program FilesOpenCVotherlibscvcaminclude"  

-Son olarak “Show Directories For” listesinden “source files”’ı seçin ve aşağıdakine benzer bir şekilde kendi OpenCV kurulum klasörünüzden gerekli alt klasörleri ekleyin.

"C:Program FilesOpenCVcvsrc"
"C:Program FilesOpenCVcxcoresrc"
"C:Program FilesOpenCVcvauxsrc"
"C:Program FilesOpenCVotherlibshighgui"
"C:Program FilesOpenCVotherlibscvcamsrcwindows"
 

Bu ayarları yaptığınızda OpenCV’yi kullanmak için gerekli genel ayarları yapmış olursunuz. Şimdi yeni bir proje oluşturmak için “File” menüsünden “New Project”’e tıklayın. Gelen mendüden CLR’ı seçin ve  sağdaki menüden de “CLR Console Application”’ı seçin. Win32 yerine CLR’ı seçmemizdeki amaç, Visual C++’ın managed özelliklerini de kullanmak istememiz.”” yazan boşluğa projemizin ismini yazalım, örneğin “OpenCVGiris”.

Şimdi “Project” menüsünden “Properties”’i seçelim ve gelen menüde “Configuration Properties” altında Linker’a tıklayalım. Açılan alt menüden Input’u seçelim ve “Additional Dependencies”’e aşağıdaki kütüphaneleri ekleyelim:

cv.lib cxcore.lib highgui.lib

Bütün ayarları bitirdik ve projemizi oluşturduk, şimdi kodumuzu ekleyelim ve satır satır inceleyelim:

// OpenCVGiris.cpp : main project file.

#include "stdafx.h"

#include "cv.h"

#include "highgui.h"

#include "cxcore.h"

using namespace System;

int main(array ^args)

{       

         IplImage* image = cvLoadImage("C:test.jpg",1);

         cvNamedWindow("Imaj",1);

         cvShowImage("Imaj",image);

         cvWaitKey(0);

         cvDestroyWindow("Imaj");

         cvReleaseImage(&image);   

    return 0;

}

 

IplImage* image = cvLoadImage("C: est.jpg",1);

Bilgisayarımızın C: klasöründe bulunan test.jpg isimli resmi işlemek üzere alıyoruz, siz burada doğru pathi ve ismi vererek herhangi bir resim kullanabilirsiniz. Path’den sonra gelen “1” ise resmin renkli olup olmadığını belli ediyor, bu alana 0 değerini verirseniz resminiz siyah beyaz olarak alınır.

cvNamedWindow("Imaj",1);

”Imaj” adıyla bir pencere oluşturuyoruz. “1” ise pencere büyüklüğü değişirse resmin büyüklüğünün değişip değişmeyeceğini simgeliyor. Eğer 0 yaparsanız pencereyi büyüttüğünüzde resminiz de büyür, ya da tam tersi.

cvShowImage("Imaj",image);

Burada ise “image” resmimizi “Imaj” penceresinde göstereceğimizi belirtiyoruz.

cvWaitKey(0);

Herhangi tuşa basılana kadar beklememiz gerektiğini belirtiyoruz.

cvDestroyWindow("Imaj");

“Imaj” isimli pencereyi yok ediyoruz.

cvReleaseImage(&image);

Resmimizi başka kullanımlar için release ediyoruz.

Bu makalede OpenCV kütüphanesinin kullanımına ilişkin bir giriş yaptık. http://vision.cis.udel.edu/opencv adresindeki “Reference Manual”’leri kullanarak OpenCV’deki birçok fonksiyon hakkında daha detaylı bilgi edinebilirsiniz.

HappY Codin’

 

 

 

 

 

 

 

 

Yorum (yok) Yorum yaz!

LinQ 'ya Giriş -2- DlinQ


11/1/2008 ·

Bir önceki yazıda basit LinQ sorgularının nasıl yapılacağını örenmiştik, şimdi ise gerçek bir ASP.NET uygulaması yazalım. Bunun için önce bazı hazırlıklar yapmamız gerekiyor.

 

Öncelikle Visual Studio 2008’i açıyoruz(Belirtilen işlemler Framework 3.0 veya 3.5 yüklü ise Visual Studio 2005 içinden de yapılabilir). Yeni bir web sitesi oluşturma projesi yaratıyoruz.

 

Solution Explorer menüsünde projemize sağ tıklıyoruz ve Add New Item 'a tıklıyoruz. Gelen menüde  "LinQ to SQL Classes" 'ı seçip Add tuşuna bakıyoruz. Bundan sonra gelen soruda "Yes"'i işaretliyoruz.


Şimdi karşımıza yeni bir designer ekranı geldi. Bu ekranda kullanmak istediğimiz bütün veritabanı tablolarını ekleyebiliriz, LinQ bu tabloların kodlarını bizim için üretecek ve kolaylıkla kullanabileceğiz.


Önce kullanalacak veritabanını seçmek için DataBase Explorer'a bir veritabanı ekleyin. Daha sonra database explorer içinden kullanılacak tabloları designer'ın yüzeyine sürükleyin ve bırakın. Örnek olarak oluşturduğum "Test" veritabanında "TestTableOne" isimli bir tablo var, bu tablonun da iki adet sütunu var; bunlar ColOne ve ColTwo; bu iki sütunda integer tipinde. Projeyi build edin.


Şimdi tekrar Default.aspx.cs sayfamıza geri dönelim. Önce sayfamıza bir GridView ekleyelim. Unutmadan şunu da belirteyim, SQL ve LinQ'yu beraber kullanabilmemiz için eklememiz gereken bir referans var: System.Data.Linq .


Şimdi kodumuza bakalım;


using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.Linq;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DataClassesDataContext _context = new DataClassesDataContext

(ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString);
        var result = from a in _context.TestTableOnes select new { a.ColOne, a.ColTwo };
        GridView1.DataSource = result;
        GridView1.DataBind();
    }
}


İşte hiç bir Sql cümlesi yazmadan veritabanındaki bilginiz ekranda... Görüldüğü gibi Linq kullanmak gerçekten basit. Daha sonraki yazılarımızda LinQ ile insert ve update nasıl yapılır bunu inceleyeceğiz.

HappY Codin'


 

Yorum (yok) Yorum yaz!

LinQ 'ya Giriş -1-


9/1/2008 ·

Language Integrated Query kelimelerinin baş harflerinden oluşan LinQ, Framework 3 ile gelen bir yenilik. LinQ kullanarak SQL veritabanları ve XML verileri herhangi bir SQL cümleciği kullanmadan sorgulamak mümkün hale geliyor.

Bu sayede daha önce yazılım geliştiricilerin başını çok ağrıtan SQL sorgular ortadan kalkıyor ve işlemler nesneler üzerinden yürümeye başlıyor. Aslında bu sistem daha önce LLBLGen gibi birçok tool'da da bulunmaktaydı, bununla beraber veritabanında yapılan her değişiklik için kodun yeniden üretilmesi zorunluluğu özellikle büyük projeler için bir sorun teşkil etmekteydi. LinQ ise sınıfları yazmak veya üretmek gibi iki seçenekle yazılım geliştiricilerin karşısına çıkıyor.

Şimdi LinQ'ya giriş amacıyla küçük bir “console application” yapalım. Bu örnekte X firmasına ait bir alışveriş sitesi yazılıyor, veritabanındaki tablolardan birinin adı ise Order, ani sipariş;

 
class Orders
{
    private int _OrderID;
    private int _CustomerID;
    private double _Cost;   
    public int OrderID
    {
        get { return _OrderID; }
        set { _OrderID = value; }
    }
     public int CustomerID
    {
        get { return _CustomerID; }
        set { _CustomerID = value; }
    }   
    public double Cost
    {
        get { return _Cost; }
        set { _Cost = value; }
    }
}

class Program
{
    static void Main(string[] args)
    {
       
// Test amacıyla burada veritabanından çekilen veriler değil aşağıda oluşturduğumuz veriler kullanılıyor.
        var Orders = new List {
                         new Orders {
                             OrderID = 1,
                             CustomerID = 84,
                             Cost = 159.12
                         },
                         new Orders {
                             OrderID = 2,
                             CustomerID = 7,
                             Cost = 18.50
                         },
                         new Orders {
                             OrderID = 3,
                             CustomerID = 84,
                             Cost = 2.89
                         }
                     };

       
// Linq sorgusu
        var Found = from o in Orders
                    where o.CustomerID == 84
                    select o.Cost;       

       
// sonuçları gösterelim.
        foreach (var Result in Found)
            Console.WriteLine("Cost: " + Result.ToString());
    }
}

Programın çıktısı şöyle olacaktır:
Cost: 159.12
Cost: 2.89

Şimdi satır satır LinQ sorgusunu inceleyelim:

from o in Orders

Buradaki yapıyı foreach gibi düşünebiliriz, bununla beraber Microsoft'un neden from ifadesini kullandığını çok kimse anlamamış gözüküyor. Bu cümleden Orders tablosunda bir sorgu yapacağımızı ve sorgu yaparken kullanacağımız nesnenin adının "o" olduğunu anlayabiliriz.

Bundan sonra gelen Where cümleciği;

where o.CustomerID == 84

Burada ise o nesnesine, yani Order tablomuzda CustomerId 84 olan satırları seçmemiz gerektiği belirtiliyor.

En sonda ise "select" cümleciğimiz var;

select o.Cost

Burada tablodan hangi sütunları geri döndürüleceğini seçiyoruz.

İşte ilk Linq Sorgunuzu yazdınız...

Gelelim daha ayrıntılı sorgulara, sorgumuzu aşağıdaki şekilde değiştirirsek;

 var Found = from o in Orders
                    where o.CustomerID == 84
                    select new{o.Cost
,o.OrderId};

Bu şekilde hem Cost hem de OrderId'yi alabilmiş olduk.
Unutmayın, LinQ içerisinde istediğiniz matematiksel işlemleri de gerçekleştirebilirsiniz;


var Found = from o in Orders
            where o.CustomerID == 84
            select new {
                       o.OrderID,
                       o.Cost,
                       CostWithTax = o.Cost * 1.1
                   };

Gördüğünüz gibi burada CostWithTax değerini Cost değerinin 1.1 katı
olarak tanımladık, bunu yaparken de anonymous type'lardan yararlandık
 ve herhangi bir tip tanımı yapmadık.

Linq ile daha kompleks sorgularda yazabiliriz;

var Found = from o in Orders
            where o.CustomerID == 84 && o.Cost > 100
            select new {
                       o.OrderID,
                       o.Cost,
                       CostWithTax = o.Cost * 1.1
                   };


LinQ'da sıralama yapmak için tıpkı SQL'dei gibi orderby kelimesini kullanıyoruz;
var Found = from o in Orders
            where o.CustomerID == 84
            orderby o.Cost ascending
            select new { o.OrderID, o.Cost };

Benzer şekilde gruplama için "group" "by" kelimelerini kullanıyoruz;

var Found = from o in Orders
            where o.CustomerID == 84
            group o by o.Cost
            select new { o.OrderID, o.Cost };

Son olarak "Join" işlemi için bir örnek verelim, bu örnekde ikinci bir sınıf eklenmiş olsun. Bu yeni sınıfımızın adı Customer, özellikleri ise CustomerId, Name ve EMail.
Şimdi basit bir join sorgusu yazalım;

var Found = from o in Orders
            join c in Customers on o.CustomerID equals c.CustomerID
            select new { c.Name, o.OrderID, o.Cost };

Yazıyı "insert " işleminin nasıl yapılacağını göstererek bitirmek istiyorum, önce insert edeceğimiz nesneyi yaratalım;

Orders ord = new Orders(){

            CustomerId = 20;

            Cost = 10;

           }

db.Orders.InsertOnSubmit(ord);

db.SubmitChanges();

 

Önce bir nesne yarattık, sonra bu nesneyi insert edilecek nesneler arasına ekledik ve en sonda da işlemi bitirdik; hepsi bu kadar...

 

LinQ'ya basit ama ayrıntılı bir giriş yapmış olduk, konuyla ilgili her türlü sorunuza açığım...

Happy Coding...

 

 

 

 

 

 

Yorum (yok) Yorum yaz!

« Önceki ::