تبلیغات
پایگاه کد ها وسورس های مختلف زبان های برنامه نویسی
معرفی سرویس جدید پارسی باکس | اخبار آی تی ,

پارسی باکس راه اندازی شد !

این سرویس خیلی وقته راه اندازی شده و میتونم به جرعت بگم از جدید ترین و خوش آتیه ترین سرویس های پارسی زبان هست که توسط دوست خوبم هادی امین زاده و جمعی از دیگر افراد متخصص راه اندازی شده تا نیاز های وب شما را در اینترنت رفع کند. این سرویس تلفیقی از یک سرویس خبری ، یک سرویس وبلاگ نویسی و یک جامعه مجازی هست که با فناوری روز دنیا یعنی وب ۲ (آژاکس)  طراحی شده.

//در مورد تحلیل فنی این سرویس در بخش تحلیل سرویس های اینتر نتی مطلبی بزودی خواهیم نوشت.

نکته جالب توجه این است که این سرویس که هنوز فعالیت روتین و اصلی خود را در ضمینه ها مختلف شروع نکرده در اولین خبر سرویس خبری خود راجع به تاریخچه و  شرح فعالیت موضوعی این سرویس پرداخته. مدیران این سیستم در این سرویس از تمامی صاحب سبک ها و صاحب نظران وب فراسی رخصت طلبیدند و قبل از این که هر گونه رقابت و فعالیت جدی رفاقت خود را با تمامی صاحب نظران وب فارسی (از گروه آریا گستر تا گروه میهن بلاو پارسی بلاگ) اعلام کردند.

ما هم از همین حالا برای این گروه و این سرویس جدید پارسی آرزوی بهترین ها را میکنیم . با امید این که روزی پارسی زبان ها همان گونه که استحقاق شان را دارند بر وب دنیا حکومت کنند.


نوشته شده توسط دایرکتور در پنجشنبه 11 آبان 1385 و ساعت 12:11 ب.ظ
فراخوان دعوت به همکاری | عمومی ,

با سلام .

ضمن عرض تشکر بخاطر این همه لطفی که به من دارید و این همه بازدید که از اینجا بعمل می آورید (!) دوستان غرض از مزاحمت همونطور که در تیتر این پست ملاحضه میکنید میخواتم ازتون جهت شرکت در یک پروژه گروهی بزرگ دعوت بعمل بیاورم.

پروژه مذکور یک پروژه عمومی و بزرگ میباشد که در سطح وب اجرا شده و بزودی شاهد این پروژه در اینترنت خواهید بود.

جهت اجرای این پروژه به افراد زیر نیازمندیم. لازم به ذکر است که برای افراد داوطلب هیچ گونه شرایط سنی و تحصیلی خاصی در نظر گرفته نشده و فقط مهارت در اموری که بدان اشاره خواهیم کرد کافیست. این پروژه یک پروژه بسیار قوی و پیشرفته است که کار بر امور مختلف آن حتی با روزی یک ساعت کار نیز امکان پذیر است. این پروژه در فضای مجازی توسعه میابد و جهت ارسال کار نهایی فقط از طریق اینتر نت خواهد بود. اما موضوع خود پروژه فعلا سکرته.

به افرادی با مهارت ها زیر نیازمندیم :

      ۱- برنامه نویس جاوا اسکریپت (در حد قوی) 

     ۲- طراح و گرافیست صفحات وب

     ۴- طراح و برنامه نویس صفحات وب تحت پلاتفورم J2EE

از تمامی افراد با تخصص در ضمینه های فوق دعوت میشود تا در این پروژه همکاری بعمل آورند تا نامشان در لیست اولین افراد توسعه دهنده یک بنیاد وب قوی و پیشرفته پارسی زبان ثبت شود (!)

لازم به ذکر است جهت اعلام آمادگی در این باب با ای دی یاهو من (Saeed_Online2006) یا با اعلام نظر خود در نظرات این پست بصورت پنهان اعلام آمادگی کنند.

با تشکر از توجهتون !


نوشته شده توسط دایرکتور در چهارشنبه 10 آبان 1385 و ساعت 02:11 ق.ظ
بازم شروعی دوباره !!! | عمومی ,

بعد از یه مدت بسیار طولانی سلام (حدودا 10 ماه !!!) دوباره  قصد دارم که با هم شروع کنیم به بلاگ نویسی و بحث و آموزش در باره مباحث کامپیوتر و برنامه نویسی و طراحی وب و البته موضوعات دیگری.

در مورد این شروع  جدید که تقریبا سومین شروعی هست که دارم دربارش اینجا مطلب مینویسم . (!)

در این مدت سرم گرم خیلی مباحث برنامه نویسی پیشرفته مث مبانی کلی و کاربردی J2EE و دات نت و کولد فیوژن و پی اچ پی بوده که قول میدم با آپ دیت های پشت سر هم این مبحاث رو کمی با هم کار کنیم.

وقتم رو بطور کلی دیگه به درس و تست و جزوه اختصاص دادم و طبق برنامه هفته ای یک یا خیلی زیاد دو بار میتونم بیام چند ساعتی پای اینترنت که همش به همین وبلاگ اختصاص خواهم داد. و کلا شاید کم تر از هفته ای 5 یا 6 ساعت بتونم برای برنامه نویسی وقت بذارم که اونم قصد دارم برای یه کار پیشرفته و جدید و خوش آتیه بذارم که راجع بهش حرف هایی خواهم زد.  راستی تو این مدت هر چند وقت یک بار شاهد میل هایی از بازدید کنندگان بودم که موضوعاتی از قبیل درخواست آموزش و توضیحات داده بودند ، از این که پاسخشون رو نه در بلا و نه در ایمل دادم همینجا عذر خواهی میکنم سعی می کنم در این دوره  بیشتر جواب های نظرات مختلف شما رو بدم. (البته اگه لطف کنید سوالات تون رو از طریق نظر پنهان ارسال کنید زود تر جواب خواهید گرفت تا ارسال آن بویسه ایمیل )

اما یه نکته راجع به اینجا ! من تو این مدت میخواستم یه بلاگ شخصی برای خودم ایجاد کنم که تو چند تا محیط این کار رو کردم اما جواب نداد و بازدید ها حتی به روزی یک نفر هم نمی رسید ! برای همین با توجه به بازدید های بالا از این بلاگ تصمیم گرفتم دوباره این بلاگ رو راه اندازی کنم  برای همین خواهش میکنم  اگه نظر یا پیشنهادی برای بهبود اینجا دارید مطرح کنید تا بتونم بهتر در خدمت باشم.

در آخر هم تغییراتی در قالب و موضوعات ارسالی دادم تا با محتوای جدید بلاگ بیشتر بخونه.

در ضمن اگه فردی هم مایله که در ضمینه های جدید ایجاد شده با ما همکاری کنه (چه از نظر خبری ، چه از نظر اموزشی ) به ای دی یاهو من پی ام ارسال کنه و با انجام بررسی ها و چند تا سوال ساده شما هم به جمع نویسندگان این بلاگ بپیوندید.

(بعبارت واضح تر قصد دارم تا اینجا رو بصورت گروهی اداره کنم تا زنده تر و بروز تر باشه)

خب بیشتر معرفی بمونه تا ارسال های سری جدید  که قول میدم تا جایی که در توانم باشه زود به زود ارسال بشن.

تا بعد

E-Mail : Saeed.taghvaee@gmail.com

            YID : Saeed_online

 


نوشته شده توسط دایرکتور در یکشنبه 7 آبان 1385 و ساعت 10:10 ق.ظ
شروعی دوباره ؟؟؟؟؟ | عمومی ,

تو این مدت میه گفت به قدری از اینجا دور بودم که حتی یوزر و پسوردش هم یادم رفته بود . تنها چیزی که از اینجا داشتم سیر نظر ها و ایمیل ها بود (!!) که اززم میخواستم وبلاگ نویسی رو ادامه بدم و .....

اما الان دوست دارم مث قدیما دوباره شروع کنم به وبلاگ نویسی ... هر چند هم که خواننده و نظر نداشته باشم . هر چی که باشه ما عقده نظر و خواننده که نداریم همین که در روز ۲ یا ۳ نفری بیان و از اینجا دیدن کنند و نظری بدن بسه مونه.

بخوام از کارایی که که کردم و قصد دارم رو وبلاگ پیاده کنم حرف بزنم باید دو سه روزی بنویسم اما فقط به مهماش و غیر محرمانه هاش اشاره ای کوچیک میکنم :

اول : تا به اینجا اگه یادتون باشه بیشتر مطالب و سیر آن ها به سمت دات نت بود اما الان یه خورده وسیع تر و قوی تر و تخصصی تر کار میکنیم و موضوعات کولد فیوژن - پی اچ پی نیز اضافه شده و به زودی بخش جاوا و اپلت نویسی هم اضافه میشه ... هممانطور که میبینید در شروع دوباره وبلاگ بیشتر تمرکز و اصلیت کار روی طراحی وب رفته و از فعالیت های اضافی و پراکنده دوری شده

دوم : گروهی تشکیل شده به نام کد ویج (www.codevig.com) که سفارش سورس و نرم افزار و فروش سورس و نرم افزار رو به عهده داره و شما میتونید اونجا برنامه هایی رو که میخواهید بفروشید به سادگی به فروش برسانید یا برنامه و سورس هایی که لازم دارید و میخواهید بخرید به راحتی بخرید. این سایت توسط سایت اصلی ایران ویج (www.iranvig.com) ایجاد و پشتیبانی میشود و علاوه بر ایجاد رابطه میان برنامه نویسان و نیازمندان به کد سفارش های نرم افزاری شما رو میگیره و در صورت میسر بودن آن را به گروه برنامه نویسی بسیار قوی میسپره تا در سه صوت سفارشاتون اماده شه.

سوم: در این بین من به دو زبان وب بیس پی اچ پی و کولد فیوژن کمی کار کردم و در این بین آموزش های مقدماتی برای آشنایی و همراه شدن شما میذارم که افرادی که تازه قصد شروع رو دارن شروع کنن .

نکته : چون که این دو زبان وب بیس منابع فارسی زبان و کتا بهای کمی در ایران دارند از ابتدا اموزش داده میشه ولی زبانی مثل سی شارژ یا دلفی به علتت زیاد بودن منابع فارسی و انگلیسی دیگه از ابتدا مرور نمیشه ولی به هر گونه سوال در باره این زبان ها پاسخ داده میشود

چهارم : پارس پی سی که یکی از دوستان در موردش پرسیده بودن رو دیگه به مرحله اجرا نرسوندم چون فعالیت های گروهی افزایش یافت و دیگه اون سایت نیازم من رو بر طرف نمیکرد ایشالله سایت اصلی گروه مون که توش مطالب این وبلاگ و صد البته کلی چیز جالب دیگه (دیگه این چیزای چیه سکرته!!) به زودی در دومینی دیگه آماده میشه .

در ضمن دبلیو ام تی هم به خاطر مشغلات روزانه ام کلا روندش از کاار افتاد ولی شاید بعدا چیزی جالب در نوع وقالبی متفاوت اما با همون مضمون بیاد که اخبار بیشترش رو بعدا میگم ....

اما در آخر هم بگم که در سری جدید سعی دارم روند کار رو بیشتر بهبود بدم اگه نظر و سوال و انتقادی بود من گوش به فرمان شما هستم

منتظر پست های اصلی بعدی باشید .....


نوشته شده توسط دایرکتور در سه شنبه 27 دی 1384 و ساعت 04:01 ق.ظ
الگوریتم های فشرده سازی | مقالات چند بخشی ,

سلام به تمامی دوستان خوبم !!!

امیدوارم همیشه خوش و سرحال و روبه راه باشید !

دوباره با خودم عهد بسته بودم تا کسی یه نظر نداده یه خط ننویسم ! ولی خوب نه به این فاصله ! راستیتش هم کلی در گیر بودم هم یه مشکل برای مودم و کل کامپیوترم پیش اومده بود هم یه مسافرت فوری فوتی و خلاصه ابرو باد و خورشید و مه و فلک دست در دست دادن تا ما وبلاگ نتونیم بنویسیم !!!!

والا در مورد در گیری هام بخوام بگم که باید تا فردا بشینم صحبت کنم ولید ر گیری اصلی ام این آخریا راجع به همین سیستم مدیریت محتواس ! که احتمالا  کلا این سیستم منتفی شه و برم سراغ یه سایت خوب و توپ برنامه نویسی و طراحی اون که بازم به خاطر یه سری مشکلات وقت نکردم طراحی شون کنم !!!!!

موند تا این که یه روز داشتم یه مثال ساده کار می کردم یه سیستم وبلاگ نویسی ساده که  تو ذهنم زد که اینو گسترش بدم شاید  تقیو به توقی خورد و اتفاقی افتاد  !!!!  برای همین فلا دارم رو یه سیستم وبلاگ نویسی با امکانات خوب با دات نت کار می کنم ! که البته قول نمی دم که خیلی خوب و عالی باشه ! ولی تمامی امکانات میهن بلاگ { که بهترین سسیتم بلاگ نویسی از نظر امکاناته } رو داراست ! ولی اصلا خیال ندارم وبلاگم و سیستمش رو عوض کنم !  و این محصولات رو فقط برای عرضه نوشتم !!!

البته  این روزا که نسخه بتا و جدید میهن بلاگ رو با دات نت نوشتن خیلی میهن بلاگ افت کرده ولی بازم کار هاش رو دوست دارم !!! ولی وقتی اون سایت خوب آماده شه علاوه بر امکانات خوبش امکان وبلاگ نویسی رو حداقل برای خودم گذاشتم ایشا... تا اون موقع وبلاگ رو همین سیستم پیاده خواهد بود !  اما این پست

آقا براتون یه سری توضیح با زبان ساده از الگوریتم های فشرده سازی فایل ها اوردم بری کیف عالم رو بکنین ! که بعضایش کار منه و بعضیاش کار دوستانم !

لینک هارو برین دریفت کنین و نظر هم بدین !

http://www.csharp.persiangig.com/document/Alghorithm.zip

http://www.csharp.persiangig.com/document/Algorithm2.zip

http://techmix.persiangig.com/Compress[1].pdf

اینا همه به زبان فارسی هستند و خیلی هم ساده موضوع رو مطرح کردند و کار کردند خیلی مفیدن  !!!!!

اما قسمت بعدی هم دوتا سورس مامانی تو دل برو دات نت {سی شارپ و وی بی} برای ااین الگو هاست امیدوارم مفید باشه

اولی الگوی انکد کردن با(( آر لی ای)) هست که به زبان سی شارپ و توسط من نوشته شده :

private string looped;//Dim looped() As String (Char Hayeh Tekrary!!!)
            private string sh;

public string RLE(string str)
      { 
         sh=null;
         looped=str[0].ToString();
         int len=str.Length;//Dim len As Integer=Len(str2)
         char lastchr;//Dim lastchr As String
         try
         {
            for(int b=1;b!=str.Length;b++)//For b=1 To Len(str2(i)
            {
               lastchr=str[b-1];
               if(lastchr==str[b])
               {
                  looped=looped+str[b];
               }
               else if(lastchr!=str[b])
               {
                  looped+="|";
                  looped=looped+str[b];
               }
            }//End For
            string[]after=looped.Split("|".ToCharArray());
            for(int i=0;i!=after.Length;i++)
            {
               sh+=after[i].Length.ToString()+after[i].Substring(0,1);
            }
            //sh=sh.Replace("|","");
         }
         catch(System.Exception ea)
         {
            MessageBox.Show(ea.Message);
         }
         return sh;
      }

الگوی بعدی هم الگوی ددیکد کردن این الگوریته که به زبان وی بی دات نت و توسط دوست عزیزم امیر نوشته شده  :

Public Function RLD(ByVal TxtInput As String) As String
        Dim nextB, newB, Tekrar, outT As String
        Dim i, d As Integer
        i = 1
        Do Until i > Len(TxtInput)
            nextB = Mid(TxtInput, i + 1, 1)
            newB = Mid(TxtInput, i, 1)
            If IsNumeric(newB) And IsNumeric(nextB) = False Then
                For d = 1 To newB
                    Tekrar = Tekrar & nextB
                Next
            Else
                If Len(Tekrar) > 0 Then
                    outT = outT & Tekrar
                    Tekrar = ""
                Else
                    outT = outT & newB
                End If

            End If
            i = i + 1
        Loop
        Return outT
    End Function

خب امیدوارم مفید واقع شده باشه !!! آقا نظر یادتون نره ها !!!!


نوشته شده توسط دایرکتور در یکشنبه 27 شهریور 1384 و ساعت 06:09 ق.ظ
......... | عمومی ,

با خودم عهد کرده بودم تا وقتی کسی یه کامنت نذاره دیگه یه کلمه هم ننویسم ! خوشبختانه این کشید تا بالاخره یکی یه کامنت گذاشت و دل ما رو شاد کرد !

خب من بعد از عمری بر گشتم ولی با یه خبر خوش ! کم کم قراره خود کفا بشیم و یه وب سایت خوب برای رد و بدل کردن اطلاعات با هم بذاریم ! یه وب سایت خط به خطش کار خودمه و طراحی اش هم همین طور ! خبر خوش بعدی اینه که یه گروه برنامه نویسی یا امینیتی تشکیل بدیم که نامش فعلا Pras-PC یا PPC {بر وزن BBC}

قراره برای کار اولمون یه فایر وال امنیتی طراحی کنیم که با سرعت و امنیت خوب از سیستم شما محافظت کند . خبر بعدی اینه که قراره این وب سایت ما نمونه ای آزمایشی روی وب از همون سیتم مدیریت محتوای ما باشه پس این WMT بعد از تشکیل وب ما منتشر میشه !

راستی قسمت دیتا بیس این وب آماده شد ! این بدین معناست که امکانات اصلی وب سایت ما {در کل WMT ما} معلوم بشه :

-- ارسال پست برای مدیران و كاربران {به همراه سیستم مدیریت این پست ها برای ارسال كنندگان و مدیران}
2-- امتیاز دهی به پست ها {برای هر كامپیوتر فقط 1 امتیاز}
3- ارسال كامنت و نظر برای هر پست
4- اعلانات سایت برای مدیر
5- نظر سنجی صفحه اول سایت + ثبت نظرات كاربران
6- بستن ای پی كاربران بد!!! {فقط مدیران}
7- لینكستان كامل و توپ و مرتبط همچون خود پی اچ پی ناك
8-شاخه های فعالیت 
9- موضوع های فعالیتی 
10-ثبت نام كاربران در سایت به دو سطح كاربر معمولی و مدیر {مدیر شدن یكی دیگه رو مدیر اصلی اعلام می كنه}
11- بستن كاربری ها
12- آپ لود فایل در هر پست و بهراه تصویر نمونه + فایل منیجر برای مدیران
13-فروم با تمامی امكانات پی اچ پی بی بی {یعنی نام نویسنده و مشخصات و موضوع ویا قفل شدن شاخه های و زیر شاخه های مموضوعی و ....}
14-بخش دانلودد برای معرفی برنامه ها دانلودی {بخش پر طرفدار}

این سیستم هنووز نامش دبلیو ام تی هست و تازه داریم رو ماژول های اولیه اش کار میکنیم ولی با ااین وجود هنوز معلوم نیست که زمان انشار و یا پابلیک این سیستم کی هست !؟؟

خوب دیگه خسته تون نمی کنم امروز اگه حسش بود {که فکر نکنم باشه} براتون آموزش دلگیت رو در سی شارپ می ذارم

ما رو از نظر های خودتون بی نصیب نذارین !!


نوشته شده توسط دایرکتور در سه شنبه 25 مرداد 1384 و ساعت 11:08 ق.ظ
گذری بر Delegate ها در سی شارپ | برنامه نویسی کاربردی ,

با سلام خدمت تمامی بینندگان محترم و گرامی این وبلاگ !

آقا امروز می خواهم یه گذر ساده و راحت بر روی دلگیت ها داشته باشیم و کاربرد اون ها رو بیان کنیم و چند تا مثال کاربردی رو به همین شکل با هم مرور کنیم !

ما بار ها و بارها در دنیای بی همتا برنامه ننویسی این جمله قصار رو شندیه ام که :

"تمامی زبان های تحت دات نت چون یک کامپایر دارند دارای یک قدرتند هیچ فرقی بین آن ها نیست !"

بعد از آن هم دیده ایم که هزاران نفر تایید می کنند و می گن  هیچ فرقی نمی کنه ! ما هم از خدا بی خبر میگیم آره دیگه و دوباره تو یه جای دیگه میشینیم این حرف رو می زنیم و یه سری فرد بی سواد که اکثرشون از برنامه نویسی فقط افه  و تقلیدش رو بلندند هم عین یک خر سرشون رو می امدازند پایین و تایید می کنن ! {بی ادبی  نشه ولی این عده حیف روشون اسم این حیوان محترم رو بذاریم !}

آقا زیاد از بحث خارج نشیم که یهوو موردی پیش نیاد ! اصلا ما رو چه به این افراد معلوم الحال ! خوب آقا بریم سر بحث شیرین و جالب و باغلوای برنامه نویسی ! از حرف های بالا حتما فهمیدید که می خواهم بگم که زبان های دات نت با اینکه در کامپایل یک برنامه  عادی میشن ولی در کل زمین تا آسمون فرق دارن ! در اصل کلوم کار ما انجام میشه ولی در بعضی از زبان ها شیرین تر و در بعضی دیگه به سختی تر !!!! یکی از ویژگی هایی که در زبان سی شارپ به عنوان یک امتیاز مثبت و یک صفت خوب تلقی میشه دلگیت هاست ! {آقا لطفا به این طوری تایپ کردن ایراد وارد نفرمایید دیگه مجبورم !!}  حالا این چیه و به چه درد می خوره و ... رو یک خط پایین تر می گم : ->

برای این که افرادی که از زبان های برنامه نویسی دیگه میان و حال و حوصله حاشیه رفتن و بحث های ابتدایی رو ندارن بگم که دلگیت یعنی یه اشاره گر !! به همین سادگی !! چه طوری باید از این اشاره گر استفاده کرد یا اون رو تعریف کرد در پارگراف زیری نه پارگراف بعدیش میگم !!

اما یه تعریف هم برای افراد تازه کاری که سی شارپ اولین زبان برنامه نویسی شون هست ! بزارین یه مثال بزنم ! آقا شما حتما اینو می دنید که یک پراپرتی یک فیلد هوشمند و کارا می باشد ! دلگیت هم یک متد هوشمند می باشد ! اما چه جوری !؟ خوب برای این که بهتر رووشن تون کنم یه تعریف کلی و اجمالی از دلگیت می کنیم : دلگیت عبارت است از  یک اجرا گر متد ! باز بخوام واضح تر بگم : دلگیت یعنی غالب یک متد بدون بدنه که بدنه این متد ها را شما براش آماده می کنید ! اونم به هر تعداد که بخواهید ! از تعریف بالا می توان به این شکل استباط کرد که یک متد داشته باشیم که مقدار بازگشتی اش و پارامتر هاایش معلوم باشد ولی بدنه و دستورات آن معلوم نباشد ! اما حالا این بدنه که اصل کاری است رو  باید چه کنیم ؟ خیلی سادس این بخش رو برای کاربر  آزاد می ذاریم ! یعنی به کاربرمون می گیم که توو بیا و یه متد بنویس با این پارمتر ها و این مقدار بازگشتی و سپس اونو در  یک شی دلگیت رجیستر کن ! حالا این دلگیت می دونه که هر وقت هر جا خواست این پارامتر ها رو پاس بده ! اما خوب بذارین  یکم از تعاریف جدا شیم و با کد ها موضوع را بیان کنیم ! اگه آموزش توابع و اشاره گر های بخش دلفی رو بخونید می بینید که در ای پی ای انوم چایلد ویندوز  این امکان رو به مت میده که ما با  هندل پنجره های فرزند یک پنجره اصلی هر کاری بخواهیم بکنیم ! مثلا کلاسشون رو محاسبه کنمی ویا کپشن اون ها و ... ولی در پارامتر های ورودی این تابع هیچ اثری از یک  پارمتر که به ما هندل بده نبود ! بلکه به ما اجازه داده بود تا یک تابع با مقدار بازگشتی و پارمتر های معلوم بنویسیم  و اونو به به صورت یک اشاره گر پاس بدیم ! به زبون خودمونی میگه که کار از تو هندل و پارمتر پاس دادن از من ! خوب حالا این دلگیت هم دقیقا می گه متن تابع از تو پاس دادن مقدار ها یه جای دیگه از من !

اما خوب حالا که یک دلگیت رو بیشتر شناختمی بهتره روش کار با اون رو بیان کنیم ! خوب  طبعا با توجه به توضیحات بالا ما باید یک شکل از قالب یک تابع بودن بدنه رو داشته باشیم اما برای این کار باید چه کنیم ؟ باید یک دلگیت بنویسیم  به این غالب که :

{public|private} delegate {your_return_typ} Your_delegate_name({Your_Prametr})

خب همانطور که میبینید ما از یک غالب ساده که بسیار شبیه به یک متد می باشد استفاده کردیم فقط با این فرق که در ابتدای آن از کلمه کلیدی دلگیت استفاده کردیم ! فقط توجه داشته باشین دلگیت یک نوع جدا از کلاسو یا استرکچر یا اینتر فیس میباشد لذا بای خارج از محیط کلاستون اونو تعریف کنید !

برای مثال یک دلگیت که یک رشته میگیره و هیچ مقداری بر نمی گردونه به این شکله :

public delegate void MyDelegate(string str);

خب حالا برای استفاده از این دلگیت ما باید یک متغیر از آن بسازیم :

MyDelegate mydeg;

و برای مهم ترین قسمت کار یعنی ثبت متد  و یا متد ها باید کار زیر رو انجام داد :

ابتدا یک متد باید به همون مشحصات دلگیت تعریف کنیم به این شکل که از اهمون پارامتر هم استفاده می کنیم ! برای یک مثال ساده ما به این شکل از اون استفاده می کنیم !

public void test(string a)
{
 Console.WriteLine("Iam {0} From Iran",a);
}

خب تا این جای کار که خیلی ساده بوده اما از اینجا به بعد ساده تر هم میشه ! تنها کاری که مونده اینه که به این جناب دلگیت بگیم که  ما این متد رو به تو میدیم به این شکل :

mydeg=new MyDelegate(test);

خب آخرین مرحله مون ما باید به خود دلگیلت پارامتر هاش رو پاس بدیم که دلگیت هم به متد ها یش پاس بده اونم به این شکل :

mydeg("Vahid");

خب حتما الان دارین به من قش قش می خندین و می گین که طرفمون دیوونه س خدا شفاش بده !! اما اشتباه نکنین ! درسته که منم می تونستم خیل ساده همون متد رو به کار ببرم و بهش همون پارامتر ور پاس بدم اما همیشه کار به این شکل نیست ! بهتر بگم هیچ وقت کار به این شکل نخواهد بود ! میگی چرا الان بهتون می گم : ببینید در یک دلگیت ما می تونیم بی نهایت متد به همون غالب معرفی کنیم و در نهایت اجراش کنیم ! بذارین روشن تر تون کنم !  الان من برای همون دلگیت یک متد دیگه می نویسم با همون غالب به این شکل که :

public void test2t (string va)
{
 Console.WriteLine("Iam {0} , I am not from German",va);
}

خب حالا اگه من به همون متغیر دلگیت مون من این متد رو نیز اضافه کنم :


mydeg+=new MyDelegate(test2t);

و در نهایت مثل بالا اونو صدا بزنم :

mydeg("vahid");


نتیجه بسیار شیرین خواهد بود ! چون ما توانستینم دو متد رو هم زمان اجرا کنیم ! اما اگه بازم از این فناوری خوشتون نیومد به ادامه متن  توجه کنین :

۱- فرض کنین دارین یه برنامه واسه یه شرکت می ننویسین که قراره تون اون با وارد شدن یک مقدار به دیتا بیس هم زمان یک ایمیل برای یک فرد فرستاده بشه یک مقدار در دیتابیس ذخیره بشه یک صحه با توجه به ورودی پرینت گرفته بشه ! خوب اگه دقت کرده باشین همه این متدها یک شکل پارامتر می خواهند و همه خروجی ندارند ! خوب حالا می توان یک دلگیت نوشته  سپس یک شی از آن ساخت و این متد هارا به آن متغیر اضافه کرد و در نهایت هر جا که خواستیم به متغیر دلگیت مقدار ها رو پاس بدیم می بینید که نتیجه شیرین تر و دلچسب تر از هر چیزی خواهد بود !

۲- اصلا اگه بالا شما رو متقاعد نکرد هیچ ! به این کیک مثال توجه کنین ! فرض کنین دارین یه برنامه تحت شبکه می نویسید که در اون یه متد می نویسید ! حتما می خواهید برای اون یه رخداد بنویسید که به طور مثال هر وقت فلان پیام رسید یه کاری انجام شه ! حتما می دنید که در ایونت ها کاربر یه متد باید پاس بده شما کافیه یه شی دلگیت بنویسید ! ویک یک ایونت از اون شی دلگیت بسازید ! بله درست فرک کردید شما با دلگیت ها قادرید  ایونت های شخصی خودتون رو بنویسید ! اما چه طوریش رو بزاریم واسه جلسه بعدی !!

خب حتما دیگه فهمیدی کار دلگیت چیه و واقعا چه قدر برای برنامه نویس کاربرد داره !! همچنین روش کار با اون ها رو یاد گرفتید !

راستی تا یادم نرفته اینم بگم که متد های استاتیک هم قابل رجیستر در یک متغیر از یک دلگیت هستند ! خوب یگه واقعا خسته شدم ! امیدوارم بدردتون خورده باشه !

حتما مار واز نظر ها و انتقادات و پیشنهادات خودتون بی نصیب نذارید !


نوشته شده توسط دایرکتور در سه شنبه 25 مرداد 1384 و ساعت 08:08 ق.ظ
کار با دیتا بیس ۲ | برنامه نویسی کاربردی ,

سلام !

امروز براتون قسمت دوم آموزش کار با دیتا بیس در دات نت رو آوردم ! البته برای اینکه به حق کاربران سی شارپ هم احترام بگذاریم ! این آموزش رو با سی شارپ أآموزش می دهم !

نکته : هیچ فرقی بین وی بی دات نت و سی شارپ برای کار با دیتا بیس و دیگر کار ها نیست ! همانطور که می دانید چه دیتا بیس در دات نت چه هر فضای اسمی و کلاس دیگری در تمام زبان های برنامه نویسی تحت دات نت یک الگوی کار دارند و تنها فرق بین این زبان ها سینتکس آن ها و نوع دستورات شون هست وگرنه همه زبان های تحت دات نت از یک کتابخانه استفاده می کنند به نام اف سی ال ! پس شما می توان با کمی تغییر این آموزش ها را به هر زبانی دیگری تحت دات نت تغییر دهید


همانطور که گفته شد ببرای کار با دیتا بیس تحت دات نت ما دو راه داریم که اولین قدم مشترک در این دو راه  اتصال به دیتا بیس و باز کردن اتصال و قدم پایانی بستن اتصال بود اما امروز می خواهیم در قدم دوم شما را آموزش دهیم و یاری کنیم ! قسمت بعدی که مهم ترین و اصلی ترین قسمت می باشد دادن فرمان به دیتا بیس با زبان اسکیوال و واکشی داده !

خب حال ابتدا برای اینکه پس از ساختن کانکتشن و اتصال به دیتا بیس شما باید یک کار برر روی دیتا بیس انجام دهید این کار ها و فرمان ها دو نوع هستند . اول فرمان هایی که یک سری مقدار را از دیتا بیس واکشی می کنند  که دارای خروجی هستند . دوم فرمان هایی که یک کار از قبیل حذف یا افزودن و یا ویرایش و .... را بر روی یک فیلد انجام می دهند که طبعا مقدار بازگشتی ندارند .

در ای دی او دات نت اکثر دستور هایی که مقدار باز گشتی دارد با استفاده از شی OleDbAdapter بر روی دیتا بیس اجرا میشوند و با استفاده از متد Fill مقدار ها مورد نظر در یک دیتا ست واکشی می شوند . همچنین دستوراتی که مقدار بازگشتی ندارند با استفاده از شی OleDbCommand بر روی دیتا بیس با متد ExecuteNonQuery اجرا می شوند .

نکته : دستوراتی که مقدار بازگشتی دارند نیز میتوان با استفاده از OleDbCommand واکشی نمود اما نه به شکل دیتا اداپتر بلکه با متد ExecuteReader و همچنین با مقدار بازگشتی جدیدی با نام DataReader که در جلسه بعد بیشتر در باره این شی حرف می زنیم

برای مثال کاربرد شی اداپتر و نوع کار با آن به شکل زیر می باشد :

OleDbConnection con1=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=e:\db\users.mdb");
DataSet ds=new DataSet();
con1.Open();
OleDbAdapter ad=new OleDbAdapter("SELECT * FROM usrdt",con1);
ad.Fill(ds,"usrdt");
con1.Close();

در این مثال ساده پس از ایجاد ارتباط یک شی آداپتر ساختیم با فرمان واکشی تمام داده های موجود در جدول usrdt در دیتا بیس مون که شما می توانید با نام جدول دیتا بیس خودتون ست کنید . سپس با استفاده از متد فیل تمام داده های موجود را در یک دیتا ست ریختیم . در نهایت اتصال را بستیم !

نکته : نام جدول موجود در دیتا بیس خود را همیشه در متد فیل پاس کنید ! چون ممکنه بعدا براتون مشکل ساز بشه !

این الگو کار آمد ترین و بهترین روش موجود برای گرفیتن داده از دیتا بیس می باشد . در مورد شی دیتا ست هم در جلسه بعد بیشتر می گویم !

اما درمورد داده هایی که مقدار بر نمی گردانند شما باید از شی دیتا کامند استفاده کنید. این شی در  پارامتر اول سازنده خود یک دستور اسکیوال می گیرد ویک شی کانکتشن سپس اگر  در دستور اس کیوال خود پارامتری داشتید آنرا با پرا پرتی پارامتر شی کامندتون ست کنید و در نهایت با متد اکسکیوت نون کوئری  فرمان را در دیتا بیس خود اجرا کنید !

نکته : برای اجرای دستورات در دیتا بیس باید به زبان ساده اس کیو ال مسلط باشید . برای این که این زبان ساده را یاد بگیرید می توانید از منابع وب مختلفی استفاده کنید از قبیل : ماکرو مدیا ایکس (فارسی)  یا ام اس دی ان و .... مراجعه کنید ولی اگه یکم دندون رو جیگر بذارید پس از آموزش های دیتا بیس دات نت این بخش هم براتون آموزش می دهم

خب قالب ساده یک دستور با استفاده از شی دیتا کامند به شکل زیر می باشد :

OleDbConnection con1=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=e:\db\users.mdb");
DataSet ds=new DataSet();
con1.Open();
OleDbCommand comm=new OleDbCommand ("INSERT INTO usrdt (name, fname, addres)
VALUES (@ss, @aa,@dd)",con1);
comm.Parameters["@ss"].Value=textBox1.Text;
comm.Parameters["@aa"].Value=textBox2.Text;
comm.Parameters["@dd"].Value=textBox3.Text;
comm. ExecuteNonQuery();
con1.Close();

خب غالب دستور بالا بسیار ساده می باشد . در اینجا ما پس از وصل شدن به دیتا بیس و باز کردن اطلاعات یک شی دیتا کامند ساختیم با این دستور که یک سری مقدار به دیتا بیس وارد کنه که این مقدار ها در فیلد های name, fname, addres قرار می گیرند . در قسمت بعدی از همین دستور اسکیوال ما با دستور ولیوز می گوییم به ترتیب که در فیلد های name, fname, addres مقدار های مورد نظر را قرار دهد . سپس کانکتشن رو معرفی کردیم . بعد هم همانطور که در دستور اسکیوال واضح میباشد ما باید مقدار های پارامتر ها مون رو مشخص کنیم ! یعنی بگیم که چه مقدار هایی رو در دیتا بیس وارد کنه .

نکته : البته برای این کار می توانستیم که این کار را بدون  پارمتر اسکیوال انجام دهیم اما برای  این که روش کار با پارامتر ها بهتر فراگیرید من به این شکل عمل کردم . در صورتی که می خواستید مستقیما یک مقدار وارد کنید به طور مثال بجای @dd یک به یک پارمتر اسکیوال اشاره می کند میتوانستیم مستقیما مثلا مقدار 'iran - tehran- ...' رو وارد می کردیم . در این صورت هنگام ورود داده مقدار ذخیره میشد

در قسمت بعدی هم مقدار های پارمتر را ست کردیم . با استفاده از پرا پرتی پارامتر در این شی . وقتی تمام کار ها لازم رو انجام دادیم برای ایجاد تغییرات  از متد ExecuteNonQuery استفاده کردیم و داده را بروز کردیم .


به همین سادگی بخش دوم کار با دیتا بیس در دات نت را فرا گرفتید . در قسمت بعد که مرحله ی نهاییمی باشد یا دمیگیرید که چگونه داده ها را در یک کنترل ساده نمایش دهید . همچنین اشیای دیتا ست و دیتا ریدر هم مورد بررسی قرار میگیرند .

خب حال اگه نظ و انتقاد یا پیشنهادی داشتید می توانید در همین کامنت مطرح کنید


نوشته شده توسط دایرکتور در سه شنبه 4 مرداد 1384 و ساعت 07:07 ق.ظ
نوشته های پیشین
+ معرفی سرویس جدید پارسی باکس+ فراخوان دعوت به همکاری+ بازم شروعی دوباره !!!+ شروعی دوباره ؟؟؟؟؟+ الگوریتم های فشرده سازی+ .........+ گذری بر Delegate ها در سی شارپ+ کار با دیتا بیس ۲ + ارتباط با دیتا بیس ..... + افزودن یک ایتم منو به فلش پلیر+ عذر خواهی وکوکی+ پروسس ها در دات نت+ تغییر آدرس وبلاگ + اشاره گر ها و توابع + آموزش ASP.NET شماره ۱

صفحات: 1 2