Microsoft, Windows 7′yi kullanıcılarına sundu sunmasına; ancak gelecek işletim sistemi için de çalışmalarını daha da yoğunlaştırdı. Yeni işletim sistemi için ‘start’ verildi demiyoruz; çünkü Windows 7′nin hazırlandığı son aylarda bile Windows 8 için ciddi çalışmaların yürütüldüğü biliniyordu. Ancak Windows 8 şimdilik gerçekten de muamma. Microsoft, Windows 8′le ilgili açıklama yapmaktan şimdilik uzak duruyor; ne de olsa Windows 7′nin lansmanının yapıldığı bugünlerde Windows 8′den bahsetmenin pek de sırası olmadığı düşünülebilir. Biz de bu galerili makalemizde pek de bilinmeyen ancak kullanıcıların şimdiden merak ettiği yeni nesil işletim sistemi Windows 8′le ilgili bilmesi gereken 8 önemli noktayı bir araya getirdik. İşte Windows 8 ile ilgili bilmeniz gereken o 8 şey…
Yeni Windows’la ilgili merak edilen en önemli şey, Windows 8′in ne zaman kullanıcılarla buluşacağı… Bunun için Windows Vista ile 7 arasındaki süreci baz alabiliriz. Diğer bir deyişle, Windows 8′in Windows 7′den itibaren 2-3 sene içerisinde kullanıcılara sunulması mümkün. Bu da Windows 8′in en erken 2011′in sonu veya 2012 ortalarında kullanıcılarla buluşabileceği anlamına geliyor.
Şu aşamada bu sorunun cevabını Windows geliştirme ekibinin dahi tam olarak bildiğini düşünmüyoruz. Bu nedenle Windows 8′le ilgili kamuoyuna yansıyan hemen hiçbir bilgi, Windows 8′le ilgili bizi aydınlatmaya şimdilik yetmiyor. Windows 8′in hangi özellikleri kullanıcılara sunacağı ise 2010′un sonlarına doğru netlik kazanması olası. Zaten bu döneme gelindiğinde Windows 8′in halka açık beta sürümü de gün yüzüne çıkmış olacak. Bunun dışında Windows 8′in 128-bit’i de destekleyeceği yönünde ciddi söylentiler var; ancak bu bilginin ne kadar doğru olduğu konusunda şu aşamada bir şey söylemek pek de doğru değil.
Windows ekibine göre, uyku modu, yeni TLZ dosya sıkıştırma motorunu kullanacak. Böylece uyku moduna ve akabinde tekrar bilgisayarın çalışır hale gelmesine kadar olan süreç çok daha hızlı işleyecek.
Windows ekibinin yeni ağ fonksiyonlarıyla ilgilendiği ve bu konuda bazı ciddi çalışmalar yürüttüğü biliniyor. Bunun yanı sıra Windows 7′de kullanıcılara sunulmayan bir güvenlik özelliği de Windows 8′de yer alacak ve doğrulama ve şifreleme sistemi, Windows Server’a dayanacak.
Bu soruya ‘evet’ yanıtını verebiliriz; zira bir süre önce bu konuda bir açıklama yapan Steven Sinofsky, yeterli zamanlarının olmaması nedeniyle çoklu monitörlerde yer alacak yeni kullanıcı arabiriminin Windows 7′ye yetiştirilemediğini, ancak Windows 8′de bu özelliğin büyük olasılıkla bulunacağını belirtmişti.
Windows kernel, akıllı telefonlarda bulunan ARM ve Qualcomm Snapdragon yongaları üzerinde çalışabilir. Ancak bu olayı doğrudan Windows 8′le de ilişkilendirmek doğru olmayabilir; zira bahsedilen bu olayın çok daha düşük seviyedeki sistemlerde çalışan daha ileri bir Windows sürümünde görülmesi de olası.
Silverlight’ta bulunan SeaDragon ve Deep Zoom özelliğinin arkasındaki ekibe yeni bir üst düzey uzman alınacağı yönünde söylentiler bulunuyor. Ancak resmi kanallara bakıldığında böyle bir uzmanın Windows 8 ekibine dahil olacağı dillendiriliyor.
Bu hem iyi hem de kötü haber… İşin iyi yanı Sinofsky Windows 7′nin bugünlere gelmesinde de önemli bir rol üstlenmişti. Ancak madalyonun diğer yüzüne de bakmak lazım: Sinofsky daha çok yönetim konusunda uzmanlaşmış bir isim ve vizyon sahibi olmaktan biraz uzak olduğu düşünebilir. Sonuçta ne denirse densin, Windows 7, Vista mimarisi üzerine kurulmuş bir işletim sistemi. Windows 8′in ise ilgi odağı olabilmesi için artık çok daha fazla efora ve yeniliğe ihtiyacı olacak.![]()
![]()

Yazılım devi Microsoft, nihayet geçtiğimiz günlerde uzun zamandır merakla beklenen yeni işletim sistemi Windows 7‘yi kullanıcılarına sunduWindows 8 ne zaman çıkacak? 2011? 2012?
Windows 8 kullanıcılara ne getirecek?
Windows 8 ve güç kazanmış Hibernate fonksiyonu
Windows 8 ve yeni ağ ve güvenlik fonksiyonları
Windows 8,çoklu monitör desteğinde daha iyi olacak
Windows 8 ARM üzerinde çalışabilir
Ve SeaDragon…
Windows 8′in sorumluluğu Steven Sinofsky’da
Archive for Kasım, 2009
Windows 8 ile ilgili bilmeniz gerekenler
Daha iyi yazılım geliştiricisi olmak için ipucları nedir?
Daha iyi yazılım geliştiricisi olmak için ipucları
Daha iyi yazmak için daha iyi okumak gerekir. Okunacak kodlar olarak API’lerin örnek kodları gibi ufak ve öğretici yanı pek bulunmayan satırlar yerine daha geniş içerikli yazılımların, özellikle açık kaynak yazılımlarının gittikce yaygınlaştığı bir dönemde, üzerine gidilmesi çok daha uygun olur.
Daha kısa methodlar yazın.
Uzun methodlar; zor anlaşılmaya, iyileştirilmenin zorlaşmasına ve Java ya da C# gibi gözetimli (managed) dillerde yavaşlığa sebep olur.
Kısa methodları yazarken yapılacak işin özüne inmeye çalışın. Bu şekilde method isimleride kısalmış olur ve kolay adlandırılabilir.
Kısa methodların kullanımı test aşamasında yardımcı olduğu gibi, güncelleme esnasında da kolaylık sağlar. Yapılacak işe odaklanmayı kolaylaştırır. Örneğin öğrencilerin not ortalamasını hesaplayan ve bunları veritabanına giren bir method yerine, hesaplamayı ve veri girişini ayrı methodlarda yaptırılır ise öğrenci not ortalama kriterleri değiştiğinde bilgi girişi için her hangi bir değişiklik yapılmamış olur. Aynı şekilde değişen bir veritabanı ya da tabloları söz konusu olduğunda hesaplar ile ilgili bir işlem yapmaya gerek kalmaz.
Programlama günlüğü tutun.
Yazılım geliştirme, diğer mesleklere göre çok daha esnektir. Öyleki esneklik bazen bunun bir meslek olduğunu unutturmaya kadar varabilir. Bu durumlarda gelinen noktanın ve başarılan işlerin kaydedilmesi önem kazanır. Bazı geliştiriciler, bir takım araçlar ile, örneğin kaynak kontrolü ve hata yönetimi gibi, görevlerini tanımlar ve başarılarını kaydederler. Fakat bu yeterli olmayabilir.
Programlama günlüğü sadece bir öğrenme aracı değil aynı zamanda ileriki hataları önlemek için de önemli bir yardımcıdır.
Programlama günlüğüne günlük olarak verilen kararları, soruları ve konuşmaları girebilirsiniz. Resmi bir tasarım dokümanı oluşturacak kadar bilgi olmadığı durumlarda bir depo işlevi görecekmiş gibi kayıt tutabilirsiniz. Örneğin; patronunuz ya da çalışma arkadaşlarınız ile yaptığınız görüşmeler, tasarımdaki değişim konuşmaları, yalnış giden kısımlar, yenilikler için fikirler, tehlikeli ya da zor anlaşılır kod satırları günlüğe yazılması olası konulardır.
Programlama günlüğünü çevrimiçi tutmanız sizin kolayca yazabilmenizi ve ilgili kişilerin rahatça takip edebilmesini sağlayacaktır. Şirket içinde yerel bir ağ günlüğü de olabiliceği gibi, internet üzerinde de olabilir. Özellikle ağ günlüğü formatında olması, kişiselliği arttıracaktır. Her yazar, kendi yazdıklarında sorumludur.
Yeni programlama dilleri öğrenin.
Yeni bir dil öğrenmek, yeni birşey öğrenmenin zevki yanı sıra ufkumuzda genişletir. Her geliştiricinin bildiği gibi, hiç bir dil mükemmel değildir. Yeni bir dil öğrenmek çok çeşitli olabilir; bildiğiniz, çok sık kullandığınız bir dile çok farklı bir dil öğrenmeyi de seçebilirsiniz ya da bildiğiniz dilin normalde girmediğiniz detaylarına yolculuğa başlayabilirsiniz.
Önce birim testinizi yazın.
Önceden kabül edilmiş, klasik görüş, hatasız bir yazılım için önce tüm program yazılır, derlenir. En sonunda da denemeleri yapılır. Fakat tecrübeler gösteriyor ki günlük yapılmayan testler sonucunda sağlıklı bir ürüne ulaşmak gerçekten zordur. Aynı yazılımın derlenmesi gibi testlerde her adımda yapılması gereklidir. Derleme esnasında geliştirme platformunuz sadece dil yazım hatalarını veya veri tipi sorunlarını sizlere söyleyebilir. Öte yandan birim test ile kullandığınız algoritma ile karşılaşabileceğiniz potansiyel hataları öğrenebilirsiniz. Derleyiciniz statik özellikleri kontrol ederken, birim test ile dinamik özellikleri kontrol etme şansına sahip olursunuz.
Bir birine bağlı nesnelerle çalışmak durumdayken birim test yapmak gerçekten zahmetli bir iştir. Bu gibi durumlarda kendi kendinize bu fonksiyonu nasıl test edebilirim diyerek cevabınız doğrultusunda birim test için hazırlanabilirsiniz.
Kısacası, eklemek istediğiniz özellikler için birim testi önceden yazınız. Eğer özellik için bir test yazabilirseniz, devamında bu testi doğrulayacak koduda yazabilirsiniz. Önceden yazılmış kodları test için tekrar gözden geçirirken fark etmeden hatalar ekleme şansınız da doğabilir. Sonuç olarak, birim testleri sonradan eklemeniz, en azından, önceden sorunsuz olan kısımlara zarar verebilir.
Teknik özellikleri yazın.
Teknik özellikler kod yazma ile alakası olmadığı için sıkıcı ve gereksiz gelebilir. Fakat bunlar sıkıcı olsa bile, asla gereksiz değillerdir.
Teknik özellikler, yazmakta olduğunuz yazılımı kullanıcılara, müşterilere, patronunuza anlatmak için önemli bir araçtır. Geliştirme sürecinde, iyi yazılmış teknik özellikler, en verimli çalışma saatleriniz olabilir.
Teknik özellikleri yazarken, teknik detaylardan bahsetmekten kaçınmanız da gerek yoktur. Örnek kodlar, resimler gibi içeriği zengin tutarak kendinizide rahatlatabilirsiniz. Çok resmi ve bürokratik yazımlardan kaçınınız.
İlla resmi bir teknik özellik yazılması istenildiğinde, dilediğiniz şekilde yazdıktan sonra sizden istenilen hale getirmek çok daha kolay olur.
Kendi orjinal özelliklerinizi ekleyin. İleride fikirlerinizi iş arkadaşlarınız ile paylaşmayı kolaylaştırır.
Zamanı bahane edip, yazmaktan kaçmayın. Teknik özelliklerin yazılmadığı bir program, aynı bir evin inşasından önce taslağa sahip olmamak gibidir.
Özelliklerin kapsamında; düşündüğünüz tüm işlevsellikleri yazın, işlevselliklerin nasıl eklenebileceğini, sınıfların kullanımını, temel algoritmaları ve/veya veritabanlarını tanımlayın. Tüm bu detayların eklenmesi için süreleri de belirtmeniz önünüzü görmekte sizin için faydalı olabilir.
Teknik özellikleri yazmak, zor olabilir fakat yaptıkça bir alışkanlığa dönecektir. Başlangıç olarak ufak işlevselliklerin özelliklerini yazın ve daha sonra bunları tüm sisteme doğru genişletin.
C# 2 boyutlu cisimleri döndürme programı indir-2D-3D

Bu proje ile 2 boyutlu cisimleri panelimizin üzerine çizip şekil üzerinde basit işlemler yapacağız döndürme, öteleme ,simetrisini alma, meyillendirme
Bildiğimiz gibi koordinat sisteminde y ekseni aşağıya doğru gittiğimizde azalırdı. Bilgisayarımızda ise y ekseni aşağıya doğru artar. Öncelikle çizgiyi çizeceğimiz algoritmayı belirleyip fonksiyonunu oluşturuyoruz. Ben DDA algoritmasını kullanacağım fonksiyonumuzu oluşturalım;
void DDAkareciz(int x1, int y1, int x2, int y2)
{
int PikselSayisi;
int dx, dy;
float x, xFark;
float y, yFark;
dx = x2 - x1;
dy = y2 - y1;
PikselSayisi = Math.Abs(dx) > Math.Abs(dy) ? Math.Abs(dx) : Math.Abs(dy);
xFark = (float)dx / (float)PikselSayisi;
yFark = (float)dy / (float)PikselSayisi;
x = (float)x1;
y = (float)y1;
System.Drawing.Graphics tualgraphics = panel1.CreateGraphics();
System.Drawing.SolidBrush m_tualbrush = new System.Drawing.SolidBrush(m_brushcolor);
while (PikselSayisi > 1)
{
tualgraphics.FillEllipse(m_tualbrush, (int)Math.Floor(x + 0.5F), (int)Math.Floor(y + 0.5f), 3, 3);
x += xFark;
y += yFark;
PikselSayisi--;
}
}
Projemizde kullanacağımız global değişkenleri tanımlıyoruz;
#region degisken
int x1 = 20, y1 = 20, x2 = 70, y2 = 20, x3 = 70, y3 = 70, x4 = 20, y4 = 70;
int xorjin, yorjin;
int art = 1;
int artsag=1;
#endregion
Şimdi panelimize koordinat düzlemi çizelim;
Pen kalem = new Pen(Color.Black);
Graphics grafik = panel1.CreateGraphics();
grafik.DrawLine(kalem, 1, panel1.Height / 2, panel1.Width, panel1.Height / 2);
grafik.DrawLine(kalem, panel1.Width / 2, 1, panel1.Width / 2, panel1.Height);
Ben burada c# ın çizgi çizme fonksiyonunu kullandım hızlı oldugu için bu kodu panelin paint olayına yazıyoruz. Genişlik be yüksekliğin tam ortasından iki çizgi çiziyor Ve paneliize koordinat düzlemi çizilmiş oluyor.
Şimdi kare çizme fonksiyonunu oluşturalım; DDA algoritmamızı dört kez çağıracağız tek tek bütün cizgileri bu şekilde çizeceğiz.
Kareyi çizecek olan butonun cilck olayına aşağıdaki kodu yazıyoruz;
private void btnReset_Click(object sender, EventArgs e)
{
xorjin = panel1.Width / 2;
yorjin = panel1.Height / 2;
kareciz(xorjin + x1, yorjin - y1, xorjin + x2, yorjin - y2, xorjin + x3, yorjin - y3, xorjin + x4, yorjin - y4);
}
Artık panelimize koordinat sistemini ve kareyi çizdik; Ölçeklendirme de aynı mantık koordinatlarla oynayarak istediğiniz boyutta oluşturabilirsiniz ayrıca istediğiniz çokgeni çizebilirsiniz.
Burada en önemlisi döndürme olayı yukarıda tanımladığımız global değişkenler burda işimize yarayacak.
Vectörlerden hatırlarsınız açısı verilen dogrunun uzunlugunu bulmayı burda kullanacağız x1 ve y1 ile( verilen açı değerlerinin) sinalfa ve cosalfa değerleriyle çarparak yeni çizilecek karenin yerini belirliyoruz.
private void tRotDeg_Scroll(object sender, EventArgs e)
{
panel1.Refresh();
textBox1.Text = Dondur.Value.ToString();
int xx1, yy1, xx2, yy2, xx3, yy3, xx4, yy4;
double alfacos, alfasin;
xorjin = panel1.Width / 2;
yorjin = panel1.Height / 2;
alfacos = Math.Cos(Convert.ToInt32(Dondur.Value) * 3.1415 / 180);
alfasin = Math.Sin(Convert.ToInt32(Dondur.Value) * 3.1415 / 180);
xx1 = xorjin + Convert.ToInt32(x1 * alfacos - y1 * alfasin);
yy1 = yorjin - Convert.ToInt32(x1 * alfasin + y1 * alfacos);
xx2 = xorjin + Convert.ToInt32(x2 * alfacos - y2 * alfasin);
yy2 = yorjin - Convert.ToInt32(x2 * alfasin + y2 * alfacos);
xx3 = xorjin + Convert.ToInt32(x3 * alfacos - y3 * alfasin);
yy3 = yorjin - Convert.ToInt32(x3 * alfasin + y3 * alfacos);
xx4 = xorjin + Convert.ToInt32(x4 * alfacos - y4 * alfasin);
yy4 = yorjin - Convert.ToInt32(x4 * alfasin + y4 * alfacos);
kareciz(xx1, yy1, xx2, yy2, xx3, yy3, xx4, yy4);
}
Ben projede trackbar kullandım siz textbox scroll gibi kontroller de kullanabilirsiniz.