Tag: .NeT 2010

Jena, .NeT Uygulamalarında Nasıl Kullanılır?

Nisan 28th, 2011

Öncelikle elinizde http://jena.sourceforge.net/downloads.html adresinden indirilmiş olan jena-2.6.4.jar (Farklı bir versiyon olabilir) dosyasının olduğunu varsayıyorum. Bu makaleyi yazdığım sırada Jena’nın .NeT versiyonunu linki kırık durumdaydı. Bu yüzden farklı bir yol izlemek zorunda kaldım.

Daha sonra aşağıdaki linkten, jar ve java dosyalarını .net e çevirmek için kullanılan güzel bir uygulama indiriyoruz bilgisayarımıza. IKVM.NET

Link : http://www.ikvm.net/download.html

Bu iki uygulamayı zipden çıkardıktan sonra, ikvm klasöründeki \ikvmbin-0.46.0.1\bin klasörüne Jar dosyasını kopyalıyoruz. Bu işlem işimizi biraz kolaylaştırmak içindi 🙂

Sonrasında Command Prompt u açıp, ikvmbin-0.46.0.1\bin klasörüne gidiyoruz. Burada aşağıdaki komutu çalıştırıyoruz.

ikvmc -target:library jena-2.6.4.jar

Program aşağıdaki gibi jar dosyasını dll e çevirecektir. Bu komut sonrasında jena-2.6.4.dll dosyasını elde ediyoruz. Bu dosyayı istediğimiz bir .net projesine referans olarak ekleyip kullanabiliriz.

Söylemeden geçmeyeyim, bu işlem ile javada yazılmış olan tüm uygulamaları dll e çevirebili ve .net projelerinde kullanabilirsiniz.

Tags: , , , , ,
Posted in .NeT 2008, Yazılım | 2 Comments »

C# da Outlook ile Mail Gönderme

Mart 4th, 2011

Hazırladığınız uygulamada outlooku kullanarak mail göndermek istiyorsanız öncelikle “Microsoft Outlook 14.0 Object Library” i referans olarak eklemeniz gerekmektedir. 14.0 bilgisayarınızda kurulmuş olan office versiyonudur. Bu rakam değişiklik gösterebilir.

Daha sonra usinglerimize aşağıdaki satırı ilave ediyoruz. Böylece uzun uzun namespaceleri yazmamıza gerek kalmadan Outlook diyerek tüm metodları kullanabiliriz.

using Outlook = Microsoft.Office.Interop.Outlook;

Daha sonra aşağıdaki basit olarak hazırlanmış olan metodu kullanıp şekillendirerek mail gönderimi yaptırabilirsiniz.

private void SendOutlookMail()
        {
            try
            {
                Outlook.Application oApp = new Outlook.Application();
                Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

                oMsg.To = "To Mail Adresleri";
                oMsg.CC = "CC deki Mail Adresleri";
                oMsg.BCC = "BCC deki Mail Adresleri";
                oMsg.Recipients.ResolveAll();

                oMsg.Subject = "Mailin Subjecti";
                oMsg.Body = "Mailin İçeriği";

                //Aşağıdaki satırları attachment göndermek istiyorsanız kullanabilirsiniz. İstemiyorsanız bunlara gerek yok
                String sSource = "C:\\xyz.xlsx";
                String sDisplayName = "Görünen Dosya İsmi";
                int iPosition = (int)oMsg.Body.Length + 1;
                int iAttachType = (int)Outlook.OlAttachmentType.olByValue;
                Outlook.Attachment oAttach = oMsg.Attachments.Add(sSource, iAttachType, iPosition, sDisplayName);

                //Mail gönderilmeden önce kullanıcıya değişiklik yapmak için imkan tanınıyor
                oMsg.Display(true);  
                
                oAttach = null;
                oMsg = null;
                oApp = null;
            }
            catch (Exception e)
            {
                MessageBox.Show("Hata Oluştu", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Gelen Aramalar:

  • c# outlook mail gönderme
  • c# outlook
  • c# toplu mail gönderme
  • c# sharp toplu mail gönderme
  • c# mail gönderme
  • c# sharp sms gönderme
  • outlookta toplu mail gnderme
  • anything

Tags: , , , , , , ,
Posted in .NeT 2008, Sistem, Yazılım | 5 Comments »

C# da Çalışan Uygulamanın Klasörünü Bulma

Mart 4th, 2011

Çalışan uygulamanın, exesinin bulunduğu klasörü aşağıdaki şekilde bulabilirsiniz.

using System.IO;
using System.Windows.Forms;
string appPath = Path.GetDirectoryName(Application.ExecutablePath);

Tags: , , , , , ,
Posted in .NeT 2008, Yazılım | No Comments »

DataTable da Sütunun DataType’ını Belirleme

Mart 4th, 2011

Bir datatable’ın Column.DataType propertysini aşağıdaki gibi belirleyebilirsiniz.

String
DataColumn colString = new DataColumn(“StringCol”);
colString.DataType = System.Type.GetType(“System.String”);
myTable.Columns.Add(colString);
Int32
DataColumn colInt32 = new DataColumn(“Int32Col”);
colInt32.DataType = System.Type.GetType(“System.Int32”);
myTable.Columns.Add(colInt32);
Boolean
DataColumn colBoolean = new DataColumn(“BooleanCol”);
colBoolean.DataType = System.Type.GetType(“System.Boolean”);
myTable.Columns.Add(colBoolean);
TimeSpan
DataColumn colTimeSpan = new DataColumn(“TimeSpanCol”);
colTimeSpan.DataType = System.Type.GetType(“System.TimeSpan”);
myTable.Columns.Add(colTimeSpan);
DateTime
DataColumn colDateTime = new DataColumn(“DateTimeCol”);
colDateTime.DataType = System.Type.GetType(“System.DateTime”);
myTable.Columns.Add(colDateTime);
Decimal
DataColumn colDecimal = new DataColumn(“DecimalCol”);
colDecimal.DataType = System.Type.GetType(“System.Decimal”);
myTable.Columns.Add(colDecimal);

Tags: , , , , ,
Posted in .NeT 2008, Yazılım | No Comments »

Diş Polikliniği Uygulaması

Aralık 10th, 2010

Bir arkadaş için hazırlamaya başladığım ama iş yoğunluğu sebebiyle bitiremediğim bir proje bu. Aşağıda hazırladığım kısımların ekran görüntülerini, kaynak kodlarını ve çalışır haldeki durumunu bulabilirsiniz. Kodu indirip devam edecekler bana bir mail gönderip durumu bildirirlerse sevinirim 🙂 Aynı zamanda bitirebilen olursa, bitmiş halini de görmek isterim.

Bulunan Özellikler :

Doktor İşlemleri :

  • Doktor Kaydetme
  • Doktor Silme
  • Doktor Güncelleme
  • Doktor Anlaşma Bilgileri Kaydı
  • Doktor Bakiye Bilgileri
  • Doktor Son Hesap Hareketleri
  • Fotoğraf Çekme / Düzenleme / Silme
  • Doktor Arama (İsim ve TC Kimlik No kriterleri ile)

    Hasta İşlemleri :

  • Hasta Kaydetme
  • Hasta Silme
  • Hasta Güncelleme
  • Hasta Sağlık Bilgileri Kaydı
  • Hastaya Ait Röntgen/Dosya Yükleme
  • Hasta Ödeme Kaydı
  • Randevu Kaydı
  • Randevu Alma
  • Hastanın Son Tedavileri
  • Hasta Fotoğrafı Çekme / Düzenleme / Silme
  • Hasta Arama (İsim ve TC Kimlik No Kriterleri ile)

    Malzeme İşlemleri

  • Malzeme Kaydı
  • Malzeme Arama (İsim ve Tutar Aralığı Kriterleri ile)

    Gün Sonu İşlemleri

  • Her gün bitiminde o günkü kazanılan/harcanılan tutarların Kasaya aktarılması için kullanılır. Bu sırada Doktorlara, anlaşma türüne göre ödemeler dağıtılır.
    Örneğin; Doktor o gün 1000 TL lik kazanç sağlamışsa ve anlaşması %40 ise, 400 TL Doktora, 600 TL Polikliğe gidecek şekilde dağıtımı yapılır.
  • Tüm İşlemler ise, o güne kadar atlanmış olan tüm hareketlerin (sadece yapılmamış olanların) Kasa hareketinin yapılmasını sağlar.

    Kasa Ekranı

  • Bugün, Dün, Bu Hafta, Bu Ay, Tarih Aralığı ve Tüm Zamanlar kriterlerine göre yapılan tüm kasa hareketlerinin gösterimini sağlar.

    Ana Ekran

  • Ana ekranda,
    • Doktor Listesi
    • Bu Saat İçinde Randevusu Olanların Listesi
    • Gelecek Saat Randevusu Olanların Listesi
    • Takvim Seçeneği
    • Randevu Durumu
    • Günlük Kasa Durumu
    • Genel Kasa Durumu gibi parçalar bulunmaktadır.
  • Doktor Listesi ve Tarih kriterlerinden seçilenlere göre, seçilmemişse o anki tarih ve tüm doktorlara göre, Randevu Durumu, Günlük Kasa Durumu ve Genel Kasa Durumu ekranları doldurulur. Bu sayede çoklu polikliniklerde çok rahat filtreleme imkanı sağlanmış olur.
  • Randevu Durumu Alanında o gün içerisindeki (Farklı bir tarih seçilmemiş ise) tüm randevular listelenir.
  • Randevu Durumu Alanında, belirli bir randevu üzerine sağ tıklandığında,
    • Tedaviyi Tamamla
    • Randevuyu Güncelle
    • Randevuya Gelinmedi
    • Randevuyu Sil

    Seçenekleri mevcuttur.

    Tedaviyi Tamamla Ekranında

    • Belirtilen randevu ile ilgili olarak, Hasta Adı, Hekim Adı, Randevu Tarihi ve Süresi ve Randevu Durumu bilgileri bulunur.
    • Tahsilat işlemleri kısmına, Hastaya uygulanan tedavi ve Ödeme Bilgileri girilip, İşlemi Yap ile kayıt altına alınır.
    • Yeni Randevu Ayarla kısmında ise, aynı hastaya yeni bir randevu alınır. Hastanın tedavisi tamamlanmışsa, yeni randevu alınmayacaksa burada bir işlem yapılmaz. Tekrar aynı hasta için randevu alınmak istenirse Hasta Ekranında, ilgili hasta bulunup, Randevu ekranından tekrardan randevu alınabilir.

    Randevuyu Güncelle Ekranında

    • Belirtilen randevu ile ilgili olarak, Hasta Adı, Hekim Adı, Randevu Tarihi ve Süresi ve Randevu Durumu bilgileri bulunur.
    • Yeni Randevu bilgileri girilip, Randevuyu Güncelleye tıklanır. Bu işlem ile eski randevu bilgileri güncellenecektir.

Uygulama İle İlgili Ekran Görüntüleri:

Doktor İşlemleri





Hasta İşlemleri








Ana Ekran





Tedaviyi Tamamla Ekranı




Randevu Güncelle Ekranı



Malzeme İşlemleri Ekranı



Gün Sonu Ekranı


Kasa Ekranı



Database Tablolarının Create Scriptleri :

Anlasmalar Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Anlasmalar] Script Date: 12/10/2010 13:40:39 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[Anlasmalar](

[ID] [int] IDENTITY(1,1) NOT NULL,

[HekimID] [int] NULL,

[Tip] [int] NULL,

[Yuzde] [int] NULL,

[Tutar] [int] NULL,

[Maas] [int] NULL,

CONSTRAINT [PK_Anlasmalar] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty @name=N’MS_Description’, @value=N’0 – Maaşlı, 1 Anlaşmalı’ , @level0type=N’SCHEMA’,@level0name=N’dbo’, @level1type=N’TABLE’,@level1name=N’Anlasmalar’

GO

Dosyalar Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Dosyalar] Script Date: 12/10/2010 13:41:12 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Dosyalar](

[ID] [int] IDENTITY(1,1) NOT NULL,

[FileName] [varchar](max) NULL,

[HastaID] [int] NULL,

[CopyFileName] [varchar](max) NULL,

[Silindi] [int] NULL,

[EklenmeTarihi] [datetime] NULL,

CONSTRAINT [PK_Dosyalar] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Hastalar Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Hastalar] Script Date: 12/10/2010 13:41:25 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Hastalar](

[ID] [int] IDENTITY(1,1) NOT NULL,

[KayitTarihi] [datetime] NULL,

[Adi] [varchar](max) NULL,

[Soyadi] [varchar](max) NULL,

[Unvan] [varchar](max) NULL,

[Il] [varchar](max) NULL,

[Ilce] [varchar](max) NULL,

[TcKimlikNo] [varchar](max) NULL,

[IletisimTelefonu] [varchar](max) NULL,

[EvTelefonu] [varchar](max) NULL,

[CepTelefonu] [varchar](max) NULL,

[MailAdresi] [varchar](max) NULL,

[WebAdresi] [varchar](max) NULL,

[Fax] [varchar](max) NULL,

[Adres] [varchar](max) NULL,

[Not1] [varchar](max) NULL,

[Not2] [varchar](max) NULL,

[Silindi] [int] NULL,

[Resim] [varchar](max) NULL,

CONSTRAINT [PK_Hastalar] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

HastalikDurum Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[HastalikDurum] Script Date: 12/10/2010 13:41:50 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[HastalikDurum](

[ID] [int] IDENTITY(1,1) NOT NULL,

[HastaID] [int] NULL,

[Hastalik] [varchar](max) NULL,

CONSTRAINT [PK_HastalikDurum] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Hastaliklar Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Hastaliklar] Script Date: 12/10/2010 13:42:09 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Hastaliklar](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Hastalik] [varchar](max) NULL,

CONSTRAINT [PK_Hastaliklar] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Hekimler Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Hekimler] Script Date: 12/10/2010 13:42:26 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Hekimler](

[ID] [int] IDENTITY(1,1) NOT NULL,

[KayitTarihi] [datetime] NULL,

[Unvan] [varchar](max) NULL,

[Adi] [varchar](max) NULL,

[Soyadi] [varchar](max) NULL,

[Adres] [varchar](max) NULL,

[Il] [varchar](max) NULL,

[Ilce] [varchar](max) NULL,

[Telefon1] [varchar](max) NULL,

[Fax] [varchar](max) NULL,

[DoktorTipID] [int] NULL,

[EvTelefonu] [varchar](max) NULL,

[CepTelefonu] [varchar](max) NULL,

[Not1] [varchar](max) NULL,

[Not2] [varchar](max) NULL,

[Mail] [varchar](max) NULL,

[Web] [varchar](max) NULL,

[TcKimlikNo] [varchar](11) NULL,

[Silindi] [int] NULL,

[Resim] [varchar](max) NULL,

[IBAN] [varchar](max) NULL,

CONSTRAINT [PK_Hekimler] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Kasa Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Kasa] Script Date: 12/10/2010 13:42:39 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Kasa](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Tip] [int] NULL,

[GelirKaynakID] [int] NULL,

[GelirKaynak] [varchar](max) NULL,

[GiderKaynakID] [int] NULL,

[GiderKaynak] [varchar](max) NULL,

[Tutar] [int] NULL,

[IslemTarihi] [datetime] NULL,

CONSTRAINT [PK_Kasa] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

EXEC sys.sp_addextendedproperty @name=N’MS_Description’, @value=N’Gelir 0 – Gider 1′ , @level0type=N’SCHEMA’,@level0name=N’dbo’, @level1type=N’TABLE’,@level1name=N’Kasa’, @level2type=N’COLUMN’,@level2name=N’Tip’

GO

MalzemeKaydi Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[MalzemeKaydi] Script Date: 12/10/2010 13:43:01 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[MalzemeKaydi](

[ID] [int] IDENTITY(1,1) NOT NULL,

[Malzeme] [varchar](max) NULL,

[Tutar] [int] NULL,

[Adet] [int] NULL,

[Durum] [int] NULL,

[IslemTarihi] [datetime] NULL,

CONSTRAINT [PK_MalzemeKaydi] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Ödemeler Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Odemeler] Script Date: 12/10/2010 13:46:06 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Odemeler](

[ID] [int] IDENTITY(1,1) NOT NULL,

[DoktorID] [int] NULL,

[HastaID] [int] NULL,

[Tutar] [int] NULL,

[Islem] [varchar](max) NULL,

[Durum] [int] NULL,

[IslemTarihi] [datetime] NULL,

CONSTRAINT [PK_Odemeler] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Randevular Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[Randevular] Script Date: 12/10/2010 13:46:38 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Randevular](

[ID] [int] IDENTITY(1,1) NOT NULL,

[HastaID] [int] NULL,

[HekimID] [int] NULL,

[TarihSaat] [datetime] NULL,

[Sure] [int] NULL,

[Durum] [varchar](max) NULL,

[Silindi] [int] NULL,

[YapilanTedavi] [varchar](max) NULL,

CONSTRAINT [PK_Randevular] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

SQLConnections Tablosu

USE [DentalSoft]

GO

/****** Object: Table [dbo].[SQLConnections] Script Date: 12/10/2010 13:46:56 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[SQLConnections](

[ID] [int] IDENTITY(1,1) NOT NULL,

[DataSource] [varchar](max) NULL,

[InitialCatalog] [varchar](max) NULL,

[PersistSecurityInfo] [varchar](max) NULL,

[UserID] [varchar](max) NULL,

[Password] [varchar](max) NULL,

[ConnectionName] [varchar](max) NULL,

CONSTRAINT [PK_SQLConnections] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Kaynak Kodlar

Publish Edilmiş Hali

Kaynak Kod – Source Kod

Gelen Aramalar:

  • framework 4 0

Tags: , , , , , , , , , , , , , ,
Posted in Bilgisayar, internet, Program, Yazılım | 6 Comments »