Visual Studio 2010 RC کاندید او که خوب است…

نوشته شده در 22. بهمن 1388

917

ساعاتی پیش Visual Studio 2010 به نسخه Release candidate که در حقیقت نسخه پیش از رونمایی از محصول نهایی  است رسید…

هنوز برای عموم قابل دانلود نیست… تاریخ 10ام فبریه برای دانلود عموم اعلام شده است…

مدت هاست که دارم رو دات نت 4 کار می کنم… ویژوال استدیو 2010، دات نت 4، سیلورلایت 4 فصل بلوغ این قصه است…

BlogEngine.NET 1.6

نوشته شده در 14. بهمن 1388

benlogo80 مدتی بود صحبت ارائه نسخه جدید dotnetblogengine بود، دیروز خود سایت و سایت Al Nyveldt به نسخه 1.6 ارتقاء پیدا کردند ولی تو کدپلکس و سایت های خبری خبری ازش نبود تا این که امروز رسما انتشار پیدا کرد (اول فوریه 2010).

قابیلت های جدید نسخه 1.6:

» مرکزیت بخش مدیریت نظرات

» سیستم حودکار پالایش نظرات اسپم (نظراتی که مثل تبلیغات مزاحم هستند) با قابلیت افزودن ماژول های دلخواه پالایش
» پشتیبانی از چندین Wdget Zone (کمک به طراحی قالب های چند بخشه)
» ذخیره آیتم های Blogroll ها در دیتابیس با استفاده از DB Blog Provider
» لینک صرف نظر از ارسال نظرات برای بازدید کننده ها
»  ذخیره اطلاعات ارجاع دهندگان برای بیش از 7 روز
» امکان مرتب سازی لیست Blogroll ها
» بهبود Widget خبرنامه (ارسال خبرنامه هنگامی که پستی ازحالت انتشار نیافته به وضعیت انتشار می رسد)
» بهبود و افزایش امکانات Widget مربوط به Twitter
» ذخیره آدرس مجازی صفحات ( Page Slugs ) در دیتابیس
» سیستم واقعه نگاری (Logging) جهت ثبت رخدادها و خطاها
» مدیریت خطاهای مدیریت نشده
» اصلاح اطلاع رسانی نظرات جدید
» بهبود ارسال ایمیل
» تعدادی اطلاحیه در بخش های مختلف سیستم

به عنوان کسی که از نسخه های اولیه این سیستم اخبارش رو دنبال می کردم و معماری اش رو خیلی دوست دارم میتونم بگم نسخه 1.6 گام مهمی برای جلو زدن از وردپرس بود.

جنون سرعت!

نوشته شده در 9. بهمن 1388

speed_small

چقدر اینترنت سریع خوبه Big Grin وقتی تو انگلیس 8 مگابیت اینترنت ماهی 24 پوند و ایران n میلیون تومانه به سازمان های دولتی اونم روز 5شنبه که کسی نیست میرسی جنون سرعت کار دستت میده…

توجه شما رو به سرعت دانلودم برای SDK ویندوز 7 روی NET Framwork 3.5 SP1. جلب می نمایم.

حجم: نزدیک به 1.5 گیگابایت! زمان رو ببینید و دوستان داخل کشور دلتون بسوزه Big Grinو دوستان خارج از کشور به چیزایی که ما اینجا ازشون ذوق مرگ میشیم بخندید…Rolling on the floor

download2

MSDN Virtual Labs آزمایشگاهی برای پیشرفت

نوشته شده در 8. بهمن 1388

ee402630.Labs_lg(en-us,MSDN.10)

یکی دیگه از فرق های ما با اونا ( منظورم فرق ما مومنین با اون مشرکین ) اینه که سیاست های کسب و کار اون ها تو چندین لایه بررسی میشه و مثل ما تک بعدی به دنبال سود بیشتر نیستند، بلکه با بررسی بازار، تحلیل سیاست های فعلی، تعیین و بتیین اهداف آتی، استراتژی هاشون را به دست میارن و در نتیجه می بینیم سود، پیشرفت و گسترش همیشه همراه اوناست و بدهی و نارضایتی مشتری و پروژه های بزن در روئی مال ما ! Hypnotized

مایکروسافت برای بهبود دانش توسعه دهندگانی که از بستر دات نت استفاده میکنن و طبیعتا پیرو آن، کسب سهم بیشتر در بازار و در نهایت نیل به سود بیشتر بخش MSDN Virtual Labs رو در MSDN  راه اندازی کرده تا افراد پروژه های حرفه ای و اصولی رو در 90 دقیقه یا کمتر پیاده سازی کنند و با روش های حرفه ای و اصولی بهتر آشنا شن.

حالا کدوم شرکت داخلی رو سراغ دارین که با معرفی روش ها و تکنیک های تولید محصولاتش علاوه بر کسب اعتبار از سوی متخخصین تولید نرم افزار بتونه با کسب نظرات محصول خودش را از نظر کیفی بهبود بده؟؟Confused

URL Routing در ASP.NET 4 Web Forms

نوشته شده در 4. بهمن 1388

vs2010_logo

URL Routing چیست؟

اولین بار در ASP.NET 3.5 SP1 مایکروسافت یاین قابلیت را رونمایی کرد، قابلیتی که پیشتر در ASP.NET MVC مرد استفاده قرار گرفته بود اینبار پا به دنیای WebForm گذاشت.

URL Routing به شما امکان استفاده از آدرس های تمیز تر، SEO-friendly (مناسب تر تر برای جستجوگرها) و web 2.0ی میدهد به عبارت ساده تر آدرس ها خواناتر، معنی دارتر خواهند شد، از این رو علاوه بر کاربرپسندتر شدن،موتور جستجوگرپسند تر هم می شود. برای مثال آدرس زیر را در نظر بگیرید:

http://www.mysite.com/products.aspx?category=software

نظرتون چیه آدرس زیر رو جایگزینش کنیم؟ بهتر نخواهد بود؟

http://www.mysite.com/products/software

در ASP.NET 4.0 قادر خواهیم بود از امکان فوق چه در معماری MVC بهره بگیریم چه در معماری WebForms.


checkmark_box_large_red 
چگونگی تنظیمات URL Routing در ASP.NET 4.0 MVC

در ASP.NET 3.5 SP1 آموختیم که چگونه با استفاده از URL Routing engine آدرس ها را به سادگی و در عین کارایی و قدرت تغییر دهیم. این کار را در رخداد آغاز نرم افزار (Global.asax )  و در بخش register/map انجام میدادیم.

مثال زیر را ببینید:

step1_thumb_5D48C8D9 


checkmark_box_large_red


چگونگی تنظیمات URL Routing در ASP.NET 4 WebForms

حال ASP.NET 4.0 به شما این امکان را می دهد تا از این قابلیت در WebForms نیز استفاده نمایید.

مثال زیر را ببینید:

step2_thumb_1A897DA1 استفاده و بایند:

step3_thumb_06FC1E00

step4_thumb_5E7D3BEB



question

چگونه با این آدرس ها کار کنیم؟

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

لذا متدهای () Page.GetRouteUrl ()  ,Response.RedirectToRoute مورد استفاده قرار میدیم.

step6_thumb_15E34D1A 

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

<form action=”/products/software”>

web.config اما اینبار تمیزتر…

نوشته شده در 4. بهمن 1388

vs2010_logo

مختصر و مفید: کافیه تا ویژوال استدیو 2010 خودتون رو باز کنید:

File ->New Project –> create an empty ASP.NET 4.0 Web application

ویژوال استدیو 2008 سرویس پک یک، به صورت پیش فرض یک web.config با 126 خط دستور پیش روی شما قرار میده. بد نیست علتش رو بدونید:

دات نت 2 همراه با CLR 2.0 عرضه شد، پس از اون NET 3.0, 3.5, 3.5 SP1. بر پایه همون CLR 2.0 و تنها با افزوده شدن اسمبلی های جدید تولید شدند. پس طبیعی بود که web.config شما برای دسترسی و شناخت این اسمبلی ها نگارش به نگارش سنگین تر میشد و می بایست معرفی اسمبلی های بیشتری رو برای سیستم در بر میداشت.

و اما در NET 4.0. اینبار machine.config جدید که به طور موازی همراه با machine.config مربوط به CLR 2.0 در سیستم وجود داره که خودش کاربری های زیر رو در خودش رجیستر کرده:

  • ASP.NET AJAX
  • ASP.NET Dynamic Data
  • ASP.NET Routing (ASP.NET WebForms, ASP.NET MVC)
  • ASP.NET Chart Control (ASP.NET V4)

نتیجه اینکه شما با ساخت پروژه جدید با web.config جدید، تمیزتر، ساده تر و البته کوتاهتر روبرو خواهید شد:

web2

section اول مروط به قابلیت multi target (چند تارگتگی!! به معنای اینکه با ویژوال استدیو 2010 میتونید برنامه هایی جهت کار با دات نت 2.0 و 3.0 و 3.5 تولید نمایید)

section دوم جهت ماهنگی با IIS 7 در مد integrate می باشد .

تعدد مانیتورها، تمدد برنامه نویس ها…

نوشته شده در 4. بهمن 1388

vs2010_logo

یکی دیگه از خصوصیات قابل تمجید ویژوال استدیو 2010 پشتیبانی از چندین مانیتوره.

یعنی چی؟ –> یعنی اینکه صفحه طراحی تو یک مانیتور باز خواهد بود و صفحه code behind در مانیتور دیگه. یا اینکه شما ابزارها مثل صفحه property ها و یا دیگر ابزارها رو تو یک مانیتور و کدها تو مانیتور دیگه.

وقتی مانیتور 22 اینچ به قیمتی کمتر از 250.000 تومان عرضه میشه… چرا لذت نبریم؟

step2_thumb_5D6D304F step3_thumb_08D1514A

step5_thumb_1824B359 step6_thumb_6A56EA93

پایان 28 سال حکومت پدرخوانده…

نوشته شده در 3. بهمن 1388

SunRIPsmall

21 ژانویه 2010، دکتر  James Gosling معاون شرکت سان، خالق جاوا و خالق یونیکس چندپردازشگر تو وبلاگ رسمی خودش با انتشار این تصویر پایان 28 سال حکومت شرکت سان که روزی امراتوری بزرگی به شمار می رفت رو اعلام کرد.

روزی که در PDC06 استیوبالمر اعلام پیروزی دات نت رو بر جاوا اذعان کرد، چه کسی فکر می کرد تنها رقیب دات نت یعنی جاوا تنها 4سال بعد توسط اوراکل بلعیده بشه…

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

ASP.NET 4.0 به دنبال آشتی با آنکه می جوید و می یابد…

نوشته شده در 3. بهمن 1388

seo


در باب اهمیت توجه به مسائل پیرامون بهبود دادن ارتباط بین سایت ها و موتورهای جستجو یا به عبارت دیگر Search Engine Optimization که به اختصار SEO بیان می شود، نیاز به بحث نیست.

حتی اون دوست درازگوش زحمتکش هم میدونه که یک لینک بالاتر بودن در موتورهای جستجو چه قدر به رشد و پیشرفت سایت چه من حیث مسائل تجاری برای سایت های اون حوزه چه از نظر خواننده برای سایت های تخصصی و… تاثیر دارد.

تو دنیای Web 3.0 که به اصطلاح Semantic Web  نامیده می شود و مسائل وابسته ی آن به شدت دنبال می شود، این موضوع اهمیت بیشتری پیدا میکند.

متاسفانه بسیاری از دوستان که دستی بر آتش دارند چه در زمینه ی آتش های اطلاع رسانی وب چه در زمینه سامانه های سازمانی و اداری به موضوع محتوا و جستجو اهمیتی نمی دهند. Full Text Search یک عنصر سوسول مآبانه بیشتر به شمار نمیاد !!


مایکروسافت جندیست Free SEO Toolkit رو برای بهبود وضعیت وب سایت ها به صورت رایگان عرضه کرده. این بسته به شما کمک خواهد کرد تا بتونید سایتتون رو با موتورهای جستجوی اصلی یعنی گوگل، بینگ و یاهو و دیگرموتورها هماهنگ کنین.

SearchEngineLogos

اسکات گاتری « معاون مایکروسافت » و مرد اول ASP.NET دراین باره می گوید:

QuoteIcon2

Free SEO Toolkit به شما کمک می کند تا ترافیک و تعداد بازدیدکنندگان سایت خود را افزایش دهید، در نتیجه درآمد شما به صورت مستقیم و یا غیرمستقیم از این راه افزایش خواهد یافت.

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

file file1

file2 file4


و اما اصل مطلب:

در ASP.NET 4.0 بهبودهای بسیار مطلوبی در ایم زمینه داریم:

برخی بهبودها رو در ادامه خواهیم دید:

» پراپرتی های جدید Page.MetaKeywords , Page.MetaDescription

» URL Routing جدید که برای Web Form پشتیبانی شده است

» متد جدید () Response.RedirectPermanent

مثال: در حالت عادی استفاده از کلیدواژه ها به شکل زیر است:

image_thumb_2188A842

با استفاده از Page.MetaKeywords و Page.MetaDescription خواهیم داشت:

image_thumb_2DAA2269

آیتم های جدیدی که در Page directive@ افزوده شده اند:

image_thumb_0BDE49D8

 

 

استفاده از URL Routing جدید که در WebForms پشتیبانی می شود (مانند آنچه در MVC داریم) آدرس زیر که چندان خوانا و گویا نیست:

http://www.mysite.com/products.aspx?category=software

تبدیل خواهد شد به:

http://www.mysite.com/products/software

استفاده از () Response.RedirectPermanent نیز به شیوه زیر است:

همون طور که تو کلاس کاربردی هم شرح میدیم متد () Response.Redirect موجب بازخورد کد 302 که بیانگر انتقال موقت است خواهد بود ولی Response.RedirectPermanent(string url) موجبات کد 301 که انتقال دائمی را دربر دارد خواهد شد، پس موتور جستجو هم به عنوان یک لینک انتقال دائمی در نظر خواهد گرفت و در نتیجه در نتایج جستجو تاثیر خواهد داد.

image_thumb_558D21C8

image_thumb_41FFC227

Entity Framework یا Linq 2 SQL یا همون ADO.NET ؟

نوشته شده در 30. دی 1388

aa937709_EF_AtAGlance_1b(en-us,MSDN_10)

یکی از بحث های داغی که تو جلسات بحث و مشورت معماری نرم افزار رایجه صحبت سر انتخاب تکنولوژی دسترسی و مدیریت داده هاست…

گزینه های پیش رو:

» ADO.NET

» Linq 2 SQL یا به اختصار L2S

» و فرزند جدید و حاصل مدت ها تحقیق و تلاش و بهبود مایکروسافت: Entity Framework  به اختصار EF

NET Framework 4.0. بلوغ EF به شمار میاد، و عملا مایکروسافت بسیار محترمانه درخواست کرده که جناب برنامه نویس ایرانی که هر 20 سال یه بار یه روش جدید رو تجربه میکنی… خواهشا سنت شکنی بفرمایید و این محصول رو یه تست بزنید بلکه به نظر ملوکانه تون بد نیومد… تو این پست سعی دارم تا این 3 تکنولوژی رو کمی مقایسه کنم البته قصد ندارم معرفی کنم بلکه هدف مقایسه است… خواهیم دید EF نسبت به SubSonics که خود من بهش خیلی ارادت دارم من حیث معماری



point مقدمه { Microsoft Entity Framework چیست ؟؟} :

ADO.NET Entity Framework به گونه ای طراحی شده است تا توسعه دهندگان را قادر سازد در مقابل مدل های مرسوم مفهومی (conceptual)، از یک مدل جدید با امکان دسترسی و برنامه نویسی مستقیم بر اساس ساختار یک دیتابیس رایطه ای استفاده نمایند، هدف از تولید این مدل کاهش چشمگیر میزان کدنویسی، سهولت گسترش، ترمیم، بهبود و نگهداری  برنامه ها بوده است. به طور خلاصه میتوان از مزایای آن به موارد زیر اشاره کرد:
» برنامه های کاربردی قادر خواهند بود تا در مدل مفهومی خود (conceptual model) محوریت بیشتری به خود برنامه ببخشند به گونه ای که شیء گرایی، ارث بری، گونه ها (Type) های پیچیده تر و روابط بین جداول و اشیاء بهتر پیاده سازی شوند.
» برنامه ها (برنامه نویس ها) از هارد کدینگ (کدنویسی زیادی ابلهانه و طاقت فرسا) رها می شوند.
» بدون کوچک ترین تغییر کد برنامه خواهیم توانست مدل ارتباط بین ساختار دیتابیس و مدل مفهومی را تغییر دهیم.
» توسعه دهندگان (برنامه نویس ها ! :D ) قادرند تا با ساختار شیء گرایانه سازگار با انواع سیستم های مدیریت دیتا کار کنند.
» مرتبط شدن چندین مدل مفهومی به یک ساختا دیتابیس.
» پشتیبانی Language-integrated query (LINQ) موجب اعتبارسنجی عبارات پرس جو (Query) در حین کامپایل میشود.


p2 انتخاب بین L2S و EF

خیلی خلاصه طبقه بندی کردم:


question چه موقع از Linq to SQL استفاده خواهیم کرد؟


وقتی میخواهیم:



از یک
ORM استفاده کنیم  و دیتابیس ما در یک رابطه 1 به 1 با مدل اشیاء قرار دارد.


از یک
ORM که  ساختار سلسله مرتبی ای را که در یک جدول ذخیره شده است ارث بری کرده باشد.


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


استفاده از
LINQ به عنوان ابزار Query نویسی


استفاده از یک
ORM با حفظ کارآیی و امکان بهبود آن از طریق Stored Procedure ها و Query های کامپایل شده.



question چه موقع از LINQ to Entity استفاده خواهیم کرد؟


وقتی میخواهیم:



وقتی میخواهیم برنامه ما به دیتابیس های دیگری به جز
Microsoft SQL Server  نیز دسترسی پیدا کند.


وقتی میخواهیم
domain models برای برنامه مان تعریف کنیم و از آن به عنوان لایه persistence استفاده نماییم.


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


از یک راهکار
ORM ی استفاده کنیم که ممکن است کلاس هایمان رابطه ای 1:1 با دیتابیس داشته باشد یا ممکن است ساختاری بسیار متفاوت و پیچیده در ارتباط با دیتابیس دارا باشد.


می خواهیم از یک
ORM استفاده کنیم که ساختارهای سلسله مرتبی در آن معادل های دیتابیسی متفاوتی دارا باشد مانند وقتی که جدولی جهت نگهداری سلسله مراتب، جداولی برای هر یک از کلاس ها و جدولی جهت نگهداری گونه (Type)
خاص داریم.


وفتی میخواهیم از
LINQ جهت نوشت Query ها استفاده کنیم در حالیکه Query در دیتابیس به شیوه خاص و در سلطه سازنده آن عمل می کند
.


استفاده از یک
ORM با حفظ کارآیی و امکان بهبود آن از طریق Stored Procedure ها و Query های کامپایل شده.

 

question
چرا از Entity Framework استفاده کنیم؟

» دسترسی به داده ها را ساده می سازد و به من اجازه می دهد تا مدل مفهومی مورد نیاز برای کسب و کارم را ایجاد کنم.

» EF  اجازه می دهد تا شما روابط چند به چند (n:n) را بدون join ها متعدد مدیریت نمایید.

» جهت کاهش پیچیدگی کد جداول مرتبط را در یک Entity مدل کنید.

» پشتیبانی قئی و خفن از ارث بری ها برای جدول به ازای سلسله مراتب، زیرکلاس (subclass) و تایپ های به هم چسبیده (concrete type).

» Consolidation برای اشیاء پیچیده بسیار ساده است.

» چون دارای مکانیسم بسیار قوی Query گیری از Entity هاست. کسانی که مایل با استفاده از LINQ  نیستند می توانند از  EntityClient provider  همرا با EntitySQL استفاده نمایند.

» میتوانید با استفاده از ADO.NET Data Services (Astoria). دیتای مدل شده خودتان را انتشار دهید.

» مستقل از نوع دیتابیس می باشد و بر اساس استاندارد ADO.NET Providers. کار می کند.

»  هم اکنون تعداد زیادی شرکت های دیگر provider هایی ارائه و پیشنهاد کرده اند مانند:

    * Devart جهت استفاده ازOracle, MySQL  و  PostgreSQL EF توصیه می شود.
    *  Phoenix Software Solutionجهت استفاده از SQLite  EF را توصیه می کند.
    * Npgsql برای استفاده از PostgreSQL  provider دیگری را توصیه کرده.
    *  OpenLink Software طیف وسیعی را جهت استفاده از for Oracle (versions 7.x to 11.x), Microsoft SQL Server (6.x to 2005), IBM DB2 , Sybase (4.2 to 12.x+), IBM Informix (5.x to 11.x), Ingres (6.4 to 9.x), Progress (7.x to 10.x), MySQL, PostgreSQL,  و Firebird  پیشنهاد کرده است.
    * Sybase SQL Anywhere  از SQL Anywhere پشتیبانی می نماید.
    * IBM پشتیبانی دیتابیس هایی مانند DB2, Informix  و U2  را خودش عهده گرفته است.

» بخش های دیگر زیادی به آن افزوده خواهد شد...


ee402630_blog_lg

 نتایج یک مقایسه بین Entity Framework و Subsonic

با اینکه Subsonic رو به لحاظ معماری خیلی قبول دارم ولی یه مقایسه ساده رو میزارم تا ببینید چقدر به لحاظ کارآیی Entity Framework سره:

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

Subsonic

Entity Framework

3937

1312

1906

140

1062

156

1078

140

1062

140

مقادیر به میلی ثانیه است

 

 

میبینید که Entity Framework نتیجه بسیار بهتری داره…

امیدوارم معمارهای نرم افزار و برنامه نویس های ایرانی هم همگام شن تا بتونیم این فضاحت کنونی عرصه کیفیت نرم افزارهای تولید داخل رو بهبود بدیم Praying