SharedPreferences, android platformunda ayar ve basit veri saklayabileceğimiz bir yapıdır
SharedPreferences’a bir veri yazmak için Editor
objesini oluşturmamız gerekiyor. Bu editor’ü kullanarak
SharedPreferences içine bir primitif veri yazıp okuyabiliriz. Bunu
yaparken bir anahtar kelime vermemiz gerekiyor.
Değişikliklerinizin kaydedilmesi için commit() metodunu çalıştırmayı unutmayın.
Keydettiğmiz verilere ihtiyacımız olduğunda aşağıdaki gibi
erişebiliriz. İkinci parametre varsayılan değerler. Eğer daha önce böyle
bir ayar dosyası kaydedilmemiş ise ikinci parametrede gönderdiğimiz
değer döndürülür.
You can get context a few ways:
By the Activity, using Your_Activity_Name.this
By the application, using getApplicationContext()
By the View, using Your_View.getContext()
Yönlendirme Kısayolları CTRL + N -> Proje içinde herhangi bir class ı arayabilir ve direk olarak açabilmemizi sağlar. CTRL + SHIFT + N -> Proje içinde herhangi bir dosyayı aramamızı ve direk olarak dosyayı açmamızı sağlar. CTRL + E -> Son kullanılan dosyaların listesini çıkartır ve direk olarak ulaşmamızı sağlar. CTRL + G -> Satır numarası aratır. Yada seçili olan satırın satır numarasını gösterir. CTRL + SHIFT + BACKSPACE
-> Son yaptığımız değişikliğin konumuna gider. Yaptığımız
değişikliği geri almak için CTRL + Z kombinasyonunu kullanıyoruz. Bunun
farklı ise değişikliği geri almadan o noktaya fokuslanması. F4 -> Herhangi bir metodun yada fonksiyonun üzerine gelip basıldığında o metodun konumunu açar. CTRL + B -> kodun tanımlandığı yere gider üst üste 2 kere basıldığında kodun nerelerede kullanıldığının listesini çıkartır. CTRL + ALT + B -> kodun uygulandığı yere gider. Kodlama Kısayol tuşları CTRL + ENTER
-> İşimize en çok yarayacak kısayollardan birtanesi. Mutlaka hızlı
kullanımına alışmamız gerekiyor. Koddaki problemleri çözmemiz için ip
ucu veriyor. CTRL + SPACE -> kod yazarken cümle tamamlamıza yarıyor. CTRL + D -> Bulunduğu satırı kopyalayıp alt satıra yapıştırıyor. CTRL + Y -> Bulunduğumuz satırı direk olarak siliyor. CTRL + ALT + L -> Sayfadaki tüm kodları düzenliyor. Satırları parantezlere göre hizalıyor. CTRL + / -> Kodu yorum satırına alır yada tekrar aktif eder. CTRL + SHITF + / -> Satırları yorum bloğuna alır yada tekrar aktif eder. ALT + Aşağı Ok -> Metodları aşağı doğru gezmemizi sağlar. ALT + Yukarı Ok -> Metodları yukarı doğru gezmemizi sağlar. SHIFT + F6 -> metod ismini değiştirmemize yarar. CTRL + F4 -> aktif olan tabı kapatır. SHIFT + F10 -> Uygulamayı derler ve çalıştırır. CTRL + F9 -> Uygulamayı sadece build eder.
Daha
hızlı ve kolay kullanım için bu kısa yolları öğrenmeniz ve projelerini
yaparken uygulamanız sizin yararınıza olacaktır. Şimdilik bu kadar.
Başka bir servera taşındığınızda, eski serverınızdaki IIS’de kurulu
olan sitelerinizi, web servislerinizi, aplication pool’larınızı teker
teker eklemek doğal olarak zor olacaktır. IIS ayarlarınızın yedeğini
alıp yenisine yüklemek işinizi kolaylaştırır. Bunun için yapmanız
gerekenler, çok kolay ve sorunsuz çalışan iki komuttan oluşuyor.
1- Komut penceresini açın.
– Windows Server 2008 için: Başlat -> Arama kutusu + Cmd + Enter
– XP ve Windows Server 2003 için : Başlat ->Çalıştır
Yukarıda “IISBackup” isimli yedek klasörümüzü oluşturduk. Bu klasöre
Windows Server 2008’de “C:\Windows\System32\inetsrv\backup” içinde
ulaşabilirsiniz.
3 – Restore komutu (Geri Yükleme) : >%windir%\system32\inetsrv\appcmd.exe restore backup “IISBackup”
IISBackup klasörünü yeni serverda
“C:\Windows\System32\inetsrv\backup” dizinine atın. Ardından yukarıdaki
kodu komut satırında çalıştırın.
IIS7 Geri Yükleme (Restore)
Bu işlemden sonra IIS’i açın. Tüm domain – sub domainleri, web
servisleri, application pool’ları ile IIS yedeğinin yeni serverınıza
yüklendiğini göreceksiniz.
I would say that instead of justifying this lack of support of multiple models
with documentation, you should find an argument in terms of software
architecture perspective: ASP.NET Web API is built on top of MVC paradigm, where a view is bound to a model and handled by a controller.
In other words: 1 Model, 1 View, 1 Controller.
Your use case shouldn't be solved with 2 models, but using a DTO. Instead of binding 2 parameter to 2 models, design a DTO which includes both models as associations of the whole DTO:
// You don't need [FromBody] since complex types are already taken// from the request bodypublicIHttpActionResultDoStuff(SomeDto dto)
RESTORE DATABASE Db_Name
FROM DISK = N'C:\Db\Backup.bak'
WITH
MOVE 'backup_dbname' TO 'C:\MSSQL\DATA\Db_Name.mdf',
MOVE 'backup_dbname_log' TO 'C:\MSSQL\DATA\Db_Name_log.ldf'
Go
DECLARE @count int; SET @count=(select count(0) from Table_Name)
DECLARE @start datetime; DECLARE @end datetime; DECLARE @datediff int; Set @end=(select top 1 CreatedDate from Table_Name order by CreatedDate desc) SET @start=(select top 1 CreatedDate from Table_Name order by CreatedDate ) SET @datediff=( select DATEDIFF(second,@start,@end) AS DIFFDATE)
print ltrim(str(@datediff))+' saniyede toplam '+ltrim(str(@count))+' veri eklendi.'; print 'Ortalama '+ltrim(str(@count/@datediff))+' veri/saniye';
click on the SQL Shell and log into the database and use import
Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]:
Password for user postgres:
psql (9.2.4)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=# \i c:/data/data01.sql
php site taşınırken mysql veritabanı yediğinin (.sql dosyası) en üstteki versiyon numaralarına dikkat etmek gerekiyor. eğer php sürümü eskiyse çalışmayabilir. örneğin php 5.4.3 de bulunan mysql kütüphanesi 5.5.xden itirabaren çalışmıyor. Ayrıca mysql veritabanı mariadb ile sorunsuz çalıştığı için mysql veritabanını maridbye yüklebilirsin, ilerde mariadb ve mysql birbirine desteği kestiğinde sorun olabilir.
guid alanı long'a çevirdim
mysql ilk migration'da guid alan için trigger oluşturmuş bu trigger silmek gerekiyordu DROP TRIGGER IF EXISTS Trigger_Adı komutu ile trigger sildim daha sonra ayno tabloya atılan bir kaç kayıt vardı, id'si guid olan onları da sildim düzeldi.
Başka bir anlatımımızdan merhabalar
Bu dersimizde size linüx işletim sisteminde Apache, Mysql ve Php
kurulumunu anlatacağım. Web tasarım üzerinde çalışıyorsanız web sitenizi
yayınlamadan önce kendi bilgisayarınızda denemeler yaparak sisteminizi
geliştirebilirsiniz.
öncelikle uç birim terminalini açıyor, daha sonra da root yetkisini alıyoruz.
Gestalt psikolojisi (Geştalt psikolojisi okunur), bilişsel süreçler içerisinde özellikle "algı" ve "algısal örgütlenme" konularında yoğunlaşmış psikoloji teorisi. 20.yy'ın ilk yarısında, Almanya'da ortaya çıkmıştır.
Gestalt Kuramı, öğrenmeyi sadece uyarı-tepki (U-T)ilişkisi içerisinde değerlendiren "davranışçı kuram"a
bir tepki olarak ortaya çıkmıştır. Her U-T ikilisinin birbirlerinden
bağımsız olarak incelendiği davranışçı kuramın aksine, zihnin uyarıcılar
arasında bir bağlantı (örüntü) kurduğunu savunur. Bu nedenle inceleme
konusu davranışlar değil, "bilişsel süreçler"dir. Aynı zamanda
davranışçı kuramın redüksiyonist çalışma şeklini de reddeder; Gestalt'a göre bütün onu oluşturan parçaların toplamı değil, daha fazlasıdır.
Gestalt Kuramı bilişsel süreçler içerisinde "algı"ya çok önem verir
ve algısal örgütlenmeye yön veren yasaları tanımlar. Bütün bu yasalar
"Pragnanz" adı verilen bir üst yasanın türevleridir. Pragnanz kısaca
şunu ifade eder ; "Bütün psikolojik olaylar, koşulların elverdiği ölçüde tam ve basit olma eğilimindedir"
Algısal örgütlenmenin çalışma şeklini belirleyen yasalar şunlardır,
1) Şekil-Zemin İlişkisi: "Algıda seçicilik" kuramına göre,
dikkatin yoğunlaştığı obje şekil, diğer yüzeyler zemindir. Şekil ve
zemin mutlak kavramlar değildir, dikkatin yoğunlaştığı noktaya göre
şekil ve zemin değişir.
"Tamamlama"; Yukarıdaki şekiller tam değildir, fakat biz onları tamamlanmış olarak algılarız
2) Yakınlık İlkesi : Duyusal anlamda birbirlerine yakın olan
uyarıcılar (vurmalı bir çalgıdan gelen ses, bitişik noktalar) bir küme
olarak algılanır. Buradaki yakınlık daha çok "zaman ve mekan"
anlamındadır. 3) Tamamlama İlkesi : Duyusal anlamda eksik girdi içeren
uyarıcılar (yarım bir fotoğraf, bozuk bir plakta çalan şarkı) tam olarak
algılanır. Bu nedenle bir resimdeki kişiyi tanımamız için, resmin
yarısını görmemiz de yeterli olur.
"Benzerlik"; Koyu ve açık renkli noktalar farklı gruplar olarak algılanır.
(Haziran 2011'de güncellendi)
Muhtemelen çoğunu biliyorsunuzdur ama ben yine de aralarından
bilmedikleriniz çıkabilir diye çok sık kullandığım Eclipse kısayollarını
paylaşayım dedim. Kısayollarla aranız henüz iyi değilse kısayolları
öğrenmenizi ve kullanmaya çalışmanızı şiddetle tavsiye ederim zira
işlerinizi çok kolaylaştırıyorlar. CTRL + 1
Quick Fix. Bunu öğrendikten sonra bana göre en mübarek Eclipse Kısayolu. CTRL + SHIFT + R
Open Resource: İsmini yazacağınız kaynak dosyasını açar. CTRL + SHIFT + T
Open Type: İsmini yazacağınız türü açar. CTRL + D
Üzerinizde bulunduğunuz satırı siler. Tek tuşla ov şit. CTRL + E
Açık olan editörleri listeler. Onlarca sınıfa aynı anda göz atıyorsanız sınıflar arasında hızlıca geçiş yapabilirsiniz. CTRL + I
Girintilemeyi düzeltir. CTRL + M
Maximize / Unmaximize. Bulunduğunuz alanı genişletir, genişletilmiş halde ise küçültür. CTRL + Delete / Ctrl + Backspace
İmlecin sağındaki / solundaki kelimeyi siler. Otomatik tamamlayıcıyı fazla kullanıyorsanız yararlı olabiliyor. CTRL + L
Numarasını vereceğiniz satıra atlar. SHIFT + CTRL + UP / SHIFT + CTRL + DOWN
Sonraki / önceki sınıf üyesine sıçrar. Az sayıda metodunuz falan
varsa bir metoddan diğer metoda hızlıca geçmek için kullanabilirsiniz.
Ben kullanıyorum zira. ALT + UP / ALT + DOWN
İmlecin o anda bulunduğu satırı ya da seçtiğiniz satırları aşağı
yukarı kaydırır. Kod bloklarının yerini kolayca değiştirebilirsiniz.
Lazım olduğu zaman çok kullanışlı oluyor. F3
Tanıma git. İmlecin üzerinde bulunduğu öğenin tanımına gider. Bir
niteliğin adının üstünde iseniz niteliğe, bir sınıf adının üstünde
iseniz sınıfın kaynak koduna gider. SHIFT + ALT + J
Sınıf / Metod başlarına Javadoc yorumları ekler. SHIFT + CTRL + C
Seçili kod bloğunu yorum satırı haline getirir. Daha önce yorum satırı yapılmış kod bloğunu normal hale getirir. SHIFT + CTRL + O
Import'ları düzenler. Gereksiz import'ları kaldırır. Eklenmesi
gereken import'ları ekler. Bazen kullandığınız bir sınıf adı birden
fazla paketin altında bulunabilir. Böyle bir durumda SHIFT + CTRL + O
dediğinizde size hangisini ekleyeceğinizi de sorar. SHIFT + CTRL + F
Yazdığınız kodun stilini düzeltir. Yani girintileri, boşlukları,
noktanın virgülün vesairenin konumlarını ayarlar (Girinti şu kadar
olsun, noktadan sonra boşluk olsun gibi ayarları Preferences'ten
yapabilirsiniz). SHIFT + CTRL + B
İmlecin olduğu satıra breakpoint koyar. Koyulmuş bir breakpointi kaldırır. CTRL + N
Files > New yoluyla gelen pencereyi açar. SHIFT + ALT + M
Seçili kod bloğunu yeni bir metod tanımlayıp içerisine yerleştirir.
Bilmemenin değil öğrenmemenin ayıp olduğu Debug kısayolları: F11
Debug'ı başlatır. F5 (Step into)
Debug yaparken bir metod tanımında iseniz işletime o çağrının içinden
devam eder ve bazı durumlarda metodun içinde neler olup bittiğine
bakmanız gerekiyorsa çok yararlı olur. F6 (Step Over)
Bir sonraki komutu işletir. F8 (Resume)
Bir sonraki breakpoint'e kadar olan komutları tek seferde işletir.
Ayrıca Windows > Preferences > General > Keys yoluna giderek
kısayolları düzenleyebilirsiniz. Örneğin ben ekstradan şu kısayolları
da kullanıyorum: CTRL + SHIFT + N
Yeni sınıf tanımlama penceresi açar (Keys bölümünde New Class seçeneğiyle ayarlanıyor). CTRL + SHIFT + I
Yeni interface tanımlama penceresi açar (Keys bölümünde New Interface seçeneğiyle ayarlanıyor).
Komut ekranına aşagıdaki komutları yazarak windows service işlemlerini gerçekleştirebiliriz.
Not : Komut ekranı (Başlat -> Çalıştır -> CMD) yolunu izleyerek açabilirsiniz.
serviceInstaller 'ın ServiceName'i ile exe adı aynı olması gerekiyor
Command Prompt'u administrator açmak gerekiyor
cshtml dosyaları açılmıyor ve "The operation could not be completed" hatası veriyorsa
"Users\<CurrentUser>\AppData\Local\Microsoft\VisualStudio\<version>\" adresinden versiyon numarası neyse onu siliyoruz. Düzeliyor ayrıca webpages versiyonundan da sorun olabiliyor
Bir "solution" içine güncellenme ihtimali düşük olan projeleri farklı "solution" içinde açmalıyız. örneğin "A" solution için "A.Blog" projesini başka projede açmalıyız. Bilgisayar çok iyi değilse "get latest" veya "fetch" işlemlerinde makine donuyor. Ayrıca geliştireme yapılmayacak "class library"leri derleyip dll olarak projeye eklemeliyiz böylece "build" derleme süresi kısalır.
Eğer proejeye tema ekleyeceksek sadece lazım olan dosyaları tek tek projeye eklemeliyiz, yoksa csporj dosyasında her dosya için yol tutulduğu için derlemede yavaşlık olacaktır.
bool exists = context.Database .SqlQuery<int?>(@" SELECT 1 FROM sys.tables AS T INNER JOIN sys.schemas AS S ON T.schema_id = S.schema_id WHERE S.Name = 'SchemaName' AND T.Name = 'Table_Name' ") .SingleOrDefault() != null;
Bu yazımda DISKPART hakkında elimden geldiğince bilgiler vermek
istiyorum. Windows ile birlikte gelen bu bütünleşik component ile Disk
Sürücülerimize rahatlıkla format atabileceğiz hatta silinmeyen
partitionları bile rahatlıkla silebileceğiz. Öncelikle Command Prompt’u
Administrator modunda açalım ve açılan komut satırımıza DISKPART yazıp enter tuşuna basalım.
Böylelikle DISKPART yazılımımızın command interface’ine ulaşmış oluyoruz. Bunun ardından LIST DISK diyoruz
ve bilgisayarımızdaki mevcut bütün diskleri rahatlıkla görebiliyoruz.
Tamamen sıfırlamak istediğimiz diskimizi görüp sürücü numarasını not
ediyoruz. Örneğin bizim sürücümüzün numarası 5 olsun. SELECT DISK 5 komutunu
veriyoruz ve diskimizi seçmiş oluyoruz. Ardından CLEAN komutunu
çalıştırıp diskimizi tamemen temizlemiş oluuyoruz. Temizliğin ardından
partitionlarımızı oluşturup ve assign işlemlerimizi yapmamız gerekiyor.
Bunun için CREATE PARTITION PRIMARY satırını giriyoruz ve birinci bölümümüz oluşturulmuş oluyor. Hemen ardından SELECT PARTITION 1 komutunu giriyoruz ve parition’unumuzu seçmiş oluyoruz. Hemen ardından bölümü aktif etmek ve formatlamak için ACTIVE FORMAT FS=NTFS
komutlarını sırasıyla giriyoruz. İşlemler bittikten sonra ASSIGN komutuyla bölümümüzü Windows’a tanıtmış oluyoruz. Hemen ardından EXIT ile çıkış yapabilirsiniz. Herşey bu kadar
Kolay Gelsin.
Html.Partial metodu
Html.Partial
metodu, partial view'i Html-encoded string olarak
çözümler. Html.Partial metodunun çıktısı string türünde değer döndürdüğü
için değişkende saklanabilir.
Kullanımı kolaydır ve Action oluşturmaya gerek yoktur.
Html.Partial
metodu, sayfada görüntülemek istediğiniz veriler metodun çağırıldığı
view ile birlikte geliyorsa kullanışlıdır. Örneğin, bir blog yazısında
yorumları göstermek için Html.Partial metodu kullanılmalıdır çünkü blog
yazısının yorumları, yazıyla birlikte ViewModel'in içerisinde gelmiş
olacaktır. Kullanım örneği:
@Html.Partial("_Yorumlar")
Html.RenderPartial metodu
Html.RenderPartial
metodu, çağırıldığı sayfanın TextWriter'ını kullanır. Yani doğrudan
Http response stream'e yazılır. Bu yüzden Html.Partial metodundan daha
hızlıdır.
Html.RenderPartial metodu void döndürür. Kullanımı kolaydır ve Action oluşturmaya gerek yoktur.
Html.RenderPartial
metodu, sayfada görüntülemek istediğiniz veriler metodu çağırdığınız
View ile birlikte geliyorsa kullanışlıdır. Örneğin, bir blog yazısında
yorumları göstermek için Html.RenderPartial metodu kullanılmalıdır çünkü
blog yazısının yorumları, yazıyla birlikte ViewModel'in içerisinde
gelmiş olacaktır. Kullanım örneği:
@{Html.RenderPartial("_Yorumlar");}
Html.Action metodu
Html.Action metodu, partial view'i Html-encoded string olarak çözümler.
Html.Action
metodunda, partial view'i yorumlamak için "child action"
oluşturmamız gerekir. Html.Action metodunun çıktısı string türünde değer
döndürdüğü için değişkende saklanabilir.
Html.Action metodu,
sayfada görüntülemek istediğiniz veriler metodun çağırıldığı view'dan
bağımsız ise kullanışlıdır. Örneğin, bir blog yazısında her
sayfada kategori listesini göstermek istiyorsak Html.Action metodu
kullanılmalıdır çünkü kategori listesinin modeli diğerlerinden farklı
olacaktır. Kullanım örneği:
@{Html.Action("Kategori","Home");}
Ayrıca partial view'i önbellekte tutmak istiyorsanız Html.Action metodu en iyi çözüm olacaktır.
Html.RenderAction metodu
Html.RenderAction
metodu, çağırıldığı sayfanın TextWriter'ını kullanır. Yani doğrudan
Http response stream'e yazılır. Bu yüzden Html.Action metodundan daha
hızlıdır.
Html.RenderAction metodunda, partial view'i yorumlamak için "child action" oluşturmamız gerekir.
Html.RenderAction
metodu, sayfada görüntülemek istediğiniz veriler metodun çağırıldığı
view'dan bağımsız ise kullanışlıdır. Örneğin, bir blog yazısında her
sayfada kategori listesini göstermek istiyorsak Html.RenderAction metodu
kullanılmalıdır çünkü kategori listesinin modeli diğerlerinden farklı
olacaktır. Kullanım örneği:
@{Html.RenderAction("Kategori","Home");}
Partial view'i önbellekte tutmak istiyorsanız Html.RenderAction metodu en iyi çözüm olacaktır.
Sql server database diagram oluşturmaya(yada görüntüleme) çalıştığınızda aşağıdaki gibi bir hata ile karşılaşıyorsanız.
TITLE: Microsoft SQL Server Management Studio
------------------------------
Database diagram support objects cannot be installed because this
database does not have a valid owner. To continue, first use the Files
page of the Database Properties dialog box or the ALTER AUTHORIZATION
statement to set the database owner to a valid login, then add the
database diagram support objects.
------------------------------
Çözüm olarak şu sorguyu çalıştırabilirsiniz
ALTER AUTHORIZATION ON DATABASE::databasename TO sa
The following table lists the mapping from AjaxOptions members to the HTML 5 data attributes:
AjaxOptions
HTML attribute
Confirm
data-ajax-confirm
HttpMethod
data-ajax-method
InsertionMode
data-ajax-mode *
LoadingElementDuration
data-ajax-loading-duration **
LoadingElementId
data-ajax-loading
OnBegin
data-ajax-begin
OnComplete
data-ajax-complete
OnFailure
data-ajax-failure
OnSuccess
data-ajax-success
UpdateTargetId
data-ajax-update
Url
data-ajax-url
In addition to these attributes, there will always be a
data-ajax="true" attribute present to trigger the unobtrusive Ajax
system. * = data-ajax-mode will only be present if UpdateTargetId is set.
** = data-ajax-loading-duration will only be present if LoadingElementId is set.