پست‌ها

نمایش پست‌ها از 2009

فيكس كردن ارور پاك نشدن Job

امروز يكي از همكارام ميخواست يك Job رو تو Sql Server 2005 پاك كنه كه ارور زير رو ميگرفت Drop failed for Job ‘XXXXXXXXXXXXX’. (Microsoft.SqlServer.Smo) The DELETE statement conflicted with the REFERENCE constraint “FK_subplan_job_id”. The conflict occurred in database “msdb”, table “dbo.sysmaintplan_subplans”, column ‘job_id’. The statement has been terminated. (Microsoft SQL Server, Error: 547) بعد جستجو راه حلش رو تو اين وبلاگ پيدا كردم اول لاگ هاي اين پلن رو پاك ميكنيم USE [msdb] delete sysmaintplan_log FROM sysmaintplan_subplans AS subplans INNER JOIN sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id INNER JOIN sysmaintplan_log ON subplans.subplan_id = sysmaintplan_log.subplan_id WHERE (syjobs.name = @job_name) بعد زيرمحموعه هاش رو پاك ميكنيم (ساب پلن) delete sysmaintplan_subplans FROM sysmaintplan_subplans AS subplans INNER JOIN sysjobs_view AS syjobs ON subplans.job_id = syjobs.job_id WHERE (syjobs.name = @job_name) بعدم خود Job رو delete from msdb.dbo.sysjobs_v...

فعال سازي jQuery Intellisense در VS2008

تصویر
براي فعال سازي jQuery Intellisense مراحل زير را انجام دهيد نصب VS2008 SP1 نصب Hotfix KB958502 دانلود و اضافه كردن آخرين ورژن جي كوئري به پروژتان دانلود و اضافه كردن فايل Autocomplete جي كوئري به پروژتان براي استفاده در فايل هاي aspx براي استفاده در فايل هاي js  (اضافه كردن اين خط به ابتدا) /// <reference path= "jquery-1.3.2-vsdoc.js" /> منابع: + و +

نسخه جديد Microsoft AntiXSS 3.1

آقاي نصيري اطلاعات خوبي در باره اين كتابخانه داده بررسي Microsoft Anti-Cross Site Scripting Library نسخه 3.1 اين كتابخانه رو ميتونيد از اينجا دانلود كنيد 2 متد به اين نسخه اضافه شده GetSafeHtml GetSafeHtmlFragment GetSafeHtml به ورودي تگهاي گم شده (غايب) رو اضافه ميكنه مثل html و body (از اين متد ميشه براي نرمال سازي وردي استفاده كرد) GetSafeHtmlFragment اين متد ورودي رو امن(پاك) ميكنه و خروجي رو در فرمت html برميگردونه(بدون اضافه كردن تگ هاي غايب) اطلاعات بيشتر + و +

MonoDevelop 2.2

تصویر
درباره پروژه مونو اينجا اطلاعات خوبي ميتونيد كسب كنيد MonoDevelop اولين IDE مستقل از پلتفرم (Linux, Mac OS X and Windows) براي NET. است. MonoDevelop نسخه 2.2 كه در فاز بتا قرار داره در حال حاضر ميتونه تو Mac نصب بشه (هر چند در گذشته هم اين امكان وجود داشته) ولي مهم ترين تغيير تو اين نسخه امكان امكان نصب تو ويندوزه (بصورت فايل MSI كه همه كارها رو خودش انجام ميده فقط GTK# بايد جدا نصب شه) بعضي از مهمترين ويژگيهاي اين نسخه امكان (Targeting Multiple .NET runtimes) بعنوان مثال در محيط ويندوز ميتونيم برنامه نوشته شده رو با استفاده از Microsoft .NET يا Mono بسازيم (حتي ميتونيم ورژن خاصي از Mono رو استفاده كنيم) اين ورژن قسمتي از  NET 4.0 رو ساپورت ميكنه (بشر داشتن آخرين نسخه Mono يا .NET Framework 4.0) پشتيباني از ديباگر جامع شامل Immediate Window و   Win32 Debugger و Initial support for ASP.NET debugging شامل افزونه هاي ASP.NET MVC   و  IPhone  و Moonlight   ضمنا اينجا ذكر شده كه MonoDevelop قراره كه زبانهاي بيشتري مثل پ...

چند افزونه ضروري براي ++Notepad

تصویر
  ++Notepad يك ويرايشگر مجاني  سورس است و جايگزين مناسبي براي  Notepad ويندوز و … در زير چند پلاگين ضروري براي كار با اين برنامه ليست شده Color Picker معادل هگزا دسيمال رنگ انتخابي رو برميگردونه Compare Plugin تفاوت هاي بين 2 فايل رو برميگردونه DBGP اين پلاگين  ++Notepad رو به IDE براي PHP تبديل ميكنه( XDebug ) Explorer امكان مرور كردن فايل ها رو به شما ميده (file browser) FTP Synchronize از طريق FTP به سرورمان وصل شيم فايل مورد نظر (PHP ,…) رو ويرايش و مجددا آپلود ميكنيم ونتيجه رو ببينيم Hex Editor Hex Editor براي ++Notepad  LanguageHelp اجرا كردن فايلهاي help و امكان سرچ در آنها(CHM, HLP, PDF) MultiClipboard 10 تا تكست بافر رو براي Copy و Past كردن محيا ميكنه NppExport علاوه بر ذخيره كردن سورس هاي شما با فرمت RTF/HTML آنها رو با همين فرمت ميفرسته به كليپبورد Window Manager يك overview كوتاهي از فايل هاي باز به شما ميده XML Tools مجموعه اي...

آفلاين كردن يك وب سايت با HttpModules

حتما در وبگردی های روزانه خود به سايت هائی برخورد کرده اید که به هنگام ارسال درخواستی مبنی بر مشاهده صفحه ای از آن ، پیغام در حال بروز رسانی و ... برای شما نمایش داده می شود ، برنامه نویسان برای رعایت مسائل امنیتی و ... در هنگام بروزرسانی یک وب سايت سیستمی پیاده سازی می کنند تا تمامی درخواست ها به يک صفحه خاص هدایت شود و در آن صفحه به کاربر اطلاع داده شود که سايت در حال بروزآوری و ... می باشد. راه های زیادی برای پیاده سازی چنین تکنیکی موجود می باشد ، اما ASP.net برای پیاده سازی این سناریو از یک روش جالب استفاده می کند ، کافیست در Root وب سايت خود فایلی با نام app_offline.htm قرار دهید ، از این پس و تا زمانیکه این فایل در Root موجود باشد تمامی درخواست های ارسال شده به سايت به این صفحه هدایت میشود.بعد از اینکه کار شما بعنوان برنامه نویس با وب سايت تمام شد می توانید براحتی این فایل را حذف کنید تا وب سايت برای عموم بازدیدکنندگان قابل دسترس باشد. ادامه مطلب ولي روش بالا يه مشكل داره فرض كنيد شما ADMIN سايت هستيد و ميخواهيد به سايت دسترسي داشته باشيد (براي تست , عملسات نگهداري و…) app_o...

تست سازگاري وب سايت با مرورگرهاي مختلف (Browser Compatibility)

تصویر
يكي از دغدغه هاي طراحان وب سازگاري وب سايت آنها با مرورگرهاي مختلفه.متاسفانه اكثر وب سايت هاي پارسي زبان با IE سازگاران و… در زير 7 تا ابزار آنلاين و آفلاين به شما معرفي ميشه كه مي تونه خيلي كار راه انداز باشه   1- Browsershots 2- Browsercamp 3- Xenocode Browser Sandbox 4- CrossBrowserTesting 5- NetRenderer 6- Litmus 7- IETester منبع

برداشتن محدوديت 2 گيگ رم براي Visual Studio

تصویر
همونطور كه ميدونيد Visual Studio از منابع زيادي استفاده ميكنه مخصوصا اگه شما solution بزرگ ي داشته باشيد و از افزونه ها هم استفاده كنيد مثل ReSharper و… در اين مواقع و بعد از مدتي كار در محيط Visual Studio هنگام كامپايل كردن برنامه ممكنه با ارور Not enough storage is available to complete this operation. مواجه شيم. شايد تصور اين باشه كه با ارتقا سخت افزار اين مشكل حل شه ولي اين يك مشكل نرم افزاري هست و هم در OS هاي 32 و 64 اين مشكل رو داريم. و اما براي رفع 2 كار رو بايد انجام بديدم قرار دادن سويچ 3GB/ در فايل boot.ini ( اطلاعات بيشتر ) با رفتن به اين شاخه C:\Program Files\Microsoft Visual Studio 8\Common7\IDE و اجراي دستور زير در Command Prompt editbin /LARGEADDRESSAWARE devenv.exe در آخر ريستارت كردن PC فرامشو نشه. اين نتيجه كار منبع

لود كردن سريع JavaScript

اين روزها استفاده از JavaScript براي داشتن وب سايت هاي RIA يك روش قابل قبول و هوشمندانه در دنياي development محسوب ميشه.اما استفده زياد از JavaScript باعث ميشه سرعت و كارايي وب سايت (لود شدن) بعلت حجم زياد كد هاي جاوااسكريپت پايين بياد. هرچقدر سايت ما پويا و Ajax ي باشه به كدهاي جاوااسكريپ و CSS بيشتري نياز داره مخصوصا اگز شما از فريمورك خاصي استفاده كرده باشيد معنيش اسنه كه كاربر بايد ديتاي بيشتري دانلود كنه بطور سرانگشتي هر چند JavaScript فقط يه فايل تكسته یک فريمورك JavaScript نسبتا جمع و جور 100 كيلوبايت حجمشه! در زير 3 روش رو براي كم كردن (minimize) كردن اين حجم معرفي ميكنيم كوچك كردن (minify) جاوا اسكريپت پاك كردن هر چيز غير ضروري در فايل جاوا اسكريپت بخصوص پاك كردن توضيحات (comments) و white space ها (تب , خط هاي خالي و SPACE) اينا چيزهاي هستن (مخصوصا كامنت ها ) براي دولوپر ضروررين ولي مرورگر كاربر هيچ نيازي به اونا نداره.براي پاك كردن ميتونيد بصورت دستي اين كار رو انجام بديد يا از JSMin يا YUI Compressor استفاده كنيد. فشرده كردن (compress) جاوا اسكريپت كد زير د...

NHibernate در مقابل Entity Framework

تصویر
آقاي Gergely Orosz در قسمتي از پايان نامش به مقايسه و اندازه گيري كارايي (performance) دو فريمورك ORM در دات نت Entity Framework و NHibernate پرداخته.براي تست از دو برنامه ساده كه كارهاي يكساني رو روي جدوال يكساني انجام ميدن استفاده كرده. عملياتي كه اندازه گيري شدن عبارتند از ذخيره خواندن بر اساس رابطه ها (relations) خواندن بوسيله ID آپديت پاك كردن نتيجه تست رو برنامه ها بصورت زير بوده ديدن جزئيات آزمايش نتيجه گيري براي ذخيره كردن ديتا Entity Framework نشون داد كه از NHibernate بصورت قابل توجهي سريع تره براي پاك كردن ديتا NHibernate خيلي از  Entity Framework سريعتره نتيجه گيري آقاي Gergely Orosz اينه كه در سناريوهاي كه عملياتش زياد وقت گير نيستن زياد فرقي نيكنه از كدوم فريمورك استفاده كني و در اينجا بايد اون فريموركي رو كه باهاش ميتوني سريعتر و موثر تر پروژت رو انجام بدي رو انتخاب كني .

رمز دار كردن (Encrypt) صفحات وب با jCryption

تصویر
بطور خلاصه jCryption يك پلاگين (رايگان) jQuery براي اينكريپت كردن ديتاهاي  POST/GET (كه توسط فرم ها ارسال ميشن) است. jCryption از الگوريتم RSA براي رمزگزاري استفاده ميكنه و يك فايل PHP براي هندل كردن رمزگشايي (Decrypt) ديتا دارد. بعضي از خصوصيات jCryption رمزگزاري تا 2048 بيت پشتيباني كردن از  AjaxSubmit در محاسبات (Cryptography) مرورگر رو بلاك نميكنه عدم نياز به SSL (درحال حاظر jCryption جايگزين مناسبي براي SSL نيست چون Authentication ندارد) براحتي نصب و استفاده ميشود jCryption  بروي Internet Explorer 6 +, Mozilla Firefox 3+, Safari 3, Opera 9+, Google Chrome  تست شده ضمنا براي كار با اين پلاگين به حداقل  PHP 4.0.4 نياز داريد. همونطور كه قبلا ذكر شد استفاده از jCryption آسان است به مثال زير توجه كنيد 1: $( "#formID" ).jCryption();   مثال هاي بيشتر

اتفاق عجيب در سال 2038 !

تصویر
در اين تاريخ 19th of January 2038 03:14:07 UTC همونظور كه تو انيميشن ميبينيد بعضي سيستم ها (32 بيتي) كرش ميكنند و بعضي برنامه ها از كار ميافتند. دليل: اگر كامپيوترها فيلدهاي مربوط به تاريخ رو بصورت signed 32 bit integer ذخيره كرده باشن ; در تاريخ ذكر شده فيلد تاريخ به حداكثر مقدار خود ميرسه و باعث ميشه عدد دهدهي (decimal number) به عدد منفي سويچ كنه و درنتيجه تاريخ برميگرده به 1901(در واقع يك overflow رخ ميده) منبع

ورق هاي تقلب (Cheat Sheet) ضروري براي يك توسعه دهنده وب

با زياد شدن زبان و تكنولوژي هاي توسعه وب بخاطر سپردن Syntax هاي اين زبان و تكنولوژي ها سخت ميشه و خيلي پيش مياد كه هنگام برنامه نويسي نحوه استفاده از يك تابع رو به ياد نمياريم و… در زير چند Cheat Sheet ضروري رو معرفي ميكنم Javascript and AJAX libraries Javascript Reference Card Javascript Cheat Sheet Javascript and Browser Objects Quick Reference Gigantic List of Javascript Cheat Sheets jQuery Visual Map jQuery API Browser jQuery 1.3 Cheat Sheet MooTools Cheat Sheet HTML and CSS Cheat Sheets HTML Cheat Sheet HTML Cheat Sheet - PDF/PNG HTML 5 Cheat Sheet – PDF CSS Cheat Sheet PDF/PNG CSS Online Cheat Sheet CSS 3 Cheat Sheet Cheat Sheet هاي بيشتر

ساخت دايناميكي تگ HTML

ساخت دايناميكي تگ <DIV> با استفاده از جاوااسكريپت < html xmlns ="http://www.w3.org/1999/xhtml" > < head > < title > Create DIV Dynamically Using JavaScript </ title > < script type ="text/javascript" language ="javascript" > 1: 2: function DynamicDiv() { 3: var dynDiv = document.createElement( "div" ); 4: dynDiv.id = "divDyna" ; 5: dynDiv.innerHTML = "Created using JavaScript" ; 6: dynDiv.style.height = "20px" ; 7: dynDiv.style.width = "300px" ; 8: dynDiv.style.backgroundColor = 'gray' ; 9: document.body.appendChild(dynDiv); 10: } </ script > </ head > < body > < div > < input id ="Button1" type ="button" value ="Using JS" onclick ="DynamicDiv();" /> </ d...

طراحي پيش الگوي فرم هاي برنامه بوسيله Balsamiq Mockups

تصویر
با استفاده از اين نرم افزار ميتونيد براي فرم هاي برنامه تون پيش الگو طراحي كنيد.يكي از ويژگي هاي اين نرم افزار اينه كه بصورت تيمي ميتونيد رو پروژه كار كنيد و … اطلاعات بيشتر

ساختار فيزيكي داده ها در اسكيوال سرور (قسمت اول)

در اسكيوال سرور ديتا ها داخل فايلها سازمان يافته اند . زماني كه ما يك ديتابيس ميسازيم نام و مكان اين فايل ها رو مشخص ميكنيم(لاگ فايل و ديتا فايل).براي ساختن ديتابيس حداقل به يك لاگ فايل و ديتا فايل نياز داريم. ديتا فايل:مقادير ديتا ,ايندكس ها و حتي SP و توابع در اين فايل ذخيره ميشوند. لاگ فايل:تمام تغييرات در  ديتابيس بصورت write-ahead(يعني هر تغيير در ديتابيس اول در لاگ ثبت شود) در لاگ فايل ثبت ميشوند. براي مكانيابي سريع داده ها اين مقادير ديتا بايد به يك روشي سازماندهي شوند كه ; موتور ديتاي (Data Engine) اسكيوال سرور دسترسي كامل به محل قرارگيري هر ديتا داشته باشد.اسكيوال سرور با شازماندهي ديتا ها در ديتاپيج(به حجم 8 كيلوبايت) به اين مهم دست ميابد.هر ديتاپيج با هدرهاي 96بايتي شروع ميشوند(كه شامل اطلاعاتي از قبيل شماره صفحه , نوع صفحه ,مقدارفضاي خالي در صفحه و…است). رديف هاي داده بصورت سريالي بعد از هدر در ديتاپيج ها قرار ميگيرند.يك جدول رديف آفست (row offset) در انتهاي هر صفحه قرار ميگره و در اين جدول به ازاي هر رديف ديتا يك رديف داريم (كه ترتيب قرار گرفتن آنها برعكس ترتيب ردي...

توابع رشته اي در اسكيوال سرور 2005 (قسمت اول)

ASCII ( character_expression ) كد اسكي يك كاراكتر رو برميگردونه و اگر يك عبارت رشته اي وارد كنيم كد اسكي سمت چپي ترين كاراكتر اون رشته رو برميگردونه و خروجي اون يك عدد از نوع int هست CHAR ( integer_expression ) دقيقا عكس تابع بالا عمل ميكنه و كاراكتر متناظر با كد اسكي وارد شده رو برميگردونه CHARINDEX ( expression1 ,expression2 [ , start_location ] ) پيدا كردن و برگرداندن مكان عبارت اول در عبارت دوم اگه پيدا نكرد صفر (بصورت ديفالت از ابتداي عبارت دوم شروع به جستجو ميكنه كه قابل تغييره با پارامتر سوم تابع) مثال 1: 1: SELECT Charindex ( 'winsharp' , 'my blog name is winsharp' ) خروجي  17 SOUNDEX ( character_expression ) كدي رو برميگردونه كه براساس اون ميشه اسامي(و يا كلمات)ي رو كه صداشون يكي هست رو تشخيص داد مثال 1: SELECT SOUNDEX ( 'hosaini' ), SOUNDEX ( 'hasani' ) خروجي H250 DIFFERENCE ( character_expression , character_expression ) بر اساس تابع SOUNDEX با برگرداندن عددي در بازه صفر تا 4 ميزان شب...

دلايل استفاده از SP بجاي كوئري هاي موردي

Reduce Network Traffic ترافيك بيش از اندازه بدليل كوئري هاي دم دستي يا اد هوك باعث بالارفتن ترافيك شبكه مشود كه خود قاتل پرفرمنس سيستم است. Database Privileges با استفاده از اس پي ميتوان براي كاربران پرميژن تعيين كرد Code Security جلوگيري از اسكيول اينجكشن Execution Plan Re-use با توجه به اينكه پلن اجراي اس پي در سرور ذخيره ميشود براي فراخواني هاي مجدد اس پي نيازي به كامپايل مجدد نيست در نتيجه پرفرمنس بصورت وحشتناكي افزايش پيدا ميكند Efficient Re-use of Code با داشتن اس پي هاي كامان (Common) در سرور ميتوانيم آنرا در هر برنامه اي استفاده كنيم در نتيجه باعث كم شدن كدنويسي ميشود Single Point of Maintenance اگر منطق برنامه ما با استفاده از اس پي باشد در تغييرات احتمالي منطق برنامه ما فقط با تغيير اس پي ميتوانيم به مطلوبمان برسيم بدون نياز به تغيير در كد برنامه   منبع