.:: محمدحسین فخرآوری ::.

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

غیر فعال کردن EnableBrowserLink

در وب کانفیگ در قسمت appSettings بزارید

< add key="vs:EnableBrowserLink" value="false">< / add>
برچسب‌ها: asp , vs 2022
محمدحسین فخرآوری ، سه شنبه ۱۴۰۱/۰۵/۲۵ ، 23:1

خروجی pdf بدون باز کردن ریپورت همراه با تیک زدن EmbeddedFonts

public ActionResult PrintPdf(string id = "")
    {
      var report = this.GetReport2(id);


      var settings = new Stimulsoft.Report.Export.StiPdfExportSettings() { ImageQuality = 1.0f, ImageResolution = 300, EmbeddedFonts = true, UseUnicode = false, StandardPdfFonts = true };
      var service = new Stimulsoft.Report.Export.StiPdfExportService();
      var stream = new MemoryStream();

      service.ExportTo(report, stream, settings);

      return File(stream.ToArray(), "application/octet-stream", DateTime.Now.Ticks + ".pdf");
    }

محمدحسین فخرآوری ، دوشنبه ۱۴۰۰/۰۹/۱۵ ، 7:41

visual studio 2022 serial key

visual studio 2022 serial key


Pro:
TD244-P4NB7-YQ6XK-Y8MMM-YWV2J

Enterprise:
VHF9H-NXBBB-638P6-6JHCY-88JWH

محمدحسین فخرآوری ، پنجشنبه ۱۴۰۰/۰۸/۲۰ ، 13:25

ویژگی ها و امکانات سیستم فروشگاه اینترنتی پارسیان

در این سیستم علاوه بر وجود امکانات عادی اکثر فروشگاههای آنلاین، امکانات پیشرفته تری نیز تعبیه شده است که همین موضوع باعث تمایز از دیگر فروشگاه‎های آنلاین می‎باشد

1) تخفیف ها 
تعریف کوپن تخفیف 
تعریف نماینده (درصد ثابت تخفیف روی همه کالا ها)

2) انبار داری 
تعریف چند انبار و یک انبار فروش آنلاین 
امکان انجام کلیه عملیات ورود کالا به انبار و عملیات خروج کالا از انبار 

3) چند نرخی 
ثبت نرخ های مختلف (دلار - ریال - درهم و ..)
 
4) کالا 
تخصیص کالاهای مرتبط به محصول 
به من اطلاع بده 
برجسب گزاری محصول بر اساس (ویژه - جدید - حراج)

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

6) نحوه ارسال 
ثبت سفارش در یک یا چند بسته 
چاپ برچسب بسته بندی

7) اپلیکیشن اندروید
مدیریت یکپارچه با وب‎سایت 

به دلیل محدودیت متن، موارد بالا قسمتی از مزایا سیستم گفته شد.
برای مشاهده اطلاعات جامع به سایت اینجانب https://fakhravari.ir/onlinestorewebsite مراجعه فرماید.

محمدحسین فخرآوری ، پنجشنبه ۱۳۹۹/۰۸/۰۱ ، 12:17

Force Nuget to Reinstall Packages without Updating

  • Update-Package -reinstall
  • Update-Package -reinstall -Project ProjectName
محمدحسین فخرآوری ، شنبه ۱۳۹۸/۰۷/۲۷ ، 11:34

تفاوت بین Frontend و Backend چیست؟

تفاوت بین Frontend و Backend چیست؟

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

ادامه نوشته
برچسب‌ها: Backend , Frontend
محمدحسین فخرآوری ، سه شنبه ۱۳۹۷/۰۵/۳۰ ، 21:47

12 کلید میانبر کارآمد Visual Studio

ویژوال استادیو یک IDE قدرتمند می باشد و ویژگی های زیادی را برای راحت تر کردن برنامه نویسان فراهم نموده است. در این مقاله با 12 کلید میانبر کارآمد ویژوال استادیو آشنا خواهیم شد.

12 کلید میانبر کارآمد Visual Studio

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

1- مرتب کردن کدها امری بسار مهم اما وقت گیر می باشد که بوسیله CRTL + K + D این کار به آسانی انجام می گیرد.

2- هنگام خطایابی و یا تست کدها کامنت کردن کدها استفاده زیادی دارد و با استفاده از CTRL+K+C/CTRL+K+U می توانید کدها را کامنت کرده و یا از کامنت درآورید.

3- با رفتن روی یک قسمت از کد و با استفاده از ALT+up/down می توانید آن خط کد را بالا و پایین ببرید.

4-با زدن کلید F12 به کلاس مورد نظر رفته و با استفاده از  - CTRL به محل قبلی بازگردید.

5-با نگه داشتن CTRL + کلیک موس به کلاس مورد نظر می روید.

6-از این پس برای عملیات Refactor کردن یا کلاس کردن می توان از کلید میانبر CTRL+R+M استفاده کنید.

7-برای پیدا کردن تمامی رفرنس ها کافی است از کلید میانبر Shift + F12 استفاده نمایید.

8-هنگامی که می خواهید یک تکه کد را داخل Try بیندازید می توانید از Ctrl + K + S استفاده نمایید.

9-برای انتخاب یک مربع از کد می توانیید ابتدا Alt را نگه داشته و با نگاه داشتن کلیک موس یک مربع دلخواه ترسیم نمایید.

10-با استفاده از کلید میانبر CTRL + M + O کدها را جمع کرده و و برای باز کردن آن از CTRL + M + X استفاده می نماییم.

11-کدهای زیادی بدون گروه بندی وجود دارند. می توانید از CTRL+M+H/CTRL+M+U استفاده نمایید.

12-برای بستن پنجره از ALT+F4 استفاده نمایید.

محمدحسین فخرآوری ، سه شنبه ۱۳۹۶/۰۸/۰۲ ، 9:51

نحوه استفاده از متد Except در Linq

این مقاله نحوه استفاده از متد Except در Linq را بررسی می کند. متد Except برای انجام عملیات روی مجموعه ها، لیست ها و آرایه ها به کار برده می شود.

نحوه استفاده از متد Except در Linq

مقدمه

متد Except یک متد افزونه (extention method) در Linq است که یک راه سریع برای استفاده از منطق مجموعه ای فراهم می کند، این متد تمام عنصرهایی از آرایه را که در آرایه دیگری پیدا کند، حذف می کند و نیاز به استفاده از حلقه های پیچیده Foreach را کاهش می دهد.

مثال:

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

1
2
3
4
5
6
7
8
9
10
int[] list1 = { 5, 3, 9, 7, 5, 9, 3, 7 };       
int[] list2 = { 8, 3, 6, 4, 4, 9, 1, 0 };       
Console.WriteLine("Elements of FirstArray(list1 ):{ 5, 3, 9, 7, 5, 9, 3, 7 }");       
Console.WriteLine("Elements of SecondArray(list2 ):{ 8, 3, 6, 4, 4, 9, 1, 0 }");       
int[] Except = list1 .Except(list2 ).ToArray();       
Console.WriteLine("Except Result");       
foreach (int num in Except)       
{       
   Console.WriteLine("{0} ", num);       
}   

خروجی کد:

1
2

در کد بالا، آرایه لیست 2 تمام عناصر لیست 1 را داراست به جز عنصر 5 و 7. به همین دلیل متد Except این دو مقدار را به عنوان آرایه سوم برمی گرداند.

برچسب‌ها: Except
محمدحسین فخرآوری ، شنبه ۱۳۹۴/۰۵/۱۰ ، 23:55

ترفند ها و نکته های رایج در ASP.NET

این مقاله نکته های بسیار رایجی برای خطا ها در ASP.NET در کنار پیکربندی آنها ارائه میدهد. برای آن دسته از برنامه نویسانی که در حین برنامه نویسی در web application با استثنائات رو به رو میشوند , بسیار مفید خواهد بود.

معرفی

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

نکته ها و ترفند ها

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

راه حل :

نکته های ASP.NET

                                         تصویر: روش پیکربندی مرتبط با انتشار وب سایت در IIS

گام اول

Application pool مناسب را انتخاب کنید و اگر هم چارچوب هدف در application pool گم شد ، از روش زیر بر اساس ویندوز مربوط به خودتان اقدام نمایید :

با استفاده از Run as administrator یک پنجره ی command باز کنید

در پنجره ی command مسیر directory را به چارچوب مناسب تغییر دهید:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

پس از تغییر مسیر directory ، "aspnet_regiis i" را وارد کنید. این دستور موجودیت aspnet_regiis را درون directory فعال میکند.

گام دوم

کد انتشار مناسب را انتخاب کنید.

گام سوم

دسترسی مسیر فیزیکی را برای کاربر کنونی یا IUSR با تایید استفاده از "Test Settings" چک کنید.

. اگر شما وب سایت تان را بر روی یک سرور منتشر کرده اید و بخواهید برخی از کد های جزئی بخش code-behind را و آن را بر روی سرور آپلود کنید ، بهترین روش چه خواهد بود ؟

راه حل :

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

گام اول

پروژه را بدون خطا بسازید و سپس به فولدر bin پروژه بروید و سپس "projectname.dll" و "projectname.pdb" را در صورت وجود بیابید.

گام دوم

سپس آن دو فایل را در فولدر live project's bin قرار دهید و آنها را جایگزین کنید. اکنون وب سایت با آخرین تغییرات اعمال شده اجرا خواهد شد زیرا فایل .CS مان (همان قسمت code-behind) تبدیل به یک DLL شده است و صفحه ی ما به دنبال متد های مرجع برای فایل DLLمیگردد.

. حال برای حل خطای "Maximum request length exceeded" در زمان کار با یک وب سرویس یا داده ی JSON چه باید کرد؟

راه حل :

به طور پیش فرض 4MB برای machine.config تنظیم شده است اما شما میتوانید آن را در web.config تان لغو کنید. به عنوان مثال برای گسترش محدودیت آپلود به 20MB کد زیر را به web.config اضافه کنید:

 
  
   "240" maxRequestLength="20480" />  
 

IIS7 ( و نسخه های بعدی) دارای اسکن کردن درخواست به صورت توکار میباشد که حد یک فایل آپلود را به صورت پیش فرض 30MB تحمیل میکند. برای افزایش آن احتیاج به افزودن خط های زیر به کد خود دارید :

 
  
      
          
            "3000000000" />  
          
      
 

request filtering Module یک پیکربندی است که از درخواستی که بیش از طول محتوای درخواست باشد جلوگیری میکند.

راه حل :

احتیاج به افزودن پیکربندی زیر به فایل web.config خود دارید :

 
  
  
  
"100000000" />  
  
  

. صفحه ای که درخواست میکنید به دلیل گسترش پیکربندی قابل اجرا نمیباشد. اگر صفحه یک script باشد ، یک handler به آن اضفه کنید. اگر نیاز به دانلود فایل است ، یک نقشه ی MIME (برای فایل JSON) اضافه کنید.

راه حل :

احتیاج به افزودن پیکربندی های زیر به فایل web.config تان دارید :

 
  
  
".json" mimeType="application/json" />  
  

. زمانی که WebAPI2 را با یک برنامه ی وب MVC متحد میکنیم آنگاه تعدادی خطا های وابستگی بوجود می آید.

راه حل :

من بسته ی "system.web.http.webhost" را با استفاده از Nuget دوباره نصب کردم و یک فایل WebApiConfig به فولدر appstart اضافه کنید. حال قبل از RouteConfig وارد فایل global.aspx شوید. اگر RouteConfig قبل از webapiconfig افزوده شده باشد ، آنگاهWebApi درست کار نخواهد کرد.

WebApiConfig.cs

4
public static void Register(HttpConfiguration config)   
{  
// Web API routes  
config.MapHttpAttributeRoutes();  
config.Routes.MapHttpRoute(  
name: "DefaultApi",  
routeTemplate: "api/{controller}/{id}",  
defaults: new   
{  
id = RouteParameter.Optional  
});  
//To return json format data  
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));  
}

در فایل global.aspx

 
AreaRegistration.RegisterAllAreas();  
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);  
//added before RouteConfig  
GlobalConfiguration.Configure(WebApiConfig.Register);  
RouteConfig.RegisterRoutes(RouteTable.Routes);  
BundleConfig.RegisterBundles(BundleTable.Bundles); 

. چگونه سرعت صفحه ی درخواست در ASP.NET را افزایش دهیم.

راه حل :

تنها کافیست که پیکربندی زیر را به فایل web.config اضافه کنیم تا مسئله به طور خودکار حل شود.

 
  
    temp\IIS Temporary Compressed Files">  
        "gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>  
          
            "text/*" enabled="true"/>  
            "message/*" enabled="true"/>  
            "application/javascript" enabled="true"/>  
            "*/*" enabled="false"/>  
          
          
            "text/*" enabled="true"/>  
            "message/*" enabled="true"/>  
            "application/javascript" enabled="true"/>  
            "*/*" enabled="false"/>  
          
      
    "true" doDynamicCompression="true"/>  
 

جمع بندی

در این مقاله برخی از نکات پیکربندی پایه ای را به همراه استثنائات رایج و راه حل های آنها آموختیم. این استثنائات اغلب در زمان برنامه نویسی در در web application رخ میدهد. من این مقاله را با نکات مفید دیگری به روز رسانی خواهم کرد.

محمدحسین فخرآوری ، جمعه ۱۳۹۴/۰۴/۱۲ ، 11:7

فراخوانی وب متد Asp.Net به وسیله JQuery و Ajax

در این مقاله قصد داریم تا وب متدی که با زبان C# و VB نوشته ایم را با استفاده از تکنیک Ajax و JQuery فراخوانی و به کاربر نتیجه خروجی وب متد را نمایش دهیم.

در قدم اول یک وب متد در کد های صفحه CS.cs.aspx ایجاد میکنیم:


 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    [System.Web.Services.WebMethod]
    public static string GetCurrentTime(string name)
    {
        return "سلام " + name + Environment.NewLine + "ساعت و تاریخ : "
            + DateTime.Now.ToString();
    }
}

  

ابتدا کتابخانه jQuery را به صفحه اضافه کنید .
 

1
"scripts/jquery-1.3.2.min.js" type="text/javascript">

 

در مرحله بعد به ایجاد یک TextBox و Button می پردازیم که به ترتیب برای دریافت نام و نشان دادن زمان با استفاده از JQuery می پردازیم.


 

 
 
   
          "txtUserName" runat="server">
          : نام خود را وارد کنید
          
          
          "btnGetTime" type="button" value="نمایش تاریخ و ساعت"
              onclick="ShowCurrentTime()" />
      

 

سپس با استفاده از JQuery و Ajax اقدام به فراخوانی وب متد میکنیم.

 

 
"text/javascript">
       function ShowCurrentTime() {
           $.ajax({
               type: "POST",
               url: "CS.aspx/GetCurrentTime",
               data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }',
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               success: OnSuccess,
               failure: function (response) {
                   alert(response.d);
               }
           });
       }
       function OnSuccess(response) {
           alert(response.d);
       }
   


 

و کافی است تابع ShowCurrentTime را به onClick دکمه نمایش تاریخ و ساعت می دهیم.

ابتدا نام را وارد می کنیم :

وارد کردن نام

 

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

محمدحسین فخرآوری ، جمعه ۱۳۹۴/۰۴/۱۲ ، 11:2

ساختار آدرس دهی برنامه های کاربردی در ASP.NET

ساختار آدرس دهی برنامه های کاربردی در ASP.NET

پوشه (folder) برنامه asp.net شامل لیستی از پوشه های مشخص شده است که می توانید از نوع خاص محتوا در هر پوشه استفاده کنید . ساختار پوشه اصلی به این صورت است :

BIN

App_Code

App_GlobalResources

App_LocalResources

App_WebReferences

App_Data

App_Browsers

App_Themes

 

Bin Directory

شامل اسمبلی های از پیش تعریف شده در NET.  مانند DLL می باشد که هدف نرم افزار است .

App_Code Directory

شامل فایل های source code مانند cs. یا vb. که بصورت پویا برای استفاده در نرم افزار تعریف شده اند . این فایل ها اغلب عناصر یا یک کتابخانه دسترسی اطلاعات را تفکیک می کنند .

App_GlobalResources Directory

شامل منابع جامعی است که در هر صفحه قابل دسترسی هستند .

App_LocalResources Directory

 عملکردی مانند app_globalresources دارد فقط این منابع برای صفحات منحصر به فردی در دسترس هستند .

App_WebReferences Directory

reference برای سرویس های وب که نرم افزار وب از آن استفاده می کند .

App_Data Directory

برای ذخیره اطلاعات و فایل های mdf ، فایل  های xml و... رزرو شده است.

App_Browsers Directory

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

App_Themes Directory

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

محمدحسین فخرآوری ، جمعه ۱۳۹۴/۰۴/۱۲ ، 10:56

نحوه ساخت منوی داینامیک

نحوه ساخت منوی داینامیک

لینک مطلب

محمدحسین فخرآوری ، جمعه ۱۳۹۲/۱۰/۲۰ ، 18:48

چند خطی در مولتی لاین

 Label1.Text = TextBox2.Text.Replace("\n", "< BR/>");
محمدحسین فخرآوری ، جمعه ۱۳۹۲/۱۰/۲۰ ، 15:6

آموزش استفاده از CKEditor.NET

ابتدا پوشه ckeditor را در root پروژه کپی کرده و بعد CKEditor.NET.dll را رفرنس

کنید یا در پوشه bin کپی کنید.

برای راحتی استفاده در صفحات در فایل web.config قسمت زیر اضافه کنید.

   

بعد برای استفاده در صفحات از کد زیر استفاده کنید

 

برای دانلود dll ها میتونید از سمپل من بردارید در ادرس
برچسب‌ها: CKEditor
محمدحسین فخرآوری ، چهارشنبه ۱۳۹۲/۱۰/۱۸ ، 15:42

محافظت از فایل دانلودی

محافظت از فایل دانلودی

محمدحسین فخرآوری ، شنبه ۱۳۹۲/۰۹/۱۶ ، 19:43

مناسبت ها تا پایان سال 1392

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

لینک مطلب

محمدحسین فخرآوری ، جمعه ۱۳۹۲/۰۷/۲۶ ، 16:46

داینامیکی کردن محتوای تگ های Title - meta Keyword - MetaDecsription

public void SetMetaTags(string title, string description, string keywords)

    {

        HtmlHead headTag = (HtmlHead)Page.Header;

        headTag.Title = title;

        HtmlMeta metaTag = new HtmlMeta();

        metaTag.Name = "Description";

        metaTag.Content = description;

        headTag.Controls.Add(metaTag);

        metaTag = new HtmlMeta();

        metaTag.Name = "Keywords";

        metaTag.Content = keywords;

        headTag.Controls.Add(metaTag);

    }

 


MasterPage MyMasterPage = (MasterPage)Master;

MyMasterPage.SetMetaTags("عنوان صفحه", "توضیحات صفحه", "کلمات کلیدی");

 

محمدحسین فخرآوری ، پنجشنبه ۱۳۹۲/۰۶/۲۸ ، 13:19

معماری 3لایه(3Layer) در طراحی وب

وقتی صحبت از معماری 3 لایه میشه یعنی اینکه پروژه شما باید به 3لایه یا 3بخش تقسیم بندی بشه
لایه اول:InterFace Layer
لایه دوم:Business Logic Layer
لایه سوم:Data Acess Layer
درسته که ظاهرا کد نویسی زیاد میشه ولی در عوض کد ها بخش بندی و از هم جدا میشه که مزیت های زیادی داره مثلا هروقت که کار با پایگاه داده دارین سریعا به لایع سوم میرین و ...
اما توضیح کلی راجب لایه ها :
وقتی که داده ها از سمت کاربر ارسال می شه این داده ها به لایه دوم منتقل می شه.کار لایه دوم چک کردن مقادیر،و... هست
زمانی که داده ها از هر جهت "تمییز" و "سازگار" بودن به لایه سوم برای ذخیره در پایگاه داده منتقل میشه
این کلیت معماری 3لایه در طراحی وب سایت هستش
برای درک بیشتر و آسون تر با مثالی از Asp.Net این معماری رو توضیح میدم 

فرض کنید یه پروژه نوشتین که دارای جدولی به نام MyUser هستش که اطلاعات کاربران در آن ذخیره میشه و دارای فیلد های Name,PassWord,...هستش و یه صفحه برای پروژتون طراحی کردین برای ثبت نام کاربران.
خوب چون جدول MyUser رو دارین باید یه کلاس به نام MyUser بسازید که دارای فیلد های این جدول باشه
(به طور کلی در معماری 3لایه برای هر جدول باید یه کلاس بسازید)
که من شبه کد های #C رو اینجا قرار میدم


Public Class MyUser

{

Private int _Id;

Private string_name;

Private string _Password;

public int Id

{

set{_Id=value;}

get{return _Id;}

}

public string  Name

{

set{_name=value;}

get{return _name;}

}

public string  PassWord

{

set{_Password=value;}

get{return _Password;}

}

}

حالا 2کلاس دیگه به نام هایBLL برای لایه دوم و DAL برای لایه سوم بسازید

Public Class BLL

{

DAL d;

public void RegisterBLL(string name,string pass)

{

d = new DAL();

MyUser m = new Myuser();

m.Name = name;

m.PassWord= Hash(pass);

d.RegisterDAL(m);

}

}

Public Class DAL

{

public void RegisterDAL(Myuser temp)

{

//وارد نمودن اطلاعات در دیتا بیس

}

}

 

 

 

وقتی کاربری به صفحه ثبت نام مراجعه میکنه و اطلاعات رو وارد میکنه، اطلاعات از صفحه (لایه اول) گرفته شده و برای لایه دوم(BLL) ارسال میشه

BLL bll = new BLL();

bll.RegisterBLL(name,Pass)

لایه دوم اطلاعات رو چک می کنه .مثلا این کاربر قبلا ثبت نام کرده یا خیر یا در این مثال بالا در لایه دوم پسورد کاربر هش شده سپس برای لایه سوم اطلاعات رو ارسال میکنه و در نهایت اطلاعات در دیتا بیس ذخیره میشه

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

امیدوارم این پست بتونه کمک تون کرده باشه

(و یه نصیحت دوستانه اینکه از تکنولوژی Linq برای برقراری ارتباط با پایگاه داده استفاده کنین دیگه نیازی به نوشتن

کلاس های مربوط به جدول های دیتا بیس نیس آخه Linq خودش از جداول و Store Procedure ها کلاس میسازه و معماری 3لایه خیلی آسون تر پیاده سازی میشه)

محمدحسین فخرآوری ، یکشنبه ۱۳۹۲/۰۶/۲۴ ، 18:42

4 عمل اصلی در Entity Framework

4 عمل اصلی در Entity Framework

برچسب‌ها: Entity Framework
محمدحسین فخرآوری ، چهارشنبه ۱۳۹۲/۰۶/۰۶ ، 20:55

نصب دات نت 3.5 برروی ویندوز 8

1) At first you need to insert Windows 8 boot DVD into your PC.
2) Then Right click on start menu and select “Command Prompt (Admin)” (See the image) to open Command Prompt in Administrator mode.
3) Then copy the following line of code and paste on to Command Prompt window and press enter.
Dism /online /enable-feature /featurename:NetFx3 /All /Source:F:\sources\sxs /LimitAccess
Keep in mind that in the above code F:\ is the address of my DVD drive, in your case it may vary from mine one . So please check the DVD drive location of your PC from my computer after inserting the disk and place that on the above line of code before pasting on Command Prompt.
4) Now the screen will come like this:

5) Now wait for a few minutes. After installation completion of the feature the screen will come like this:

6) Now eject the DVD and enjoy the program, app, games that need .Net Framework to run.

محمدحسین فخرآوری ، شنبه ۱۳۹۲/۰۶/۰۲ ، 14:54

آموزش ساخت و پابلیش وب سایت بر روی هاست

با سلام

مقاله آموزشی هست که خودم درست کردم.

http://mohamad-hoosein.persiangig.com/References.Asp.Net/

محمدحسین فخرآوری ، چهارشنبه ۱۳۹۲/۰۲/۲۵ ، 13:18

آموزش ساخت اسلاید شو با استفاده از WebMethod

http://barnamenevis.org/showthread.php?393825
محمدحسین فخرآوری ، سه شنبه ۱۳۹۲/۰۱/۲۷ ، 23:9

دسترسی به کنترل های یک صفحه از صفحه دیگر

http://barnamenevis.org/showthread.php?390957
محمدحسین فخرآوری ، یکشنبه ۱۳۹۲/۰۱/۱۸ ، 19:15

Application_Error

خطاهای وب Application_Error

دریافت خطاهای وب سایت.
 

Global.asax

protected void Application_Error(object sender, EventArgs e)

{

    Exception objErr = Server.GetLastError().GetBaseException();

    string err = "Adress Error : " + Request.Url.ToString() +

    "\n Type Message Error : " + objErr.Message.ToString() +

    "\n Stack Trace : " + objErr.StackTrace.ToString();

}

چند خطا
 

string ff ="111111111111111111111111111111111111111111";

       int a = int.Parse(ff);

 


محمدحسین فخرآوری ، جمعه ۱۳۹۱/۱۱/۲۷ ، 3:43

IP Block Module

using System;

using System.Web;

 

namespace Fakhravary.Security

{

    public class IPBlockModule : IHttpModule

    {

        public void Dispose() { }

 

        public void Init(HttpApplication context)

        {

            context.BeginRequest += new EventHandler(Application_BeginRequest);

        }

 

        private void Application_BeginRequest(object source, EventArgs e)

        {

            HttpContext context = ((HttpApplication)source).Context;

            string ipAddress = context.Request.UserHostAddress;

            if (IsBlockedIpAddress(ipAddress))

            {

                context.Response.StatusCode = 403;

                context.Response.Write("IPBlock");

            }

        }

 

        private bool IsBlockedIpAddress(string ipAddress)

        {

 

            string sss = HttpContext.Current.Request.UserHostAddress;

 

 

            string[] IPs = {        "127.0.0.1",

                                    "::1"

                           };

 

            foreach (string IP in IPs)

            {

                if (IP == ipAddress)

                    return true;

            }

            return false;

        }

 

    }

}

 

    "IPBlockModule" type="Fakhravary.Security.IPBlockModule"/>

 

محمدحسین فخرآوری ، پنجشنبه ۱۳۹۱/۱۱/۲۶ ، 2:48

داینامک کردن منو وبسایت

داینامیک کردن منو jquery

http://barnamenevis.org/showthread.php?358698

محمدحسین فخرآوری ، دوشنبه ۱۳۹۱/۱۱/۰۹ ، 2:38

مقابله با XSS ؛ يكبار براي هميشه!

http://vahidnasiri.blogspot.co.uk/2011/05/xss.html

محمدحسین فخرآوری ، جمعه ۱۳۹۱/۱۰/۲۲ ، 12:26

File Protection Handler

یک سمپل برای جلوگیری از دسترسی به یک پوشه خاص
http://www.codeproject.com/Articles/...Handlers-in-AS

محمدحسین فخرآوری ، دوشنبه ۱۳۹۱/۱۰/۱۱ ، 20:52

خالی نمودن تمامی حافظه Cache شده در ASP.NET

در نرم افزارهای تحت وب گاهی اوقات نیاز پیدا می کنید که تمام منابعی که در حافظهCache ذخیره شده اند را حذف نمایید تا دفعه بعد با اطلاعات جدید پر شوند.
در مورد Session State متدی به نام Abandon وجود دارد که با فراخوانی آن، تمامی اطلاعات ذخیره شده در حافظه Session برای کاربر مورد نظر خالی می شود ولی در مورد حافظه Cache چنین متدی وجود ندارد.
با استفاده از تکنیک زیر می توانید حافظه Cache را به طور کامل خالی نمایید.


 

 

IDictionaryEnumerator enumerator = HttpContext.Current.Cache.GetEnumerator();

            List<string> itemsToRemove = new List<string>();

            while (enumerator.MoveNext())

            {

                hh.Add(enumerator.Key.ToString());

                itemsToRemove.Add(enumerator.Key.ToString());

            }

            foreach (string itemToRemove in itemsToRemove)

                HttpContext.Current.Cache.Remove(itemToRemove);


تذکر :

به یاد داشته باشید که این ترفند در مورد صفحاتی که از OutputCache استفاده نموده اند کارساز نیست.
برای خالی نموندن حافظه Cache شده در صفحاتی که از OutputCache استفاده نموده اند از قطعه کد زیر استفاده نمایید.

 

 

HttpRuntime.Close();




مثال
 

 

List<string> hh = new List<string>();

            Cache["d1"] = new DataTable();

            Cache["d2"] = new DataSet();

            Cache["d3"] = "salam";

 

 

            IDictionaryEnumerator enumerator = HttpContext.Current.Cache.GetEnumerator();

            List<string> itemsToRemove = new List<string>();

            while (enumerator.MoveNext())

            {

                hh.Add(enumerator.Key.ToString());

                itemsToRemove.Add(enumerator.Key.ToString());

            }

            foreach (string itemToRemove in itemsToRemove)

                HttpContext.Current.Cache.Remove(itemToRemove);


منیع: 

http://30sharp.com/article/2/141/1/%...B1-aspnet.aspx

 

 

محمدحسین فخرآوری ، دوشنبه ۱۳۹۱/۱۰/۱۱ ، 20:51

ارسال اطلاعات از طریق روش Post

ارسال اطلاعات از طریق روش Post

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

QuryString: در این روش اطلاعات از طریق آدرس صفحه یا همان URL ارسال می شوند و مشکل خاصی در این زمینه وجود ندارد .

Post: در این روش اطلاعات داخل فیلد های مخفی (HiddenField) در صفحه قرار می گیرند. پس از اینکه فرم صفحه وب submit شد، اطلاعات به آدرسی که در ویژگی Action فرم قرار دارد Post می شوند و سپس در آدرس مقصد با استفاده از دستور Request.Form می توان به محتویات فلید های مخفی دسترسی پیدا نمود.

 

با توجه به اینکه ارسال اطلاعات از طریق Post امروزه رواج زیادی پیدا کرده است و بسیاری از بانک های ایرانی و خارجی هم اکنون از این روش برای دریافت اطلاعات استفاده می کنند، در این مقاله به بررسی این موضوع خواهیم پرداخت.
همانطور که مستحضر می باشید صفحات ASP.Net (بدیهی است که منظور ما WebForm ها می باشند و نه ASP.NET MVC) به طور پیش فرض اطلاعات یک صفحه را هنگام submit شدن فرم به خود آن صفحه Post می کنند که به این روش PostBack گفته می شود. بنابراین Post نمودن اطلاعات به یک وب سایت دیگر در حالت عادی امکان پذیر نمی باشد.
برای حل این مشکل از روش های مختلفی استفاده می شود. یک روش این است که با استفاده از زبان جاوا اسکریپت و HTML یک فرم را به صورت داینامیک ایجاد نموده و همراه با دستور submit در صفحه بنویسیم.
اما گاهی نیاز است که دستور Post شدن اطلاعات را از درون یک کلاس یا کتابخانه ای که حتی در یک لایه فیزیکی متفاوت (Tire) قرار دارد صادر کنیم. 
هم اکنون کلاسی خواهیم نوشت که انجام عمل Post نمودن اطلاعات را به راحت ترین شکل ممکن امکان پذیر می نماید.
لینک منبع
http://barnamenevis.org/showthread.php?372261

 


محمدحسین فخرآوری ، دوشنبه ۱۳۹۱/۱۰/۱۱ ، 20:41

آمار بازديد و افراد آنلاين

با سلام
ساختار برنامه اقای هاشمی از System.Xml.Linq استفاده شده که از ورژن
1
.NET Framework 3.5

اضافه شده.
به همین دلیل قابل اجرا در نسخه های پایینتر نیست.
اطلاعات بیشتر 
http://msdn.microsoft.com/en-us/libr...=vs.90%29.aspx
من برنامه اقای هاشمی را با DataTable پیادسازی کردم که بشه در همه ورژن ها اجرا بشه.
دوستان تست کنن ببینن مشکلی نیست !
ضمیمه پست 41 ویرایش شد

لینک مطلب

محمدحسین فخرآوری ، شنبه ۱۳۹۱/۰۸/۲۷ ، 17:27

زمانبندی

با سلام
فقط جهت اطلاع دوستان.
این تاپیک اقای سالار خلیل زاده است
http://barnamenevis.org/showthread.p...-%D9%88-...%29
اینم سایت اقای کیوان نیری
http://keyvan.io/how-to-build-a-task...asp-net-part-1
http://keyvan.io/how-to-build-a-task...asp-net-part-2
در مورد این 2 باید بگم که 
در برنامه اقای سالار اگر درخواستی به سایت ارسال نمیشد درخواست ها اجرا نمیشد.
ولی در برنامه اقای کیوان با تایمر کار میشه و همیشه برنامه در حال اجرا است ولی مشکلاتی دیدم در تایم اجرای برنامه ها
خوب من این 2 را با هم ادغام کردم و تا حالا جواب گرفتم.
عکس ها راببنید.
متد تنظیم ایمیل را روی 30 min تنظیم کردم.

لینک مطلب

http://barnamenevis.org/showthread.php?368138

محمدحسین فخرآوری ، شنبه ۱۳۹۱/۰۸/۲۷ ، 17:26

مخفف کلمات در برنامه نویسی

.NET ASP.NET – ACTIVE SERVER PAGES FOR .NET 

.NET B2B – BUSINESS TO BUSINESS 

ADO – ACTIVE DATA OBJECTS 

ADO.NET – ACTIVEX DATA OBJECTS 

AJAX – ASYNCHRONOUS JAVASCRIPT AND XML 

API – APPLICATION PROGRAMMING INTERFACE 

APPDOMAIN – APPLICATION DOMAIN 

ASP – ACTIVE SERVER PAGES 

B2C – BUSINESS TO CONSUMER 

BAL – BASE ACTIVITY LIBRARY 

BAML – BINARY APPLICATION MARKUP LANGUAGE 

BCL – BASE CLASS LIBRARY 

CAO – CLIENT ACTIVATED OBJECTS 

CAS – CODE ACCESS SECURITY 

CCW – COM CALLABLE WRAPPER 

CICS– Customer Information Control System                             

----------------------- Page 2-----------------------

CIL – COMMON INTERMEDIATE LANGUAGE 

CLI – COMMON LANGUAGE INTERFACE / COMMON LANGUAGE INFRASTRUCTURE 

CLR – COMMON LANGUAGE RUNTIME 

CLS – COMMON LANGUAGE SPECIFICATION 

CMMI – CAPABILITY MATURITY MODEL INTEGRATION 

CODEDOM – CODE DOCUMENT OBJECT MODEL 

COFF – COMMON OBJECT FILE FORMAT 

COM – COMPONENT OBJECT MODEL 

CSC – C# COMMAND LINE COMPILER 

CSDL – CONCEPTUAL SCHEMA DEFINITION LANGUAGE 

CSS – CASCADING STYLE SHEETS 

CTS – COMMON TYPE SYSTEM 

DBMS – DATABASE MANAGEMENT SYSTEM 

DCOM – DISTRIBUTED COMPONENT OBJECT MODEL 

DDL – DATA DEFINITION LANGUAGE 

DI – DEPENDENCY INJECTION 

DLL – DYNAMIC LINK LIBRARY 

DLR – DYNAMIC LANGUAGE RUNTIME                 

----------------------- Page 3-----------------------

DML – DATA MANIPULATION LANGUAGE 

DOM – DOCUMENT OBJECT MODEL 

DSI – DISTRIBUTED SYSTEM INITIATIVE / DYNAMIC SYSTEM INITIATIVE 

DTD – DOCUMENT TYPE DEFINITION 

DTO – DATA TRANSFER OBJECT 

ECMA – EUROPEAN COMPUTER MANUFACTURERS ASSOCIATION 

EDM – ENTITY DATA MODEL 

EIF – ENTERPRISE INSTRUMENTATION FRAMEWORK 

EXE – EXECUTABLE 

FCL – FRAMEWORK CLASS LIBRARY 

GAC – GLOBAL ASSEMBLY CACHE 

GC – GARBAGE COLLECTOR 

GDI – GRAPHICS DEVICE INTERFACE 

GDI+ - GRAPHICS DEVICE INTERFACE PLUS 

GUI – GRAPHIC USER INTERFACE 

GUID – GLOBALLY UNIQUE IDENTIFIER 

HTML – HYPERTEXT MARKUP LANGUAGE 

HTTP – HYPERTEXT TRANSFER PROTOCOL                            

----------------------- Page 4-----------------------

IDE – INTEGRATED DEVELOPMENT ENVIRONMENT 

IDL – INTERFACE DEFINITION LANGUAGE 

IIS – INTERNET INFORMATION SERVICES 

IL – INTERMEDIATE LANGUAGE 

ILDASM – INTERMEDIATE LANGUAGE DISASSEMBLER 

IOC – INVERSION OF CONTROL 

IWAM - INTERNET SERVER WEB APPLICATION MANAGER 

JIT – JUST-IN TIME COMPILER 

JSON – JAVASCRIPT OBJECT NOTATION 

LINQ – LANGUAGE INTEGRATED QUERY 

MARS – MULTIPLE ACTIVE RESULT SETS 

MBR – MARSHAL BY REFERENCE 

MBV – MARSHAL BY VALUE 

MIDL – MICROSOFT IDL COMPILER 

MIL – MEDIA INTEGRATION LAYER 

MMC – MICROSOFT MANAGEMENT CONSOLE 

MOSS 2007 – MICROSOFT OFFICE SHAREPOINT SERVER 2007 

MS –DTC – MICROSOFT DISTRIBUTED TRANSACTION COORDINATOR                                

----------------------- Page 5-----------------------

MSDE – MICROSOFT DATA ENGINE 

MSIL – MICROSOFT INTERMEDIATE LANGUAGE 

MSL – MAPPING SCHEMA LANGUAGE 

MSMQ – MICROSOFT MESSAGE QUEUING 

MVC – MODEL VIEW CONTROLLER 

MVP–MODEL VIEW PRESENTER 

NAML – .NET APPLICATION MODELING LANGUAGE 

NGSCB – NEXT GENERATION SECURE COMPUTING BASE 

OLAP – ONLINE ANALYTICAL PROCESSING 

OLE – OBJECT LINKING AND EMBEDDING 

OLTP – ONLINE TRANSACTION PROCESSING 

OOP – OBJECT-ORIENTED PROGRAMMING 

PDA – PERSONAL DIGITAL ASSISTANT 

PDB – PROGRAM DATABASE 

PE – PORTABLE EXECUTABLE 

PIAS – PRIMARY INTEROP ASSEMBLIES 

PINVOKE – PLATFORM INVOKE 

RAD – RAPID APPLICATION DEVELOPMENT                                         

----------------------- Page 6-----------------------

RCW – RUNTIME CALLABLE WRAPPER 

RDL – REPORT DEFINITION LANGUAGE 

REPL – REAL EVAL PRINT LOOP 

REST – REPRESENTATIONAL STATE TRANSFER 

RIA – RICH INTERNET APPLICATIONS 

RPC – REMOTE PROCEDURE CALL 

RSS – RICH SITE SUMMARY / REALLY SIMPLE SYNDICATION 

SAML – SECURITY ASSERTION MARKUP LANGUAGE 

SAO – SERVER ACTIVATED OBJECTS 

SAX – SIMPLE API FOR XML 

SBC – SERVER-BASED COMPUTING 

SCM – SERVICE CONTROL MANAGER 

SDE – SMART DEVICE EXTENSIONS 

SDM – SYSTEM DEFINITION MODEL 

SDPS – SHAREPOINT DEPLOYMENT SHARING SERVICES 

SEE – SECURE EXECUTION ENVIRONMENT 

SGML – STANDARD GENERALIZED MARKUP LANGUAGE 

SLAM – SPECIFICATIONS, LANGUAGES, ANALYSIS AND MODEL CHECKING                           

----------------------- Page 7-----------------------

SMTP – SIMPLE MAIL TRANSFER PROTOCOL 

SOA – SERVICE ORIENTED ARCHITECTURE 

SOAP – SIMPLE OBJECT ACCESS PROTOCOL 

SQL- Structured Query Language 

SSDL – STORE SCHEMA DEFINITION LANGUAGE 

STLC – SOFTWARE TESTING LIFE CYCLE 

TBS – TABULAR DATA SERVICES 

TCP – TRANSMISSION CONTROL PROTOCOL 

TDD – TEST DRIVEN DEVELOPMENT 

TFS – TEAM FOUNDATION SERVER 

TLB – TYPE LIBRARY 

UDDI – UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION 

UDF – UNIFORM DATA FORMAT / USER-DEFINED FUNCTION 

URI – UNIFORM RESOURCE IDENTIFIER 

URL – UNIFORM RESOURCE LOCATOR 

VBC.EXE – VB.NET COMPILER 

VBL – VIRTUAL BUILD LABS 

VCS – VERSION CONTROL SYSTEM                       

----------------------- Page 8-----------------------

VDI – VIRTUAL DESKTOP INFRASTRUCTURE 

VES – VIRTUAL EXECUTION SYSTEM 

VS.NET – VISUAL STUDIO FOR >NET 

VSS – VISUAL SOURCE SAFE 

VSTS – VISUAL STUDIO TEAM SITE 

W3C – WORLD WIDE WEB CONSORTIUM 

WAP – WIRELESS ACCESS PROTOCOL 

WCAG - WEB CONTENT ACCESSIBILITY GUIDELINES 

WCF – WINDOWS COMMUNICATION FOUNDATION 

WCS – WINDOWS CARDSPACE 

WINFS – WINDOWS FUTURE SYSTEM 

WIQL – WORK ITEM QUERY LANGUAGE 

WKO – WELL KNOWN OBJECT 

WMI – WINDOWS MANAGEMENT INSTRUMENTATION 

WML – WIRELESS MARKUP LANGUAGE 

WPF – WINDOWS PRESENTATION FOUNDATION 

WPO – WHOLE PROGRAM OPTIMIZATION 

WSDL – WEB SERVICES DESCRIPTION LANGUAGE                                      

----------------------- Page 9-----------------------

WSE – WEB SERVICES ENHANCEMENTS 

WSUS – WINDOWS SERVER UPDATE SERVICES 

WWF – WINDOWS WORKFLOW FOUNDATION 

WWF – WINDOWS WORKFLOW FOUNDATION 

XAML – EXTENSIBLE APPLICATION MARKUP LANGUAGE 

XBAP – XML BROWSER APPLICATION 

XDR – XML DATA REDUCED 

XHTML – EXTENSIBLE HYPER TEXT MARKUP LANGUAGE 

XLINK – XML LINKING LANGUAGE 

XML – EXTENSIBLE MARKUP LANGUAGE 

XML POINTER LANGUAGE 

XOML – EXTENSIBLE OBJECT MARKUP LANGUAGE 

XPATH –XML PATH LANGUAGE 

XPOINTER –XML POINTER LANGUAGE 

XQL – XML QUERY LANGUAGE 

XSD – XML SCHEMA DEFINITION 

XSL – EXTENSIBLE STYLESHEET LANGUAGE 

XSLT – EXTENSIBLE STYLESHEET LANGUAGE TRANSFORMATIO 

 

محمدحسین فخرآوری ، جمعه ۱۳۹۱/۰۷/۲۸ ، 12:0

نحوه استفاده از سرویس های وب ( Web Services)

وب سرویس ها را می توان کامپاننت های تحت وب خواند . به این معنی که ارائه دهنده یک سرویس وب ، خدمات خود را در قالب متدهایی به اشتراک می گذارد و استفاده کننده می تواند از این متد ها در برنامه (Application) خود استفاده نماید .

به عنوان مثال فرض کنید بخواهید یک دیکشنری آنلاین بسازید برای این کار به چه چیزهایی نیاز دارید ؟

1. یک بانک اطلاعاتی شامل لغات و معانی آنها

2. یک برنامه واسط کاربری برای ارسال اطلاعات

3. کد های ADO.NET که اطلاعات را ارسال و دریافت نماید .

از 3 مورد فوق 2 مورد آخر کار یک برنامه نویس است و احتمالا برای شما کار ساده ایست ، فقط گزینه اول شاید امکان پذیر نباشد چرا که این بانک ممکن است موجود نبوده یا حجم بالای آن استفاده از آن را دشوار نماید .

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

نحوه استفاده از سرویس های وب در Visual Studio.NET :

برای استفاده از یک سرویس وب ابتدا شما باید آدرس وب سرویس را در اختیار داشته باشید ، به عنوان مثال وب سرویس جستجوی دامنه شرکت فراداده با آدرسhttp://parstoolbox.com/webservices/whois.asmx قابل دسترسی می باشد .

این آدرس را معمولا ارائه دهندگان وب سرویس های وب در اختیار شما قرار می دهند .

قبل از هر کار ابتدا این آدرس را در مرورگر خود باز نمایید .

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

· DnsResolve
دریافت آی پی از نام دامنه

· PingDomain
دامنه Ping

· PingIp
آی پی Ping

· WhoisInfo
دریافت اطلاعات دامنه

· simple
جستجوی دامنه ساده


 

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

1. وارد منوی WebSite شده و گزینه Add Web Reference را انتخاب نمایید .

2. در پنجره باز شده در قسمت Url آدرس وب سرویس را درج نمایید ( در اینجا آدرس ما http://parstoolbox/webservices/whois.asmx می باشد )

3. روی دکمه Go کلیک نمایید و منتظر بمانید تا لیست متد ها ظاهر گردد .

4. در بخش Web Reference Name ( در سمت راست صفحه ) یک نام برای وب سرویستان انتخاب نمایید ( از این نام در کد نویسی استفاده خواهیم کرد ) مثلا من نام WhoisWebService را انتخاب می کنم .

5. بر روی دکمه Add Reference کلیک نمایید تا وب سرویس اضافه گردد .

 

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

در صفحه کد نویسی مورد نظر یک شی از نوع این وب سرویس ایجاد می کنیم و سپس توسط این شی متد مورد نظر را فراخوانی می کنیم :

  1. protected void Page_Load(object sender, EventArgs e)  

  2.  {  

  3.      WhoisWebService.whois MyWhois = new WhoisWebService.whois();  

  4.      bool RetVal = MyWhois.simple("faradade.com");  

  5.      Response.Write(RetVal.ToString());  

  6.  } 

در کد فوق از متد Simple برای جستجوی دامنه استفاده شد . مقدار بازگشتی متد Simple یک Boolean می باشد ، مقدار False نشان دهنده آزاد نبودن دامنه و مقدار True به معنی آزاد بودن دامنه برای ثبت می باشد .

 

حال از متد دیگری جهت دریافت اطلاعات دامنه استفاده می کنیم به عنوان مثال داریم :

  1. protected void Page_Load(object sender, EventArgs e)  

  2.    {  

  3.        WhoisWebService.whois MyWhois = new WhoisWebService.whois();  

  4.        string Info = MyWhois.WhoisInfo("faradade.com");  

  5.        Response.Write(Info);  

  6.    } 

 و به همین ترتیب برای سایر متد ها

 

محمدحسین فخرآوری ، شنبه ۱۳۹۱/۰۶/۱۸ ، 19:50

استفاده از IntelliSense

شاید یکی از ویژگیهای مهم Visual Studio  ، اینتل لایسنس (IntelliSense) باشد. IntelliSense ما را قادر می سازد که به سرعت به کلاسها و متدها و….دسترسی پیدا کنیم.وقتی که شما در محیط کدنویسی حرفی را تایپ کنید . IntelliSenseفورا فعال می شود.

کد زیرا را در داخل متد Main بنویسید.

System.Console.WriteLine(“Welcome to Visual C# Tutorials!”);

اولین حرف را تایپ کنید تا IntelliSense فعال شود.

 intellisense-01

IntelliSense لیستی از کلمات به شما پیشنهاد می دهد که بیشترین تشابه را با نوشته شما دارند.شما می توانید با زدن دکمه tab گزینه مورد نظرتان را انتخاب کنید.

با تایپ نقطه ( . ) شما با لیست پیشنهادی دیگری مواجه می شوید.

 intellisense-02

اگر بر روی گزینه ای که می خواهید انتخاب کنید لحظه ای مکث کنید توضیحی در رابطه با آن مشاهده خواهید کرد مانند شکل بالا :

هر چه که به پایان کد نزدیک می شوید لیست پیشنهادی محدود تر می شود.برای مثال با تایپ حرف W ، IntelliSense فقط کلماتی را که دارای حرف W هستند را نمایش می دهد.

 intellisense-03

با تایپ حرف های بیشتر  لیست محدودتر شده و فقط دو کلمه را نشان می دهد.

 intellisense-04

اگر IntelliSense نتواند چیزی را که شما تایپ کرده اید پیدا کند هیچ چیزی را نمایش نمی دهد.برای ظاهر کردن IntelliSense کافیست دکمه ترکیبی Ctrl+Space را فشار دهید.برای انتخاب یکی از متدهایی که دارای چند حالتهستند، میتوان با استفاده از دکمه های مکان نما (بالا و پایین) یکی از حالت ها را انتخاب کرد. مثلا متد Writeline همانطور که در شکل زیر مشاهده می کنید دارای ۱۹ حالت نمایش پیغام در صفحه است.

 intellisense-05

IntelliSense به طور هوشمند کدهایی را به شما پیشنهاد می دهد و در نتیجه زمان نوشتن کد را کاهش می دهد.

 

برچسب‌ها: IntelliSense
محمدحسین فخرآوری ، چهارشنبه ۱۳۹۱/۰۶/۰۸ ، 13:56

ورژن 2 سایت

امکانات جدید
  1. امتیاز دهی به پست ها
  2. ارسال نظر برای هر پست
  3. محاسبه تعداد رای و تعداد نظرات برای هر پست
  4. نظر سنجی
  5. ارسال پیام بین کاربران سایت
  6. مدیریت کاربران ممبرشیپ
  7. ارسال کلمه عبور به ایمیل کاربران
  8. پیاده سازی Paging در صفحات به صورت Ajax
  9. فایل منیجر Ajax
  10. حل مشکل ی-ک به صورت عربی
  11. غیر فعال کردن امکان دانلود فایل در صورت کلیک از بیرون سایت
کامپوننت استفاده شده > Telerik - CKEditor - PollControl - FixFarsiCharsModule -Fakhravary

http://wdl.persiangig.com/pages/download/?dl=http://mohamad-hoosein.persiangig.com/vr2/Home_Books.rar
محمدحسین فخرآوری ، یکشنبه ۱۳۹۱/۰۲/۳۱ ، 16:12

ارسال ایمیل تبلیغاتی در زمان بندی

محمدحسین فخرآوری ، چهارشنبه ۱۳۹۱/۰۱/۱۶ ، 14:38

سایت مقاله دانلود کنید

با سلام
http://prozheha.com/ArticleInfo.aspx?ID=8

 

 

محمدحسین فخرآوری ، پنجشنبه ۱۳۹۰/۱۰/۰۱ ، 11:19

اسلاید شو

با سلام
دیدم خیلی دوستان دارن دنبال اسلاید شو میگردند منم تا جایی که بلدم چنتا اسلاید گیر اوردم و دستکاریشون کردم و گذاشتم برای شما دوستان
یه پروژه ساده درست کنید و Database_Config در آن بگذارید > دیتابیس و فایل کنفیگ.
خوشحال میشم دوستان این تاپیک رو به عنوان تاپیک اسلاید شو در نظر بگیرند و اسلاید شو ها رو به این تاپیک بیارن که هم صرفه جویی بشه در تعداد پستها
http://mohamad-hoosein.persiangig.com/asp/S_Show/Database_Config.rar









 


 
http://barnamenevis.org/showthread.php?317497

برای دریافت بر روی هر عکس کلیک کنید.

محمدحسین فخرآوری ، شنبه ۱۳۹۰/۰۹/۱۹ ، 23:46

راه های افزایش سرعت لود صفحات وب


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


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

1-پرس و جو های خود از پایگاه داده را با Stored Procedure پیاده سازی نمایید
2-در نوشتن Trigger ها دقت زیادی نمایید زیرا اگر به درستی و نامناسب نوشته شوند باعث Down شدن لحظه ای دیتابیس خواهند شد
3-سعی کنید پرس و جو های خود را با کمترین Join و الحاق بنویسین
34-برای جداول خود از Primary Key استفاده نمایید
5-سعی کنید از پایگاه داده های مانند Ms SQL به جای پایگاه داده های مانند Access استفاده نمایید
6-پایگاه داده های EnterPrise خیلی حرفه ای تر و کاراتر از نسخه های Express آن می باشد

فایل هایی با حجم پایین
1-استفاده از فایل ها و عکس ها با حجم پایین به طور فزاینده ای سرعت لود را بالا می برند(برای عکس ها، شما می توانید با استفاده از نرم افزار فتو شاپ و مراجعه به قسمت Save For Web حجم عکس ها را خیلی پایین ذخیره کنید)
2-سعی کنید عکس هایی که در یک صفحه استفاده می کنید در قالب یک عکس کلی ذخیره نمایید، این طوری به طور چشم گیری از زمان Send-Receive اطلاعات جلوگیری خواهد شد(با استفاده از خاصیت Background-Position در Css ها از عکس ها به این روش استفاده کنید) 
3-شما می توانید فایل های Css و JavaScript و Html خود را با حذف فضاهای خالی و... حجم آن ها نیز به طور چشم گیر کاهش دهید(نرم افزار هایی نیز در این زمینه وجود دارند که حجم را کاهش می دهند)
4-سعی کنید از کتاب خانه های مانند Jquery یا MooTools با حجم پایین تر که نیاز شما را برطرف می کنند، در صفحات خود استفاده نمایید


Ajax
1-اگر با تکنولوژی Asp.Net اقدام به طراحی وب سایت می کنید، می توانید خود کدهای مربوط به Ajax را نوشته و از کامپونت های خود Net. استفاده نکیند(کامپونت Ajax در Net. باعث تولید کد های جاوا اسکریپت فراوانی در صفحه شما خواهند کرد که طبیعتا باعث حجیم شدن فایل خواهد شد)

کد نویسی صحیح
1-در صورت امکان بیشتر از تگ Div به جای تگ Table استفاده کنید
2-کد های جاوا اسکریپت را در آخر صفحه و کد های Css را دراول صفحات استفاده نمایید
3-در نوشتن Css ها کمی حوصله خرج نمایید و از نوشتن کلاس های مشابه خود داری نمایید
4-سعی کنید از منو ها، تب ها، اسلایدر ها و ... آماده استفاده نکنید و خود اقدام به نوشتن آنها نمایید

هاست مناسب
1-انتخاب هاست مناسب نیز باعث افزایش سرعت و سرویس دهی به کاربران خواهد شد

محمدحسین فخرآوری ، سه شنبه ۱۳۹۰/۰۸/۲۴ ، 18:26

تابع تشخیص Is Leap Year

public static bool IsLeapYear(int year)
{
int[] LeapYears33 = new int[] { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 };
return (LeapYears33[year % 33] == 1);
}

محمدحسین فخرآوری ، چهارشنبه ۱۳۹۰/۰۷/۲۷ ، 13:31

تعیین عنوان صفحات سایت

تعیین عنوان صفحات سایت

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

راهنمای انتخاب Meta Title

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

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

 عنوان صفحه باید توضیحاتی در مورد محتوای آن را در خود داشته باشد، استفاده از کلمات عمومی مانند “خانه” ، “صفحه اصلی” یا “درباره ما” نمیتواند انتخاب مناسبی باشد. همچنین تعداد کاراکترهای عنوان نباید بیش از ۷۰ باشد زیرا گوگل امکان نمایش کامل آن در نتایج را نداشته و تنها تا ۷۰ کاراکتر اول قابل مشاهده خواهد بود.

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

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

 همچنین استفاده از اطلاعات و کلمات مهم زیاد در عنوان صفحه توصیه نمیشود اگر برای یک صفحه عنوانی مانند “استاد شجریان – بیوگرافی، آلبوم ها، عکس، دانلود و …” را بکار ببرید گوگل در تشخیص عنوان به مشکل خواهد خورد. در این موارد بهتر است عنوان مانند” استاد شجریان، بیگرافی و معرفی آثار” را بکار ببرید و جزئیات موجود در صفحه را به بخش توضیحات متا منتقل کنید.

 گوگل وبمستر صفحاتی که دارای عنوان تکراری هستند را به شما نشان میدهد، برای اینکار باید به همان بخش HTML improvements مراجعه کنید.

 برندینگ و قرار دادن نام شرکت یا سایت در عنوان صفحه، فقط برای صفحه اصلی سایت و صفحات مهم مانند “درباره ما” و “تماس با ما” توصیه میشود. استفاده از عنوان سایت در متای Title تمام صفحات سایت کار درستی نیست و موجب تکرار یک عبارت در آنها میشود. اگر به هر دلیل اصراری بر این کار دارید عنوان سایت را از عنوان صفحه مجزا کنید، بهترین روش استفاده از کاراکترهایی مانند “-”، “:” و “،” است. مانند “تغییر عنوان صفحه توسط گوگل – وبسیما”

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

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

محمدحسین فخرآوری ، چهارشنبه ۱۳۹۰/۰۷/۰۶ ، 20:35

مقایسه ای بر PHP و ASP.NET از زبان مهندس علیرضا شیرازی

مقایسه ای بر PHP و ASP.NET از زبان مهندس علیرضا شیرازی


مقایسه ای بر PHP و ASP.NET
مقایسه و انتخاب ابزارهای توسعه نرم افزار همواره یکی از بحثهای داغ برنامه نویسان و توسعه دهندگان نرم افزار بوده است. از مقایسه C و پاسکال تا مقایسه VB و ++VC و Delphi و با ورود به عصر اینترنت مقایسه امکانات perl،پیتون،PHP،ASP و ASP.NET، JAVA  بحثهای بوده است که در فرومها و سایتهای تخصصی همواره به آن پرداخته شده است. البته خیلی اوقات این قضیه از یک بحث فنی تبدیل به بحثی صرفا براساس علاقه و تعصب برنامه نویسان تبدیل شده یا اینکه مقایسه تبلیغاتی برای نمایش ضعف رقیبان و قدرتهای یک ابزار خاص بوده است.
به نظرم مهم است که یک برنامه نویس و توسعه دهنده نرم افزار به زبانها و پلاتفرمهای توسعه نرم افزار صرفا به عنوان یک ابزار نگاه کند و براساس نیازهای کمپانی یا تیم نرم افزاری و نیازهای نرم افزار  پلاتفرم و ابزارهای لازم را انتخاب کنند. مباحثی مثل علاقه شدید به مایکروسافت یا ضدیت با آن به نظرم شیوه حرفه ای و درستی برای انتخاب ابزارهای طراحی و توسعه نرم افزار نیست. این روزها در ایران مقایسه و انتخاب دو زبان و تکنولوژی خاص یعنی PHP و ASP.NET بحث داغی هستند و البته با گذشت زمان تقریبا هر گروه (بیشتر براساس سیاست شرکتهایی که در آن کار میکنند) یکی از این تکنولوژی ها را به عنوان ابزار اصلی توسعه نرم افزار و سایتها انتخاب کرده است. بارها از من پرسیده شده است که کدامیک از این زبانها انتخاب بهتری است و دلایل آن چیست؟ به عنوان برنامه نویسیکه  در سالهای قبل  علاوه بر ASP با زبان PHP نیز کار می کردم و در این زمینه مقاله، سمینار معرفی کوچکی و فعالیتهای در انجمن سابق ایران PHP (مانند تابع سورت فارسی) داشته ام و همچنین در سالهای اخیر نیز  عموما از ASP.NET استفاده کردم و براساس تجربه و اطلاعات شخصی مقایسه مختصری درباره این زبانها را ادامه خواهم داشت.


ادامه نوشته
محمدحسین فخرآوری ، چهارشنبه ۱۳۹۰/۰۷/۰۶ ، 20:30

Session Hijacking یا دزدی Session چیست؟

Cookie اطلاعاتی هستند که به طور موقت ذخیره می‌شن و تا زمان اعتبار آن، آن اطلاعات باقی می‌مونن.
معمولاً از این اطلاعات در وب‌سایت ها استفاده می‌شه تا کاربر مجبور نباشه این اطلاعات را چندین بار وارد کنه. مرسوم‌ترین استفاده آن برای اطلاعات ورود به سایته.بدین گونه که پس از وارد کردن اطلاعات ورود به سایت، وب سایت یک Session ایجاد و در آن اطلاعات ورود را ذخیره می‌کنه و تا زمان مشخص شده، این اطلاعات ذخیره می‌مونن.
بنابراین کاربر با داشتن کلید جلسه (session key) در مرورگر خود، برای بازکردن صفحات دیگر وب سایت نیاز به وارد کردن دوباره رمز عبور نخواهد داشت.
طبق توضیحات داده شده در مورد نحوه عملکرد Session طبیعی است که هکر با داشتن کلید Session می‌تونه خودش را به عنوان کاربر وارد شده در وب سایت معرفی کنه و بدیهی است که این امر بدون داشتن نام کاربری یا رمز عبور قابل انجام خواهد بود که در اغلب مواقع نیز هکر کلید Session کاربر قربانی را جعل می‌کنه و از این طریق وارد صفحه وب سایت کاربر قربانی می‌شه.
کلیت دزدی Session از این قرار بود،اما می مونه نحوه جعل کلیدSession! 
یکی از راه ها حدس زدن کلیده!!!!
یکی از راه های دیگه اینه که کاربر قربانی از اینترنت Wire Less استفاده کنه و اطلاعات رد وبدل شده Hash نشده باشن.نرم افزار های زیادی وجود داره که این اطلاعات را شنود می کنن و کلید Session را برامون بیرون می کشن!!!
اما برسیم به راه های مقابله با این دزدی 
یکی از راه ها اینه که زمان Session را معمولا کمتر در نظر بگیریم مثلا بعد از 5 دقیقه Session منقضی بشه
یکی از راه های دیگه اینه که ازتعداد 2 عدد Session به جای 1 Session استفاده کنیم که Session اضافی برای نگه داشتن آدرس آی پی باشه و هر وقت Session اصلی چک میشه Session اضافی نیز چک بشه 
یکی از راه های دیگه اینه که خودمون کلیدSession رو به طور موثری تولید کنیم که قابل حدس زدن نباشه!!!
خوب اگه خودتون هم بخواین همین الان کلید Sesion رو ببینین
برای این بااستفاده از مرورگر Opera در همین سایت لاگین کنین،بعد از لاگین در مرورگر اپرا کلید F12 رو بزنین و به قسمت Edit Site Preferences برین و بعد از باز شدن پنجره تب Cookies رو انتخاب کنید که ASP.NET_SessionId رو مشاهده می کنید که مقداری که برای اون وجود داره همون کلید Session هست و اگه همون مقدار رو توی یه مرورگر دیگه کپی کنید اون مرورگر نیز بدون لاگین وارد سایت مون میشه 

برچسب‌ها: Session Hijacking
محمدحسین فخرآوری ، پنجشنبه ۱۳۹۰/۰۶/۲۴ ، 18:45

جایگاه Entity Framework در معماری 3 لایه

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

  1-    Data access layer 

  2- Business layer  

  3- Presentation layer 

تشکیل شده است سوالی که مطرح می شود این است که جایگاه EDM  در این معماری کدام لایه است شکل زیر تصویری بسیار گویا است که این جایگاه را به خوبی در لایه data  نشان می دهد. 

 

محمدحسین فخرآوری ، دوشنبه ۱۳۹۰/۰۶/۲۱ ، 18:37

مقایسه بین Linq to SQL و Entity Framework

شاید برای شما هم این سوال مطرح شده باشد که Linq To Sql  و Entity Framework  چه تفاوتهایی دارند ، در این تایپیک این دو مورد را از جنبه های مختلفی مقایسه خواهم کرد .


1-complexity  یا پیچیدگی : البته منظور از پیچیدگی از نگاه سخت و آسان بودن نیست بلکه از نگاه امکاناتی که در اختیار شما قرار می دهد . مسلما LINQ  امکانات و پیچیدگیهای کمتری دارد.


2-model    یا مدل سازی : ما در Entity Framework  براحتی می توانیم مدل سازی کنیم علاوه بر آن از تمام ارتباطات بین جدولها پشتیبانی می کند LINQ  از یک ارتباط یک به یک بین کلاسها و جدولهای بانک اطلاعاتی پشتیبانی می کند .


3-پشتیبانی از بانک اطلاعاتی : LINQ to SQL  فقط از بانک اطلاعاتی Sql_Server  پشتیبانی می کند در حالی که Entity Framework  می تواند از بانکهای اطلاعاتی مختلفی پشتیبانی کند .


4-زمان توسعه پذیری :To SQL LINQ   می تواند به راحتی استفاده شود و به سرعت کار شما را پیش ببرد . اما در نرم افزارهای پیچیده و بزرگ بدلیل داشتن امکانات محدود و کم دیگر جوابگو نیست .


5-وراثت : Entity Framework  از وراثت بین کلاسها براحتی استفاده و پشتیبانی می کند در حالی که این خاصیت در LINQ  وجود ندارد .


6-نوع فایل : LINQ  در فایلی با پسوند DBML  ذخیره می شوند در حالی که Entity Framework  در فایلهای EDMX  و CSDL ,SSDL  که با فرمت xml  است ذخیره می شوند .


7-نوع مرکب : ما در  Entity Framework می توانیم فیلدی مرکب complex type  تعریف کنیم . این فیلد چیزی شبیه به ساختار ها است . اما این امکان درTo SQL  LINQ  وجود ندارد


8-کویری : همانطور که در آموزشهای خودم نوشتم . Entity Framework  از چندین سبک برای اجرای کویری استفاده می کند . Linq to Entity , EntitySQL , Query With Method


9-کارایی : هر دو از نظر سرعت در اولین اجرا شاید بتوان گفت کند هستند . اما Eitity Framework از نظر کارایی بهتر عمل می کند .


10-توسعه آینده : مایکروسافت چندان علاقه ای به توسعه و ادامه راه LINQ to SQL  ندارد اما در عوض بیشتر تمرکز و توسعه را بر مبنای تکنولوژیهای دیگری گذاشته است از جمله Entity Framework


11-ساخت بانک اطلاعاتی از مدل : ما فقط در Entity Framework  می توانیم ابتدا مدل خودمان را طراحی کنیم و سپس با استفاده از آن مدل ، بانک اطلاعاتی را تولید کنیم. 


محمدحسین فخرآوری ، دوشنبه ۱۳۹۰/۰۶/۲۱ ، 18:36

نحوه اجرای سایت در LocalHost

برای باز کردن IIS وارد ControlPanel شده و Administrative Tools را اجرا کرده و در این قسمت گزینه Internet Information Services (IIS Manager )را اجرا کنید

در صورتی موجود نبود آن را نصب کنید

در این قسمت روی سایت کلیک راست کرده گزینه Add Web Site را کلیک کنید

در صفحه باز شده گزینه های علامت زده شده را کامل مبکنیم

Site Name : نام یا مشخصه ای است که در IIS Manager نمایش داده میشود

Physical Path : مسیری که فایلهای Publish شده پروژه در آن قرار دارد را انتخاب میکنیم

IP Address : بصورت All Unassigned میگذاریم این حالت پیشفرض است یا همان لوکال هاست

Port : در این قسمت باید عددی بین 1 تا 65535 را وارد کنیم که این عدد مشخصه سایت مورد نظر ما است و حتما میبایست به صورت منحصر به فرد باشد

در ادامه قبل از کلیک کردن بر روی دکمه Ok روی دکمه Select که مربوط به Application pool میباشد کلیک کرده و در صفحه باز شده و قسمت Application Pool دات نت مورد نظر را انتخاب کرده

که در مثال ما دات نت 4 می باشد

و سپس رو Ok کلیک کرده

و در پنجره زیرین همانطور که مشاهده میکنید Application Pool بروی ASP.NET v4.0 ست شد

و در آخر بروی نام سایت ایجاد شده کلیک راست کرده و در بخش Manage Web Site روی دکمه Brows کلیک میکنیم

همانطور که در تصویر زیر مشاهده میکنید سایت ما با آدرس LocalHost:16548 که عدد همان عدد وارد شده یا شماره پورت است اجرا شد

از این به بعد برای دسترسی به سایت کافیت نام ست شده را وارد کنید که برای مثال ما localhost:16548  می باشد

لازم به ذکر است آدرس را با http:// در اول آن وارد کنید

 

محمدحسین فخرآوری ، جمعه ۱۳۹۰/۰۶/۱۸ ، 20:18

بدست آوردن IP و مرورگر و ویندوز کاربر در ASP.NET

برای گرفتم IP کامپیوتر کاربر از کد زیر استفاده میکنیم

Label1.Text  = (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? Request.ServerVariables["REMOTE_ADDR"]).Split(',')[0].Trim();


این کد در سیستم لوکال کارنمیکنه و عدد یک رو برمیگردونه ولی پروژه بره روی هاست درست کار میکنه

و حالا نوبت تشخیض مرورگر کاربر شده

از کد زیر استفاده میکنیم

Label1.Text = Request.Browser.Browser; 


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

 کد زیر هم مشخصات کاملی اعم از نوع ویندوز ،ورژن و کلی اطلاعات دیگر برمیگردونه

Label1.Text=Request.UserAgent

برچسب‌ها: بدست آوردن IP
محمدحسین فخرآوری ، جمعه ۱۳۹۰/۰۶/۱۸ ، 19:44

تغییر ظاهر ویژوال سی شارپ

اگر موقعیت پنجره ها و یا ظاهر برنامه ویژوال سی شارپ را دوست نداشته باشید، می توانید به دلخواه آن را تغییر دهید.

برای این کار بر روی نوار عنوان (title bar) کلیک کرده و آنرا می کشید تا پنجره به شکل زیر به حالت شناور در آید.

 csharp-express-layout-01

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

 csharp-express-layout-02

منطقه ای که پنجره قرار است در آنجا قرار بگیرد به رنگ آبی در می آید.

 csharp-express-layout-03

پنجره در قسمت بالای محیط قرار داده شده است

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

 csharp-express-layout-04

کشیدن پنجره به مرکز صلیب راهنما باعث ترکیب آن با پنجره مقصد می شود که در مثال بالا شما به توانید به عنوان یک تب به پنجره Properties دست پیدا کنید.

 csharp-express-layout-05

اگربه عنوان مثال  پنجره Properties را روی پنجره Solution Explorer بکشید، یک صلیب راهنمای دیگر نشان داده می شود. با کشیدن پنجره به قسمت پایینی صلیب پنجره Properties زیر پنجره Solution Explorer قرار خواهد گرفت.

 csharp-express-layout-06

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

 csharp-express-layout-07

بر روی این آیکون کلیک کنید تا ویژگی auto-hide فعال شود. برای دسترسی به هر یک از پنجره ها می توان با موس بر روی آنها توقف یا بر روی تب های کنار محیط ویژوال سی شارپ کلیک کرد.

 csharp-express-layout-08

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

 csharp-express-layout-09

به این نکته توجه کنید که اگر شکل آیکون افقی بود بدین معناست که ویژگی فعال و اگر شکل آن عمودی بود به معنای غیر فعال بود ویژگی auto-hide می باشد.

محمدحسین فخرآوری ، سه شنبه ۱۳۹۰/۰۶/۰۸ ، 14:0

نصب و پیکربندی IIS در کامپیوتر شخصی

  • نکته ای که قبل از هر چیز باید بهش اشاره کنم اینه که IIS باید قبل از Visual Studio.NET نصب بشه وگرنه مشکلاتی رو برای شما به همراه خواهد داشت.

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

چگونگی نصب IIS و اجرای ASP.NET روی ويندوز 2000


۱- از دگمه Start به Settings و بعد به Control Panel برويد.
۲- در پنجره Control Panel ، Add/Remove Programs را انتخاب كنيد.
۳-در پنجره Add/Remove Programs گزينه Add/Remove Windows Components را انتخاب كنيد.
۴- در پنجره Wizard ، Internet Information Services را انتخاب كرده و روی OK كليك كنيد.
۵- يك فلدر به اسم Inetpub در هارد درايو شما ايجاد خواهد شد (در همان درایوی که ویندوز نصب شده است).
۶- Inetpub را باز كنيد و فلدر wwwroot را پيدا كنيد.
۷- يك فلدر جديد مثلMyWeb در wwwroot ايجاد كنيد.
۸- - فايل Asp.NET خود را مانند test..aspx در MyWeb كپی كنيد.
۹- مطمئن بشويد كه وب سرور شما در حال اجرا است.(البته به صورت معمول خود در اين حالت قرار دارد)
۱۰- جستجوگر خود را باز كرده و آدرس http://localhost/test.aspx را وارد كنيد تا اولين صفحه Asp.NET خود را ببينيد.

چگونگی نصب IIS و اجرای Asp.NET روی ویندوز XP Professional


توجه: شما نمی توانيد ASP را روی نگارش خانگی XP اجرا كنيد.

۱- از دگمه Start به Settings و بعد به Control Panel برويد.
۲- در پنجره Control Panel ، Add/Remove Programs را انتخاب كنيد.
۳-در پنجره Add/Remove Programs گزينه Add/Remove Windows Components را انتخاب كنيد.
۴- در پنجره Wizard ، Internet Information Services را انتخاب كرده و روی OK كليك كنيد.
۵- يك فلدر به اسم Inetpub در هارد درايو شما ايجاد خواهد شد (در همان درایوی که ویندوز نصب شده است) .
۶- Inetpub را باز كنيد و فلدر wwwroot را پيدا كنيد.
۷- يك فلدر جديد مثلMyWeb در wwwroot ايجاد كنيد.
۸- فايل Asp.NET خود را مانند test1.aspx در MyWeb كپی كنيد.
۹- مطمئن بشويد كه وب سرور شما در حال اجرا است.(البته به صورت معمول خود در اين حالت قرار دارد)
۱۰- جستجوگر خود را باز كرده و آدرس http://localhost/test.aspx را وارد كنيد تا اولين صفحه Asp.NET خود را ببينيد.

چگونگی نصب IIS و اجرای Asp.NET روی ویندوز Vista , Seven

۱- از دکمه Start وارد Control Panel شوید .
۲- گزینه Programs یا Programs And Features  را انتخاب كنيد.
۳-در پنجره باز شده گزینه Turn Windows Features On Or Off را انتخاب کنید .
۴- گزینه Internet Information Services را پیدا کرده و تمامی شاخه های زیرین آن را علامت دار نموده و تایید نمایید تا عملیات نصب آغاز گردد .
۵- يك فلدر به اسم Inetpub در هارد درايو شما ايجاد خواهد شد (در همان درایوی که ویندوز نصب شده است) .
۶- Inetpub را باز كنيد و فلدر wwwroot را پيدا كنيد.
۷- يك فلدر جديد مثلMyWeb در wwwroot ايجاد كنيد.
۸- فايل Asp.NET خود را مانند test1.aspx در MyWeb كپی كنيد.
۹- مطمئن بشويد كه وب سرور شما در حال اجرا است.(البته به صورت معمول خود در اين حالت قرار دارد)
۱۰- جستجوگر خود را باز كرده و آدرس http://localhost/test.aspx را وارد كنيد تا اولين صفحه Asp.NET خود را ببينيد.

 

واژه جدید: آدرس فیزیکی ریشه، تعیین کننده آدرس فیزیکی شروع دایرکتوری می باشد. برای مثال اگر شما آدرس فیزیکی ریشه را به صورت X:\inetpub\wwwrootتعیین کرده باشید، آدرسهای مجازی(URL مرورگر) به صورت زیر می باشد:

http://localhost/index.aspx

http://localhost/default.aspx

آدرسهای فیزیکی(دایرکتوری دیسک سخت) به صورت زیر ترجمه می گردد:

X:\inetpub\wwwRoot\index.aspx

X:\inetpub\wwwRoot\default.aspx

برای اجرای اسکریپتهای ASP باید فایل مورد نظر را در شاخه X:\inetpub\wwwRoot\FileName.aspx قرار بدهید و سپس در مرورگرتان آدرسhttp://localhost/FileName..aspx را وارد نمایید که به سایت وب کامپیوترتان  دسترسی پیدا نمایید.

 

برچسب‌ها: IIS
محمدحسین فخرآوری ، شنبه ۱۳۹۰/۰۴/۱۸ ، 20:11

مقایسه PHP و Asp.NET

می دانم خیلی از کسانی که به این بحث علاقه دارند واقعا می خواهند بدانند که آیا Asp.NET بهتر است یا Php  ؟ کدام سریعتر است ، یادگیری کدام آسان تر و کدام یک پرکاربر تر است ، چرا خیلی از سایت های معروف مانند Yahoo و Facebook و ... از Php استفاده می کنند و سوالات متعدد دیگری  که در ذهن خیلی از ما نقش بسته ، امیدوارم این مقاله بتواند به انتخاب درست شما کمک کند .

پشتیبانی از زبان های مختلف :

همانطور که می دانید Asp.NET را  با زبان ها VB.NET ،  C Sharp , Delphi , J Sharp و چند زبان دیگر  .... میتوان توسعه داد در حالی که Php را فقط با زبان Php می توان نوشت . نکته جالب تر تلفیق زبان هاست ! شما در Asp.NET قادر خواهید بود از چند زبان برای تولید وب سایت یا نرم افزار خود استفاده نمایید .

شی گرایی :

Php از بدو تولد به صورت یک زبان اسکریپتی ارائه شد در حالی که Asp.NET با مفهوم شی گرایی (کلاس ، خاصیت ، رویداد و ...) پا به عرصه گذاشت . کار با Asp.NET بسیار شبیه کد نویسی برای یک نرم افزار تحت ویندوز است و تمام امکانات مورد نیاز برای یک برنامه نویسی شی گرا را فراهم نموده است .

امنیت در وب :

امنیت در وب یکی از دقدقه های مهم توسعه گران و وب مسترها است ، خوشبختانه DotNET تدابیر امنیتی بسیار جالبی برای جلوگیری از نفوذ هکر ها به کار برده است ، این امر یکی از مهمترین عوامل برتری Asp.NET بر Php است .

اگر شما یک سایت تولید شده توسط یک برنامه نویس مبتدی Asp.NET را با یک برنامه نویس مبتدی Php مقایسه کنید کامل متوجه خواهید شد که دات نت چگونه به صورت پیشفرض از هک شدن وب سایت شما جلوگیری می کند .

محیط توسعه نرم افزار :

همانطور که میدانید شرکت مایکروسافت چند نرم افزار قدرتمند برای توسعه Asp.NET فراهم نموده است : Visual Studio.NET ، Visual Web Developer , WebMatrix این نرم افزار های قدرتمند شما را از هر نرم افزار دیگیری بی نیاز می کند ، تمامی امکانات مورد نیاز برای طراحی و تولید یک وب سایت حرفه ای در این نرم افزار ها گنجانده شده ، در صورتی که Php هیچ نرم افزار اختصاصی نداشته و برخی نرم افزار ها این زبان را در کنار زبان های دیگر ارائه نموده اند مانند : NetBeans , Adobe Dreamweaver , Zend, ....

سرعت در توسعه و پیاده سازی :

ASP.NET با ارائه کنترل های قدرتمند وب و ارائه راهکارهای بسیار بهینه جهت ارتباط با بانک ها اطلاعاتی تحولی عظیم در توسعه نرم افزار های وب به وجود آورد ، کنترل های Asp.NET باعث افزایش سرعت توسعه وب تا ده ها برابر شده است ، به عنوان مثال برای نمایش 5000 هزار رکورد اطلاعات داشنجویان در Asp.NET کافیست یک کنترل Grdiview به صفحه اضافه کنید ، با چند کلیک آن را به بانک اطلاعاتی مورد نظرتان (Ms-SQL Server, Ms-Access , MySQL , Oracle ,....) متصل نمایید با یک کلیک آن را صفحه بندی نمایید ، در صورتی که برای نمایش این رکورد ها در Php نیاز به کد نویسی فراوانی دارید ، البته نا گفته نماند در Php هم راهکار های ساده تری جهت نمایش اطلاعات وجود دارد ولی هیچ یک به قدرت و سادگی کنترل های دات نت نیست بلکه به صورت اسکریپتی به صفحه اضافه می شوند .

سرعت بارگزاری صفحات :

این سخن را به کرار شنیده ام که Php از Asp.NET سریعتر است ، ولی آیا تا چه حد این حرف صحت دارد ؟

Asp.NET یک زبان کامپایل شده است در صورت که Php یک زبان مفسری است ، تمامی کد های Asp.NET پس از توسعه کامپایل شده و به Dll تبدیل می شوند ولی Php به صورت کد بارگزاری شده و در هنگام اجرا تفسیر می شود .
همانطور که میدانید Asp.NET دارای کنترل های زیادی است و به علت سادگی استفاده بسیار پر کاربر هستند ، این کنترل ها در هنگام Generate شدن باید به کنترل های Html تبدیل شوند در صورتی که Php به این صورت نیست و از کنترل های Html استفاده می کند . این موضوع در عمل تاثیری در سرعت لود صفحه ندارد چرا که عمل Generate شدن در سرور انجام می شود و در صورت وجود سخت افزار مناسب در سرور این کار در کسری از ثانیه انجام می شود ، همچنین کاربران Asp.NET می توانند از کنترل ها Html استفاده کنند و محدودیت از این لحاظ نیز برای آنها وجود ندارد .
وجود ViewState در Asp.NET که باعث حفظ اطلاعات کنترل ها پس از PostBack می شود یکی از دلایل عمده افت سرعت در Asp.NET می باشد ، اما خوشبختانه Asp.NET این امکان را به کاربر می دهد که در صورت عدم نیاز به ViewState آن را غیر فعال نماید ولی برخی از توسعه گران به دلیل عدم اطلاع از این موضوع با مشکل کاهش سرعت مواجه می شوند .
عمل فشرده سازی صفحات در Php وجود داشته و اکثر توسعه گران Php با یک خط کد نویسی این امکان را به پروژه های خود اضافه می کنند ، عمل فشرده سازی تا 10 ها برابر حجم خروجی صفحه را کاهش داده و باعث افزایش سرعت لود آن می شود ، خوشبختانه عمل فشرده سازی در Asp.NET نیز وجود دارد ولی خیلی از توسعه دهندگان Asp.NET از آن بی اطلاع هستند

نکته مهم این است استفاده ناشیانه از این تکنولوژی نه تنها باعث کاهش سرعت بارگزاری صفحات شده بلکه دیدگاه شما را نسبت به آن خدشه دار می کند .

سورس باز :


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

دلیل اصلی استفاده شرکت ها بزرگ مانند Yahoo , Facebook , ... از زبان Php سورس باز بودن آن است .

سورس باز نبودن Asp.NET یکی از نقاط ضعف آن محسوب می شود .

هزینه های جانبی :

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

دیتابیس : بانک اطلاعاتی My SQL که معمول ترین بانک اطلاعاتی php است رایگان است ، بانک های اطلاعاتی Ms Access و MS SQl Server Express نیز به صورت رایگان ارائه شده است .

در کل هزینه راه اندازی یک وب سایت Php کمتر از یک وب سایت Asp.NET به نظر می رسد ، البته گر چه این هزینه بسیار ناچیز است ولی برای برخی این یک مزیت Php محسوب می شود

سیستم عامل :

همانطور که میدانید Php هم بر روی ویندوز و هم بر روی لینوکس نصب می شود ، و این یکی دیگر از مزیت های Php می باشد

البته اخیرا سرو کله Asp.NET در لینوکس پیدا شده ، پروژه ای به نام Mono  تکنولوژی Asp.NET را به لینوکس هدیه کرده ! همچنین یک IDE رایگان به نام Mono Develop هم ارائه شده که به راحتی شما را قادر می سازد طراحی و توسعه سایت های Asp.NET خود را در محیط Linux انجام دهید ، بنده شخصا این کار را در لینوکس Ubuntu انجام دادم و به خوبی جواب گرفتم .

سهولت یادگیری :

از نظر بنده یادگیری Asp.NET از هر زبان دیگری ساده تر است ، با وجود زبانی به نام Visual Basic.NET کد نویسی بسیار ساده شده است

ورژن جدید Viasual Studio امکانات بسیار جالبی برای ساده کردن کد ها قرار داده است ، ویزارد های مختلف برای ارتباط با بانک ها اطلاعاتی شما را از نوشتن حتی یک خط کد بی نیاز می گرداند .

به گفته برخی برای یادگیری Asp.NET نیاز به دانستن شی گرایی است ولی از نظر بنده برای شروع کار با Asp.NET هیچ نیازی به پیش زمینه قبلی از شی گرایی و مفاهیم پیچیده ندارد .

همچنین حضور سایت هایی مانند www.Asp.NET و ارائه فیلم های آموزشی از مبتدی تا پیشرفته به صورت رایگان تحولی عظیم در امر یادگیری Asp.NET به وجود آورده اند .

 کاربرد و بازار کار :

اگر یک نگاه گذرا به صفحات آگهی روزنامه ها در بخش استخدام برنامه نویس بیاندازید متوجه خواهید شد که "استخدام برنامه نویس Asp.NET" سهم عظیمی از این آگهی ها را در بر گرفته است که خود نشان دهنده کاربرد فراوان این تکنولوژی در شرکت های ایرانی است .

حتی اگر شما قصد ادامه تحصیل یا کار در کشور های خارجی را داشته باشید با کمی جستجو متوجه خواهید شد که برای Asp.NET و Php موقعیت های شغلی مناسبی در سراسر دنیا وجود دارد .

همچنین شرکت مایکروسافت با برگزاری امتحانات متعدد و ارائه مدارک معتبر مانند MCSD و MCTS شما را برای ادامه تحصیل و یافتن شغل مناسب در کشورهای خارجی یاری خواهد داد.

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

از زمان ظهور Asp.NET در سال 2002-2003 تکنولوژی Asp.NET پیشرفت چشم گیری کرده است ، بهینه سازی IDE و هسته DotNetFrameWork و همچنین افزودن امکانات مختلف جهت تسریع در امر توسعه تکنولوژی Asp.NET را دگرگون ساخته است ، همچنین هماهنگی روز افزودن Asp.NET و SQL Server باعث افزایش چشمگیری درخواست های مختلف از این بانک اطلاعاتی و همچنین سهولت برنامه نویسی شده است .

اضافه شدن Ajax در Asp.NET همگام با سایر زبان های سمت سرور مانند Php نشان از به روز بودن این تکنولوژی دارد .

شایان ذکر است شرکت مایکروسافت در سال های اخیر اقدامات بی سابقه ای در جهت پیشرفت تکنولوژی Asp.NET انجام داده است که میتوان از  LINQ ، MVC , SilverLight , Wcp , Wpf و... نام برد که هر یک دنیای جدیدی از تکنولوژی را به بازار عرضه کرده اند .

این پیشرفت سریع و رو به رشد یکی از نقاط قوت Asp.NET به شمار رفته و گویای این است که این تکنولوژی در آینده جایگاه مهمی در دنیای IT خواهد داشت .

   

برچسب‌ها: مقایسه PHP و Asp , NET
محمدحسین فخرآوری ، پنجشنبه ۱۳۸۹/۰۶/۱۸ ، 20:2