coding @ the speed of thought RSS 2.0
 Wednesday, April 15, 2009

http://www.semgoksu.com/sem-goksu-blog-sistemi-yazisi/534.aspx

My future blogging system (as soon as sem completes multilanguage implementation)
Great work!

Tuesday, April 14, 2009 11:55:41 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Software
 Thursday, March 12, 2009

Assume you have a base class and another class derived from it. You have events defined in base class so you wish to use them in the derived class.

    class a
    {
        public delegate void Amanindelegate();
        public event Amanindelegate Amanin;
    }

    class b:a
    {
        public void hey0()
        {
            Amanin();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            b b1=new b();
            b1.Amanin+=new a.Amanindelegate(b1_Amanin);
            b1.hey0();
        }
        static void b1_Amanin()
        {
            Console.WriteLine("aboovv");
        }
    }

Here you have the mentioned error in hey0 method line Amanin();
The best practice is as follows.

    class a
    {
        public delegate void Amanindelegate();
        public virtual event Amanindelegate Amanin;
    }

    class b:a
    {
        public override event a.Amanindelegate Amanin;
        public void hey0()
        {
            Amanin();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            b b1=new b();
            b1.Amanin+=new a.Amanindelegate(b1_Amanin);
            b1.hey0();
        }
        static void b1_Amanin()
        {
            Console.WriteLine("aboovv");
        }
    }

 

Thursday, March 12, 2009 6:46:52 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Tuesday, February 03, 2009

If you are having troubles with installing/registering ReportViewer dll's either using gacutil.exe or setup file, you can download the Microsoft Report Viewer Redistributable 2008 package from the following link.

http://www.microsoft.com/downloads/details.aspx?FamilyID=CC96C246-61E5-4D9E-BB5F-416D75A1B9EF&displaylang=en

Tuesday, February 03, 2009 6:10:39 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Tuesday, January 20, 2009

The name "Donaminname :1d" could not be registered on the Interface with IP address X.X.X.X (windows 2003 DC or server). The machine with the IP address X.X.X.X (PDC emulator) did not allow the name to be claimed by this machine.

The solution is simple. type "nbtstat -r" on command prompt & disable computer browser service. It's an error caused by wins.

Tuesday, January 20, 2009 5:18:39 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Server Systems

They couldn't shoot a video which exactly matches the orig. one even if they want to.No words to say :)

Tuesday, January 20, 2009 5:13:25 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Sunday, January 18, 2009

3 system engineers, 1 microtower, 1 esxi cd
Tonight we tried to setup vmware esx 3i 3.5 to a hp dx2300 microtower.
It was a painful night, first we searched for a hdd because original hdd should be saved as it was containing critical data for one of my project.
So me & Serkan called Arda and asked him to bring a sata hdd.
He came & we setup the hdd and burned out the iso & finally we were ready for the installation
Whoops we got the first error, memory was not enough.Logistics manager Arda :) took a ride to his place & brought 2gb ram.
Voila, installation was started, but suddenly we got an error message telling that esxi did not find any storage device to make the installation.
Anyway we googled a little but we could not find any resource.End of the night :)

So i decided to download & install esx 3.5 trial, but that attempt was kicked backed by the "competible nic not found" error :((
I was frustrated.

Late @ the same night while i was coding, i decided to re-google the problem.
Finally i got the solution.I had to change 4 chars in a py file in esxi.

If esxi could not find your sata drive, do the following

Press alt+f1 and drop to console
type root as the username and leave blank for the password
edit the /usr/lib/vmware/installer/Core/TargetFilter.py file by entering
vi /usr/lib/vmware/installer/Core/TargetFilter.py
find the def IDEFilter(lun) proc and change the "return interface.GetInterfaceType() == ScsiInterface.SCSI_IFACE_TYPE_IDE" line as "return interface.GetInterfaceType() == ScsiInterface.SCSI_IFACE_TYPE_ISCSI
save and quit by :wq!
type install

The original help document can be found @
http://www.vm-help.com/esx/esx3i/ESXi_install_to_IDE_drive/ESXi_install_to_IDE_drive.php

What a wonderful night.

Sunday, January 18, 2009 1:39:24 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Virtualization
 Thursday, January 01, 2009
Having problem with mdichild form size on form load?
try setting the AutoScaleMode to Inherit on mdi child form.

Thursday, January 01, 2009 11:51:23 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Monday, October 27, 2008


A Forecast...

Whenever SaaS and Soa completes their evolution, a new era will rise;
Internet Software Studio
A platform where developers will no longer need a software development studio,
A platform where development & compilation can be done online, where intermediate software users will able to develop their own software without digging into huge documentations...

Some day...

Monday, October 27, 2008 8:27:02 PM (GTB Standard Time, UTC+02:00)  #    Comments [2] -
Internet | Server Systems | Software | Virtualization
 Thursday, October 23, 2008

Dtp nin sitesi hacklendi.
dün akşam saat 22:30 civarında...

Thursday, October 23, 2008 8:47:15 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Server Systems
 Friday, September 05, 2008
My description for a hacker is the expert of all tech systems including coding.My description for the best hacker is the one tht has never been cought.But this guy is different, he exposes himself & his hack.

But i must confess, this is the best & funniest hack event i've seen for the past year.



Friday, September 05, 2008 12:32:50 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Security | Server Systems
 Tuesday, August 26, 2008
Tuesday, August 26, 2008 9:02:56 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Sunday, August 24, 2008
As i have mentioned several times before, i love movies & i'm sure i'll shoot mine one day, anyway making a film starts with the script and then the storyboard.I'm not that good @ painting so i serched for a storyboard making software which has templates & pictures in it.Then i found out this beautiful web page.It allows you to create comics with built in templates, conversation boxes, pictures and also it allows you to upload yr own photos.

This is my first comic "The Gathering" ... hope u like it :)


THE GATHERING from lyildiz on Comiqs

Sunday, August 24, 2008 12:59:58 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Friday, August 15, 2008


Great & wondeful tool for copying files to/from Esx servers to your windows environment.
http://www.veeam.com/veeam_fast_scp.asp

It also has "evaluate to root" option which allows u to access to yr vmfs volumes & copy powered off vm's to local drive.
Friday, August 15, 2008 4:59:08 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Virtualization
AKP'nin sitesi hacklendi...

Bu akşam saat 21:00 civarında...

Thursday, August 14, 2008 11:16:38 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
Evet! Bugün bir olay!!! yaşadık.Malum zat Istanbul'a geldi ve aşağıdaki manzaralar oluştu.


Haberleri izlediğimde bütün vatandaşlar şikayet ediyordu.Herkes;
- Böyle yönetim mi olur?
- Vatandaşlarını 3.sınıf vatandaş yerine koyan başka bir yönetim yoktur!!!
- Ankarayı ziyaret etmek istemeyen birisi için vatandaşı bu hale düşürüyorlar ya...
şeklinde konuşuyordu.

Bir tek kişi bile durumdan memnun değildi.Ama bir tek kişi bile...

E o kadar kişi yorum yaptı haberlerde...Bir yorum da benden...
Neden KIZIYORUZ? bu hale düşmeyi kendimiz SEÇMEDİK Mİ?
Thursday, August 14, 2008 11:08:44 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Thursday, August 14, 2008
As i was just about to code a logging system for a project, i remembered a couple of fine methods which SqlConnection class has.
RetrieveStatistics();

It works with first enabling the stats mode, resetting the stats and when the command is executed, finally retrive the stats.
string strConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=FooDB;Integrated Security=True";
 using (SqlConnection conSQL = new SqlConnection(strConnectionString))
 {
     using (SqlCommand cmdSQL = new SqlCommand("select * from Foo", conSQL))
     {
         cmdSQL.CommandType = CommandType.Text;
         try
         {
             conSQL.Open();
             conSQL.StatisticsEnabled = true;
             
             conSQL.ResetStatistics();
             SqlDataReader drdActiveConfiguration = cmdSQL.ExecuteReader();
             IDictionary idcStat= conSQL.RetrieveStatistics();

             foreach (DictionaryEntry dceItem in idcStat)
             {
                 Console.WriteLine("Key: {0}, Value: {1}", dceItem.Key.ToString(), dceItem.Value.ToString());
             }

             DataSet dsActiveConfiguration = new DataSet();
             dsActiveConfiguration.Load(drdActiveConfiguration, LoadOption.OverwriteChanges, new string[] { "Foo1" });

             dsActiveConfiguration.Clear();
             conSQL.Close();
         }
         catch (Exception excp)
         {
         }
     }
 }
By using this method, you get a quite information about the execution process...

Key: NetworkServerTime, Value: 375
Key: BytesReceived, Value: 224
Key: UnpreparedExecs, Value: 1
Key: SumResultSets, Value: 0
Key: SelectCount, Value: 0
Key: PreparedExecs, Value: 0
Key: ConnectionTime, Value: 390
Key: ExecutionTime, Value: 390
Key: Prepares, Value: 0
Key: BuffersSent, Value: 1
Key: SelectRows, Value: 0
Key: ServerRoundtrips, Value: 1
Key: CursorOpens, Value: 0
Key: Transactions, Value: 0
Key: BytesSent, Value: 388
Key: BuffersReceived, Value: 1
Key: IduRows, Value: 0
Key: IduCount, Value: 0
Press any key to continue . . .


which is very handy :)

Thursday, August 14, 2008 8:39:59 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Tuesday, August 12, 2008

To those users who has dloaded & installed Update 2 for their Esx 3.5 servers;
Due to an undefined date bug, vmware Esx 3.5 Update 2 servers will not power up VM's by today.
You can find specific info @ here

To solve this problem u need to change the time on Esx servers by typing below commands from service console.

service ntpd stop
date -s 20080811
vmware start
service ntpd start


This is not a total solution by all means, but since there is still no released bugfix for this problem(VmWare says there will be in 36 hrs), these commands will help to power up yr vm's.
Tuesday, August 12, 2008 10:43:19 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Virtualization
 Saturday, August 09, 2008
Today i received a question about how to serialize an arraylist through xmlserialization.
Then i rapidly wrote a class named MyData which has 2 properties
public class MyData
{
public int a;
public string b;
public MyData()
{ }
public MyData(int _a, string _b)
{
a = _a;
b = _b;
}
}
Then generated some instances and added them to an arraylist in the main project.
class Program
{
static void Main(string[] args)
{
RunIt();
}
static void RunIt()
{
MyData v1 = new
MyData(0, "Zero");
MyData v2 = new MyData(1, "One");
MyData v3 = new MyData(2, "Two");

ArrayList al = new ArrayList();
al.Add(v1);
al.Add(v2);
al.Add(v3);

XmlSerializer s = new XmlSerializer(typeof(ArrayList));
string path = @"c:\seri.xml";
TextWriter tx = new StreamWriter(path, true);
s.Serialize(tx, al);
tx.Close();

FileStream fs = File.OpenRead(@"c:\seri.xml");
ArrayList ax = (ArrayList)s.Deserialize(fs);

Console.WriteLine(((
MyData)ax[0]).a.ToString());
Console.WriteLine(((
MyData)ax[1]).a.ToString());
Console.WriteLine(((
MyData)ax[2]).a.ToString());

}
}
When i ran the code i got the error, {"The type ConsoleApplication1.MyData was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically."} which was the main question.

After some search i found out tht XmlSerializer was not aware of the type of MyData class and thus i got the above error.
To make XmlSerializer aware of a custom type, you should use one of it's constructer methods while u'r creating the object.
While creating XmlSerializer object i just added type type of my arraylist includes.
XmlSerializer s = new XmlSerializer(typeof(ArrayList),new Type[]{typeof(MyData)});
Ps: also i found out tht if u're developing this kind of code and having these type of errors, everytime u run the project make sure u delete the serialization file.Cause previous failed attemps may cause the right code to throw exceptions.

Saturday, August 09, 2008 6:59:02 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Thursday, August 07, 2008

Just minutes ago i tried to update my windows xp via ie windows update option.Unfortunately i got a message telling me tht some services (BITS Background intelligent transfer service, Eventlog and Automatic updates) is not running thus windows update is not available unless i start those services.

The interesting thing was all the services mentioned in error message was up & running, so i tried the old & dirty way & restarted windows :)
Believe me if restarting not solves your problem you got a problem.

Then i googled & found an interesting solution & it worked out very well

run "regsvr32.exe wuaueng.dll" command from cmd.

Question was how did wuaueng.dll unregistered?

Thursday, August 07, 2008 9:51:57 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Monday, August 04, 2008

2009 will be a kickn year for me.

I really must take some place in movie business.Cause every sunday i watch Avatar with my son and wonder why the hell they don't bring it to screen, then i saw the movie "Avatar" is set to be on screen by december,2009 while i was surfing imdb.



Beside there will be many s.f. movies, but i fall of the chair when i read about "Transformers 2 - the revenge of the fallen" will also take place in 2009.


Monday, August 04, 2008 1:20:17 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Friday, August 01, 2008

Now i stare at space, thinking why did not i buy a backup ups?

I have 2 esx 3.5 running on sunx4600m2's & an emc san, what i wonderful life i used to say to myself.But those nice admin days gone with the blackout.Few days ago building automation manager called me and told there will be an operation on ups and informed me, so tht i can shutdown all systems to reduce data loss in case of some problems.I did what i had to do and shutdown all systems including backbone & network switches.

Operation finished, i got systems up and everything was working fine, another beautiful admin day...
Next day morning my systems engineer called me telling tht all systems are down.End of days...

When we figured out the reason of the problem we found out tht 1 day after the ups operation, a power blackout occured and all systems were reset.

So the list occured;
1-check esx's logs, search for an error or warning.
2-check san
3-check vm's

1- Unfortunately we found a lot of scsi io error lines @ logs.
2- San were fine (god bless emc it has ups inside, even if u pull the plug off it shutsdown clearly)
3- That's a big problem.Some vm's appeared as VM1 (invalid) and VM2 (obsolete)

To solve out problem 1, we tried fsck .All went fine.
To solve out problem 3; the worst day of my life.

First i tried to remove the vm's from inventory and then readd them by browsing vmfs volumes.It did not work.So then i connected directly to esx host using viclient, and tried the same but it all didn't work.

"vmware-cmd -l" service command listed 3 running vm's but when i ping other servers i was able to reach them.
then i ran "cat /proc/vmware/vm/*/names" to list the running vm's on esx using a different method, i saw 7 vm's were up & running.
The vm's were working but i could not reach them from viclient.

At this stage, the only option was to connect to each running vm by RDP and shutdown them.Create new vm and add the old vm's hdd to the new vm's.
i still did not figure out how things blowed up, but now i know tht the first item on my checklist is to buy a backup ups for esx's and san.

Beautiful admin days...:)

Friday, August 01, 2008 12:17:52 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Virtualization
 Saturday, July 19, 2008

Oğlum ve ben süperkahraman koliğiz.Ben "Süperman"'ci oğlum ise "Spiderman" ci, tabi oğlum zaman zaman "Ironman","Mr Incredible","Transformers (Bumblebee)"'ye kayıyor onu da belirtmek lazım.Tabi durum böyle olunca bir baba olarak kostüm ve oyuncaklardan paçayı kurtaramıyorum.Kostum ve oyuncaklar bir yere kadar süperkahramanlık duygularımızı tatmin ediyor.Farklı ne yapabilirdik ki değil mi?


Hemen hemen bütün kahramanların ortak noktası uçmalarıdır.Bende dedim madem bahçeden bir örümcek yakalayıp oğluşu ısırtamayacağım ve "yalnızlık kalesi" tapusu benim olmayacak dedimki en azından uçalım...

Duygu muhteşemdi.Bir babalık görevini daha yerine getirmiş olmanın huzuru içindeyim :)

Saturday, July 19, 2008 12:04:24 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Friday, July 18, 2008
Friday, July 18, 2008 10:12:59 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Software
 Wednesday, June 25, 2008

Wednesday, June 25, 2008 12:30:20 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Monday, June 23, 2008

Canım sıkılmış eski arkadaşlarla msn leşirken bi arkadaşım bana tasarlamış olduğu web sitesinin taslağını gösterdi.

Default.aspx de şirketin başkanı ve yardımcısının boy boy resimleri ve mesajları.

Yahu nedir bu ego,

microsoft.com da açılış sayfasında Bill Gates'in masada oturmuş gülen bi fotoğrafı var mı?
mesaj veriyormu ? 

Arkadaşa saygıdan adresi vermiyorum...

Monday, June 23, 2008 10:29:41 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
Bazı zamanlar vardır, bir virgül bile birkaç saate mal olabilir.İşte şansıma geliştirme aşamasında yakaladığım bir "copy paste programming" hatası.

if @va_niccheckcfg_id=0
     begin
         insert
             va_niccheckcfg_tbl
         values
             (
             @va_niccheckcfg_name,
             @va_niccheckcfg_status,
             @va_niccheckcfg_esxip
             )
     end
 else
     begin
         update
             va_niccheckcfg_tbl
         set
             va_niccheckcfg_name=@va_niccheckcfg_name,
             va_niccheckcfg_status=@va_niccheckcfg_status,
             va_niccheckcfg_esxip=@va_niccheckcfg_esxip
         where
             @va_niccheckcfg_id=@va_niccheckcfg_id
     end


evet farketmişsinizdir, update komutunun koşulunda
@va_niccheckcfg_id=@va_niccheckcfg_id
kodu bütün tabloyu 2 sn de allak bullak edebilecek bir potansiyele sahip.

AMAN DİYORUM :)
Monday, June 23, 2008 1:33:51 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Saturday, June 21, 2008



Dün akşam uzatmanın sonlarına doğru yediğimiz talihsiz golden sonra gözlerimi ekrandan alıp moralim bozuk bir şekilde youtube izlemeye başladım.Sonra yaptığımız son dakika atağını görünce içimden bir belki geçti.Gol olduğunda gözlerime inanamadım ve golü 2-3 sn gecikmeli idrak edebildim.Anladığımda ise ayağa firladım ve bu arada heyecandan elimde tuttuğum evlilik yüzüğüm camdan fırladı :).

Dışarı çıktığımızda ise karnaval havası vardı.Gece süperdi.Bir şey farkettim ne kriz, ne de gündemde dolaşan başka sıkıntılardan eser yoktu...Herkes yarın yokmuş gibi eğleniyordu...

Beni en çok gururlandıran ise yabancı basında dinlediğim bir haberdi.Sunucu Viyana'daki havanın muhteşem olduğunu, oradaki göçmenlerimizin diğer takım taraftarlarından farklı olarak bir futbol takımını değil, Türkiye'yi gönülden desteklediklerini ve biz de burdayız sizin yanınızdayız mesajını verdiğini, Fatih Terim'in çok alçakgönüllü ve mükemmel bir direktör olduğunu maçtan sonra Hırvat t.direktörünü teselli ettiğini, futbol takımının kendi değimiyle "mid-sized players"  olduğunu fakat bu oyunlarıyla aslında çok değerli oyuncular olduklarını kanıtladıklarını bildirdi.

Dediğim gibi sizlere tonlarca altın helal olsun çocuklar...
Saturday, June 21, 2008 11:43:21 AM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Genel
 Tuesday, June 17, 2008
ise;

1- SqlDataSource'un CancelSelectOnNullParameter değeri True ise bunu False yapın.Tekrar deneyin.

hala olmadı diyorsanız;

2- Select olayının calisip calismadiğini anlamak için ya sql profiler kullanın ya da SqlDataSource'un SelectCommand'ina hatalı bir sql sorgusu yazın.

Tuesday, June 17, 2008 12:43:18 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Sunday, June 15, 2008
Bir proje yaptınız ve assembly'yi gac a install ettiniz (gacutil -I c:\proje\proje.dll)
Proje.dll i kullanmak istediğiniz diğer projenize eklemek istediğinizde add references penceresinde yarattığınız assembly'yi göremediniz?

Ms destek açıklaması

Registry de ilgili ayarları yaptıktan sonra artık assembly'nizi add reference penceresinde görebilirsiniz.

Sunday, June 15, 2008 3:01:41 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It | Software
 Sunday, March 23, 2008
Evet yaklaşık 15 senedir kaykay :) kaymıyordum.Geçenlerde akmerkezdeki sport point e girince dayanamadım ve bir foundation skateboard aldım.Rulman,tekerlekler,trucklar,sliderlar,board, zımpara vs hic bakmadım.Bu haftasonu yazlıkta 15 sene sonra ilk denememi yaptım.

ollie yapabilmiştim. :) eğer Türkiyede braniac tarzında bir program olsaydı iyi bir test olurdu :)

Sunday, March 23, 2008 12:52:27 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -

 Wednesday, March 05, 2008

I'm currently in the planning stages of building a hosted Java web application (yes, it has to be Java, for a variety of reasons that I don't feel like going into right now). In the process, I'm evaluating a bunch of J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container frameworks.

And after spending dozens of hours reading through feature lists and documentation, I'm ready to gouge out my eyes.

Let's pretend I've decided to build a spice rack.

I've done small woodworking projects before, and I think I have a pretty good idea of what I need: some wood and a few basic tools: a tape measure, a saw, a level, and a hammer.

If I were going to build a whole house, rather than just a spice rack, I'd still need a tape measure, a saw, a level, and a hammer (among other things).

So I go to the hardware store to buy the tools, and I ask the sales clerk where I can find a hammer.

"A hammer?" he asks. "Nobody really buys hammers anymore. They're kind of old fashioned."

Surprised at this development, I ask him why.

"Well, the problem with hammers is that there are so many different kinds. Sledge hammers, claw hammers, ball-peen hammers. What if you bought one kind of hammer and then realized that you needed a different kind of hammer later? You'd have to buy a separate hammer for your next task. As it turns out, most people really want a single hammer that can handle all of the different kinds of hammering tasks you might encounter in your life."

"Hmmmmmm. Well, I suppose that sounds all right. Can you show me where to find a Universal Hammer."

"No, we don't sell those anymore. They're pretty obsolete."

"Really? I thought you just said that the Universal Hammer was the wave of the future."

"As it turns out, if you make only one kind of hammer, capable of performing all the same tasks as all those different kinds of hammers, then it isn't very good at any of them. Driving a nail with a sledgehammer isn't very effective. And, if you want to kill your ex-girlfriend, there's really no substitute for a ball-peen hammer."

"That's true. So, if nobody buys Universal Hammers anymore, and if you're no longer selling all those old-fashioned kinds of hammers, what kinds of hammers do you sell?"

"Actually, we don't sell hammers at all."

"So..."

"According to our research, what people really needed wasn't a Universal Hammer after all. It's always better to have the right kind of hammer for the job. So, we started selling hammer factories, capable of producing whatever kind of hammers you might be interested in using. All you need to do is staff the hammer factory with workers, activate the machinery, buy the raw materials, pay the utility bills, and PRESTO...you'll have *exactly* the kind of hammer you need in no time flat."

"But I don't really want to buy a hammer factory..."

"That's good. Because we don't sell them anymore."

"But I thought you just said..."

"We discovered that most people don't actually need an entire hammer factory. Some people, for example, will never need a ball-peen hammer. (Maybe they've never had ex-girlfriends. Or maybe they killed them with icepicks instead.) So there's no point in someone buying a hammer factory that can produce every kind of hammer under the sun."

"Yeah, that makes a lot of sense."

"So, instead, we started selling schematic diagrams for hammer factories, enabling our clients to build their own hammer factories, custom engineered to manufacture only the kinds of hammers that they would actually need."

"Let me guess. You don't sell those anymore."

"Nope. Sure don't. As it turns out, people don't want to build an entire factory just to manufacture a couple of hammers. Leave the factory-building up to the factory-building experts, that's what I always say!!"

"And I would agree with you there."

"Yup. So we stopped selling those schematics and started selling hammer-factory-building factories. Each hammer factory factory is built for you by the top experts in the hammer factory factory business, so you don't need to worry about all the details that go into building a factory. Yet you still get all the benefits of having your own customized hammer factory, churning out your own customized hammers, according to your own specific hammer designs."

"Well, that doesn't really..."

"I know what you're going to say!! ...and we don't sell those anymore either. For some reason, not many people were buying the hammer factory factories, so we came up with a new solution to address the problem."

"Uh huh."

"When we stepped back and looked at the global tool infrastructure, we determined that people were frustrated with having to manage and operate a hammer factory factory, as well as the hammer factory that it produced. That kind of overhead can get pretty cumbersome when you deal with the likely scenario of also operating a tape measure factory factory, a saw factory factory, and a level factory factory, not to mention a lumber manufacturing conglomerate holding company. When we really looked at the situation, we determined that that's just too complex for someone who really just wants to build a spice rack."

"Yeah, no kidding."

"So this week, we're introducing a general-purpose tool-building factory factory factory, so that all of your different tool factory factories can be produced by a single, unified factory. The factory factory factory will produce only the tool factory factories that you actually need, and each of those factory factories will produce a single factory based on your custom tool specifications. The final set of tools that emerge from this process will be the ideal tools for your particular project. You'll have *exactly* the hammer you need, and exactly the right tape measure for your task, all at the press of a button (though you may also have to deploy a few *configuration files* to make it all work according to your expectations)."

"So you don't have any hammers? None at all?"

"No. If you really want a high-quality, industrially engineered spice rack, you desperately need something more advanced than a simple hammer from a rinky-dink hardware store."

"And this is the way everyone is doing it now? Everyone is using a general-purpose tool-building factory factory factory now, whenever they need a hammer?"

"Yes."

"Well…All right. I guess that's what I'll have to do. If this is the way things are done now, I guess I'd better learn how to do it."

"Good for you!!"

"This thing comes with documentation, right?"

Original post: http://discuss.joelonsoftware.com/default.asp?joel.3.219431.62

Wednesday, March 05, 2008 11:36:05 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Software

Wednesday, March 05, 2008 10:40:51 AM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Genel

Değerli Bilişim Dostlarımız,

Bilişim dünyamıza sürat, etkinlik, verimlilik katacak yeni teknoloji çözümlerimizi tüm dünyayla eş zamanlı olarak ülkemizde de kamuoyumuzla paylaşıyoruz. Bu yılın en önemli yenilikleri, bugüne kadar geliştirilmiş en güvenilir ve en dayanıklı sunucu işletim sistemi Windows Server 2008 ile birlikte bilgi platformu SQL Server 2008 ve yazılım geliştiricisi Visual Studio 2008’in hizmetinize sunulması olacak. Sanallaştırma, iş zekası, yeni nesil İnternet alanlarında geleceğe yön verecek bu yenilikçi ürünlerin lansmanını İstanbul’da 12 Mart 2008 tarihinde Lütfi Kırdar Kongre Salonu’nda gerçekleştireceğiz.

Microsoft Merkezi’nden gelecek uzmanların da konuşmacı olarak katılacağı bu toplantılarda sizi de ağırlamak istiyoruz. Bütün dünyada “Bilişim Kahramanları Aramızda” sloganı ile sunulan 2008 sunucu ürünlerinin tanıtım etkinliklerimizde karşılaşmak umuduyla sizlere çalışmalarınızda başarılar, sağlık ve mutluluk diliyoruz.

Saygılarımızla,

Microsoft Türkiye


Tarih
12 Mart 2008 Çarşamba, 09:00 - 18:00
Yer
Lütfi Kırdar Kongre ve Sergi Sarayı
Gündem
09:00 - 10:00
Kayıt
10:00 - 12:45
Windows Server 2008 | Visual Studio 2008 | SQL Server 2008
Lansmanı
10:00 - 10:40
Hoş Geldiniz: Microsoft Türkiye Genel Müdürü Çağlayan Arkan ve
Platin Sponsorlar
10:40 - 11:00
Dinamik IT - Microsoft MEA Vice President Ali Faramawy
11:00 - 11:50
Uçtan Uca: Windows Server 2008, SQL Server 2008, Visual Studio 2008
11:50 - 12:10
Ara
12:10 - 12:30
Başarı Hikayeleri
12:30 - 12:45
Kahramanlar Sahnede
12:45 - 13:45
Öğle Yemeği


Paralel Sunumlar aynı anda başlayıp farklı salonlarda yapılacaklardır.

Paralel Sunumlar
13:45 -14:35
• Windows Server 2008 Geleceğin Platformu
• SQL Server 2008 Gelişmiş Veri Platformu
• Visual Studio 2008 Yeni Nesil Yazılım Platformu
• Platin Sponsor Sunumu: Tradesoft
14:35
14:50
Ara
14:50 15:40
• Windows Server 2008 Sanallaştırma Teknolojileri
• SQL Server 2008 ile Kritik İş Uygulamaları
• Visual Studio 2008 Yeni Nesil Web Uygulamaları
• Platin Sponsor Sunumu: Fujitsu
15:40 
15:55
Ara
15:55 16:45
• Windows Server 2008 Güvenlik Özellikleri ve NAP
• SQL Server 2008 ile İş Zekası
• Visual Studio 2008 Yeni Nesil Akıllı İstemciler
• Platin Sponsor Sunumu: Intel
16:45
17:00
Ara
17:00  17:50
• Windows 2008 ve Yeni Nesil Web
• SQL Server 2008 ile Dinamik Uygulama Geliştirme
• Visual Studio 2008 Yeni Nesil office uygulamaları
• Platin Sponsor Sunumu: HP

Wednesday, March 05, 2008 10:39:56 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -

 Sunday, February 10, 2008

Sunday, February 10, 2008 6:30:04 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Sunday, February 03, 2008

Üzerinde çalıştığım bir oyun projesinde yarış zamanlarını ve rezervasyon durumunu gösteren bir sayfa tasarlıyordum.Select işlemini stored proc ile yaptım, yarışa alınacak max kişi sayısını ve mevcut rezervasyon yapan kişi sayısını okuyordum.Sp execute süresi 9 sn idi, aspx in gridview rowdatabound daki işlemleri de ekleyince işlem süresi yaklaşık 15 sn ye ulaşıyordu.

Yarışa alınacak max kişi sayısını page load da okuyup bir dataset e atmayı ve dataview ile gridview in rowdatabound olayında filtrelemeyi denedim.Sp tarafında yarışa alınacak max kişi sayısını çıkardığımda execute süresi 0sn ye indi.Bu güzel bir gelişmeydi fakat sayfayı çalıştırdığımda bu sefer sürenin 16-17 sn ye çıktığını gördüm.

Çaresiz kalmıştım.Birden aklıma DataView yerine HashTable kullanmak geldi.Max kişi sayısını page loadda okuyup hashtable a ekledim.Gridview un rowdatabound olayında da max kişi sayısına HashTable i kullanarak ulaştım.Sonuç inanılmazdı.Sayfa 1 sn den az bir zamanda geliyordu.

Sunday, February 03, 2008 5:08:52 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Sunday, January 06, 2008

Asp.net projelerinizde veritabanı erişimlerini App_Code dir'i icinde tanımladığınız sınıflar içinden yapmak isteyebilirsiniz.Eğer projenizde access veritabanı kullanıyorsanız Server.MapPath() metodunu kullanmakta sorun yaşarsınız çünkü App_Code içindeki bir sınıfta Server sınıfı tanımlı değildir.

App_Code dir i içindeki bir sınıfta Server.MapPath() metodunu aşağıdaki şekilde kullanabilirsiniz.

HttpServerUtility hs=HttpContext.Current.Server;
string APPDATAYOLU = hs.MapPath("~/App_Data");

Kolay gelsin

Sunday, January 06, 2008 12:53:44 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Saturday, January 05, 2008
Asp.net projelerinde genelde verinin db den okunması için sqldatasource 
nesneleri kullanırız.Fakat kullanıcının arama yapması gibi durumlarda 
dinamik sql yaratmamız gerekebilir.Bu tür durumlarda Gridview nesnesinin
datasource özelliğine codebehind da yarattığımız bir DataSet nesnesini
atarız.





Örnek bir search

    protected void btnSearch_Click(object sender, EventArgs e)
    {
        SqlConnection conSQL = new SqlConnection(
            ConfigurationManager.
               ConnectionStrings["XConnectionString"].
                  ConnectionString);
        SqlCommand cmdSQL = new SqlCommand();
       
        string strSQL = "select x,y,z from a_tbl
 where ";

        if (this.txtX.Text.Trim().Length > 0)
        {
            strSQL += "x like @X and ";
            cmdSQL.Parameters.Add(new
               SqlParameter("@X", this.txtX.Text.Trim()));
        }
        if (this.txtY.Text.Trim().Length > 0)
        {
            strSQL += "y like @Y and ";
            cmdSQL.Parameters.Add(
               new SqlParameter("@Y", this.txtY.Text.Trim()));
        }

        if (strSQL.Substring(strSQL.Length - 5, 5) == " and ")
            strSQL = strSQL.Substring(0, strSQL.Length - 5);
        if (strSQL.Substring(strSQL.Length - 7, 7) == " where ")
            strSQL = strSQL.Substring(0, strSQL.Length - 7);

        try
        {
            conSQL.Open();
        }
        catch (Exception excp)
        {
            this.lblSearchInfo.Text = "Hata oluştu -> " +
               excp.Message;
            return;
        }
        cmdSQL.Connection = conSQL;
        cmdSQL.CommandText = strSQL;
        SqlDataReader drdSQL = null;
        DataSet dsSQL = new DataSet();
        try
        {
            drdSQL = cmdSQL.ExecuteReader();
        }
        catch (Exception excp)
        {
            conSQL.Close();
            this.lblSearchInfo.Text = excp.Message;
            return;
        }
        dsSQL.Load(drdSQL, LoadOption.OverwriteChanges,
            new string[] { "a_tbl" });
        drdSQL.Close();
        conSQL.Close();
        this.gvwCus.DataSource = dsSQL;
        this.gvwCus.DataBind();
    }

Son iki satırda gördüğünüz gibi gvwCus Gridview'umuza dsSQL dataset'ini
dinamik olarak bağlıyoruz.Fakat eğer gridview un paging özelliğini true
olarak set edersek bu birsonraki sayfaya gitmeye kalktığımızda hata
almamıza neden olacaktır.

Bu sorun can sıkıcı olsa da çözümü basittir.İlk olarak DataSet nesnesini
ister class'ın en üstüne private static olarak tanımlayın, isterseniz
ViewState veya Session bazında saklayın, dataset'ın sınıfın her
üyesinden ulaşılabilecek hale getirin.

Bu durumda ben viewstate'i kullanıyorum.
Search'ün son iki satırını aşağıdaki gibi değiştiriyorum.

         ViewState["a_tbl"] = dsSQL;         
        this.gvwCus.DataSource = dsSQL;
       
this
.gvwCus.DataBind();
    }

Ardından Gridview'un PageIndexChanging eventine aşağıdaki kodu yazın.

    protected void gvwCus_PageIndexChanging(object sender,
      GridViewPageEventArgs e)
    {
        gvwCus.PageIndex = e.NewPageIndex;
        this.gvwCus.DataSource = (DataSet)ViewState["a_tbl"];
        gvwCus.DataBind();
    }

Sorununuz bu şekilde çözülmüş olur.

Saturday, January 05, 2008 9:44:16 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Friday, January 04, 2008

Yorumsuz...

Friday, January 04, 2008 1:20:44 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Thursday, January 03, 2008

Bu akşam Diyarbakır daki patlamayı işten eve gelirken arabada haber aldım.Eve gidip detayları öğrendiğimde durumun kötü olduğunu öğrendim.

Ardından bir haber kanalında aşağıdaki vahim sorunun sorulduğuna şahit oldum.
-Acaba Türkiye turistler için güvenli bir yer mi?

Acaba hangi zihniyet turistleri kendi vatandaşlarından daha önce tutar?

Patlamada ölen vatandaşlarımıza allahtan rahmet sevenlerine,yakınlarına sabır diliyorum.

Thursday, January 03, 2008 7:27:26 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Monday, December 31, 2007

C#'daki using direktifini hepimiz biliyoruz.

using System;
using System.Data;

Peki tam olarak ne yapıyor bu using? İlk aşamada bilinen görevini açıklayayım.Using direktifleri yazarak, kullanacağınız sınıfın namespace'ini tekrar tekrar bildirmenize gerek kalmaz.

Örneğin "using System.Data.SqlClient;" kodunu yazdığınızda bir SqlParameter nesnesi yaratmak için;

System.Data.SqlClient.SqlParameter paramSQL1 = 
new System.Data.SqlClient.SqlParameter();

yazmanıza gerek kalmaz.

SqlParameter paramSQL1 = new SqlParameter();

kodu ile tanımlamayı yapabilirsiniz.

Bunun yanısıra using direktifi ile aliaslar yaratabiliriz.Ooo süper.Ee nedir bu alias?
Aynı projede farklı namespaceler içinde projeler geliştirebiliriz.Örneğin "AndromedaM31SarmalGalaksi" ve "M33SpiralGalaksi" namespace lerimiz olsun.
"AndromedaM31SarmalGalaksi" namespace i icinde "Yıldız" isminde bir sınıfımız olsun.Aynı şekilde ikinci galaksimiz "M33SpiralGalaksi" namespace'inde de
"Yıldız" isminde bir sınıfımız olsun.

Bu iki namespace'i aynı projede kullandığımızda Yıldız sınıfları çakışacaktır.



"Ambiguous name - choose from the following :)" mesajı ile Microsoft'ta da ne kadar espritüel kod geliştiren arkadaşlarımızın olduğunuda anlamış oluyoruz :P

Dolayısı ile hangi galaksi (namespace) için Yıldız sınıfını yarattığımızı belirtmemiz gerekir.
Bu tür durumlarda using direktifi ile alias tanımlarız.

Örnek proje:

using System;
using System.Collections.Generic;
using System.Text;

using AndromedaM31SarmalGalaksi;
using M33SpiralGalaksi;

namespace ConsoleApplication1
{
    using AndromedaM31SarmalGalaksi;
    using M33 = M33SpiralGalaksi.Yildiz; // İŞTE ALIAS IMIZ...

    class Program
    {
        static void Main(string[] args)
        {
            // M33 alias ını kullanarak direkt olarak
            // M33SpiralGalaksi.Yildiz
            // sınıfını hedeflemiş bulunuyoruz...
M33 a = new M33();
Yildiz b = new Yildiz(); Console.WriteLine(a.ToString()); Console.WriteLine(b.ToString()); } } } namespace AndromedaM31SarmalGalaksi { public class Yildiz { public override string ToString() { return "Andromeda M31 Sarmal Galaksi"; } } } namespace M33SpiralGalaksi { public class Yildiz { public override string ToString() { return "M33 Spiral Galaksi"; } } }




Projenin çıktısı;

şeklinde olacaktır.

Gelelim using'in farklı bir kullanımına...
MSDN der ki : Defines a scope, outside of which an object or objects will be disposed.

Yani der ki using size, imlecin dışarı çıktığı anda using le yaratılan nesne veya nesnelerin yokedileceği bir blok yaratmanızı sağlar.
Unutmadan değinmek isterim using ile yaratılacak nesneler IDisposable arayüzünü uygulamış olmalıdırlar!

using (nesne yaratma işlemi)
{
}
//yarattığımız nesne imleç bu satıra gelince yok olacaktır.

En güzel anlatım örnekli anlatımdır derler, hemen bir örnek yapalım.

using System;

class C : IDisposable
{
    public void UseLimitedResource()
    {
        Console.WriteLine("Using limited resource...");
    }

    void IDisposable.Dispose()
    {
        Console.WriteLine("Disposing limited resource.");
    }
}

class Program
{
    static void Main()
    {
        using (C c = new C())
        {
            c.UseLimitedResource();
        }
        Console.WriteLine("Now outside using statement.");
        Console.ReadLine();
    }
}

Çıktıya bakalım;



Evet tahmin ettiğimiz gibi; "Now outside using statement." mesajından önce imleç using kod bloğundan çıktığı için otomatik olarak C sınıfının Dispose metodu çağırılmıştır.

Alt tarafı using değil mi? :)
Hayırlı kodlamalar...

Kaynak:MSDN

Monday, December 31, 2007 5:08:33 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software

Herkesin yeni yılını kutlar, 2008'in herkese daha az patch,bug getirmesini ve sonumuzun aşağıdaki elemana benzememesini dilerim.

Monday, December 31, 2007 1:22:58 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Sunday, December 30, 2007

using i bilirsiniz.
using System.Data;
using System.Configuration;
....

bir de böyle deneyin ;

public
void InsertRow(string connectionString, string insertSQL)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        // The insertSQL string contains a SQL statement that
        // inserts a new row in the source table.
        OleDbCommand command = new OleDbCommand(insertSQL);

        // Set the Connection to the new OleDbConnection.
        command.Connection = connection;

        // Open the connection and execute the insert command.
        try
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}

Kullanım sonunda belirttiği gibi imleç using bloğundan çıktığı anda bağlantı kapatılacaktır.Bu özelliği bana hatırlatan Emre arkadaşıma teşekkürü bir borç bilirim.

Sunday, December 30, 2007 9:23:54 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software

Uzun bir aradan sonra herkese selamlar.

Oracle bundan birkaç hafta önce sunucu sanallaştırma ve konsolidasyonu hakkında çok önemli bir açıklama yaptı.Oracle piyasaya yeni bir Virtualization ürünü çıkarttığını bildirdi.Oracle'ın iddiasına göre OracleVM piyasadaki mevcut sanallaştırma yazılımlarından yaklaşık 3 kat hızlı çalışıyor.Oracle'ın sitesinden programı,vm management aracını ve bütün projenin kaynak kodunu indirebilirsiniz.

http://www.oracle.com/technologies/virtualization/index.html

Tabi ürünün hızına etki edecek, VmWare deki Vmotion,VirtualIron daki LiveMotion LiveMaintenance gibi özellikler Oracle VM de mevcut mu kontrol etmek lazım.Eğer bu özellikler mevcut değilse, Oracle'ın normal olarak daha hızlı olması gerekir.Ayrıca bu açıklama ile VmWare'ın kağıtlarının değerinin düştüğünü düşünürsek, Oracle'ın ciddi bir hata yaptığını söyleyebiliriz.

Eğer mevcut VM deki özellikler OracleVM de mevcutsa, sanallaştırma pazarında büyük bir rekabetin başlayacağını söyleyebilirim.Bu çok güzel çünkü rekabet hem kalitenin artması hem de fiyatın düşmesi demek.Her ne kadar müşteri tarafında bu iyi bir haber olsa da üretici tarafında kemerlerin sıkılması demek.Bu dengenin iyi korunması şart.

Oracle VM testleriyle ilgili bilgi veriyor olacağım.

Sunday, December 30, 2007 7:49:01 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Server Systems
 Friday, October 12, 2007

Yöneticiliğini yaptığım bilişim şirketi yazılım || sistem ekibine aşağıdaki özelliklere uyan yazılım uzmanı || sistem mühendisi aramaktayım.İlgilenen arkadaşların lvntyldz@gmail.com email adresine cv lerini göndermelerini rica ederim.

Yazılım
- .NET Fw 2.0 - WinForms
- ASP.NET
- ASP.NET Web servisleri
- C#.net
- HTML XML SOAP JS CSS
- SOA || SAAS yapısı; .NET Fw Code Compiling,Application Domains,Plugin tabanlı programlama hakkında bilgi.
- MsSQL Server & TSQL

Sistem
- WSrv2K3 kurulum yönetimi
- Ms AD kurulum yönetimi
- Sanallaştırma Teknolojileri EMC ürünleri hakkında genel bilgi
- VmWare & virtual appliances genel bilgi
- Sun Microsystems sunucuları üzerinde deneyim

Friday, October 12, 2007 12:52:54 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Saturday, September 08, 2007

ImageUrl='<%# "Logos/100150_" + DataBinder.Eval(Container.DataItem,"kurum_logo") %>'


Saturday, September 08, 2007 10:53:43 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It
 Saturday, August 11, 2007
Sevgili arkadaşım Mustafa Acungil Güncelik Başarı isimli kitabını nette yayımlıyor.
http://gundelikbasari.blogspot.com/
Okumaya değer.Tebrik ediyorum...

Saturday, August 11, 2007 10:55:44 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Tuesday, July 17, 2007

Memik hoca'nın bir sitede yazdığı yazıyı okuyunca aklıma ilk pc'im geldi...

İlk pc'im;

8086 işlemcili Karel Goldstar :)
HDD yok
5.25 lik disk var :)
Hercules monochrome ekran

Kullanılan programlar
GWBasic
Turbo-C
favori oyunum:robocop

ikinci bilgisayarım 286 işlemcili 1mb ram 20mb hdd VGA Renkli ekran :)
favori oyunum:bushido,prince of persia

off ya ne günlerdi :)

Tuesday, July 17, 2007 4:31:27 AM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Genel
 Friday, July 13, 2007
Evet yazılım sektörünün geleceğinde SaaS büyük rol oynayacak.Bu konu üzerine daha çok yazı yazmayı planlıyorum fakat daha öncesinde bu servisin ne tür bir platform üzerinde çalışması gerektiği hakkında bilgi vermek istiyorum.

Software Service Provider olarak SaaS hizmeti vermeye başladığınızda bu hizmetin donanım tarafının high availibility - yüksek erişim özelliğinin sağlanması kaçınılmaz olacaktır.Tabi SaaS hizmeti verdiğiniz platformlar farklı olabilir, bazı SSP ler Ms platformunu bazıları Linux platformunu seçecektir.Bazıları ise belki bu platformları birleştirip kullanacaktır.

Sonuç olarak SaaS için donanım problemlerinin sorun çıkarmayacağı bir çözüme ihtiyacınız olacak.
Bu konu üzerinde çok araştırma yaptım.Almanya SwSoft Virtuozzo, Us VirtualIron,VmWare,Paralells en yakın iki çözüm VmWare ve VirtualIron.VmWare pastanın büyük çoğunluğuna sahip durumda ve çok iyi bir ivme ile gelişmeye devam ediyor.VirtualIron'ın Intel tarafından büyük desteği mevcut.Fakat VI'in Türkiye'de distribütörlüğü çok yeni.Deneyime ihtiyaçları olduğu kesin.Vmware ise bu konuda Türkiye'de yoğun olarak çalışmış,sayısız projelere imzasını atmış, hatta kendi bölgesindeki satışların %60'ı TR'den çıkmış durumdadır.

Sonuç olarak bu iki kavramın geleceğin teknolojisini şekillendireceği düşüncesindeyim.

Friday, July 13, 2007 4:04:42 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Internet | Server Systems | Software
 Wednesday, July 11, 2007

Wednesday, July 11, 2007 1:49:00 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Sunday, July 08, 2007

Yıllardır uygulanan yöntem.Firmalarla toplantı ayarla, teker teker görüş, ürünlerin demolarını kullan, test et, kendi işletmene uyarla, analiz et, pazarlık et, hadi kullanmaya başladın, yıllık bakım ücreti adı altında o firmanın hizmet vermeye devam edebilmesi için pazarlama ve yönetim tarafından uydurulmuş ücretler öde.

Software 2007 konferansında Motorola, Fedex, Disney, Toyota CIO'larının (özellikle Motorola :) ) tek dillendirdiği sorun.Bir yazılım ürünü alıyorsunuz, veya geliştiriyorsunuz veya outsource ediyorsunuz, bug'larla dolu, bugları bulup düzeltip patch ve fix liyorsunuz, dağıtımını sağlıyorsunuz.

Peki Software as a Service bütün bu sorunlara çözüm sunuyormu? Yazılım dünyasının gideceği nokta hakkında yorum yapmak afaki konuşmalar olacaktır fakat bu yapı en azından benim aklımda bir sürü proje uyandırıyor.

Gelelim dağınık sistemlere, Türkiye için konuşuyorum.Bir ülkenin en değerli varlıklarından biri insan kaynağıdır.Bizde harcanan, bir köşede unutulmuş, alakasız işlerle hayatını kazanmaya çalışan o kadar çok değerli insan mevcut ki, ben bu topluluğa dağınık sistemler adını veriyorum ve ne yazıkki hala bu sistemleri bir araya getirecek, yönetecek bir sistem mevcut değil, bu yönetimi gerçekleştirip bir yazılım ürünü ortaya koymuş başarılı bir yapı mevcut değil.

Kaba tabiriyle;
Dağınık sistemler = yatırımcı + yazılımcı + tekniker + sistemci

Neden bu dağınık sistemler bir araya getirilip bir saas başarısı sağlanamıyor?

Sunday, July 08, 2007 12:30:31 AM (GTB Standard Time, UTC+02:00)  #    Comments [2] -
Internet | Software
 Thursday, July 05, 2007



Değerli arkadaşım Sem GÖKSU'nun sitesi.
Bu siteyi ulaşılamaz hale getiren arkadaşım,
Sem'in, benim, ve bizim gibi arkadaşların sitelerinde, hepimiz,  yazılım dünyasında kendine yer arayan arkadaşlara
yardımcı olmaya çalışıyoruz.Bu yardımları herhangi bir karşılık beklemeden yapıyoruz.Dolayısı ile bu web sitelerini
maliyetten dolayı daha az korunaklı ucuz hostinglerde barındırıyoruz.

Şimdi sen geldin bu siteyi ulaşılamaz hale getirdin de nooldu, milli bir dayanışmaya yardımcı mı oldun da Atatürk'ün resmini
yayımlıyorsun? HAYIR, insanlarımızın ücretsiz olarak bilgi almasını engelliyorsun, böyle olmasına rağmen kendini
bir halt zannediyorsun.

Thursday, July 05, 2007 11:40:05 AM (GTB Standard Time, UTC+02:00)  #    Comments [5] -
Genel | Internet
 Tuesday, July 03, 2007
asimo'yu cagirin, bi kosu gelip su honda'yı tamir etsin
hataliysam lütfen 212.252.67.33
tepsi mudafadan 1 yıl yedim,hafifletici sepetlerden dolayi beraat ettim.
inheritance degil alinteri
buffy de vampir sayilir (en sevdiğim buffy the vampire slayer ile telaffuz aynı :))
the incredible hulk otobusu
helikopter kornası
belediyeler arasi simcity turnuvasi
accord karakord belli olcak
70lik ama 60lik fiyatina windowsXP
Dolby surround sivrisinek
Ne olursan ol and justice for all
Bir taş attım pencereye puff daddy
Alaaddin ve lambor cini

Tuesday, July 03, 2007 1:55:18 PM (GTB Standard Time, UTC+02:00)  #    Comments [4] -
Genel
 Sunday, June 17, 2007
Artık Süperman de GoogleEarth kullanıyor...


Sunday, June 17, 2007 2:54:00 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Friday, June 15, 2007

Webden upload edilen bütün resimler birbirine linklenebilecek.Sanal dünya... semantik arama resimle...

Friday, June 15, 2007 4:17:34 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Internet
 Wednesday, June 13, 2007
Yok hayır.... Micorosoft, dos zamanında, matrix etkisi yapan Another Day oyununu çıkartmıyor :P

Bugün Microsoft'un "non .net developer"'lara yönelik seminer/eğitim tarzında olan event'ine katıldım.2005'de verdiğim seminer aklıma geldi. Öğleye kadar olan bölüm aşağı yukarı aynı konuları içeriyordu.Fakat CLI-CLS ve FCL konularına daha detaylı değinmeleri iyi olurdu diye düşünüyorum.Sonuç olarak potansiyel .net developerlari mevcuttu.:)

Seminerin ikinci bölümünde Smart-Client ve .net 3.0 wpf presentation foundation hakkında bilgi verildi.Açıkçası uzun süredir neden Ms bunu hala böyle yapıyor diye dır dır yaptığım bir soruna cevap buldum.Sorun şöyle; Ms 2000 senesinde .net'i çıkartıyoruz dediğinde, tamam artık uzun süre devam edecek bir yapı geliyor demiştim.Windows Forms lar için bu böyle oldu.Tabiki her yeni sistemde yaşanan problemler yaşandı, sp ler ve yeni sürümler çıktı fakat mevcut duruma bakıldığında yapı haddinden fazla oturmuş gözüküyor.Fakat aynı şey Asp.net için geçerli değil.Evet asp.net son sürümü web programlama için ideal ve çok basit ayrıca framework un gücüne sahip.Ama client tarafına bakıldığında hala javascr kodu çalışıyor.Bu beni çok rahatsız ediyordu.

Sanırım Ms bunun için bir client dili yazmaktan vazgeçmiş, Smartclient+ClickOnce+Winforms+(Wpf'ye ben Winforms+ diyorum :) ) birleşimiyle client tarafında hem .net dillerinin kullanılabilirliğini sağlamış hem de wpf ile müthis efektler getirmiş durumda.Bu özelliklere clickonce da eklendiğinde neredeyse artık bir web uygulamasına ihtiyacınız kalmıyor.Eğer client tarafında kuvvetli bir arayüz ve gelişmiş kullanıcı arabirimi gerekiyorsa artık wpf mevcut.Click once sayesinde güncellemeleri rahatça dağıtabiliyorsunuz.Evet web'e göre biraz daha bandwidth kapsayacak bir teknoloji ama geri dönüşüne bakıldığında bence kabul edilebilir bir fark.Çoğu önemli kuruluş bu konu ile ilgili ürünlerini tamamlamış durumda.Aşağıda New York Times Reader dan bir scrshot mevcut...



Wednesday, June 13, 2007 3:56:33 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Internet | Software
Uzun zaman önce yazıp hdd de unuttuğum bir makale...


Tüm yazılımcı arkadaşlara selamlar,

Bu makalemde C# ile Microsoft Outlook contact bilgilerinin nasıl okunacağına değineceğim.

Geliştirdiğimiz uygulamaların çoğunda kullanıcıların hali hazırda sistemlerinde mevcut olan bilgilerini almamız gerekir.Bu mevcut bilgileri mevcut kaynaklardan okumak yerine kendi geliştirdiğimiz yazılımlarda tutmak hem kullanıcı hem de biz programcılar için zor olacaktır.Örnek olarak geliştirdiğimiz uygulamada kullanıcının bir raporu fax olarak göndermesi gerekebilir.Eğer 3rd party fax araçları kullanıyorsak gönderim işlemlerini kod ile halletmemiz gerekebilir.Bu gibi durumlarda kullanıcılardan fax gönderimi için ayrı bir veritabanı veya kayıt bölümü oluşturmak hem kullanıcıların birden fazla kaynağa veri girmesini hem de bizim fazladan kodlama yapmamızı gerektirir.

Kullanıcıların contact bilgilerini mevcut olarak kullandıkları Microsoft Outlook uygulamasından okumamız hem kullanıcı için kolaylık sağlayacaktır hem de bizim daha az kod yazmamızı.

Yeni bir windows uygulaması açın ve formun üzerine bir button ve bir listview nesnesi yerleştirin.
Solution Explorer çerçevesi yardımıyla projeye "Microsoft Outlook 11.0 Object Library" COM bileşenini ekleyin.

Projemize Outlook Contact bilgilerini okuma işlemini gerçekleştireceğimiz MyOutlookIntegration ismiyle yeni bir sınıf ekleyin.
Sınıfımıza IDisposeable arayüzünü entegre edelim.

Outlook Contact bilgilerine erişmek için 3 arayüz tanımlayacağız.Bu tanımlama işlemini sınıf etki alanında gerçekleştirelim ki sınıf'a ait metodlarda bu nesnelere erişimimiz mümkün olsun.

private Microsoft.Office.Interop.Outlook.Application objOutlook = null;
private Microsoft.Office.Interop.Outlook.NameSpace objNamespace = null;
private Microsoft.Office.Interop.Outlook.MAPIFolder objFolder = null;


Application arayüzü Microsoft Outlook uygulamasını temsil edecektir.
NameSpace arayüzü Outlook uygulamasında bulunan MAPI alanına erişmemizi sağlayacaktır.
MAPIFolder arayüzü ise Contact klasörünü temsil edecektir.

objOutlook ve objNameSpace nesnelerini sınıfımızın yapıcı metodunda yaratacağız.

public MyOutlookIntegration()
{
    objOutlook = new Microsoft.Office.Interop.Outlook.ApplicationClass();
    objNamespace = objOutlook.GetNamespace("MAPI");
}

Sınıfımıza GetContacts ismiyle bir metod ekleyeceğiz.Bu metod objFolder nesnemize objNamespace nesnesini kullanarak Contacts klasörünü atayacaktır.Bu sayede objFolder nesnemizde artık Contact bilgileri mevcut olacaktır.Ardından bu itemları okuyarak bir arraylist sınıfına aktaracağız ve geri dönüş değeri olarak bu arraylist sınıfını göndereceğiz.

public ArrayList GetContacts()
{
    ArrayList lstContacts = new ArrayList();

    Microsoft.Office.Interop.Outlook.ContactItem item;
    try
    {
        objFolder = objNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
        System.Collections.IEnumerator MsgEnum = objFolder.Items.GetEnumerator();
        while (MsgEnum.MoveNext())
        {
            item = (Microsoft.Office.Interop.Outlook.ContactItem)MsgEnum.Current;
            lstContacts.Add(item);
        }
    }
    catch (System.Exception e)
    {
        throw(new Exception("MyOutlookIntegration Error",e));
    }
    return lstContacts;
}


COM bileşenleri ile Office uygulamaları entegrasyon işlemlerinde en fazla karşılaşılan problemlerden bir tanesi de, üzerinde çalıştığımız Office uygulamasının yazdığımız kodun işlemlerinin sonlanmasına rağmen sistemde çalışır durumda kalması ve uygulamamızın bu işlemi tekrarlaması sonucunda Office uygulamasının process lerinin çoğalmasıdır.Bu problemlerden dolayı çoğu zaman performans sorunları yaşanır veya kullanıcının normal Office uygulamalarını kullanımını etkiler.Bunu engellemek için Application arayüzü ile yarattığımız objOutlook nesnesinin Quit metodu sınıfımız sonlandığında çalışmalıdır.IDisposable arayüzünden türettiğimiz sınıfımızın Dispose metodunu kullanarak bu işlemi gerçekleştirebiliriz.

public void Dispose()
{
    if (objOutlook != null) objOutlook.Quit();
}


Şimdi yarattığımız sınıfı test edelim.Form1 üzerine yerleştirdiğimiz button1 nesnesinin click olayına aşağıdaki kodu yazalım.

private void button1_Click(object sender, EventArgs e)
{
    MyOutlookIntegration MyOutlook = new MyOutlookIntegration();
    ArrayList lstContacts= MyOutlook.GetContacts();


    lvFill.View = View.Details; 
    lvFill.Clear();
    lvFill.Columns.Clear();
    lvFill.Columns.Add("İsim");
    lvFill.Columns.Add("Soyisim");
    lvFill.Columns.Add("İş fax numarası");
    lvFill.Columns.Add("Ev fax numarası");
    lvFill.Columns.Add("Diğer fax numarası");
    lvFill.Columns.Add("Şirket ismi");
    lvFill.Columns.Add("Email adresi");
    lvFill.Columns.Add("Ev telefonu");
    lvFill.Columns.Add("İş telefonu");

    foreach (Microsoft.Office.Interop.Outlook.ContactItem item in lstContacts)
    {
        ListViewItem lvFillItem = new ListViewItem(new string[] { 
            item.FirstName,
            item.LastName,
            item.BusinessFaxNumber,
            item.HomeFaxNumber,
            item.OtherFaxNumber,
            item.CompanyName,
            item.Email1Address,
            item.HomeTelephoneNumber,
            item.BusinessTelephoneNumber
            });
        lvFill.Items.Add(lvFillItem);
    }
}


Projemizi çalıştırıp test edelim.


Evet gördüğünüz gibi yarattığımız sınıfla artık Outlook contact bilgilerini okuyabiliyor ve uygulamalarımızda kullanabiliyoruz.

Microsoft.Office.Interop.Outlook.ContactItem nesnesinde isim,soyisim,iş fax numarası,ev fax numarası,Diğer fax numarası,şirket ismi,email adresi,ev telefonu,iş telefonu bilgilerine ek olarak Outlook contact bilgilerinde bulunan diğer bilgiler de mevcuttur.Bu örnekte yeterli olacağını düşündüklerimi uyguladım.Siz kendi uygulamalarınızda diğer alanları da kullanabilirsiniz.

Evet bir makalenin daha sonuna geldik.Umarım yararlı olmuştur.
Hepinize mutlu günler dilerim. 

Levent YILDIZ
theone@leventyildiz.net
msmoracle@hotmail.com 
http://www.leventyildiz.net

Wednesday, June 13, 2007 7:48:54 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
Dün HP'nin "yer yerinden oynayacak" lansmanındaydım.
Tam olarak yer yerinden oynamadı fakat katılımın yoğunluğundan dolayı salon değiştirmek, daha büyük bir salona geçmek zorunda kaldık.HP nin dediği kısmen oldu :) yerimizden oynadık...

Yeni teknoloji printerların tanıtıldığı toplantı keyifli geçti.HP nin nasıl başladığı ve bugünlere geldiği konusunda detaylı bilgiler verildi.Dünya yörüngesinde bulunan 10 uzay istasyonunun 10'unda da HP mevcutmuş.HP denince aklıma hemen bir printer geliyordu, artık astronotlar gelecek.

CM serisi printerlar ile renkli baskı maliyetlerinde %30 gibi muazzam bir düşüş sağlanmış...

Dediğim gibi çok keyifli bir tanıtım dı.

Wednesday, June 13, 2007 7:48:08 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Tuesday, June 12, 2007


.NET ve MOBİL TEKNOLOJİLER SEMİNERİ

CETURK, Mayıs ayının konusuna uygun olarak .NET ve MOBİL TEKNOLOJİLER konulu bir seminer gerçekleştiriyor. Katılımın ücretsiz olduğu seminer, 16 Haziran Cumartesi günü 13:00-15:00 saatleri arasında Microsoft Türkiye İstanbul ofisinde gerçekleştirilecektir.

Konuşmacı :Mobile Device MVP ERALP ERALT
Seminer Yeri :

Microsoft İstanbul Ofisi
Barbaros Plaza 145-C, Dikilitaş
34349 İstanbul

Kayıt olmak için :
http://www.ceturk.com/etkinlikkayit.asp?id=26


Tuesday, June 12, 2007 4:28:49 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Software
 Sunday, June 10, 2007

Sunday, June 10, 2007 6:56:49 PM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Software
 Saturday, June 02, 2007

Herkese matrix yaklaşıyor, matrix gerçek olacak dediğimde, ha ha ha diyorlardı bana...
Matrix 2'de, Nebuchadnezzar'ın Zion'a ilk girişinde, kapı kontrolörleri local bir matrix'e bağlıydı, bilgisayar kullanıyorlardı ve klavyeleri yoktu...



bana çok benzer geldi...

Saturday, June 02, 2007 9:21:12 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel | Software
 Friday, June 01, 2007

Artık 30 dan gün alıyorum.Yolu yarıladım...
Bu ana kadar yanımda olan herkese çok teşekkür ediyorum...

Friday, June 01, 2007 9:32:41 PM (GTB Standard Time, UTC+02:00)  #    Comments [2] -
Genel
 Wednesday, May 30, 2007

http://www.csharpnedir.com/netvideo.asp linkinde bulunan Derinlemesine GridView & DetailsView görsel dersim hakkında Fatih arkadaşımızın sorusu:
Benim anlamadığım bir nokta var: SP içinde id değerini kullanıyoruz oysaki en başta DataBind işlemini gerçekleştirirken bu kolonu remove etmiştik.

Evet Id kolonunu gridview üzerinde remove ettik ve id boundfield'larda gözükmüyor, fakat Gridview'un DataKeyNames özelliğine id kolonu atanmıştır.Dolayısı ile id alanı değeri gridview tarafından halen tutulmaktadır.Bu alana , (virgül) ayracı ile birden fazla kolon ismi atayabilirsiniz...

Umarım açıklayıcı olmuştur.

Wednesday, May 30, 2007 7:13:56 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Monday, May 28, 2007

BHO nedir ilk önce bunu açıklayalım.Browser Helper Object, işletim sisteminde Browser görevini üstlenmiş bileşenler üzerinde çalışmak için tasarlanmış eklentilerdir.Internet Explorer 'a yazılan eklentiler iyi bir BHO örneği olacaktır.

BHO objemiz IObjectWithSite arayüzünden türemelidir.Bu arayüzün SetSite ve GetSite isminde iki metodu mevcuttur.İlk önce bu arayüzü gözden geçirelim.

using System;
using System.Runtime.InteropServices;

namespace MyBHO
{
[ComVisible(true),
Guid("FC4801A3-2BA9-11CF-A229-00AA003D7352"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectWithSite
{
[PreserveSig]
int SetSite([MarshalAs(UnmanagedType.IUnknown)]object site);
[PreserveSig]
int GetSite(ref Guid guid, out IntPtr ppvSite);
}
}

IE herhangi bir browser kontrolü oluşturduğunda SetSite çalışacak ve biz de gerekli nesneleri burada atayacağız.
Şimdi IObjectWithSite arayüzünden türeyen MyBHO sınıfımızı inceleyelim.

using System;
using System.Collections.Generic;
using System.Text;

using System.Runtime.InteropServices;
using Microsoft.Win32;
using SHDocVw;

namespace MyBHO
{
[ComVisible(true),
ClassInterface(ClassInterfaceType.None)]
public class MyBHO : IObjectWithSite
{
WebBrowser webBrowser;

public MyBHO()
{
}

public static string BHOKEYNAME = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects";

[ComRegisterFunction]
public static void RegisterBHO(Type t)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(BHOKEYNAME, true);

if (key == null)
key = Registry.LocalMachine.CreateSubKey(BHOKEYNAME);

string guidString = t.GUID.ToString("B");
RegistryKey bhoKey = key.OpenSubKey(guidString);

if (bhoKey == null)
bhoKey = key.CreateSubKey(guidString);

key.Close();
bhoKey.Close();
}

[ComUnregisterFunction]
public static void UnregisterBHO(Type t)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(BHOKEYNAME, true);
string guidString = t.GUID.ToString("B");

if (key != null)
key.DeleteSubKey(guidString, false);
}

public void webBrowser_BeforeNavigate2(object pDisp, ref object Url,
ref object Flags, ref object TargetFrameName, ref object PostData,
ref object Headers, ref bool Cancel)
{
string _Url = (string)Url;
Uri _uri = new Uri(_Url);
if (_uri.Host == "www.leventyildiz.net")
{
Cancel = true;
System.Windows.Forms.MessageBox.Show("Bu siteye çıkamazsınız");
}
}

#region IObjectWithSite Members
public int SetSite(object site)
{
if (site != null)
{
webBrowser = (WebBrowser)site;
if (webBrowser != null)
{
webBrowser.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2);
}
}
else
{
if (webBrowser != null)
{
webBrowser.BeforeNavigate2 -= new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2);
webBrowser = null;
}
}
return 0;
}

public int GetSite(ref Guid guid, out IntPtr ppvSite)
{
IntPtr punk = Marshal.GetIUnknownForObject(webBrowser);
int hr = Marshal.QueryInterface(punk, ref guid, out ppvSite);
Marshal.Release(punk);

return hr;
}
#endregion
}
}

Açıklamalar
SHDOCVW
using SHDocVw;
SetSite metodu ile gelen object türünden site nesnesi "Microsoft Internet Controls" com'unda (ShDocVw.dll) bulunan WebBrowser nesnesine dönüştürülerek kullanılacağından dolayı bu com'u projemize register etmemiz gerekmektedir.

BHOKEYNAME
public static string BHOKEYNAME = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects";
Bu string, IE nin eklentilerinin kaydedildiği registry key'i dir.Assembly mizi register ettiğimizde ComRegisterFunction niteliği ile işaretlenmiş public static void RegisterBHO(Type t) metodu çalışacak ve gerekli işlemler yapılacaktır.Unregister da ise tahmin edeceğiniz gibi ComUnregisterFunction niteliği ile işaretlenmiş public static void UnregisterBHO(Type t) metodu çalışacak ve eklentinin IE kaydından çıkartılması için gerekli işlemler yapılacaktır.

SetSite
public int SetSite(object site)
{
if (site != null)
{
webBrowser = (WebBrowser)site;
if (webBrowser != null)
{
webBrowser.BeforeNavigate2 += new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2);
}
}
else
{
if (webBrowser != null)
{
webBrowser.BeforeNavigate2 -= new DWebBrowserEvents2_BeforeNavigate2EventHandler(webBrowser_BeforeNavigate2);
webBrowser = null;
}
}
return 0;
}

bu kod IE yeni bir webbrowser kontrolü oluşturduğunda çalışacak koddur.Biz bu metodda gönderilen object türünden site nesnesini sınıf bazında erişimi olan webbrowser nesnemize set ediyoruz.Bu işlem esnasında webBrowser_BeforeNavigate2 metodunu webbrowser nesnesinin BeforeNavigate2 olayına bağlıyoruz.Dolayısı ile yeni bir sayfa açılmak istendiğinde ilk önce bizim metodumuz çağıralacak ve gerekli kontrolleri yapabiliyor olacağız.

BeforeNavigate
public void webBrowser_BeforeNavigate2(object pDisp, ref object Url,
ref object Flags, ref object TargetFrameName, ref object PostData,
ref object Headers, ref bool Cancel)
{
string _Url = (string)Url;
Uri _uri = new Uri(_Url);
if (_uri.Host == "www.leventyildiz.net")
{
Cancel = true;
System.Windows.Forms.MessageBox.Show("Bu siteye çıkamazsınız");
}
}

En basit metod :) gitmek istenilen Url bize metod tarafından bildiriliyor, bizde bunu kontrol edip izin veriyoruz veya işlemi iptal ediyoruz.Tabi bu metodda istediğimiz gibi kontroller gerçekleştirebilir, windows formlarıyla bilgi alabiliriz...

Yapılacak son işlem projemizi derledikten sonra regasm tool'u ile assembly mizi register etmek olacaktır.

vs 2005 command prompt ta

regasm /codebase MyBHO.dll
komutu IE add-on'umuzu register eder...
regasm /unregister MyBHO.dll
komutu IE add-on'umuzu unregister eder...

Sonuç olarak add-onumuzu IE özellikleri penceresinde görebiliriz.

Monday, May 28, 2007 2:47:16 PM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Software
 Sunday, May 27, 2007

Tüm İSTEK'lilere...
Yahu öldük mü biz?

Pazar günü okulun pilav günü vardı...Emre ile birlikte bir heyecanla okula gittik...
aaa hiçkimseyi tanımıyoruz.Hocalar değişmiş...Bir bilemedin iki hocayı tanıyoruz.
İlk önce fazla önemsemedik, gelir bizimkiler dedik, aldık basketbol topunu Emre ile eski günleri
andık.Kısa bir anma töreni oldu çünkü maç 2-2 iken ikimizde öldük...

Pilav gününün sonlarına doğru gidip listeye baktığımızda mezunların tarihleri 2000 den
başlıyordu, ve 95 mezunu 3 kişiydik...

Nerde İSTEK ruhu, nerde Tarabya Tatil Köyü ruhu arkadaşlar...

Sunday, May 27, 2007 11:04:15 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Wednesday, May 23, 2007

Bırakın veritabanına kullanıcılar kendi formüllerini girsinler, uğraşılmaz bu kullanıcılarla canım...

declare
@v1        int,
        @v2        int,
        @v3        int

declare @formula    nvarchar(50)

set @v1=2
set @v2=4
set @v3=5
set @formula='SELECT (@v1+@v3)*@v2'

set @formula=replace(@formula,'@v1',convert(varchar,@v1))
set @formula=replace(@formula,'@v2',convert(varchar,@v2))
set @formula=replace(@formula,'@v3',convert(varchar,@v3))

print @formula
EXEC sp_executesql @formula

Wednesday, May 23, 2007 9:27:05 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It | T-Sql
 Tuesday, May 22, 2007

BHO geliştiren arkadaşlar, bazen ie den manage add-ons bölümünden geliştirdiğimiz dll'i disable yapmak o dll'i serbest bırakmayabilir.Dll serbest kalmayınca da yeni kodu derlerken veya derlenmiş dll i üzerine kopyalarken bu nesne bir process tarafından tutuluyor hatası alırız.

Bu tür durumlarda yapmanız gereken task manager dan explorer process ini kill edip, new task menü seçeneğine explorer yazarak tekrar başlatmanız olacaktır.Logout Login çok uzun sürüyor :)

Tuesday, May 22, 2007 2:20:11 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software

Okuma

RegistryKey rgkSettings = Registry.CurrentUser.CreateSubKey("MyRegistryKey");
txtUserID.Text = (string)rgkSettings.GetValue("LoginUserID");

Yazma

RegistryKey rgkSettings = Registry.CurrentUser.CreateSubKey("MyRegistryKey");
rgkSettings.SetValue("LoginUserID", txtUserID.Text);

Tuesday, May 22, 2007 12:07:12 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It | Software
 Sunday, May 20, 2007

Adamlar bu işi boşuna hayat tarzı yapmamışlar.

Sunday, May 20, 2007 6:48:06 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
url : http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
email : \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Sunday, May 20, 2007 5:36:19 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It | Software
 Saturday, May 19, 2007

System.Text.RegularExpressions.Regex rgxValidate = new System.Text.RegularExpressions.Regex("[0-9]");
if (!rgxValidate.IsMatch(txtFaxNo.Text))
{
errClients.SetIconAlignment(txtFaxNo, ErrorIconAlignment.MiddleLeft);
errClients.SetError(txtFaxNo, "Fax numarası giriş formatı hatalı.");
return;
}

Saturday, May 19, 2007 3:34:31 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It | Software

 declare CURS_X cursor read_only forward_only for 
  (
  select X1,X2 from ...
  )

 open CURS_X
 fetch next from CURS_X into @X1,@X2
 while @@FETCH_STATUS=0
  begin
   .........
   .........
   --bir sonraki kayit okunuyor   
   fetch next from CURS_X into @X1,@X2
  end
 close CURS_X
 deallocate CURS_X

bundan sonra böyle, post-it lerimi burda tutmaya karar verdim.
bu da ilki.yazarken iyi oluyor.

Saturday, May 19, 2007 3:04:30 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Post-It | T-Sql


CP R60 :)
Secure Platform (Alet sürekli karada durduğu için)
Saturday, May 19, 2007 2:46:14 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Tuesday, May 15, 2007

http://www.kapgetr.com/

Bu da girişimciliğin hat safhası.Sevgili arkadaşım Onur'un aklına gelen bir fikir.O arama motoru bu arama motoru gezmeden aynı anda birden fazla arama motorunu kullanabiliyorsunuz.

Google'a ayrı, Yahoo'ya ayrı zaman mı? Kapgetr arıyorum çıkıyorum :)

Tuesday, May 15, 2007 10:40:32 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Internet
 Tuesday, May 08, 2007

Fatih arkadaşımızın bir talebine istinaden .net framework class library yi gezinirken problemine kolay bir çözüm buldum.Eğer bir web sitesinin html içeriğini okumak istiyorsanız Uri sinifi biçilmiş kaftan.Eski yöntemlere (winsock,tcpclient) gerek kalmadan (tabiki bu yöntemler kullanılıyor ama arka planda) Uri sınıfını kullanarak bir web sitesinin içeriğini alabiliriz.Örnek aşağıda;

using System;
using System.Collections.Generic;
using System.Text;

using System.Net;
using System.IO;

namespace UriX
{
class Program
{
static void Main(string[] args)
{
Uri siteUri = new Uri("http://www.google.com/");
WebRequest wr = WebRequest.Create(siteUri);
WebResponse wer = wr.GetResponse();

Stream strX = wer.GetResponseStream();
StreamReader strR = new StreamReader(strX);
Console.WriteLine(strR.ReadToEnd());
}
}
}

Tuesday, May 08, 2007 10:08:55 AM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Internet | Software
 Monday, May 07, 2007

Web uygulamanızda birden fazla sitemap kullanmanız gerektiği durumlarda (birden fazla menü kontrolleri, sitemap kontrolleri...) web.config dosyasına system.web tag'ı altına aşağıdaki ayarları eklemeniz yeterli olacaktır.

    <siteMap>
      <providers>
        <add name="MyWeb" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap"/>
        <add name="MyWeb1" type="System.Web.XmlSiteMapProvider" siteMapFile="web1.sitemap"/>
        <add name="MyWeb2" type="System.Web.XmlSiteMapProvider" siteMapFile="web2.sitemap"/>
      </providers>
    </siteMap>

Sitemap dosyalarını atadığınız SiteMapDataSource kontrollerinde de aşağıdaki özelliği yazmanız gerekmektedir.

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" SiteMapProvider="MyWeb1" />           

Monday, May 07, 2007 1:41:40 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software

Web Parts, geliştirdiğiniz web uygulamalarında kullandığınız Web User Control nesnelerini veya Calendar, FileUpload gibi standart Asp.Net kontrollerini, kullanıcı bazında özelleştirebilmenizi sağlayan ve bu kontrollerin web sayfası üzerinde sizin belirlediğiniz web alanlarında kullanıcının isteği doğrultusunda görüntülenmesini sağlayan kontrollerdir.

Burada sıkıntı yaşayabileceğinizi düşündüğüm bir sorunun çözümünü paylaşmak istiyorum.Web part kullanımında kişiselleştirme kullanıldığından dolayı bütün bu kişisel ayarlar App_Data'nın içine otomatik olarak yaratılan ASPNETDB veritabanına kaydedilir.Lokalde çalışırken sorun yoktur fakat sunucuya upload edildiğinde bağlantı hataları veritabanının bulunamaması gibi sorunlarla karşılaşabilirsiniz veya bu veritabanını sunucu üzerine register etmek isteyebilirsiniz.

Yapmanız gereken, web.config dosyasına system.web tag'ı içine;

<webParts>
      <personalization  defaultProvider="AspNetSqlPersonalizationProvider">
        <providers>
          <remove name="AspNetSqlPersonalizationProvider" />
          <add name="AspNetSqlPersonalizationProvider"
          type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider"
          connectionStringName="DBConn"
          applicationName="/" />
        </providers>
      </personalization>
</webParts>

ayar kayıtlarını girmenizdir.Burda önemli olan design aşamasında oluşturulan aspnetdb yi sunucu üzerine taşıdıktan sonra aynı web.config dosyasının içine connectionstrings tag'ı altında bu mdf'i bildiren bir connection string tanımlamanızdır.

  <add name="DBConn" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=ASPNETDB.MDF;Integrated Security=True;pooling=true;min pool size=5;max pool size=20;connection lifetime=50"
   providerName="System.Data.SqlClient" />

Bu sayede uygulamanız kişiselleştirme kayıtları için artik sizin belirlediğiniz veritabanını kullanacaktır.

Monday, May 07, 2007 12:42:56 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Tuesday, May 01, 2007


www.hakia.com

Amaç aynı, arama...
Bugün google, yahoo vs gibi arama motorlarını kullanıyoruz.Arama anahtarı olarak girdiğimiz bilgiler arama motorunun veritabanındaki anahtar sözcüklerle karşılaştırılıp sonuçlar karşımıza listeleniyor.Fakat gelen sonuçların doğruluğu, sitelerdeki keywordlerin doğru girilmesine bağlıdır.

Yöntem farklı
Hakia da ise durum farklı.Kelimeler anlamlarına göre yorumlanıyor.Bunun üzerine değişik birkaç metodoloji kullanılıyor (ontosem,qdex,semanticrank).

Yani ben hakia'ya "Why did Enron collapse?" diye soru sorabiliyorum.Hakia'da bu soruyu yorumlayıp, bu sorunun cevabını içeren siteleri sonuç olarak listeliyor.

Vakit nakittir...
Dr.Berkan'a göre Kuzey Amerikada son 1 ayda yapılan arama sayısı 5.6 milyar.Bunun yarısının tam sonuç alınamayan aramalar olduğunu ve arama başına bir dakika harcandığını düşünürsek son 1 ayda 47 milyon dakika boşa harcanan zaman mevcut olduğunu görürüz.Evet vakit nakittir...

Bunun sonucu olarak, ilerleyen zamanlarda bu sistemin kullanılabileceği alanları düşünüyorum...
Mobil telefonlar - ses algılama ile çalışan arama motoru:hakiaMobile
Alışveriş merkezlerinde, Plazalarda, Açık merkezi alanlarda - ses alıgılama ile çalışan kiosklar:hakiaKiosk
....

Büyük başarı.Dr. Rıza C. Berkan'a böyle bir teknolojiyi kullanıma sunduğu için teşekkür ediyorum.

Tuesday, May 01, 2007 4:03:53 PM (GTB Standard Time, UTC+02:00)  #    Comments [2] -
Internet
 Monday, February 12, 2007

Client tarafında 'Sys is undefined' hatası alıyorsanız;
IIS6.0 üzerinde Asp.NET 2.0 uygulamanız çalışmıyorsa;
Bu yukardaki iki problemden dolayı akıl sağlığınız tehlikede ise, aşağıdakileri okumanızda yarar var.

Windows Srv 2003 std sp2 üzerinde IIS6.0'i kurdugunuzda Web extensions kısmında asp.net 2.0 için gerekli olan web service extension kaydı gelmiyor.
Bunu manuel olarak eklemelisiniz.
Web service extensions kısmında sağ click new extension i seçip aşağıdakileri gireceksiniz.
Web service extension name=ASP.NET v2.0.50727
DLL= C:\Windows\Microsoft.net\framework\v2.0.50727\aspnet_isapi.dll

Evet artık bu şekilde çalıştırabilirsiniz.

Peki siteyi ayağa kaldırdıktan sonra Ajaxv1.0 ile ilgili bir problem oluşursa;
Client tarafında sys is undefined gibi bir hata alırsanız.Aklınıza ilk gelecek şey ajax'da bir sorun olduğu
veya client da javanin son sürümünün yüklü olmadığı olacaktır.

Google da sys is undefined diye bir arama yaparsanız tonla döküman gelecektir.
Genelde bu dökümanlarda asp.net web.config dosyasında ajaxv1.0 a geçtiğinizde yapılması gereken değişiklikleri
görürsünüz.Tabi yapılması gereken herşeyi yaptıktan sonra aynı hatayı almaya devam ederseniz sağlık problemleri
başlar :)

Gariptir, 1 günlük bocalamadan sonra isp'de sunucuyu tam kabinlere koymadan önce görevli arkadaşın
-aa bi dk.bu cdrom bizim.bunu çıkartmamız gerekiyor
demesi ve sunucudan cd rom'u cikartmasi aklıma geldi.
Sonra sunucuya bakıp sistem saatini kontrol ettim.
Sene 2003'dü.
Sistem tarihini normal hale getirdim ve sys is undefined sorunu çözüldü.

Sağlık problemlerimin devam etmemesi için bir tarihin client tarafındaki java hatası ile nasıl bir alakası olur diye
düşünmek istemedim ve yoluma devam ettim.

Monday, February 12, 2007 2:50:58 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Server Systems | Software
 Sunday, January 07, 2007
Saçlar uzadı.Berber metin abiyi ziyaret edeyim dedim.
Hepimiz biliriz, berberlerde muhabbet ya maçtır, ya da standart gündem konuları...
Koltuğa oturdum, metin abi patlattı bombayı
Sitede access kullanıyorum database i mysql e mi çevireyim mssql e mi? ne dersin?
Devir değişti...

Sunday, January 07, 2007 3:32:52 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Friday, December 15, 2006

Dün IBM in Rational Software Test Run'ına katıldım.Rational Software IBM'in java platformunda yazılım geliştirenler için sunduğu bir ürün.Genel bir tanıtımdan sonra lablara başladık.Lablarda pek fazla problem yoktu.Ama sanki bir eğitim ortamı gibiydi.Daha ürünü tam tanımadan direkt tasarıma girdik.Microsoft'un tanıtımlarını hatırladım.Ms tanıtımlarında da tam tersine uzun uzun ürün anlatılır detaylara pek fazla girilmezdi.İçimden geçirdim IBM tümevarım, Ms tümdengelim yapıyor diye :), Şunu kesinlikle vurgulamak isterimki burda yazdıklarımla iki ürünü karşlaştırmıyorum, zaten iki ayrı platform .net ve java...Sadece ürün hakkında ilk izlenimlerimi sizinle paylaşmak istedim.

Rational'a genel olarak baktığımızda design tarafı çok detaylı ve güzel.Bir projeyi kod yazmadan sadece uml tasarımı yaparak ve Rational 'ın wizardlarını kullanarak geliştirebiliyorsunuz.Son sürümünde Ajax desteği daha da genişlemiş durumda, palette bayağı genişlemiş.Fakat ne yazıkki basit anlamda bir tablonun bir DataTable'a atanması ve ordan kullanıcının add update delete işlemlerini gerçekleştirmesi için tekrar manuel kod yazmanız gerekiyor.Bu biraz tutarsız.Bütün bir sayfayı wizardlarla tasarlıyorsunuz ve 1 satır kod yazmıyorsunuz, öbür tarafta basit bir tablonun edit işlemi için kod yazmak zorunda kalıyorsunuz...

Bir ürüne yığınla lisans parası verilecek ve basit bir add update delete işlemi için kod yazmamız gerekecek.Umarım/İnanıyorum ki ilerleyen sürümlerinde Rational a da bu özellik eklenecektir.


Friday, December 15, 2006 1:06:57 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Saturday, December 02, 2006

Vs60 dan Vs.net e geçen arkadaşların karşılaşacağı bir sorun.
Formun WindowState özelliğinin değiştiğinin algılanması; (Maximized,Minimized,Normal)

Form event lerinde bu olaya hakim olmamızı sağlayacak bir olay mevcut değil.
Bu işlemi WndProc metodunu override ederek hallediyoruz.

m.Msg WM_SIZE (0x0005) e eşit olduğunda form'un size edildiğini anlıyoruz.
m.WParam ise bize size olayının türünü belirtiyor.

protected override void WndProc(ref Message m)
{
    if (m.Msg == /*WM_SIZE*/ 0x0005)
    {
        if (m.WParam.ToInt32() == 2)
        {
             //Maximized
        }
        else if (m.WParam.ToInt32() == 0)
        {
             //Normal
        }
    }
    base.WndProc(ref m);
}
Saturday, December 02, 2006 12:17:18 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Thursday, November 30, 2006

Bana en fazla gelen sorulardan birisi...

mySQL:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

PostgreSQL:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Microsoft SQL Server:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

IBM DB2:

SELECT column FROM table
ORDER BY RAND()
FETCH FIRST 1 ROWS ONLY

Oracle:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1
Thursday, November 30, 2006 5:20:28 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Server Systems
 Monday, November 27, 2006

Evdeyim.Kodluyorum.Bizim aslan kendi laptopunda youtube u geziyor...
Yatma vakti dedim.Tamam dedi, odasına gitti.
Bende bir süre çalıştım ve yatmak üzere bilgisayarı kapattım.
Tam oğluşun bilgisayarını kapatacaktım ki ekranda bir mesaj...
[Active Directory]
"To manage users and groups on this computer, use local users and groups......"

Bizimki ilk hack denemesini yapmış dedim içimden :)
Monday, November 27, 2006 2:03:43 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Friday, November 17, 2006

Çok sevdiğim bir arkadaşım uzun bir bocalama zamanından sonra bana bu problemle geldi.Bu sorunla karşılaşan arkadaşlar bocalamasın diye yazayım dedim.

Projenize Add Items dan SiteMap dosyası ekleyin ve değerlerinizi yazın; ör:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="root.aspx" title="root"  description="">
        <siteMapNode url="1.aspx" title="1 menü"  description="">
          <siteMapNode url="1a.aspx" title="1a menü"  description="" />
          <siteMapNode url="1b.aspx" title="1a menü"  description="" />
        </siteMapNode>
        <siteMapNode url="2.aspx" title="2 menü"  description="">
          <siteMapNode url="2a.aspx" title="2a menü"  description="" />
        </siteMapNode>
    </siteMapNode>
</siteMap>

ASP.NET sayfanıza SiteMapDataSource ve Menü kontrollerini ekleyin.
    <div>
        <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1">
        </asp:Menu>   
    </div>
        <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
    </form>

Projenizi çalıştırdığınızda sadece bir root menüsü göreceksiniz.Peki root 'un yanına bir menü seçeneği daha eklemek isterseniz ne yapmanız gerekir? SiteMap dosyasina <SiteMap> tagı arasına 1 tane daha <SiteMapNode> ekleyelim?

Ne yazıkki hayır.Vs2k5 size derlemeye çalıştığınızda hata verecektir.Çünkü <SiteMap> tag'inin arasında sadece 1 tane <SiteMapNode> a izin verilir.Bu sorunu aşmak için yapmaniz gereken çok basit.

Sayfanızdaki SiteMapDataSource kontrolüne ait tag'a bir özellik ekleyeceksiniz,
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false"/>
ShowStartingNode="false"

Artık root menü de gözükmeyecek 1 ve 2 görüntülenecektir.

ShowStartingNode="false" dan önce;
sitemap.JPG

ShowStartingNode="false" dan sonra;
sitemap1.JPG
Friday, November 17, 2006 11:23:49 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software

VSTO Sunucu dökümanları & Cache kullanımı
http://www.yazgelistir.com/Makaleler/1000001052.ygpx

GridView & DetailsView kontrollerinin kullanımı & MsSQL Stored Proc entegrasyonu ile veri bütünlüğünün sağlanması
http://www.yazgelistir.com/Makaleler/1000001050.ygpx
http://www.yazgelistir.com/Makaleler/1000001051.ygpx
Friday, November 17, 2006 10:58:31 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Articles
 Monday, October 30, 2006

Normalde sayfa üzerine 1 gridview,1 detailsview ve 1 datasource kontrolü yerleştirerek db tablosuna veri ekleyebiliyor silebiliyoruz.Fakat datasource da select komutuna iki ayrı tablodan veri aldığınızda ve detailsview ile yeni kayıt eklediğinizde gridview refresh olmuyor.

Sorunu gidermek için, detailsview 'ın iteminserted olayında gridview u refresh edecek kodu yazmaniz gerekiyor.

    protected void DetailsView2_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
    {
        GridView1.DataBind();
    }

Kolay gelsin.
Monday, October 30, 2006 11:44:45 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Internet | Software

Atlas'dan Asp.Net Ajax beta1 e geçip, scriptmanager,scriptmanagerproxy,updatepanel gibi extension kontrollerinde problem yaşayan arkadaşlara;

Sorun şu anda bir bug gibi gözüküyor.Web.config de Microsoft.Web.Extensions ile alakali tagprefix niteliğini ajax olarak değiştirmeniz gerekiyor.Tabi bu değişiklikten sonra sayfalar üzerindeki kontrollerin de prefixlerini düzeltmeniz gerekiyor.

            <controls>
        <add tagPrefix="ajax" namespace="Microsoft.Web.UI" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add tagPrefix="ajax" namespace="Microsoft.Web.UI.Controls" assembly="Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add tagPrefix="asp" namespace="Microsoft.Web.Preview.UI" assembly="Microsoft.Web.Preview"/>
                <add tagPrefix="asp" namespace="Microsoft.Web.Preview.UI.Controls" assembly="Microsoft.Web.Preview"/>       
            </controls>

Ben çektim siz çekmeyin :)
Monday, October 30, 2006 10:44:13 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Internet | Software
 Sunday, October 22, 2006

ASP.NET GridView ve DetailsView kontrollerini kullanarak basit bir Ajanda uygulaması hakkındaki görsel dersim.GridView ve DetailsView kontrollerinde alanlara DropDownList eklenmesi.MsSQL Stored Procedure leri kullanılarak veri bütünlüğünün sağlanması.



Görsel dersi indirmek için tıklayın.
Sunday, October 22, 2006 1:47:47 PM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Software
 Sunday, October 01, 2006

nice mutlu yıllara oğlum.

Sunday, October 01, 2006 10:58:39 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Thursday, September 28, 2006

Entity modeli kullanarak veri erişim bileşeni yaratma konusunda yazdığım makale.NHibernate'e alternatif :)

1- http://www.yazgelistir.com/Makaleler/1000001026.ygpx
2- http://www.yazgelistir.com/Makaleler/1000001027.ygpx
3- http://www.yazgelistir.com/Makaleler/1000001028.ygpx
4- http://www.yazgelistir.com/Makaleler/1000001029.ygpx

CodeDom, AppDomain ve Plug-in tabanlı programlama ile ilgili makalelerim.(yazıCan)

1- http://www.yazgelistir.com/Makaleler/1000001034.ygpx
2- http://www.yazgelistir.com/Makaleler/1000001035.ygpx

Thursday, September 28, 2006 2:55:22 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Articles
 Sunday, September 24, 2006

Uzun bir süreden sonra tekrar selamlar,

Araştırma yaptığım ve ilerdeki projelerimde altyapı olarak kullanacağım bir proje üzerinde çalışıyordum.CodeDom ve Plugin tabanlı programlama.Açıkçası konu ile ilgili bir örnek proje üzerinde uzun süre düşündüm ve sonunda Morad# 'ın bir fikri üzerine yazıCan 'ı geliştirdim.



Program basit bir notepad olarak işliyor fakat plugin tabanlı olmasından dolayı uygulamaya kendiniz c# kodu kullanarak eklenti yazabiliyorsunuz.Örneğin ekranda seçili bir metni büyük harf'e çevirmek istiyorsunuz.Bunun için c# kodu ile bir plugin yazıp programa yükleyip kullanabiliyorsunuz.

İşi biraz daha kolaylaştırmak amacıyla plug in kodunu yazıCan üzerinde yazılabilir ve derleyebilir hale getirdik.Bunun için CodeDom isimalanındaki sınıfları kullandık.

Programı burdaki linkten indirebilirsiniz. http://www.leventyildiz.net/dload/yaziCan.rar

yazıCan ile ilgili makalelerim yakında yayımlanacaktır.

Sunday, September 24, 2006 8:46:07 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Friday, September 01, 2006

Her insan hata yapar, ama bu kadar aşağılanmazki insan canım.

Friday, September 01, 2006 9:56:21 AM (GTB Standard Time, UTC+02:00)  #    Comments [2] -
Software
 Tuesday, August 29, 2006

Mobil cihazlar için uygulama geliştiren arkadaşlar,

Eğer Ms mobile device emulatörlerini kullanıyorsanız, ve projenizde tcp/ip bağlantısı yapılması gerekli bir durum mevcutsa(web servisleri,dbconnection vs) emulator cihazinin kendine ait bir ip adresi olmasi gerekiyor.

Aksi taktirde localhost sizin development pc nizde kendi pc niz fakat emulator de sizin pc niz degil emulator un kendisi anlamina gelir, boyle olunca emulator tcpip baglantisini kendisine yapmaya calisir ve istisnai durum alir durursunuz.

Virtual Machine Network Driver for Microsoft Device Emulator 'u indirerek emulatör ün kendi ip sini almasini sağlayabilirsiniz.

http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&DisplayLang=en

Tuesday, August 29, 2006 10:25:42 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Saturday, August 19, 2006

Uzayan bir tartışmaya kendimce yorum;
WebForms mu Windows Forms mu?

Her ikiside.
Internet explorer kapaliyken insanlar yazdiginiz sistemler hakkında uyarı,hatırlatma vs vs bilgilerini nasıl alacaklar?

Reverse engineering derseniz siz de windowsforms ların içinde business objelerinizi tutmayın derim.Web servisleri mevcut...

Saturday, August 19, 2006 6:55:49 PM (GTB Standard Time, UTC+02:00)  #    Comments [2] -
Software
 Friday, August 18, 2006

Can sıkıcı başka bir problem,

Excel den veri okuyacağım.TYPE_E_INVDATAREAD hatası ile karşılaştım.Birkaç google adımından sonra...;.Excel in ingilizce sürümü yüklü ise ve bölgesel ayarlar ingilizce dışında başka bir dile ayarlanmışşa bu sorunu verir.Cözüm olarak Office in MUI paketini yükleyebilirsiniz.

Çözüm 2; sistemin Culture özelliğini Excel'inkine uydurmak gerekiyor.

--quote
System.Globalization.
CultureInfo oldCI = System.Threading.Thread.CurrentThread.CurrentCulture;

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

Microsoft.Office.Interop.Excel.Workbook workBook = app.Workbooks.Open(....
.................
.................
Excel işlemleri
.................

System.Threading.Thread.CurrentThread.CurrentCulture = oldCI;
--unquote

Bu sorunu Open metodunda vermesi açıkçası gerçekten can sıkıcı.TCP sınıfında çoklu bağlantılarda programcıyı yormadan tcp port numaralarını yükseltmeyi üzerine almış bir c# Excel in CultureInfo su için bizim kalbimizi kırıyor.

Friday, August 18, 2006 8:28:27 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Thursday, August 17, 2006

System.Data.OleDb sınıfında muhtemel bir bug;

--quote
olecomSQL.CommandText =
"update faxids set localid=@Plocalid where gfiid=@Pgfiid";
olecomSQL.Parameters.Add(
new OleDbParameter("@Pgfiid", this.Tag.ToString()));
olecomSQL.Parameters.Add(new OleDbParameter("@Plocalid", txtDocNo.Text));
--unquote

parametrelerimiz @Plocalid ve @Pgfiid,
OleDbCommand türünden olecomSQL nesnesine eklenmesinde bir problem yok.
Fakat kod çalışmıyor.
Kısa bir araştırmadan sonra commandtext deki parametre bildirim sırasına göre yazdığımda çalıştığını gördüm.

yani;
--quote
olecomSQL.CommandText = "update faxids set localid=@Plocalid where gfiid=@Pgfiid";
olecomSQL.Parameters.Add(new OleDbParameter("@Plocalid", txtDocNo.Text));
olecomSQL.Parameters.Add(new OleDbParameter("@Pgfiid", this.Tag.ToString()));
--unquote

Eğer parametre girişi olarak ? bildirimini kullansaydık, buna normal derdim, fakat parametre ismi belirttiğimizden dolayı bu sorun bana muhtemel bir bug olarak geldi.

Thursday, August 17, 2006 10:44:56 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Saturday, August 12, 2006

Çevrimiçi el yazısı tanıma ile ilgili vakti zamanında yapmış olduğum bir projeyi sf.net e kaydettim.Projeye katılmak isteyen arkadaşlar için link;

http://sourceforge.net/projects/hattat

Saturday, August 12, 2006 11:52:35 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Wednesday, August 09, 2006

Bugün itibariyle MCAD - Microsoft Certified Application Developer ünvanına nail olmuş bulunmaktayım.

Wednesday, August 09, 2006 1:24:54 PM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Genel
 Tuesday, August 08, 2006

Şirkette QoS yapmamız gerekti.
ISA'da bandwith pooling desteği yok ne yazıkki.
Squid de ise detaylı bir pooling mevcut.

Senaryo:
Normal kullanıcılarım bir de Yöneticiler var.
Elimizde de 2048 bir adsl var, bunun 1024'ünü bizim QoS yapacağımız yazılımlara ayıralım.
Kalan 1024 de ise şu şekilde bir çıkış ayarlayalım;

Kullanıcılar hat dolu ise 512/hat boş ise 1024 çıksın
Yöneticiler ne olursa olsun 1024 çıksın.

konfigurasyon aşağıdaki gibi.

delay_pools 2
delay_class 1 1
delay_class 2 1
delay_parameters 1 128000/128000 #1024/1024
delay_parameters 2 64000/64000 #512/1024
delay_access 1 allow USERS
delay_access 2 allow !USERS

baya güzel çalışıyor. [Onur'a sevgilerimle]

Tuesday, August 08, 2006 10:36:55 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Server Systems

Skype'nin mobil cihazlar için sürümleri mevcut durumda fakat blackberry için sanırım hala desteği yok.Bu durumda 3rd party ler devreye girmiş.Aşağıdaki linkte 20 buddy'ye kadar sınırlı bir free Blackberry Skype yazılımı mevcut.20 ve üzeri için $ gerekiyor. :)

http://www.webmessenger.com/products/mimskype.htm

Tuesday, August 08, 2006 10:22:05 AM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Software
 Sunday, August 06, 2006

VOIP çözümleri uzun süre önce merdiven altında kurulan şirketlerin %50 ucuza yurtdışı telefon görüşmeleri satmasıyla gündeme girdi.Bu şirketler aslında ne legal ne illegaldiler.Yakalandıkları taktirde mahkeme ceza veremiyordu çünkü ceza hukukunda böyle bir madde yoktu sadece teknik ekipmana el konuluyordu.

Londra'yı TT üzerinden aramak için 1.44YTL ödeniyordu, fakat görüşmeler bu merdiven altı şirketlerden yapıldığında 0.72YTL'ye mal oluyordu.İşin güzel tarafı bu şirketler yurtdışında terminasyon yapan VOIP carrier firmalarına bu görüşme için sadece 0.18YTL ödüyorlardı.

Günler geçti TT bu özelleştirme yaptı lisanslar çıktı satıldı vs vs vs

VOIP teknolojisi ülkemizde sadece maliyetlerin düşmesi ile anıldı.Kimse bu görüşmelerin güvenirliğini sorgulamıyordu.Acaba görüşmelerim güvenilirmi? Network ağına sızabilecek phreacher(telekom hackerları) lar görüşmelerimi kaydedebilir mi?

Bir sistem mühendisi arkadaşımın keşfettiği bir problemi sizinle paylaşmak istiyorum.

A bilgisayarından skype hesabınıza login olun.
listenizdeki herhangi bir kişiyle yazılı mesajlaşmaya başlayın.

B bilgisayarından A bilgisayarında kullanmakta olduğunuz skype hesabıyla tekrar login olun.(A bilgisayarındaki hesabınızdan logout olmayın)

listenizdeki arkadaşınıza birkaç test mesajı gönderin.

Göreceksiniz ki bütün mesajlaşma B bilgisayarından takip edilebilmektedir.
VOIP paketlerinin de aynı şekilde her iki pc de gönderilip gönderilmediğini incelemedim fakat görünüşe bakılırsa hesap bilgilerinizi ele geçirmiş birisi sizin haberiniz olmadan yapacağınız görüşmeleri online olarak takip edebilir durumdadır.

Tabi bu sadece bir yazılımın açığı veya tasarımın köklü değişimlere izin vermemesinden kaynaklanan bir sorun olabilir.
Peki görüşmelerimizi nasıl güvenli bir şekilde yapabiliriz?
.....
.....
(devamı gelecek)

Sunday, August 06, 2006 9:57:59 PM (GTB Standard Time, UTC+02:00)  #    Comments [1] -
Internet | Security

Robotics, PIC programlama ile uğraşan arkadaşlar için ms den gelen çağrı.

http://msdn.microsoft.com/robotics/

Sunday, August 06, 2006 3:39:07 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Saturday, August 05, 2006

Formula 1 biletleri satın alabileceğiniz bir site.



www.voyagetrends.com

Saturday, August 05, 2006 1:18:14 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Monday, July 31, 2006

.NET Raporlama & Harici Rapor Dosyaları hakkında yazmış olduğum makale.

http://www.ceturk.com/Dersoku.asp?id=403

Monday, July 31, 2006 4:28:15 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Articles
 Tuesday, July 25, 2006

Mbsa kısaca network ağınızda bulunan bilgisayarların güvenlik açıklarını saptayabilmeniz için Microsoft tarafından ücretsiz olarak sunulan bir programdır.En beğendiğim özelliklerinden birkaçı:

1)Pc lere herhangi bir kurulum yapmadan kendi pc'nizden client pc'yi tarayabiliyorsunuz.Üstelik client çalışmaya devam ederken bu işlemi yapabilirsiniz.
2)Belli bir ip bloğunu tarayabiliyorsunuz (start ip - end ip) ki bu teker teker tarama yapılmasına göre çok daha hızlı.
3)Detaylı ve profesyonel bir raporlaması mevcut.Bulduğu açıklar hakkında ne yapmanız gerektiğini size bildiriyor, konu ile alakalı linkler veriyor.

not:Taradığınız makina üzerinde administrator hakkına sahip olmalısınız.

ilgili link : www.microsoft.com/technet/security/tools/mbsahome.mspx

Tuesday, July 25, 2006 3:43:56 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Server Systems

Paint Shop Pro ile bütünleşmiş bir arkadaşımın oğlum için yapmış olduğu çalışma.

Teşekkürler j-joey.

Tuesday, July 25, 2006 2:08:59 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
 Monday, July 24, 2006

Herkese selamlar,

Artık Yazılım geliştirme ve Sistem yönetimi ile ilgili deneyimlerimi sizinle buradan paylaşacağım.
Mevcut makalelerim;

yazgelistir.com

How to interpret handwriting with c# 2
http://www.yazgelistir.com/Makaleler/1000000804.ygpx
 
Smart Client & Click Once & VSTO
http://www.yazgelistir.com/Makaleler/1000000678.ygpx
 
How to interpret handwriting with c#
http://www.yazgelistir.com/Makaleler/1000000659.ygpx

Exception handling & management
http://www.yazgelistir.com/Makaleler/1000000642.ygpx

C# Boxing & Unboxing
http://www.yazgelistir.com/Makaleler/1000000607.ygpx

Methods & overloading them
http://www.yazgelistir.com/Makaleler/1000000605.ygpx

Using ini files in c#
http://www.yazgelistir.com/Makaleler/1000000600.ygpx

Notes on string concentration
http://www.yazgelistir.com/Makaleler/1000000598.ygpx

Sending email with c# using SMTP protocol
http://www.yazgelistir.com/Makaleler/1000000597.ygpx

Sending email with c# using SMTP protocol
http://www.yazgelistir.com/Makaleler/1000000596.ygpx

Sending email with c# using SMTP protocol
http://www.yazgelistir.com/Makaleler/1000000181.ygpx


csharphelp.com

Sending email with c# using SMTP protocol
http://www.csharphelp.com/archives4/archive637.html


c-sharpcorner.com

How to Interpret Handwriting with C#
http://www.c-sharpcorner.com/UploadFile/leventyildiz/interprethandwriting09022005081741AM/interprethandwriting.aspx?ArticleID=f10409c3-22ef-40e3-abda-d86412ba87d8


ceturk.com

Sending mail using Outlook.(VS60)
http://www.ceturk.com/ornekyukle.asp?id=22

QmailMsgMoreXmb Qmail queue reporting(Linux bash programming)
http://www.ceturk.com/ornekyukle.asp?id=163

Using excel files(VS60)
http://www.ceturk.com/dersoku.asp?id=2

Coding principals
http://www.ceturk.com/dersoku.asp?id=3

Using ini files in c#(VS60)
http://www.ceturk.com/dersoku.asp?id=4

Using word files(Vs60)
http://www.ceturk.com/dersoku.asp?id=1

Using system printers(VS60)
http://www.ceturk.com/dersoku.asp?id=5

Vb & MsSQL Using stored procs(VS60)
http://www.ceturk.com/dersoku.asp?id=6

Reading a <Long Text> field with Ado Getchunk method.(VS60)
http://www.ceturk.com/dersoku.asp?id=14

Using Triggers
http://www.ceturk.com/dersoku.asp?id=16

Sending mail using SMTP protocol.(with attachment)(VS60)
http://www.ceturk.com/dersoku.asp?id=18

Map Network Drive with VB()
http://www.ceturk.com/dersoku.asp?id=20

Visual Basic - 1
http://www.ceturk.com/dersoku.asp?id=27

Visual Basic - 2
http://www.ceturk.com/dersoku.asp?id=28

Visual Basic - 3
http://www.ceturk.com/dersoku.asp?id=171

Howto catch MDI form lostfocus event(VS60)
http://www.ceturk.com/dersoku.asp?id=268

Visual Basic - 4
http://www.ceturk.com/dersoku.asp?id=326

Visual Basic - 5
http://www.ceturk.com/dersoku.asp?id=327

Sevgi dolu günler,

 

Monday, July 24, 2006 1:15:18 PM (GTB Standard Time, UTC+02:00)  #    Comments [0] -
Genel
On this site
Sem's Open Source Blog System. - Sem Göksu Açık Kaynak Kodlu Blog Sistemi
The event 'X' can only appear on the left hand side of += or -= (except when used from within the type 'X')
Could not load file or assembly 'Microsoft.ReportViewer.WebForms
NetBT Error, EventID:4321
Catrix hilarious
Installing ESX 3i 3.5.0 to HP Dx2300 microtower with SATA HDD
MDI Child form resize problem.
Internet Software Studio
Hack
Suicide of a hacker.
The Gathering 1 - The gathering is about to begin
www.comiqs.com what a wonderful web site
Fast SCP for Esx Servers
Hack
Neden KIZIYORUZ?
How long did my Query took to execute and what are the statistics?
VmWare Esx 3.5 Update 2 Date Bug
XML Serialization of an Arraylist.
Windows update problem 0x8DDD0018
Upcoming movies "Avatar the last airbender" & "Transformers 2 the revenge of the fallen"
Power is important: power failure + vmware = invalid obsolete, solution; a little bit service commands
Süperkahramanlığa bir adım yaklaşmak... Superman & Spiderman
Teknik ve bir o kadar da komik bir yazı
teknoloji budur!!! :)
Nedir bu EGO nedir bu merak, nedir bu default.aspx de olma isteği
Transact SQL yazarken yapılacak en büyük hatalardan birisi :)
Galibiyet evlilik yüzüğüme mal oldu - Size tonlarca altın helal olsun çocuklar
Selected event does not fire - SqlDataSource'un Selected olayı çalışmıyor
References bölümünde yarattığınız assembly'nin görüntülenmesi, (GAC'a yüklemek yeterli olmuyor)
15 sene sonra ollie :)
Why Benji Smith hates frameworks :)
Yazılım Günlüğü PCNET'de
Microsoft 2008 Sunucu ve Yazılım Platformu Lansmanı
Key mi? ne key'i, key de ne? :)
DataView vs HashTable
Server.MapPath & App_Code
Gridview - Paging - DataSet
Master Cevat ALP
Bu son olsun.
Talep üzerine Using
2008
Bilinen komutlar - farklı kullanım yerleri - güzel sonuç
Oracle VM
Yazılım || Sistem uzmanı aranıyor...
Hep unutuyorum
Gündelik Başarı
İlk bilgisayar konfigurasyonu
SaaS & Virtualization - bringing the software & itsm into next level
Ex ŞirketGünlüğü
SaaS (Software as a service) ve Dağınık sistemler
Hacked miş hah
Yazılası msn nickleri
Superman using GoogleEarth
Semantik arama, metinle değil, resimle arama...
Another Day @ Microsoft
Yazıp kenara attığım bir makale...
HP - yer yerinden oynayacak
CeTURK .net & mobil teknolojiler semineri
Hattat @ Youtube
Matrix e 5 kala
Yolu yarıladık...
Fatih Kerim arkadaşımızın sorusu
Browser Helper Objects (BHO) - IE add-on
Tarabya Kemal Atatürk - İSTEK Pilav günü
Execute Dynamic SQL, Execute SQL on the FLY artık nasıl dersen...
Browser Helper Objects:dll başka bir process tarafından kullanılıyor.
registry okuma yazma çizme ...
Shaolin Kung-fu vs Karate
regexp::url,email
c# regex kullanımı
Post-It: t-sql cursor
Some-Wall
KapGetr
Uri sınıfı kullanımı
Birden fazla sitemap kontrolü kullanımı
Web Parts Aspnetdb problemi
Hakia - amaç aynı yöntem farklı vakit nakittir.
.NET 2.0 + IIS6.0 Kurulumu
Devir değişti
Tabloya add update delete mi? Olmazz oturup yazacaksın.
WinForm'un WindowState özelliğinin değiştiğini anlamak
Database den random olarak kayıtların okunması.
Yaş 3, İlk hack denemesi
SiteMap problemi
Taze mi? Evet yeni çıktı...
GridView kontrolü refresh problemi.
Atlas'dan Asp.Net Ajax Beta1'e geçen arkadaşlara
ASP.NET GridView DetailsView kontrolleri,ItemTemplates & Stored Proc Entegrasyonu
İyi ki doğdun be koçum
Tazelerrrr, Taze çıktı bunlaarrr
yazıCan
Hatayı yapan biz miyiz yoksa Localization departmanı mı?
Mobil cihazlar
WebForms & Windows Forms
.Net - Ms Excel - TYPE_E_INVDATAREAD
OleDb sınıfında muhtemel bug
HATTAT sf.net de başladı
MCAD
QoS ISA SQUID?
Blackberry için Skype
VOIP & dikkatimizin dağılması, [Skype problemi]
PICBasic den sıkılan PIC tutkunlarına
Formula 1 tutkunlarina
.NET Raporlama & Harici Rapor Dosyaları
MBSA - Microsoft Baseline Security Analyser 2.0
Spiderman Yiğit, j-joey e teşekkürler
Page_Load
Archive
<July 2009>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2009
Levent YILDIZ
Sign In
Statistics
Total Posts: 109
This Year: 7
This Month: 0
This Week: 0
Comments: 30
Themes
Pick a theme:
All Content © 2009, Levent YILDIZ
DasBlog theme 'Business' created by Christoph De Baene (delarou)