درباره نویسنده و نوشتن کتاب F#
در سال 2003 دنبال راهی برای پردازش IL که زبان میانی مورد نیاز برای کامپایل تمام زبانهای .Net میشد میگشتم. در آن زمان .Net تقریبا جدید بود و گزینه های زیادی برای این عمل وجود نداشت. من به سرعت دریافتم که بهترین گزینه در آن زمان یا حتی امروزه API به نام ABSIL است که به زبانی ه نام F# نوشته شده بود و من تصمیم گرفتم از این زبان برای نوشتن برنامه ای برای دسته بندی ABSIL استفاده کنم. بنابراین من از این طریق میتوانستم اطلاعات مورد نیاز را از DLL ها به شکل مورد استفاده تراز C# استفاده کنم. اما چیز جالبی در زمان نوشتن این دسته بندی اتفاق افتاد. با وجو اینکه در آن زمانها برنامه نویسی به زبان F# به دلیل نبودن کامپایلر مناسب مشکل بود فهمیدم که از برنامه نویسی به این زبان آنقدر لذت میبرم که وقتی نوشتن برنامه ام را تام کردم نمیخواستم به C# برگردم. یعنی در حقیقت عاشق این زبان شده بودم. زمانی که من به عنوان مشاور کار میکردم نیاز به چک کردن مدام تکنولوژی های جدید و API های آنها داشتم بنابرین تمام تجربیاتم را با F# انجام میدادم. درهمان زمان افرادی در باره راه جدیدی برای ارتباط با وب بحث میکردند و لغت جدیدی که وارد زبان انگلیسی شده بود Blog بود. من تصمیم گرفتم که یک وبلاگ داشته باشم چون هرکسی که در مقوله فن آوری درگیر بود یکی از آنها را داشت بنابراین من وبلاگ خودم را راه اندازی کردم که امروزه هم هنوز فعال است. آنگاه یک دایره المعارف درباره F# به وبلاگم افزودم که در حال حاضربسیار محبوب است و از شیوه wiki در آن استفاده کرده ام. کار من لزوما با مسافرت های زیادی همراه بود بذا زمان زیادی را در اطاقهای هتل یا ترنها یا هواپیماها داشتم. در این زمانها میتوانستم به راحتی به مسایلی مانند F# بپردازم. من به مبادله ایمیلهایی با دون سیم(ابداعگر F#) پرداختم و سپس به تدریج با هم ملاقاتهایی داشتیم. ابتدا به جایی برای صرف نوشیدنی رفتیم و اولین بخش ساختار DNA را با هم وجود آوردیم یعنی در حقیقت کار خود را با یکدیگر آغاز کردیم. آیا سالها بعد افرادی درباره باری(Bar) که اولین بار سیم و پیکرینگ(نویسندگان کتاب) با هم ملاقات کردند چیزی خواهند گفت ؟شاید نه! در هر حال تمام این مسائل مرا به نقطه ای هدایت کرد که من میتوانم آنرادریافت اطلاعات جدید زبان F# و برنامه نویسی تابعی بدانم. در این زمان فردی به نام جیم هادلستون یک لیست پستی F# به راه انداخت و پرسید که آیا کسی میتواند کتابی درباره این زبان بنویسد یا نه ؟. و من نتوانستم جلوی خودم را بگیرم و این کار به نظرم موقعیت شغلی خوبی آمد بنابراین با کمکها و تشویقهای دون سیم نوشتن این کتاب را آغاز کردم. قسمتی از این کتاب در پاریس نوشته شد و برخی از آنها در بروکسل ولی بیشتر آن زمانی نوشته شد که بین این دو شهر رفت و آمد میکردم.
چه کسانی از F# استفاده میکنند ؟
F# در شرکت مایکروسافت به وفور مورد استفاده است هم در MSR و هم در کل شرکت. رالف هربریش که یکی از مدیران دوگانه گروه بازی های مایکروافت و متخصص آموزش ماشینیست به استفاده فزاینده از F# اشاره میکند :
"اولین برنامه کاربردی برای فرستادن 110 گیگابایت از طریق 11.000 فایل
متنی در بیش از 300 دایرکتوری و وارد کردن آنها در بانک داده ای بود. کل
برنامه 90 خط بود که شامل توضیحات نیز میشد و در کمتر از 18 ساعت
توانست اطلاعات مربوطه را در محیط SQL بگنجاند یعنی 10.000 خط
برنامه متنی در هر ثانیه مورد پردازش قرار گرفت. همچنین توجه کنید که من
کد را بهینه نکردم بلکه برنامه را بصورت کاملا عادی نوشتم. این جواب بسیار
قابل توجه بود زیرا من انتظار داشتم نوشتن و اجرای برنامه حداقل یک هفته
کار ببرد. دومین برنامه ، برنامه پردازش میلیونها Feedback مشتریان بود،
ما روابط مدلی زیادی را توسعه دادیم ومن آنها را داخل برنامه F# تایپ کردم
همچنین داده های مربوط به پایگاه داده ای SQL را داخل آن فراخوانی کردم و
نتایج را در فایل داده ای MatLab ذخیره کردم. مقدار این برنامه در F# صد
خط بود که توضیحات را نیز شامل میشد. باز هم با اجرای این برنامه من تحت
تاثیر قرار گرفتم زیرا پردازش میلیونها مورد دادها 10 دقیقه و در یک کامپیوتر
عادی زمان برد.این برنامه را با C#از فعالیتهای قبلی ام داشتم که حدود 1000
خط طول داشت واصلا سریعتر ازاین برنامه نبود.کل کار از توسعه مدل روابط
با اجرا و دیدن نتایج دو روز زمان برد."
استفده از F# تنها در مایکروسافت رایج نیست و در خارج از آن نیز کاربردهایی دارد و یه سرعت در حال افزایش است. جود او کلی ، برنامه نویس شرکت Derivative One که یک شرکت تولید نرم افزارهای شبیه ساز مالی میباشد در جواب به این سوال که چرا این شرکت از F# در محصولاتش استفاده میکند ؟ میگوید :
"ما مدلهای مالی خود را در C# و F# مورد مقایسه قرار دادیم و مشاهده کردیم
که عملکرد یکسان است اما از F# بیشتر خوشمان آمد زیرا روش خلاصه تری
دارد. یکی از مشکلات ما با F# نبود اطلاعات در مورد این زبان بود وبه نظر
ما کتابی که هم اکنون توسط دون سیم برای آموزش F# ارائه شده میتواند کمک
خوبی در این مورد باشد."
تنها کتاب موجود
هدف این کتاببه صورت عمده برنامه نویسان حرفه ای IT هستند که میخواهند سریعا با F# آشنا شوند. هرگونه تجربه ای که شما در زمینه برنامه نویسی به هر زبانی داشته باشید میتواند در یادگیری این زبان به شما کمک کند حتی در صورتیکه بطور کلی تازه کار باشید و هیچ زبان برنامه نویسی را قبل از F# کار نکرده باشید میتوانید F# را به عنوان اولین تجربه خود انتخاب کنید و این کتاب در این زمینه هم کمک خواهد بود. البته با وجود اینکه این کتاب سعی ندارد برنامه نویسی را به صورت پله پله آموزش دهد تمام حوزه های مهم F# را مورد اشاره قرار داده.
با تشکر علی برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
مدل کدينگ فرم های وب
يک صفحه فرم وب دارای دو بخش ويژوال ( تگ های HTML ،کنترل های سرويس دهنده و متن های ايستا ) و صفحه مربوط به منظق برنامه نويسی است . هر يک از بخش های فوق در يک فايل جداگانه ذخيره خواهند شد . عناصر ويژوال در فايلی با انشعاب aspx . و کدها در فايل مجزائی با انشعاب ( aspx.vb , aspx.cs )
ASP.NET Page class
با اينکه يک صفحه فرم وب دارای دو فايل مجزاء می باشد ولی آنها بعنوان يک يونيت واحد در زمان اجرای يک برنامه ايفای وظيفه خواهند کرد. کد مربوط در فايل ها پس از ترجمه بصورت .dll درخواهند آمد. فايل .aspx نيز با يک روش متفاوت ترجمه خواهد شد . اولين بار که مرورگر درخواست يک فايل .aspx را می نمايد ، بصورت خودکار يک .NET class file ايجاد و آن را بصورت dll دوم ترجمه خواهد کرد . در صورتيکه صفحه دارای کنترل های سرويس دهنده باشد ، کلاس ايجاد شده بعنوان يک Container برای کنترل ايفای وظيفه خواهد کرد. نمونه هائی از کنترل ها در زمان اجراء ايجاد و خروجی مورد نظر را برای ارسال به سرويس گيرنده آماده می کنند.
برای افرادی که قبلا" با مدل ASP کلاسيک کار کرده اند ، مدل فوق يک رويکرد جديد است . در مدل ASP يک فايل HTML با کدهای نوشته شده توسط يکی از زبانهای اسکريپت نظير :Jscrip,JavaScript,VbScript تلفيق شده و در يک فايل واحد قرار می گيرنند. Parser مربوط به ASP فايل را خوانده و پس از تفسير، کدهای مربوطه را بمنظور ايجاد خروجی اجراء خواهد کرد. در ادامه ASP خروجی توليد شده توسط کدهای اسکريپت را با خروجی های Html ترکيب و در نهايت حاصل برای مرورگر سرويس گيرنده ارسال خواهد شد.
در مدل ASP.NET ، تمام صفحات فرم های وب بعنوان برنامه های اجرائی در نظر گرفته می شوند. اين برنامه ها قادر به ايجاد خروجی های مربوطه و ارسال آنان برای مرورگر سرويس دهنده خواهند بود. در مدل فوق مجموعه ای از مراحل پردازشی نظير : مقداردهی اوليه ، پردازش ، حذف انجام خواهد شد. عمليات پردازشی فوق ، دقيقا" مشابه با عملکرد ساير برنامه های اجرائی با دو تفاوت است :
▪Page Class ، تمامی مراحل فوق را در هر زمان که صفحه صدا زده می شود ،انجام خواهد داد. در اين حالت صفحه مقداردهی اوليه ،پردازش و در نهايت از بين خواهد رفت .
▪ Page Class ،دارای يک مرحله منحصر بفرد با نام رندرينگ است که در زمان اتمام چرخه حيات يک صفحه عملی خواهد شد.
اقتباس از Page Class
زمانيکه سيستم برای يک صفحه فرم وب ، صفحه و فايل های کلاس آن را ايجاد می کند برای آن کدی توليد می گردد که دارای خواص به ارث رسيده از Page class اوليه (Base) است . مثلا" اگر فرم جديدی با نام Webpage1 ايجاد گردد ، کلاس جديدی با نام Webpage1 از System.Web.UI.Page مشتق و بوجود می آيد. صفحه .aspx خواص خود را از کلاس webpage1 به ارث خواهد برد ارتباط بين Page Class و کلاس های مشتق شده و فايل .aspx در شکل زير نمايش داده شده است .
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
ASP.NET اين امکان را فراهم می کند که بخش های ويژوال و کد مربوط به يک فرم در يک فايل مشترک قرار گيرند. عملکرد اين نوع فايل ها با موارديکه دو بخش در دو فايل قرار می گيرنند ،بسيار مشابه است .
___________________________________________My Resume/CV
Mobin Ranjbar
Programmer / App Developer / Software Engineer / Scrum Master / Student
My System Config Validation
___________________________________________
™Ali (28-06-09)
سيشارپ براي همه
مايكروسافت طي اقدامي، مجوزگيري براي برنامههاي C# و زيرساخت زبان عمومي (CLI) خود را آزادتر كرد و بدين ترتيب، فناوريهاي منبعباز ميتوانند بدون ترس از مباحث مجوزدهي، نسبت به توليد نرمافزارهاي مبتني بر اين زبان برنامهنويسي اقدام كنند.
بر اساس مطلبي كه در بلاگ مايكروسافت آمده است، مايكروسافت اطمينان ميدهد كه هيچ بحث مالكيتي را با كساني كه نسخههايي از برنامههاي# C را ميسازند، ميفروشند، براي فروش ميگذارند و يا وارد ميكنند، مطرح نخواهد كرد. پيتر گالي، مدير روابط عمومي منبعباز مايكروسافت دوشنبه گذشته با اعلام اين مطلب، اين حركت مايكروسافت را با مجوزهايي چون GPL و LGPL همخوان دانست.
بر اساس گفته گالي، هر كسي ميتواند اين فناوريها را در برنامه خود بهكار بگيرد و نيازي به عقد قرارداد يا پرداخت پول به مايكروسافت نيست. اين چتر حمايتي مايكروسافت، برنامهنويسان، توزيعكنندگان و كاربران اين تكنيكها را در بر ميگيرد. همچنين بر اساس اين حركت حمايتي، مجوز تكثير نرمافزار هيچ اهميتي نخواهد داشت.
در پاسخ به اين اقدام حمايتي مايكروسافت، ميگوئل دي ايكازا، كه پروژه منبعباز مونو را هدايت مي كند. در پست بلاگي اعلام كرده است كه مونو اين اقدام مايكروسافت را نيز تكرار خواهد كرد.
منبع
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks