http://www.imomin.webs.com

Thank You for Visit Me

Md. Mominul Islam

view:  full / summary

Web.config File - ASP.NET

Posted by imomins on August 23, 2012 at 5:45 AM Comments comments (0)

Web.config files are stored in XML format which makes us easier to work with.

  • You can have any number of Web.config files for an application. Each Web.config applies settings to its own directory and all the child directories below it.
  • All the Web.config files inherit the root Web.config file available at the following location systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config location
  • IIS is configured in such a way that it prevents the Web.config file access from the browser.
  • The changes in Web.config don’t require the reboot of the web server.
  • Web.config Settings

    Before we start working with configuration settings of ASP.NET, we see the hierarchy of the Web.config file.

    <configuration>
    
            <configSections>
                <sectionGroup>
                </sectionGroup>
            </configSections>
    
            <system.web>
            </system.web>
    
            <connectionStrings>
            </connectionStrings>
    
            <appSettings>
            </appSettings>
            …………………………………………………………………………………………………………
            …………………………………………………………………………………………………………
            …………………………………………………………………………………………………………
            …………………………………………………………………………………………………………
            …………………………………………………………………………………………………………
    
    </configuration>

    So from the above tree structure, we can understand that the configuration tag is the root element of the Web.config file under which it has all the remaining sub elements. Each element can have any number of attributes and child elements which specify the values or settings for the given particular section. To start with, we’ll see the working of some of the most general configuration settings in the Web.config file.

    system.web

    In the configuration hierarchy, the most common thing we will work with is the system.web section. Now we look at some of the child sections of the system.web section of Web.config file.

    Compilation Settings

    If you are using Visual Studio 2010, probably the only available section of Web.config file by default is Compilation section. If you want to specify the target framework or if you need to add an assembly from the Global Assembly Cache (GAC) or if you want to enable the debugging mode of the application, you can take Compilation settings as granted for these tasks. The following code is used to achieve the discussed settings:

    <system.web
    	<compilation
                     debug="true" strict="true" explicit="true" batch="true"
                     optimizeCompilations="true" batchTimeout="900"
                     maxBatchSize="1000" maxBatchGeneratedFileSize="1000"
                     numRecompilesBeforeAppRestart="15" defaultLanguage="c#"
                     targetFramework="4.0" assemblyPostProcessorType="">
    	<assemblies>
    		<add assembly="System, Version=1.0.5000.0, Culture=neutral,
                      PublicKeyToken=b77a5c561934e089"/>
    	</assemblies>
    
    </compilation>
    </system.web>

    Under the assemblies element, you are supposed to mention the type, version, culture and public key token of the assembly. In order to get the public key token of an assembly, you need to follow the below mentioned steps:

    1. Go to Visual Studio tools in the start menu and open the Visual Studio command prompt.
    2. In the Visual Studio command prompt, change the directory to the location where the assembly or .dll file exists.
    3. Use the following command, sn –T itextsharp.dll.
    4. It generates the public key token of the assembly. You should keep one thing in mind that only public key token is generated only for the assemblies which are strongly signed.

    Example

    C:\WINNT\Microsoft.NET\Framework\v3.5> sn -T itextsharp.dll
    Microsoft (R) .NET Framework Strong Name Utility Version 3.5.21022.8
    Copyright (c) Microsoft Corporation.  All rights reserved.
    
    Public key token is badfaf3274934e0

    Explicit and sample attributes are applicable only to VB.NET and C# compiler however ignores these settings.

    Page Settings

    Ok, by this time, we have got familiar with the Web.config file and we have seen the settings of Compilation Sections, now we will see the settings of a page. As an ASP.NET application consists of several number of pages, we can set the general settings of a page like sessionstate, viewstate, buffer, etc., as shown below:

    <pages buffer ="true" styleSheetTheme="" theme ="Acqua"
                  masterPageFile ="MasterPage.master"
                  enableEventValidation="true"> 

    By using the MasterPageFile and theme attributes, we can specify the master page and theme for the pages in web application.

    Custom Error Settings

    The next section of Web.config file, we are going to look around is Custom Error settings, by the name itself it is clear that we can configure the settings for the application level errors in these section. Now we will see the description of the customErrors section of the Web.config from the below mentioned code snippet.

    <customErrors defaultRedirect ="Error.aspx" mode ="Off">
       <error statusCode ="401" redirect ="Unauthorized.aspx"/>
    </customErrors>    

    The customErrors section consists of defaultRedirect and mode attributes which specify the default redirect page and the on/off mode respectively.
    The subsection of customErrors section allows redirecting to specified page depending on the error status code.

    • 400 Bad Request
    • 401 Unauthorized
    • 404 Not Found
    • 408 Request Timeout

    For a more detailed report of status code list, you can refer to this URL:

    Location Settings

    If you are working with a major project, probably you might have numerous numbers of folders and sub-folders, at this kind of particular situation, you can have two options to work with. First thing is to have a Web.config file for each and every folder(s) and Sub-folder(s) and the second one is to have a single Web.config for your entire application. If you use the first approach, then you might be in a smoother way, but what if you have a single Web.config and you need to configure the sub-folder or other folder of your application, the right solution is to use the "Location" tag of "system.web" section of Web.config file. However you can use this tag in either of the discussed methods.

    The following code shows you to work with Location settings:

    <location path="Login.aspx">
    	<system.web>
    		<authorization>
    	         <allow users="*"/>
    		</authorization>
    	</system.web>
    </location>
    <location path ="Uploads">
        <system.web>
    	<compilation debug = "false">
        </system.web>
    </location>

    In a similar way, you can configure any kind of available settings for any file/folder using the location tag.

    Session State and View State Settings

    As we all know, the ASP.NET is stateless and to maintain the state we need to use the available state management techniques of ASP.NET. View state and session state are among them. For complete information about view state and Session State and how to work with, there are some excellent articles in CodeProject, which you can refer here:

    Now we'll see the Web.config settings of View State and Session State:
    View State can be enabled or disabled by using the following page settings in the web.config file.

    <Pages EnableViewState="false" />

    Session state settings for different modes are as shown below:

    <sessionState mode="InProc" />
    <sessionState mode="StateServer"
    stateConnectionString= "tcpip=Yourservername:42424" />
    <sessionState mode="SQLServer" sqlConnectionString="cnn" />

    HttpHandler Settings

    HttpHandler is a code that executes when an http request for a specific resource is made to the server. For example, request an .aspx page the ASP.NET page handler is executed, similarly if an .asmx file is requested, the ASP.NET service handler is executed. An HTTP Handler is a component that handles the ASP.NET requests at a lower level than ASP.NET is capable of handling.

    You can create your own custom http handler, register it with IIS and receive notice whenever a request is made. For doing this, you just need to create a class which implements IHttpHanlder and then you need to add the following section of configuration settings in the web.config file. For this demonstration, I have created a sample imagehandler class which displays a JPG image to the browser.You can go through the imagehandler class code in the sample download code.

    <httpHandlers>
        <add verb="*" path="*.jpg" type="ImageHandler"/>
        <add verb="*" path="*.gif" type="ImageHandler"/>
    </httpHandlers/>

    HttpModule Settings

    HttpModule is a class or an assembly that implements the IHttpModule interface that handles the application events or user events. You can too create your own custom HttpModule by implementing the interface and configure it with ISS. The following settings show the HttpModules configuration in the web.config.

    <httpModules>
          <add type ="TwCustomHandler.ImageHandler"
               name ="TwCustomHandler"/>
          <remove name ="TwCustomHandler"/>
          <clear />
    </httpModules>

    Authentication, Authorization, Membership Provider, Role Provider and Profile Provider Settings

    These settings are directly available in the web.config file if you have created the ASP.NET application by using the Visual Studio 2010. I'm not going to elaborate them as there are lot of articles in CodeProject describing the functionality and use of these settings and for further information you can refer to them. Some of the links are here:

    Authentication Settings

    <authentication mode="Forms">
         <forms cookieless="UseCookies" defaultUrl="HomePage.aspx"
                        loginUrl="UnAuthorized.aspx" protection="All" timeout="30">
          </forms>
    </authentication>    

    Authorization Settings

    <authorization
            <allow roles ="Admin"/>
            <deny users ="*"/>
    </authorization>        

    Membership Provider Settings

    <membership defaultProvider="Demo_MemberShipProvider">
    	<providers>
    	   <add name="Demo_MemberShipProvider"
    	        type="System.Web.Security.SqlMembershipProvider"
    	        connectionStringName="cnn"
    	        enablePasswordRetrieval="false"
    	        enablePasswordReset="true"
    	        requiresQuestionAndAnswer="true"
    	        applicationName="/"
    	        requiresUniqueEmail="false"
    	        passwordFormat="Hashed"
    	        maxInvalidPasswordAttempts="5"
    	        minRequiredPasswordLength="5"
    	        minRequiredNonalphanumericCharacters="0"
    	       passwordAttemptWindow="10" passwordStrengthRegularExpression="">
    	</providers>
    </membership>

    Role Provider Settings

    <roleManager enabled="true" cacheRolesInCookie="true"
    cookieName="TBHROLES" defaultProvider="Demo_RoleProvider">
                  <providers>
                      <add connectionStringName="dld_connectionstring"
                      applicationName="/" name="Demo_RoleProvider"
                      type="System.Web.Security.SqlRoleProvider, System.Web,
                      Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
                 </providers>
    </roleManager>

    Profile Provider Settings

    <profile defaultProvider="Demo_ProfileProvider">
        <providers>
    	<add name="Demo_ProfileProvider" connectionStringName="cnn"
    	applicationName="/" type="System.Web.Profile.SqlProfileProvider,
    	System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </providers>
        <properties>
    	<add name="Name" type="String"/>
    	<add name="DateofBirth" type="DateTime"/>
    	<add name="Place" type="string"/>
        </properties>
    </profile>

    AppSettings

    In the above section, we have seen the settings available in system.web tag, now we will see the available settings in appSettings section.
    appSettings element helps us to store the application settings information like connection strings, file paths, URLs, port numbers, custom key value pairs, etc.
    The following code snippet shows the example of appSettings Section:

    <appSettings>
    	<add key="AppKey" value="APLJI12345AFAFAF89999BDFG"/>
    </appSettings>

    connectionStrings

    The most common section of web.config file the connectionStrings sections allows you to store multiple connection strings that are used in the application. The connectionStrings tag consists of child element with attributes name and connectionstring which is used to identify the connectionstring and the other is used to connect to the database server respectively.

    The general connectionstring settings are shown below:

    <connectionStrings>
        <add name ="cnn" connectionString ="Initial Catalog = master; 
    		Data Source =localhost; Integrated Security = true"/>
    </connectionStrings>

    ConfigSections

    ConfigSections helps you to create your own custom configuration section that can be used with the web.config file. We look at this in the later section of the article, for the time being, we can have look at the configsection settings. ConfigSections should be declared just below the configuration (parent element) otherwise it is going through you an error.

    <configSections>
        <sectionGroup name="pageAppearanceGroup">
          <section
            name="pageAppearance"
            type="PageAppearanceSection"
            allowLocation="true"
            allowDefinition="Everywhere"
          />
     </sectionGroup>
     </configSections>

    Programmatically Accessing the Web.config File

    We can use the C# classes to read and write the values to the Web.config file.

    Reading appSettings values

    The following code is used to read the appSettings values from Web.config file. You can use either of the methods shown below:

    //Method 1:
            string key = ConfigurationManager.AppSettings["AppKey"];
            Response.Write(key);
    
    //Method 2:
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
            KeyValueConfigurationElement Appsetting = config.AppSettings.Settings["AppKey"];
            Response.Write(Appsetting.Key + " <br/>" + "Value:" + Appsetting.Value);

    Reading connectionstring values

    The following code is used to read the connectionstring values from Web.config file. You can use either of the methods shown below:

    //Method 1:
            string cnn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
    
    //Methods 2:
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
            ConnectionStringSettings cnnstring;
    
            if (config.ConnectionStrings.ConnectionStrings.Count > 0)
            {
                cnnstring = config.ConnectionStrings.ConnectionStrings["conn"];
                if (cnnstring != null)
                    Response.Write("ConnectionString:" + cnnstring.ConnectionString);
                else
                    Response.Write(" No connection string");
            }

    Reading configuration section values

    The following code is used to read the configuration section values from Web.config file. The comments in the code will help you to understand the code:

    // Intialize System.Configuration object.
    Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
    //Get the required section of the web.config file by using configuration object.
    CompilationSection compilation = 
    	(CompilationSection)config.GetSection("system.web/compilation");
    //Access the properties of the web.config
    Response.Write("Debug:"+compilation.Debug+"<br/>""+
    		"Language:"+compilation.DefaultLanguage);

    Update the configuration section values

    The following code is used to read the configuration section values from Web.config file:

    Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
    //Get the required section of the web.config file by using configuration object.
    CompilationSection compilation = 
    	(CompilationSection)config.GetSection("system.web/compilation");
    //Update the new values.
    compilation.Debug = true;
    //save the changes by using Save() method of configuration object.
    if (!compilation.SectionInformation.IsLocked)
    {
        config.Save();
        Response.Write("New Compilation Debug"+compilation.Debug);
    }
    else
    {
        Response.Write("Could not save configuration.");
    }

    Encrypt Configuration Sections of Web.config File

    As we have already discussed that IIS is configured in such a way that it does not serve the Web.Config to browser, but even in some such situation to provide more security, you can encrypt some of the sections of web.config file. The following code shows you the way to encrypt the sections of web.config file:

    Configuration config = WebConfigurationManager.OpenWebConfiguration
    			(Request.ApplicationPath);
    ConfigurationSection appSettings = config.GetSection("appSettings");
    if (appSettings.SectionInformation.IsProtected)
    {
        appSettings.SectionInformation.UnprotectSection();
    }
    else
    {
        appSettings.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
    }
    config.Save();    

    Custom Configuration Section in Web.config

    I have thought twice before I could put this section of content in this article, as there are a lot of wonderful articles explaining this topic, but just to make this article as complete, I have included this topic too.

    Create Custom Configuration Section

    The ConfigurationSection class helps us to extend the Web.config file in order to fulfill our requirements. In order to have a custom configuration section, we need to follow the below steps:

    Before we actually start working with it, we will have a look at the section settings. We need to have a ProductSection element with child elements girdSettings and color. For this purpose, we will create two classes with the child elements which inherits ConfigurationElement as shown below:

    public class GridElement : ConfigurationElement
    {
        [ConfigurationProperty("title", DefaultValue = "Arial", IsRequired = true)]
        [StringValidator(InvalidCharacters = "~[email protected]#$%^&*()[]{}/;'\"|\\", 
    			MinLength = 1, MaxLength = 60)]
        public String Title
        {
            get
            {
                return (String)this["title"];
            }
            set
            {
                this["title"] = value;
            }
        }
    
        [ConfigurationProperty("count", DefaultValue = "10", IsRequired = false)]
        [IntegerValidator(ExcludeRange = false, MaxValue = 30, MinValue = 5)]
        public int Count
        {
            get
            { return (int)this["count"]; }
            set
            { this["size"] = value; }
        }
    }
    
    public class ColorElement : ConfigurationElement
    {
        [ConfigurationProperty("background", DefaultValue = "FFFFFF", IsRequired = true)]
        [StringValidator(InvalidCharacters = "~[email protected]#$%^&*()[]{}/;
    		'\"|\\GHIJKLMNOPQRSTUVWXYZ", MinLength = 6, MaxLength = 6)]
        public String Background
        {
            get
            {
                return (String)this["background"];
            }
            set
            {
                this["background"] = value;
            }
        }
    
        [ConfigurationProperty("foreground", DefaultValue = "000000", IsRequired = true)]
        [StringValidator(InvalidCharacters = "~[email protected]#$%^&*()[]{}/;
    		'\"|\\GHIJKLMNOPQRSTUVWXYZ", MinLength = 6, MaxLength = 6)]
        public String Foreground
        {
            get
            {
                return (String)this["foreground"];
            }
            set
            {
                this["foreground"] = value;
            }
        }
    
    } 

    ... and then we will create a class called ProductSection, for the root element which includes the above child elements.

    public class ProductSection : ConfigurationSection
    {
        [ConfigurationProperty("gridSettings")]
        public GridElement gridSettings
        {
            get
            {
                return (GridElement)this["gridSettings"];
            }
            set
            { this["gridSettings"] = value; }
        }
    
        // Create a "color element."
        [ConfigurationProperty("color")]
        public ColorElement Color
        {
            get
            {
                return (ColorElement)this["color"];
            }
            set
            { this["color"] = value; }
        }
    }

    Then finally, we will configure these elements in Web.config file as shown below:

     <configSections>
          <section name ="ProductSection" type ="<ProductSection"/>
      </configSections>
    
      <ProductSection>
        <gridSettings title ="Latest Products" count ="20"></gridSettings>
        <color background="FFFFCC" foreground="FFFFFF"></color>
      </ProductSection>

    Access Custom Configuration Section

    The following code is used to access the custom configuration section:

    ProductSection config = (ProductSection)ConfigurationManager.GetSection("ProductSection");
    string color =config.Color.Background;
    string title =config.gridSettings.Title;
    int count = config.gridSettings.Count;

    Conclusion

    Ebook of humayn ahmed

    Posted by imomins on August 12, 2012 at 10:30 AM Comments comments (0)

    হুমায়ূন আহমেদ (জন্ম নভেম্বর ১৩, ১৯৪৮) বিংশ শতাব্দীর বাঙ্গালী জনপ্রিয় ঔপন্যাসিকদের মধ্যে অন্যতম। তিনি একাধারে ঔপন্যাসিক, ছোটগল্পকার এবং নাট্যকার। বলা চলে যে বাংলা সায়েন্স ফিকশনের তিনি পথিকৃৎ। নাটক ও চলচ্চিত্র পরিচালক হিসাবেও তিনি সমাদৃত। ২০০৯ পর্যন্ত তার প্রকাশিত গ্রন্থের সংখ্যা দুই শতাধিক। তাঁর আরেক পরিচয়ঃ তিনি ঢাকা বিশ্ববিদ্যালয় এর রসায়ন বিভাগের একজন প্রাক্তন অধ্যাপক।[১]অতুলনীয় জনপ্রিয়তা সত্বেও তিনি অন্তরাল জীবন-যাপন করেন এবং লেখলেখি ও চিত্রনির্মাণের কাজে নিজেকে ব্যস্ত রাখেন। বর্তমানে তার লেখালেখির সংখ্যা প্রায় তিন শতাধিক।

     

    আরও অনেক বই আছে কিন্তু Techtunes এর নিয়মের জন্য ৯৯ টার বেশি লিঙ্ক দিতে পারলাম না...আর প্রায় ৮০ টার মত বই আছে শেইগুলা ডাউনলোড করতে এই লিঙ্ক এ যান

    http://hiractg.blogspot.com/2012/08/pdf-book-collection-single-mediafire_11.html

    * File name: Aaj Himur Biye by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?p52satjqjh6qk50

    * File name: Abaro-himu-Humayun-Ahmed.pdf
    Download link: http://www.mediafire.com/?pa3b1ab58aub4y9

    * File name: Achinpur by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?c4gd7uz79em90w9

    * File name: Adbhut Sob Golpo by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?2p5zoo62uh4nn13

    * File name: Ahok.PDF
    Download link: http://www.mediafire.com/?1dipgf1jc5i7ud9

    * File name: Ai megh rodro chaya - Humayun ahmed.pdf
    Download link: http://www.mediafire.com/?9ihl7ug74pmt07q

    * File name: Ai Shubro ai ByHumayunahmed_.pdf
    Download link: http://www.mediafire.com/?0c3ov07a230udyu

    * File name: Aj-chitrar-biye.pdf
    Download link: http://www.mediafire.com/?ycbb6v51r1q5n71

    * File name: Aj_ami_kothao_jabo_na.pdf
    Download link: http://www.mediafire.com/?9pvqf61aam0vxa9

    * File name: Akash Jora Megh By Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?60j5g825re1zae6

    * File name: Amar Priyo Vuter Golpo.pdf
    Download link: http://www.mediafire.com/?vfp06e9dej313ss

    * File name: Ami Abong Koakti Projapoti.pdf
    Download link: http://www.mediafire.com/?75hc3n75e5ua5ts

    * File name: Ami-Ebong-Amra-by-Humayun-Ahmed.PDF
    Download link: http://www.mediafire.com/?3fjfj58768bc4ed

    * File name: Ami-ee Misir Ali by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?cxuc3g6a3k204iw

    * File name: Andhokarer Gaan by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?2idnhqydsuvbcmi

    * File name: Angul kata joglu(Himu).pdf
    Download link: http://www.mediafire.com/?ze5nu0l97zelzf2

    * File name: Anonto_Nakhotro_Bithi.PDF
    Download link: http://www.mediafire.com/?g3xpbf8hqvrexxc

    * File name: Aoumoy by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?3u2wvmp9e2iqo3v

    * File name: Aporahnyo by Humayun Ahmed.PDF
    Download link: http://www.mediafire.com/?gfk6hmkij8w1daf

    * File name: Ashabori by Humayun Ahmed.PDF
    Download link: http://www.mediafire.com/?4v6gs9pul28jh58

    * File name: Asmanira tin bon.pdf
    Download link: http://www.mediafire.com/?x6ydm43gd1gf3ha

    * File name: Ayna Ghor_Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?rbb9q7pgd8cnqqp

    * File name: Badol Diner Dwitiyo Kodomful by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?s4c8545yuvp9z5s

    * File name: Badshah-Namdar-Humayun-Ahmed-plabon.com.part1.rar
    Download link: http://www.mediafire.com/?5a73y06ltt1q8k3

    * File name: Badshah-Namdar-Humayun-Ahmed-plabon.com.part2.rar
    Download link: http://www.mediafire.com/?nf4v40ysd7hdbe7

    * File name: Badshah-Namdar-Humayun-Ahmed-plabon.com.part3.rar
    Download link: http://www.mediafire.com/?3k0z90f0n82c27f

    * File name: Badshah-Namdar-Humayun-Ahmed-plabon.com.part4.rar
    Download link: http://www.mediafire.com/?6hysmlnnbpwmn7r

    * File name: Baghbondi Misir Ali by Humayum Ahmed.PDF
    Download link: http://www.mediafire.com/?q9pvw0kcfqr32od

    * File name: Ballpoint-by-Humayun-Ahmed.PDF
    Download link: http://www.mediafire.com/?51d6qhkyua8mzb0

    * File name: Basor by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?7b3qin3p7bpeka9

    * File name: Bhoy_Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?06z4e5te52b7gb7

    * File name: Bipod-by-humayun-ahmed-MISIR-ALI-series_.pdf
    Download link: http://www.mediafire.com/?j55r33b3hkguhqq

    * File name: Bohubrihi by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?9y07i3a094hddsd

    * File name: Botol_Vut_by_Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?swqrymjakpijtja

    * File name: Brishti Bilash By Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?jivhotphakfk4av

    * File name: Bristi O Meghmala by Humayn Ahmed.pdf
    Download link: http://www.mediafire.com/?6bb4h0f226mgu6d

    * File name: Chander Aloy Koekjon Jubok_Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?8l58dh56qqkyvgt

    * File name: Chayabithi-by-Humayun-Ahmed.PDF
    Download link: http://www.mediafire.com/?6lixtxzylnwjp6x

    * File name: Cheleta by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?rjgru3nz9eu5cbg

    * File name: Chokkhe-Amar-Trishna-by-Humayun-Ahmed.PDF
    Download link: http://www.mediafire.com/?g1uimnlhgnozf8x

    * File name: Chole-Jay-Bosonter-Din-By-Humayun-Ahmed.pdf
    Download link: http://www.mediafire.com/?385b9spw3b9hyq4

    * File name: Debi (Misir Ali).pdf
    Download link: http://www.mediafire.com/?zwaom7mbogv7bpi

    * File name: Dekha Na Dekha.pdf
    Download link: http://www.mediafire.com/?ta48z3n4jsmgrr7

    * File name: Dighir-Jola-Kaar-Chayago-by-Humayun-Ahmed.PDF
    Download link: http://www.mediafire.com/?fc5m436f12yxgzi

    * File name: Ditiyo Manob by Humayun Ahmed.PDF
    Download link: http://www.mediafire.com/?0ab2c7bzwubhvkr

    * File name: Dorjar_Opashe(Himu)_By_Humayun_Ahmed-1-50.pdf
    Download link: http://www.mediafire.com/?z50a95ac1tlsl2k

    * File name: Dorjar_Opashe(Himu)_By_Humayun_Ahmed-50-96.pdf
    Download link: http://www.mediafire.com/?t37jv6kti47ihwd

    * File name: Dui Duari By Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?szwyrr2fjq1bhfj

    * File name: Ei ami.pdf
    Download link: http://www.mediafire.com/?051fga1pc7gjhje

    * File name: Gouripur Jongshon Junction by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?h8ycvfd277wdwzw

    * File name: HartanIshkaponbyHumayunAhmedMisirAli.PDF
    Download link: http://www.mediafire.com/?20z2un9rz9gun73

    * File name: Himu Ebong Ekti Russian Pori.PDF
    Download link: http://www.mediafire.com/?c83cd65sgdy88s2

    * File name: Himu Mama by Humayun.PDF
    Download link: http://www.mediafire.com/?0i7et3d0y3g4hx3

    * File name: Himu Remand-E by Humayun Aahmed[New Book-2008].PDF
    Download link: http://www.mediafire.com/?72pwsjpzeddqg9i

    * File name: Himu1.pdf
    Download link: http://www.mediafire.com/?5jetjjct9nc2nt5

    * File name: Himu2.pdf
    Download link: http://www.mediafire.com/?mdbbguzcztxt4rm

    * File name: Himur Babar Kothamala by Humayun Ahmed.PDF
    Download link: http://www.mediafire.com/?98vr19ckemz8qh5

    * File name: Himur Ekanto Sakkhatkar by Humayun Ahmed.PDF
    Download link: http://www.mediafire.com/?h3d77utj2iggyu2

    * File name: Himur Neel Jochna by Humayun Ahmed.PDF
    Download link: http://www.mediafire.com/?yz9ig6muyj9ad7f

    * File name: Himur Ditiyo Prohor.pdf
    Download link: http://www.mediafire.com/?a9ql59830gcd8pt

    * File name: Himur Madhya dupur byHumayunAhmedBoimela-2009.pdf
    Download link: http://www.mediafire.com/?mtencmj8g2g6eyu

    * File name: Holud-himu-kalo-rab1.pdf
    Download link: http://www.mediafire.com/?bol4fyzcsyigilk

    * File name: Humayun Ahmed-Er Premer Golpo.PDF
    Download link: http://www.mediafire.com/?4zcpcsk8392v8z4

    * File name: IREENA by humayun ahmed.pdf
    Download link: http://www.mediafire.com/?q1caucze545kc44

    * File name: Jibonkrishno_Memorial_High_School_by_Humayun_Ahmed.PDF
    Download link: http://www.mediafire.com/?043q4zddadr39sh

    * File name: Jodiyo Sandhya by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?uv3ytz31us323yc
    * File name: Jol poddo.pdf
    Download link: http://www.mediafire.com/?u00i5ufi4j36b09

    * File name: Jol_jochona_by_Humayun_ahmed.pdf
    Download link: http://www.mediafire.com/?pozx7stduoz326r

    * File name: Kathpencil.pdf
    Download link: http://www.mediafire.com/?k83ahk539c5i0wl

    * File name: katpencil-By-Humayun-Ahmed.pdf
    Download link: http://www.mediafire.com/?ciq8h7laqipllk6

    * File name: Ke Kotha Koy By Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?uj5orocope5uxo2

    * File name: Kichu Shoishob by Hymayun Ahmed.pdf
    Download link: http://www.mediafire.com/?t0s6b98d053dbnp

    * File name: Kichukkhan by Humayun Ahmed.pdf
    Download link: http://www.mediafire.com/?3l6bq82lnpn4ev3

    * File name: kobi.pdf
    Download link: http://www.mediafire.com/?pc4dx5i8vi6qwel

    * File name: Kohen-kobi-Kalidas-bangla-book-part2.pdf
    Download link: http://www.mediafire.com/?9toz946sr2nuq5o

    * File name: kohen-kobi-kalidash-by-humayun-ahmed.pdf
    Download link: http://www.mediafire.com/?p5aivhgrk9y645c

    * File name: Kothao-Keu-Nei-by-Humayun-Ahmed.PDF
    Download link: http://www.mediafire.com/?c4se48t9d5ubcat

    * File name: Krisnopokkho.pdf
    Download link: http://www.mediafire.com/?dvq4j5gye1114aj
    * File name: kuhuk-humayun-ahmed.pdf
    Download link:http://www.mediafire.com/?2qam611k7tk82rp

    আরও অনেক বই আছে কিন্তু Techtunes এর নিয়মের জন্য ৯৯ টার বেশি লিঙ্ক দিতে পারলাম না...আর প্রায় ৮০ টার মত বই আছে শেইগুলা ডাউনলোড করতে এই লিঙ্ক এ যান

    http://hiractg.blogspot.com/2012/08/pdf-book-collection-single-mediafire_11.html

    আশা করি আপনাদের সকলের পোস্টটি ভাল লাগবে... ভাল লাগলে কমেন্ট করতে ভুলবেন না কিন্তু...

    এত কষ্ট করে আমার পোস্টটি পড়ার জন্য আপনাদের সবাইকে ধন্যবাদ।

    কষ্ট করে পারলে ফেসবুক এ আমাদের এই পেজটিতে একটা লাইক দিয়েন

    পোস্টটি প্রথমে আমার ব্লগ এ প্রকাশিত।

    আমার ব্লগ দেখতে ছাইলে ঘুরে আসতে পারেন http://hiractg.blogspot.com

    আমার পূর্বের পোস্ট গুলি দেখুন

    Image preview before uploading using AsynFileUpload

    Posted by imomins on August 11, 2012 at 10:50 AM Comments comments (0)

    It is always nice to show the preview of the image which has to be uploaded by the user.

    After lot of searching I found that the HTML upload i.e input type="file"... is not useful as it does not expose enough server side events. For this scenario the better control is Ajax control ToolKit's AjaxFileUpload, which has enough server side events and client side events.

    After the file is uploaded instead of saving it in the location in the server instead HttpHandler can be used which can write the uploaded image directly into the response. so no storage and less headaches.

    What have been done.

    1) Use AjaxFileUpload to upload the file.
    2) Store the file in the session object.
    3) Use the session object in the Handler. Set the Image control source to the Handler.


    In .aspx.cs

    public static readonly string STORED_IMAGE = "SessionImage";

    protected void OnAsyncFileUploadComplete(object sender, AsyncFileUploadEventArgs e)
    {
    if (asyncFileUpload.PostedFile != null)
    {
    HttpPostedFile file = asyncFileUpload.PostedFile;

    byte[] data = ReadFile(file);
    //Store the image in the session.
    Session[STORED_IMAGE] = data;
    }
    }


    private byte[] ReadFile(HttpPostedFile file)
    {
    byte[] data = new Byte[file.ContentLength];
    file.InputStream.Read(data, 0, file.ContentLength);
    return data;
    }



    In .aspx

    Note: Use the randomnumber in the querystring of the handler otherwise, browser caches the first image and returns the same image again and again.


    <script language="javascript" type="text/javascript">
    function getRandomNumber() {
    var randomnumber = Math.random(10000);
    return randomnumber;
    }

    function OnClientAsyncFileUploadComplete(sender, args)
    {
    var handlerPage = '<%= Page.ResolveClientUrl("~/ImageHandler.ashx")%>';
    var queryString = '?randomno=' + getRandomNumber();
    var src = handlerPage + queryString;
    var clientId = '<%=previewImage.ClientID %>';
    document.getElementById(clientId).setAttribute("src", src);
    }
    </script>



    The Handler

    Note use the IRequiresSessionState to access the session variables in the Handler.



    public class ImageRequestHandler: IHttpHandler, IRequiresSessionState
    {
    public void ProcessRequest(HttpContext context)
    {
    context.Response.Clear();

    if(context.Request.QueryString.Count != 0)
    {
    //Get the stored image and write in the response.
    var storedImage = context.Session[_Default.STORED_IMAGE] as byte[];
    if (storedImage != null)
    {
    Image image = GetImage(storedImage);
    if (image != null)
    {
    context.Response.ContentType = "image/jpeg";
    image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
    }
    }
    }
    }

    private Image GetImage(byte[] storedImage)
    {
    var stream = new MemoryStream(storedImage);
    return Image.FromStream(stream);
    }

    public bool IsReusable
    {
    get { return false; }
    }
    }



    In web.config


    <add validate="false" verb="*" path="ImageHandler.ashx"type="ImagePreviewDemo.ImageRequestHandler,ImagePreviewDemo"/>



    Please find the full source code attached.
    Attachments

  • ImagePreviewUploadDemo (40858-835-ImagePreviewDemo.rar)

    Did you like this resource? Share it with your friends and show your love!
    Share
  •  

    receipe portal

    Posted by imomins on August 6, 2012 at 11:05 AM Comments comments (0)

    An Illustrated Guide to Git on Windows

    Posted by imomins on July 27, 2012 at 6:50 AM Comments comments (0)

    About

    This document is designed to show that using git on Windows is not a difficult process. In this guide, I will create a repository, make several commits, create a branch, merge a branch, search the commit history, push to a remote server, and pull from a remote server. The majority of this will be done using GUI tools.

    Although this guide is targeted for use on Windows, the git gui tool works the same on all platforms. Because of this, git users on other platforms may find useful information here as well.

    Downloading PuTTY

    Although you can use the SSH program that comes with git, I prefer to use the PuTTY Agent to keep track of my SSH keys. If you don't already have them, download putty.exe, plink.exe, pageant.exe, and puttygen.exe from the PuTTY web site.

    Later in this guide, we will use these programs for securely pushing our changes to a remote server.

    Installing Git

    First, download msysgit. This download is a single executable which installs the entire git system. While going through the installer, you will want to check the options to add Windows Explorer integration when you right click on a folder.

    Because we will be using PuTTY as our SSH client, choose Use PLink and fill in the path to the downloaded plink.exe executable.

    Continue clicking Next until the installation is complete.

    Creating a Repository

    To create a repository, first create the folder you want the project to live under. Next, right click on the folder and choose Git GUI Here. Because there is no git repository in this folder yet, you will be presented with the git gui startup dialog.

    Choosing Create New Repository brings us to the next dialog.

    Fill in the path to your new directory and click Create. You will then be presented with the main interface of git gui, which is what will be shown from now on when you right click on your folder and click Git GUI Here.

    Now that the repository has been set up, you will need to tell git who you are so that commit messages will have the correct author. To do this, choose Edit → Options.

    In the options dialog, there are two versions of each preference. On the left side of the dialog are options that you want for this repository only, while the right side contains the global options which apply to all repositories. The defaults for these options are sensible so just fill in the user name and email for now. If you have a favorite font, you may want to set it now as well.

    Committing

    Now that the repository has been created, it is time to create something to commit. For this example, I created a file called main.c with the following content:

    #include <stdio.h>
    
    int main(int argc, char **argv)
    {
    	printf("Hello world!\n");
    	return 0;
    }
    

    Clicking the Rescan button in the git gui will cause it to search out new, modified, and deleted files in the directory. In the next screenshot, git gui has found our new file (amazing, I know).

    To add the file for committing, click the icon to the left of the filename. The file will be moved from the Unstaged Changes pane to the Staged Changes pane. Now we can add a commit message and commit the change with the Commit button.

    Saying hello to the world is all well and good, but I would like my program to be more personal. Let's have it say hello to the user. Here's my code for that:

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char name[255];
    
    	printf("Enter your name: ");
    	fgets(name, 255, stdin);
    	printf("length = %d\n", strlen(name)); /* debug line */
    	name[strlen(name)-1] = '\0'; /* remove the newline at the end */
    
    	printf("Hello %s!\n", name);
    	return 0;
    }
    

    I had some trouble figuring out why a newline was printed after the user's name, so I added a debugging line to help me track it down. I would like to commit this patch without the debug line, but I want to keep the line in my working copy to continue debugging. With git gui, this is no problem. First, click Rescan to scan for the modified file. Next, click the icon to the left of the filename to stage all modifications for commit. Then, right click on the debug line and chose Unstage Line From Commit.

    Now, the debug line has been unstaged, while the rest of the changes have been staged. From here, it is just a matter of filling in the commit message and clicking Commit.

    Branching

    Now let's say that we want to start adding new features for our next big version of the program. But, we also want to keep a stable, maintenance version of the program to fix bugs on. To do this, we will create a branch for our new development. To create a new branch in git gui, choose Branch → Create. The big feature that I would like to add is to ask the user for their last name, so I am calling this branch lastname. The default options in the Create Branch dialog are all fine, so just enter the name and click Create.


    Now that I am on the lastname branch, I can make my new modifications:

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	char first[255], last[255];
    
    	printf("Enter your first name: ");
    	fgets(first, 255, stdin);
    	first[strlen(first)-1] = '\0'; /* remove the newline at the end */
    
    	printf("Now enter your last name: ");
    	gets(last); /* buffer overflow? what's that? */
    
    	printf("Hello %s %s!\n", first, last);
     	return 0;
    }
    

    And then I can commit the change. Note here that I am committing using a different name. This is to show off something later. Normally you would always use the same name when committing.

    Meanwhile, a user informs us that not displaying a comma when directly addressing someone is a serious bug. In order to make this bug fix on our stable branch, we must first switch back to it. This is done using Branch → Checkout.

    Now we can fix our major bug.

    If we choose Repository → Visualize All Branch History, we can see how our history is shaping up.

    Merging

    After days of work, we decide that our lastname branch is stable enough to be merged into the master branch. To perform the merge, use Merge → Local Merge.

    Because the two different commits made two different modifications to the same line, a conflict occurs.

    This conflict can be resolved using any text editor. After resolving the conflict, stage the changes by clicking the file icon and then commit the merge by clicking the Commit button.

    Viewing History

    The main.c file is starting to get a bit big, so I decided to move the user prompting portion of the code into its own function. While I was at it, I decided to move the function into a separate file. The repository now contains the files main.c, askname.c, and askname.h.

    /* main.c */
    #include <stdio.h>
    
    #include "askname.h"
    
    int main(int argc, char **argv)
    {
    	char first[255], last[255];
    
    	askname(first, last);
    
    	printf("Hello, %s %s!\n", first, last);
     	return 0;
    }
    
    /* askname.c */
    #include <stdio.h>
    #include <string.h>
    
    void askname(char *first, char *last)
    {
    	printf("Enter your first name: ");
    	fgets(first, 255, stdin);
    	first[strlen(first)-1] = '\0'; /* remove the newline at the end */
    
    	printf("Now enter your last name: ");
    	gets(last); /* buffer overflow? what's that? */
    }
    
    /* askname.h */
    void askname(char *first, char *last);
    

    The history of the repository can be viewed and searched by choosing Repository → Visualize All Branch History. In the next screenshot, I am trying to find which commit added the last variable by searching for all commits which added or removed the word last. Commits which match the search are bolded, making it quick and easy to spot the desired commit.

    A few days later, someone looks through our code and sees that the gets function could cause a buffer overflow. Being the type to point fingers, this person decides to run a git blame to see who last modified this line of code. The problem is that Bob is the one who committed the line, but I was the one who last touched it when I moved the line into a different file. Obviously, I am not to blame (of course). Is git smart enough to figure this out? Yes, it is.

    To run a blame, select Repository → Browse master's Files. From the tree that pops up, double click on the file with the line in question which in this case is askname.c. Hovering the mouse over the line in question shows a tooltip message that tells us all we need to know.

    Here we can see that the line was last modified by Bob in commit f6c0, and then I moved it to its new location in commit b312.

    Pushing to a Remote Server

    Before pushing to a remote server, you must first create a SSH public and private key pair. By using SSH, you will be able to securely authenticate to the server that you are who you say you are. Creating the key pair is a simple process. Begin by running the puttygen.exe program downloaded earlier. Next, click the Generate button to generate the keys. After processing for a few seconds, click the Save private key button to save your new private key. Copy the public key to the clipboard in preparation for the next step. I would recommend not clicking the Save public key button because the saved file is in a non-standard format; trying to use it with other software might be problematic.

    Now that the keys are generated, the remote servers need to know about it. If you would like to use github to host your code, just go to your account page and paste in the public key.

    Now github has our public key, but we do not yet have github's. To remedy this, launch putty.exe, connect to github.com, and click Yes to accept github's public key. You can safely close the login window that opens up after accepting the key.

    We need our private key to be loaded up to use with our public key, so launch pageant.exe. This program will create an icon in your system tray. Double clicking on the icon will open up a window into which the private key can be added. Once the private key is added, the agent will sit in the background and provide authentication when needed.

    Now that our client and server can authenticate each other, it is time to push! Remote → Push will open up the push dialog. Typing in the commit address for the project and clicking Push will send the changes on their way.

    Of course, typing in the remote url would become quite annoying if we had to do it with every push. Instead, git allows us to alias the long urls using remotes. Git gui currently does not have a way to add a remote, so the command line must be used. Right click on the repository folder and choose Git Bash Here. In the prompt, enter the following command:

    git remote add github [email protected]:nathanj/example.git
    

    Note: After adding a remote, close and reopen git gui for it to recognize the new remote.

    Now the remote github is aliased to the url [email protected]:nathanj/example.git. When viewing the push dialog in git gui, a convenient drop down list of remotes is shown.

    Pulling from a Remote Server

    Because our code is so useful, dozens of people have downloaded and now use our program. One person in particular, Fred, has decided to fork our project and add his own commits. Now that he's added his code, he would like us to pull those commits from him into our repository. To do this, first create another remote.

    git remote add fred ssh://[email protected]/home/fred/example
    

    Now we can fetch Fred's changes using Remote → Fetch from → fred.

    After the fetch, Fred's commits have now been added to our local repository under the remotes/fred/master branch. We can use gitk to visualize the changes that Fred has made.

    If we like all of Fred's changes, we could do a normal merge as before. In this case though, I like one of his commits but not the other. To only merge one of his commits, right click on the commit and choose Cherry-pick this commit. The commit will then be merged into the current branch.

    We can now push a final time to send Fred's patch to our github tree for everyone to see and use.

    Conclusion

    In this guide, I have shown how to do many common tasks in git using GUI tools. I hope that this guide has shown that it is not only possible but easy to use git on Windows without having to use the Windows shell for most operations.

    If you have any comments, you can contact me. I don't always respond to emails though, sorry.

    How to Use GitHub to Contribute to Open Source Projects Read more at http://www.lockergnome.com/web/2011/12/13/how-to-use-github-to-contribute-to-open-source-projects

    Posted by imomins on July 27, 2012 at 6:25 AM Comments comments (0)

    সফটওয়্যার সোর্সকোড ম্যানেজমেন্টঃ আপনার সোর্সকোডকে আরো কার্যকরভাবে সংরক্ষন এবং ব্যবহার করুন


    সফটওয়্যার সোর্সকোড ম্যানেজমেন্টঃ  আজকে যে বিষয়টা নিয়ে লিখব তা হল সফটওয়্যার সোর্সকোড ম্যানেজমেন্ট। এর উপর অনলাইনে বাংলা কোন আর্টিকেল নেই বললেই চলে।

    প্রাথমিক ধারনা: সফটওয়্যার তৈরির ক্ষেত্রে এর সোর্সকোড সংরক্ষন করা অনেক জরুরী। কারন কোন একটি এপ্লিকেশন একেবারেরই লিখে ফেলা যায় না। আর এর হিস্টোরীগুলোও মনে রাখা গুরুত্বপূর্ণ। এর জন্য সোর্সকোড ম্যানেজমেন্ট অনেক জরুরী একটি বিষয়।

    এর সুবিধাঃ

    # সোর্সকোড ম্যানেজমেন্টের সবচেয়ে বড় সুবিধা হল আপনি আপনার কোড নিরাপদে সংরক্ষন করতে পারছেন। আগে কি কোড লিখেছেন এবং তা পরবর্তীতে কোথায় পরিবর্তন করেছেন তার সব কিছুই সংরক্ষন থাকব।

    # টিমওয়ার্কের ক্ষেত্রে এটা আরো গুরুত্মপূর্ণ। আপনার লেখা কোড সারাবিশ্বের যে কেউ দেখতে পারবে। সে কেউ চাইলে আপনার এপ্লিকেশনের সোর্সকোড ডেভেলাপ করতে পারবে।

    # যেহেতু অনলাইন সংরক্ষন ব্যাবস্থা তাই যে কোন জায়গা থেকে আপনি এক্সেস করতে পারবেন এবং কোড পরিবর্তনের জন্য কমিট করতে পারবেন।

    # ওপেনসোর্স সফটওয়্যার আসলেই কি এবং বিভিন্ন ওপেনসোর্স প্রজেক্টে কাজ করলে এর প্রয়োজনীয়তা সত্যিকার অর্থে উপলব্ধি করতে পারবেন।

    # ফেসবুকের মাধ্যমে আমরা যেমন বন্ধুরা কে কি করছে তার আপডেট পাই, এর মাধ্যমেও watch এ রাখা প্রোগ্রামার বন্ধুদের লেখা প্রোগ্রাম দেখতে পারেন, এডিট করতে পারেন এবং কোন একটি বিশাল এপ্লিকেশনের ডেভেলাপমেন্টে যোগ দিতে পারেন।

    অনলাইনে সোর্সকোড সংরক্ষন, গিটহাব/গুগলকোডঃ  সোর্সকোড ম্যানেজমেন্টের ক্ষেত্রে বিভিন্ন ধরনের ভার্সন কন্ট্রোল সিস্টেম রয়েছে। এর মধ্যে গিটই সবচেয়ে বেশি জনপ্রিয়। এই সিস্টেমে আপনার সোর্সকোড সংরক্ষনের জন্য আপনি ইউজ করতে পারেন গিটহাব। এছাড়া আপনি গুগলকোডে ও আপনার সোর্সকোড সংরক্ষন করতে পারেন। যাই হোক আমি আজকে গিটহাব নিয়ে লিখব। আসলে এ নিয়ে অনেক অনেক কিছু জানার আছে এবং জানা দরকার। একটি মাত্র টিউটরিয়ালে কোনভাবেই বোঝানো সম্ভব না। আপনাকে মোটামুটি বুঝতে হলে Pro-Git বইয়ের ১ম থেকে ৫ নাম্বার চাপ্টার পর্যন্ত পুরোপুরি বুঝে বুঝে পড়তে হবে। তাহলে হয়ত ভাল একটা ধারনা পেতে পারেন। তবে সাধারনভাবে কাজ করার জন্য যেটুকু দরকার সেটুকুই টিউটোরিয়ালে তুলে ধরছি।

    গিটহাবে সোর্সকোড আপলোডের পদ্ধতিঃ  আমি জাস্ট দেখাব কিভাবে আপনি একটি রিপোজটরিতে আপনার কোড আপলোড করবেন।

    আপনি এখানে চাইলে সরাসরি সোর্সকোড আপলোড করতে পারবেন না। যে কোন সোর্সকোড আপনার তৈরি করা রিপোজটরিতে জমা রাখতে পারবেন। যদি আপনি আপনার সোর্সকোড ওপেন রাখতে চান অর্থাৎ প্রজেক্ট যদি হয় ওপেনসোর্স তাহলে ইচ্ছামত রিপোজটরি ক্রিয়েট করতে পারবেন এবং সোর্সকোড আপলোড করতে পারবেন। কিন্তু বাণিজ্যিকভাবে ব্যবহারের জন্য সোর্সকোড রেস্ট্রিকটেড রাখতে চাইলে সে ক্ষেত্রে আপনাকে গিটহাবকে পে করতে হবে।

    যাই হোক প্রথমে গিটহাবে এখান থেকে রেজিস্ট্রেশন করে নিন। রেজি করার সময় ইউজার নেমটা একটু খেয়াল করে দিবেন। যেমন আমি Mashpy নাম দেয়াতে এরকম ইউজার ফ্রেন্ডলি লিঙ্ক  পেয়েছি-  https://github.com/Mashpy

    (বড় করে দেখতে ছবিটিতে ক্লিক করুন;)

    ১। প্রথমে Create a repository তে গিয়ে একটি নাম দিন। আমি নাম দিলাম - TechnologyBasic-Software । খেয়াল করে দেখুন আপনাকে সাথে সাথেই https://github.com/Mashpy/TechnologyBasic-Software এরকম একটা লিঙ্ক দিয়ে দেয়া হচ্ছে। এটা মনে রাখুন কাজ লাগবে একটু পরে ৭নং অংশে।

    এবার আপনি যদি উইন্ডোজ ইউজ করে থাকেন তাহলে লিঙ্ক থেকে সফটওয়্যারটি ডাউনলোড করে ইন্সটল করুন।

    ২। আপনার পিসিতে TechnologyBasic-Software নামে একটি ফোল্ডার তৈরি করুন এবং এতে আপনার ইচ্ছামত সোর্সকোড রাখুন।

    ৩। ইন্সটল হওয়া সফট Git-Gui ওপেন করুন এবং Create New Repository তে TechnologyBasic-Software এর ফোল্ডারের লোকেশনটি দেখিয়ে দিন। Rescan এ ক্লিক করে Stage Changed এ ক্লিক দিলে নিচের মত দেখতে পাবেন।

    (বড় করে দেখতে ছবিটিতে ক্লিক করুন;)

    ৪। Commit কথাটি অনেক গুরুত্বপূর্ণ। আপনি সোর্সে কোড পরিবর্তন করার পর কমিট করতে হবে। আপনার সোর্সকোডে কেমন পরিবর্তন করেছেন তার একটি সংক্ষিপ্ত বর্ননা লিখে দিতে পারেন। যাতে আপনি বা অন্য যে কেউ কমিট মেসেজটি পড়লেই এই সফটওয়্যারের ডেভেলাপমেন্ট হিস্টোরি সম্পর্কে ধারনা হয়ে যায়।

    সোর্সকোড পরিবর্তন করে কমিট মেসেজ লিখে Commit এ ক্লিক করুন। তাহলে সোর্সকোডটি পরিবর্তিত হবে।

    ৫। এবার এই সোর্সকোডকে আমাদের অনলাইনে আপলোড করতে হবে। এর জন্য আমরা Push বাটন চাপ দিব। তার আগে আপনাকে SSH Key ঠিক করতে হবে।

    ৬। Git-Gui সফটওয়্যারে Help-Show SSH key তে চাপ দিন। এই কী কপি করুন। 

    (বড় করে দেখতে ছবিটিতে ক্লিক করুন;)

    এই লিঙ্কে যেয়ে Add SSH এ ক্লিক করুন। কপি করা Key এখানে পেস্ট করুন।

    ৭। অনলাইনে আপলোডের জন্য Push বাটনে চাপ দিন এবং Arbitrary Location এ ১ নং অংশে থাকা লিঙ্কটি বসিয়ে দিয়ে Ok করুন। আপনার গিটহাব ইউজার নেম ও পাসওয়ার্ড চাইলে দিয়ে দিবেন।

    ৮। দেখুন লিঙ্কে আপলোড হয়ে গেল আপনার কাক্ষিত সোর্সকোড ।

    (বড় করে দেখতে ছবিটিতে ক্লিক করুন;)

    এখন আপনার কোড যে কেউ দেখতে পারবে, কোন প্রকার ভুল হলে সংশোধনের জন্য কমিট করতে পারবে। পুরো কোড কপি করে নিজের একাউন্টে নিয়ে যেতে পারবে।

    গিটহাবে কাজ করার ক্ষেত্রে কিছু প্রয়োজনীয় বিষয়: গিটহাবে আপনার Commit, Pull, Push, Stage, Branch এই কয়েকটি জিনিস সম্পর্কে ধারনা থাকা অবশ্যক। সে সম্পর্কে সংক্ষেপে কিছু বলছি।

    Commit: সোর্সকোড চেঞ্জ করলে কি কি চেঞ্জ করেছেন তার একটি সংক্ষিপ্ত বিরবণ রাখতে পারেন। ফলে পরবর্তীতে কেউ প্রজেক্ট ডেভেলাপ করতে গেলে সহজেই বিস্তারিত জানতে পারবে।
    Pull:
    অন্যকোন একটি গিটহাব একাউন্টের প্রজেক্ট নিয়ে কাজ করতে চাইলে প্রজেক্টের লিঙ্কটি দিয়ে পুরো প্রজেক্টটি ক্লোন করে নিয়ে নিজের একাউন্টে কাজ করতে পারেন।
    Push:
    আপনার কম্পিউটারে ডেভেলাপ করা কোন সোর্সকোড গিটহাব সাইটে আপলোড করতে হলে পুশ করতে হবে।
    Stage
    :   প্রাথমিক অবস্থায় সোর্সকোড unstage অবস্থায় থাকে। কোন কিছু কমিট করতে হলে আপনাকে স্টেজ চেঞ্জ করতে হবে।
    Branch
    : কোন রিপোজেটরিতে আমরা যখন সোর্সকোড রাখি সাধারনভাবে Master Branch এ রাখি। আপনি যদি এই সোর্সকোড নিয়ে কাজ করতে চান তাহলে নতুন কোন ব্রাঞ্চে নিয়ে কাজ করে আবার Master Branch এ মার্জ করতে পারেন।

    টিমওয়ার্কের ক্ষেত্রে এই পদ্ধতির ভূমিকা: এই স্টাইলে সোর্সকোড সংরক্ষনের পদ্ধতিতে সবচেয়ে বড় সুবিধা হল কোন একটি প্রজেক্টে হাজার হাজার ডেভেলাপার কাজ করতে পারে। এই কারনে ওপেনসোর্স এপ্লিকেশনগুলোর ডেভেলাপমেন্ট খুব তাড়াতাড়ি হয়ে থাকে।

    এই সম্পর্কে আরো জানার জন্য প্রয়োজনীয় রিসোর্স: এছাড়া আরো অনেক বিষয় আছে। পুরোটা বুঝতে হলে অবশ্যই Pro-Git বইয়ের ১ম থেকে ৫ নাম্বার চাপ্টার পর্যন্ত পড়তে হবে। কোন টপিক বা বইয়ের কোন পেজে কোন টপিক বুঝতে সমস্যা হলে আমাকে জানাতে পারেন।

    Ebook of MOHAAMMAD JAFAR IQBAL

    Posted by imomins on July 25, 2012 at 5:55 AM Comments comments (0)

    MOHAAMMAD JAFAR IQBAL


    MOHHAMMAD JAFAR IQBAL


  • বিজ্ঞানী সফদর আলীর মহা মহা আবিস্কার >Md. Jafar Iqbal.pdf


  • বৃষ্টির ঠিকানা>Md. Jafar Iqbal.pdf

  • বেজি>Dr. Muhammad Jafar Iqbal.pdf

  • ক্রুগো>Md. Jafar Iqbal.pdf

  • মেতসিস>Md. Jafar Iqbal.pdf

  • কপোর্টনিক সুখ দুঃক্ষ>Md. Jafar Iqbal.pdf

  • জলমানব>Md. Jafar Iqbal.pdf

  • মহাকাশের মহাত্রাস>Md.Jafar Iqbal.pdf

  • টুকি এবং ঝায়ের (প্রায়;) দুঃসাহসিক আভি্যান>Md.Jafar Iqbal.pdf

  • পৃ>Md. Jafar Iqbal.pdf

  • মেকু কাহিনী>M.d Jafar Iqbal.

  • রুহান রুহান>M.D Jafar Iqbal



  • NEW & RECENT BOOKS  


    ১৯৭১>ড. মুহাম্মদ জাফর ইকবাল

    HUMAYUN AHMED .pdf BOOK (All)

    Posted by imomins on July 25, 2012 at 5:35 AM Comments comments (0)

    HUMAYUN AHMED .pdf BOOK




    NEW BOOKS

    Rss_feed