7 Aralık 2014 Pazar

Ubuntu 14.10'da Uyku Moduna geçme problemi

Ubuntu'yu 14.10'a yükselttikten sonra Laptop'un kapağını kapattığımda sistemin uyku moduna geçmediğini farkettim. Bu konuda bir araştırma yaptım ve bulduğum şu sayfadaki çözüm işimi çözdü.

1. Terminal ekranını açın(ctrl+alt+t) ve aşağıdaki kodu girin :
sudo nano /etc/systemd/logind.conf 

2. Bu dosyada :
#HandleLidSwitch=suspend 
şeklinde bir satır göreceksiniz. Bu satırın başındaki # işaretini kaldırım. Nano'dan çıkmak için Ctrl+x yapın, sonrada y tuşuna basın. İşte hepsi bu kadar.

After upgrade my laptop to Ubuntu 14.10, when I close the lit, laptop isn't gone to suspend. I was search the google for this issue, I found the solution in this page.  This solution is :

1. Open the terminal(ctrl+alt+t) and write this code :
sudo nano /etc/systemd/logind.conf 

2. In this window, find this line :
#HandleLidSwitch=suspend
remove this # chars at the begin of line. For Save and close nano, press ctrl+x and y .

That is it.

24 Kasım 2014 Pazartesi

Pidgin'de Google Apps Hesaplarının kullanımı

Merhaba,
Bildiğiniz gibi Google Apps, şirket olarak kullanılan Google hizmetlerine verilen addır. Email hesaplarından, Google Talk hesaplarına kadar bir çok hizmeti içerir. Olaki Google Talk için Pidgin veya benzeri bir 3. parti uygulama kullanmak isterseniz, gmail hesabınız ile iyi çalıştığını ancak Google Apps hesabınızla bir türlü çalışmak istemediğini görürsünüz. Bu durumda yapmanız gerekenler kısaca şöyle :
1. Add Account dediğinizde protokol olarak XMPP seçin
2. user name'e email adresinizdeki @ işaretinden öncesini yazın
3. domain yerine email adresinizdeki @ işaretinden sonrasını yazın
4. Resource yerine adınızı soyadınızı yazın
5. password yerine şifrenizi yazın.
6. advanced tabına geçin
7. bu ekrandaki ayarlar şöyle olsun:

8. save ile kapatabilirsiniz.

Böylece pidgin hesabınıza bağlanabilecektir.

10 Ekim 2014 Cuma

C#'taki lock'ın VB karşılığı


// C#
lock(someLock)
{
    list.Add(someItem);
}

// VB
SyncLock  someLock
    list.Add(someItem)
End SyncLock

Ubuntu 14.04 Evernote kurulumu

Evernote nedense Linux sürümü yayınlamamış. Bende artık ubuntu kullandığım için web sitesi üzerinden kullanmak zorunda kalıyordum. Sonra aklıma wine geldi. Wine linux için bir windows uygulama similatörü
 veya bir başka benzetme ile windows sanal makinası. Bu uygulama sayesinde bazı windows uygulamalarını linux sürümlerinde kullanabiliyorsunuz.

Ben özellikle teamviewer'da kullanmak üzere zaten ubuntu kurulumundan sonra mutlaka wine kuruyorum. (ubuntuya wine kurulumu için bu linki kullanabilirsiniz.).

Evernote'u kurmak ise biraz zahmetli oldu. Esasında zahmeti oluşturan evernote sitesinde download'u bulmak. normal yollarla sitede download kısmına ulaştığınızda evernote'un linux veriyonu olmadığını söyleyen bir sayfa açılıyor sadece. bir google operasyonu ile linklere ulaşıyorsunuz. : https://evernote.com/products/

bu adresten evernote'un windows versiyonunu indirip sonrasında üzerine çift tıkladığınızda evernote sanki windows'ta gibi kuruluyor. sonrasında bildiğiniz uygulamaya ubuntu'da kavuşuyorsunuz.



C# WPF Tutorials for beginners

Programming Knowledge tarafından başlangıç seviyesi için hazırlanan bir seridir.

İçerikler :


C# WPF Tutorial 1- Getting Started and Creating Your First Application
ProgrammingKnowledge
9:31


C# WPF Tutorial 2- Adding Image to WPF C# application (Image control , background image)
ProgrammingKnowledge
10:07


C# WPF Tutorial 3- SQLite database connection with WPF C# PART- 1/2
ProgrammingKnowledge
10:21


C# WPF Tutorial 4- SQLite database connection with WPF C# PART- 2/2
ProgrammingKnowledge
10:02


C# WPF Tutorial 5- SQLite database connection using ADO.NET 2.0 Provider for SQLite
ProgrammingKnowledge
9:48


C# WPF Tutorial 6- Login Form using sqlite in C# WPF application PART-1/2
ProgrammingKnowledge
11:16


C# WPF Tutorial 7- Login Form using sqlite in C# WPF application PART-2/2
ProgrammingKnowledge
11:33


C# WPF Tutorial 8- How to use to a PasswordBox in WPF (with Login Window)
ProgrammingKnowledge
6:22


C# WPF Tutorial 9- Open New WPF Window on button click ( with Login )
ProgrammingKnowledge
6:04


C# WPF Tutorial 10- Simple Fade animation for controls using WPF
ProgrammingKnowledge
7:24


C# WPF Tutorial 11- Saving Data to Database from WPF Application
ProgrammingKnowledge
18:08


C# WPF Tutorial 12- Edit / Update a data from Database with button in WPF
ProgrammingKnowledge
11:01


C# WPF Tutorial 13- Deleting selected data from database in WPF C#
ProgrammingKnowledge
6:21


C# WPF Tutorial 14- How to Link Combobox with Database values
ProgrammingKnowledge
13:44


C# WPF Tutorial 15- How to Link ListBox with Database
ProgrammingKnowledge
8:48


C# WPF Tutorial 16- Database values in textbox if select Combobox
ProgrammingKnowledge
16:31


C# WPF Tutorial 17- Show database values in Table or DataGrid
ProgrammingKnowledge
15:07


How to enable Line numbering in Visual Studio 2010
ProgrammingKnowledge
1:36


How to Create a CHM or Compiled HTML Help (.CHM) File
ProgrammingKnowledge
13:40


Please Support ProgrammingKnowledge ....
ProgrammingKnowledge
0:23



WPF 4.5 Programming

Jason Rainwater tarafından hazırlanan bir görsel eğitim setinin 3 demo modülünü içermektedir.

İçerikler :



What is WPF? WPF 4.5 Programming Tutorial
livelessons
1:00


WPF 4.5 Programming Content Control Basics
livelessons
3:56


WPF 4.5 Programming: Basic Layout
livelessons
4:46


WPF Eğitim Videoları

Merhaba WPF, son zamanlarda adını az duyduğumuz bir teknoloji olmaya başladı. özellikle bütün hizmetlerin web ortamına kaydığı şu zamanda WPF'in önemi ve kullanımı azalıyor gibi. Bende bu teknolojiyi tekrar hatırlamak adına youtube'da bir eğitim araştırması yaptım. Bulduğum eğitim videolarını seriler halinde çalma listelerine dönüştürüp, buradan paylaşacağım. Videoların bir kopyalarını indirip drive'a yükleyeceğim. eğer youtube'dan silinirlerse buradan dosya olarak paylaşırım.

İçerikler :


Tutorial WPF Application (C#) | Step By Step Guide(Basics) | Part 1
WhyThisTutorialNow
10:44


WPF Tutorial | Creating a Borderless Window | Design Basic | Part 2
WhyThisTutorialNow
5:37


Tutorial WPF Application (C#) | Using the Grid Layout | Design Basics | Layouts
WhyThisTutorialNow
9:49


Tutorial WPF Application (C#) | Using the Wrap And Dock Layout | Design Basics
WhyThisTutorialNow
11:52


Tutorial WPF Application Resources (C#) | Creating And Using A Static Resource
WhyThisTutorialNow
9:02


Tutorial WPF | Creating And Using An User Control (C#) | VS 2012
WhyThisTutorialNow
11:41


Tutorial WPF Application (C#) | Using the Stack Layout | Design Basics | Layouts
WhyThisTutorialNow
6:27


9 Ekim 2014 Perşembe

web development araçları

Online Javascript kodlarını deneyebileceğiniz bir site var : http://jsfiddle.net/ örnekler için kullanabilirsiniz.

Tam karşılığı olmayan ama benzer bir sistem php için : http://phpfiddle.org/

Select2 ile multiple

Bir arkadaşın sorusuna karşılık küçük bir çalışma yaptım. Öncelikle soruyu yazalım :

Akif Bal
4 saat önce  -  Herkese açık olarak paylaşıldı
Merhaba
Select2 de multi select özelliğini aktif ettikten sonra çoklu seçimleri aktaramıyorum. Bu konuda bilginiz var mı? Son seçtiğim veriyi sunucuya yazıyor.
Şimdi konuyu inceleyelim. 
multiple özelliği select elementine birden fazla değeri seçme yeteneği sağlıyor. bu şekilde kullanıcının birden fazla değeri seçebilmesi sağlanıyor. Ancak bu özelliği kullandığınızda select elementi bir listbox haline gelmekte. Bu görüntüyü select2 ile daha güzel sunmanız mümkün. aşağıda 2 farklı eleman gözükmekte : 
textbox şeklinde gözüken eleman select2 . alt taraftaki de select elemanının multiple görüntüsü. 
Şimdi soruya geri dönersek 
1. eğer select2 ve multiple kullanacak isek select elemanı üzerinden bunu oluşturmak daha iyi olacaktır. 
2. Eğer bu elemandan seçilen değerleri server tarafında görmek istiyorsanız farklı teknolojilerde farklı kullanım şekillerine dikkat etmeniz lazım.
Ben konuyu hızlıca php tarafında modelledim. Aşağıda yukarıdaki görüntüyü oluşturan kodları bulacaksınız. Burada dikkatinizi çekmek istediğim konu select elemanının name'i. php için name'in sonuna [] eklemeniz gerekiyor. Bu şekilde php bu elemandan gelen bilgileri doğru şekilde algılayabiliyor.

Soruyu soran arkadaşımız eğer kullandığı teknolojiyi yazarsa, onunla ilgili olarak makaleyi genişletebilirim. 
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
 <html xmlns="http://www.w3.org/1999/xhtml">  
 <head>  
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
 <title>PhpFiddle Initial Code</title>  
     <link rel=stylesheet href="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.css"/>  
     <link rel=stylesheet href="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2-bootstrap.css"/>  
 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>  
 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/select2/3.5.0/select2.js"></script>  
 <script type="text/javascript">  
     $(function(){  
         $('#s01').select2();  
     });  
 </script>  
 <style type="text/css">  
 </style>  
 </head>  
 <body>  
 <?php  
 function getValue($value){  
     if(isset($_POST['s01'])){  
         if(is_array($_POST['s01'])){  
             return in_array($value, $_POST['s01']);  
         }  
         else{  
             return $_POST['s01'] == $value;  
         }  
     }  
     return false;  
 }  
 if(isset($_POST['s01'])){  
     echo '<p>'. (is_array($_POST['s01'])? implode(",",$_POST['s01']) : $_POST['s01'])."</p>";  
 }  
 ?>  
     <form method="post">  
         <div >  
             Select 2 :  
             <select id="s01" name="s01[]" multiple style="width:150px">  
                 <option value="1"<?php echo getValue('1') ? ' selected' : '' ?>>Bir</option>  
                 <option value="2"<?php echo getValue('2') ? ' selected' : '' ?>>İki</option>  
                 <option value="3"<?php echo getValue('3') ? ' selected' : '' ?>>Üç</option>  
                 <option value="4"<?php echo getValue('4') ? ' selected' : '' ?>>Dört</option>  
                 <option value="5"<?php echo getValue('5') ? ' selected' : '' ?>>Beş</option>  
             </select>  
         </div>  
         <input type="submit" value="send" />  
         <div> select(multiple) :   
             <select id="s02" name="s02[]" multiple>  
             <option value="1"<?php echo getValue('1') ? ' selected' : '' ?>>Bir</option>  
             <option value="2"<?php echo getValue('2') ? ' selected' : '' ?>>İki</option>  
             <option value="3"<?php echo getValue('3') ? ' selected' : '' ?>>Üç</option>  
             <option value="4"<?php echo getValue('4') ? ' selected' : '' ?>>Dört</option>  
             <option value="5"<?php echo getValue('5') ? ' selected' : '' ?>>Beş</option>  
         </select>  
         </div>  
     </form>  
     <pre><?php var_dump($_POST); ?></pre>  
 </body>  
 </html>  

3 Ekim 2014 Cuma

Parallax

Farklı bir web deneyimi : 

http://matthew.wagerfield.com/parallax/

Detay için : https://github.com/wagerfield/parallax

Select2 'de search alanının kaldırılması ( disable search in select2)

Select2 kullanırken search alanını kullanmak istemezseniz bu alanı kolayca ortadan kaldırmak mümkün. Ancak internette açıklayıcı birşeyler bulmak zor olabiliyor. Kısaca bu iş için kullanacağınız input veya select elemanına select2-no-search class'ını eklediğinizde search alanından kurtulursunuz.

örnek olarak :
<select name="page_size" id="page_size" class="select2-no-search">
    <option value="10">10</option>
    <option value="25">25</option>
    <option value="50">50</option>
    <option value="100">100</option>
</select>

görüntüsü :

Ubuntu'da dns cache'inin temizlenmesi

Windows ortamında command prompt'ta

ipconfig /flushdns 

yazarak temizlediğimiz dns cache'i ubuntu 14.04'de en kısa yöntemle terminalde

sudo service network-manager restart
 
yazarak temizlenebiliyor.

Aman dikkat: bu yöntem bilgisayarın ağ bağlantısını kesip tekrardan açtığı için özellikle uzak bağlantılarda dikkatli olmanız lazım.

Select2'nin firefox gıcıklığı

Merhaba eğer sitenizde select2 kullanıyorsanız ve Firebug ekranında  elem.dispatchEvent is not a function şeklinde bir hata ile karşılaşıyorsanız bu problemi şöyle çözebilirsiniz.
1. Problemin kaynağı ne firefox nede select2. asıl problem büyük bir ihtimalle firefox a kurmuş olduğunuz FireQuery eklentisidir. Yapmanız gereken bu eklentiyi disable etmek sonrasında select2 olması gerektiği gibi çalışacaktır.

İyi çalışmalar


https://groups.google.com/forum/#!topic/select2/Siqd4CLo3Pg :
Had the same problem, turns out to be a FireQuery issue.
See https://github.com/ivaynberg/select2/issues/1708

Ubuntu 14.04 ile Microsoft VPN sunucularına bağlanma

Bugün şirketin Microsoft Vpn ile kullanmakta olduğu sunuculardan birine erişmek için ubuntu 14.04 kurulu makinamda vpn ayarları yapmaya çalıştım. normal olarak ilk denemede başarılı olamadım. Bende internette bir arama yaptım.
http://labnotes.decampo.org/2012/12/ubuntu-1210-connect-to-microsoft-vpn.html adresindeki ayarlarla bağlantıyı sorunsuz olarak kurabildim. Aşağıda yaptığım işlemleri görebilirsiniz.

Eğer Ubuntu 14.04 kullanıyorsanız ek herhangi birşey kurmanıza gerek olmuyor.

  •   VPN ayar penceresini açma:
    • masaüstünde takriben sağ üstte yer alan ağ ikonuna tıklayınız 
    • "VPN Connections" menüsüne geliniz
    •  "Configure VPN…" i seçiniz.
  • Yeni bir PPTP vpn bağlantısı tanımlayınız.Bunun için ekrandaki pencerede Add tuşuna basmanız, sonrada gelen pencerede yer alan açılır kutuda Vpn başlığı altındaki Point-to-Point tunneling protocol'ü seçmeniz gerekiyor. Sonrada Create tuşunu tıklayınız.
  • Artık Vpn ile ilgili ayarları yapmaya başlayabiliriz. Vpn tabına geliniz:
    • Connection name alanına istediğiniz bir ismi yazınız. Mesela Şirket Vpn gibi.
    • Gateway alanına sunucunuzun ip adresi veya var ise alan adını yazınız örn: 195.214.124.34 veya vpn.deneme.com gibi.
    • User name alanına kullanıcı adınızı giriniz.
    • Password alanında eğer isterseniz şifrenizi yazıp yanındaki açılır kutudan saved ı seçebilirsiniz. Yada açılır kutuda Always Ask'ı seçip her bağlanmaya çalıştığınızda size sormasını sağlayabilirsiniz. 
    • NT Domain alanına eğer bir windows domain'i kullanıyorsanız bunu girmeniz gerekir.
  • yine bu penceredeki Advanced tuşuna basarak PPTP Advanced Options penceresini açınız. bu pencerede aşağıdaki gibi ayarlar aktif olmalıdır.  
    • Authentication başlığı altındaki MSCHAPv2 haricindeki bütün işaretleri kaldırın.
    • Use Point-to-Point encryption (MPPE) seçeneğini işaretleyin
    • Security alanındaki açılır kutuyu All Available (Default) seçeneğine ayarlayın
    • Allow stateful encription seçeneğini seçin
    • Allow BSD data compression seçeneğinin işaretini kaldırın.
    • Allow Deflate data compression seçeneğinin işaretini kaldırın.
    • Use TCP header compression seçeneğinin işaretini kaldırın.
    • Send PPP echo packets seçeneğinin işaretini kaldırın.

    ve bütün pencereleri onaylayıp kapatın. 
    Artık Vpn sunucunuza bağlanabilirsiniz. Bunun için Ağ simgesi üzerine tıklayın, Vpn Connection menüsünden eklediğiniz vpn hesabını tıklatın. Şimdi VPN'e bağlanmış olmanız lazım.

20 Mart 2014 Perşembe

Oracle/PLSQL: Sequences (Autonumber)

Learn how to create and drop sequences in Oracle with syntax and examples.

Description

In Oracle, you can create an autonumber field by using sequences. A sequence is an object in Oracle that is used to generate a number sequence. This can be useful when you need to create a unique number to act as a primary key.

Create Sequence

You may wish to create a sequence in Oracle to handle an autonumber field.

Syntax

The syntax to create a sequence in Oracle is:
CREATE SEQUENCE sequence_name
  MINVALUE value
  MAXVALUE value
  START WITH value
  INCREMENT BY value
  CACHE value;

Example

Let's look at an example of how to create a sequence in Oracle. For example:
CREATE SEQUENCE supplier_seq
  MINVALUE 1
  MAXVALUE 999999999999999999999999999
  START WITH 1
  INCREMENT BY 1
  CACHE 20;
This would create a sequence object called supplier_seq. The first sequence number that it would use is 1 and each subsequent number would increment by 1 (ie: 2,3,4,...}. It will cache up to 20 values for performance. If you omit the MAXVALUE option, your sequence will automatically default to:
MAXVALUE 999999999999999999999999999
So you can simplify your CREATE SEQUENCE command as follows:
CREATE SEQUENCE supplier_seq
  MINVALUE 1
  START WITH 1
  INCREMENT BY 1
  CACHE 20;
Now that you've created a sequence object to simulate an autonumber field, we'll cover how to retrieve a value from this sequence object. To retrieve the next value in the sequence order, you need to use nextval. For example:
supplier_seq.NEXTVAL;
This would retrieve the next value from supplier_seq. The nextval statement needs to be used in a SQL statement. For example:
INSERT INTO suppliers
(supplier_id, supplier_name)
VALUES
(supplier_seq.NEXTVAL, 'Kraft Foods');
This insert statement would insert a new record into the suppliers table. The supplier_id field would be assigned the next number from the supplier_seq sequence. The supplier_name field would be set to Kraft Foods.

Drop Sequence

Once you have created your sequence in Oracle, you might find that you need to remove it from the database.

Syntax

The syntax to a drop a sequence in Oracle is:
DROP SEQUENCE sequence_name;
sequence_name is the name of the sequence that you wish to drop.

Example

Let's look at an example of how to drop a sequence in Oracle. For example:
DROP SEQUENCE supplier_seq;
This example would drop the sequence called supplier_seq.

Frequently Asked Questions

One common question about sequences is: Question: While creating a sequence, what does cache and nocache options mean? For example, you could create a sequence with a cache of 20 as follows:
CREATE SEQUENCE supplier_seq
  MINVALUE 1
  START WITH 1
  INCREMENT BY 1
  CACHE 20;
Or you could create the same sequence with the nocache option:
CREATE SEQUENCE supplier_seq
  MINVALUE 1
  START WITH 1
  INCREMENT BY 1
  NOCACHE;
Answer: With respect to a sequence, the cache option specifies how many sequence values will be stored in memory for faster access. The downside of creating a sequence with a cache is that if a system failure occurs, all cached sequence values that have not be used, will be "lost". This results in a "gap" in the assigned sequence values. When the system comes back up, Oracle will cache new numbers from where it left off in the sequence, ignoring the so called "lost" sequence values. Note: To recover the lost sequence values, you can always execute an ALTER SEQUENCE command to reset the counter to the correct value. Nocache means that none of the sequence values are stored in memory. This option may sacrifice some performance, however, you should not encounter a gap in the assigned sequence values.
Question: How do we set the LASTVALUE value in an Oracle Sequence? Answer: You can change the LASTVALUE for an Oracle sequence, by executing an ALTER SEQUENCE command. For example, if the last value used by the Oracle sequence was 100 and you would like to reset the sequence to serve 225 as the next value. You would execute the following commands.
ALTER SEQUENCE seq_name
INCREMENT BY 124;

SELECT seq_name.nextval FROM dual;

ALTER SEQUENCE seq_name
INCREMENT BY 1;
Now, the next value to be served by the sequence will be 225.

12 Mart 2014 Çarşamba

Sqlite için MVC 5 Identity DB Scripti

Merhabalar, Microsoft harici teknolojilere ve projelere ilgimi herkes bilir. Özelliklede birçok projede bazen başlangıç aşamasında bazende projenin tamamında sql server harici veri tabanları kullanırım. En sık kullandığım ise Sqlite'dır. Stabil, küçük ve dll'ini sisteme eklemekten başka bir şeye ihtiyaç duymayan herhangi bir kurulum yapmanız gerekmeyen süper bir db motoru bu arkadaş. Özellikle nhibernate ile create table script'leri dahi yazmadan code first mimarisi ile çok rahat çalışabiliyor. Ancak problem microsoft'un gelişmesi için 10 yıl gereken entity framework aracında başlıyor. Sadece microsoft teknolojilerini doğal olarak destekleyen bu araç diğer yapılara "İsterseniz bana provider yazıp kendinizi ekleyebilirsiniz" mantığında. böylede olunca gözümdeki beş para etmez bir hale geliyor. ancak kendim kullanmayacak olsamda bazı yerlerde microsoft bir işe yarayacakmış gibi bu arkadaşın kullanımını zorunlu kılıyor. uzun lafın kısası 1. Entity Framework'ten hoşlanmadığımı anlamışsınızdır. Kullanmamanızı tavsiye ederim. NHibernate bu konuda bence en iyi araç. 2. Gelelim asıl konumuza eğerki mvc 5 ile yeni gelen Asp.Net Identity altyapısını kullanmak istiyorsanız ve bu konudaki http://www.asp.net/identity/overview/getting-started/introduction-to-aspnet-identity adresi ve benzeri adreslerdeki yazıları okuduysanız, hemen klavye başına geçip sqlite ile bu arkadaşı test etmeye kalkabilirsiniz. Ama maalesef bu konuda başarılı olamayabilirsiniz. Çünkü code first ile database'i generate ettiğini söyleyen entity framework provider yok gibi abuk bir hata vermekte. O zaman elinize baltayı alma zamanı gelmiştir. Bende tam öyle yaptım ve aşağıdaki script'i hazırladım. Bu script ile veri tabanınızı hazırlayıp sonrada bunun üzerinden Asp.Net Identity altyapısını kullanabilirsiniz.


CREATE TABLE [AspNetRoles] (
    [Id]   NVARCHAR (128) NOT NULL,
    [Name] NTEXT NOT NULL,
    CONSTRAINT [PK_AspNetRoles] PRIMARY KEY ([Id] ASC)
);


CREATE TABLE [AspNetUserClaims] (
    [Id]         INT            IDENTITY (1, 1) NOT NULL,
    [ClaimType]  NText NULL,
    [ClaimValue] NTEXT NULL,
    [User_Id]    NVARCHAR (128) NOT NULL,
    CONSTRAINT [PK_dbo.AspNetUserClaims] PRIMARY KEY  ([Id] ASC),
    CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_User_Id] FOREIGN KEY ([User_Id]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);

CREATE INDEX [IX_AspNetUserClaims_User_Id]
    ON [AspNetUserClaims]([User_Id] ASC);


CREATE TABLE [AspNetUserLogins] (
    [UserId]        NVARCHAR (128) NOT NULL,
    [LoginProvider] NVARCHAR (128) NOT NULL,
    [ProviderKey]   NVARCHAR (128) NOT NULL,
    CONSTRAINT [PK_AspNetUserLogins] PRIMARY KEY ([UserId] ASC, [LoginProvider] ASC, [ProviderKey] ASC),
    CONSTRAINT [FK_AspNetUserLogins_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);

CREATE INDEX [IX_UserId]
    ON [AspNetUserLogins]([UserId] ASC);


CREATE TABLE [AspNetUserRoles] (
    [UserId] NVARCHAR (128) NOT NULL,
    [RoleId] NVARCHAR (128) NOT NULL,
    CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY  ([UserId] ASC, [RoleId] ASC),
    CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [AspNetRoles] ([Id]) ON DELETE CASCADE,
    CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
);

CREATE INDEX [IX_RoleId]
    ON [AspNetUserRoles]([RoleId] ASC);

CREATE INDEX [IX_AspNetUserRoles_UserId]
    ON [AspNetUserRoles]([UserId] ASC);


CREATE TABLE [AspNetUsers] (
    [Id]            NVARCHAR (128) NOT NULL,
    [UserName]      NTEXT NULL,
    [PasswordHash]  NTEXT NULL,
    [SecurityStamp] NTEXT NULL,
    [Discriminator] NVARCHAR (128) NOT NULL,
    CONSTRAINT [PK_AspNetUsers] PRIMARY KEY ([Id] ASC)
);


CREATE TABLE [__MigrationHistory] (
  [MigrationId] NVARCHAR(150) NOT NULL, 
  [ContextKey] nvARCHAR(300) NOT NULL, 
  [Model] NTEXT NOT NULL, 
  [ProductVersion] nvARCHAR(32) NOT NULL, 
  CONSTRAINT [] PRIMARY KEY ([MigrationId] ASC, [ContextKey] ASC)
);


örnek projeyi şu adresten inceleyebilirsiniz: https://github.com/alperkonuralp/AspNetMvc5WithSqlite

9 Şubat 2014 Pazar

C# Double to Date Time

Eğer c# ta yıl olarak verilen bir sayıyı zamana çevirmeniz gerekiyorsa 2 ayrı yöntem ile bu işi yapabilirsiniz. Aşağıdaki kodda bunun örneği gözükmektedir.

1. Yöntem DateTime sınıfının statik bir metodu olan FromOADate'i kullanmak. Bu metod gün değerini double formatında vermemizi istiyor. Verdiğimiz değeri 30.12.1899 yılına ekleyerek bize tarihi veriyor.

2. Yöntem ise biraz matematiksel işlem yapmayı gerektiriyor.