Monday, June 20, 2016

Difference Between MVC 4 and MVC 5 and MVC 6

MVC 6 New Features
  • Single Programming Model for ASP.Net MVC and ASP.Net Web API.
  • Out of the box support for dependency injection.
  • Having support of side by side deployment of runtime and framework along with your web application.
  • Optimized for Cloud Computing.
  • Everything packaged with NuGet, including the .Net runtime itself.
  • New JSON based project structure.
  • In order to dynamically compile code, Roslyn compiler is used.
  • No need to recompile for every change. Just hit save and refresh the browser.
  • vNext is Open Source and supports running on multiple platforms including Linux and Mac.

MVC 5 Features
  • ASP.Net Identity for authentication and identity management
  • Attribute Routing is now integrated into MVC5
  • Bootstrap replaced the default MVC template
  • Authentication Filters for authenticating user by custom or third-party authentication provider.
  • With the help of Filter overrides, we can now override filters on a method or controller.

MVC 4 Features
  • ASP.net Web API
  • Modernized default project templates and other look & feel improvements
  • Based on jQuery Mobile, new Mobile Project Template introduced.
  • A truly Empty Project Template.
  • Support for adding controller to other project folders also.
  • Task Support for Asynchronous Controllers.
  • Controlling Bundling and Minification through web.config.
  • Support for OAuth and OpenID logins using DotNetOpenAuth library.
  • Support for Windows Azure SDK 1.6 and new releases.

MVC 3 Features
  • Razor View Engine introduced with a bundle of new features.
  • Improved Model validation.
  • New Project Templates having support for HTML 5 and CSS 3.
  • Having support for Multiple View Engines i.e. Web Forms view engine, Razor or open source.
  • Controller improvements like ViewBag dynamic property and ActionResults Types etc. Dynamic property is a new feature introduced in C# 4.0. ViewBag being a dynamic property has an advantage over ViewData that it doesn’t require checking NULL values. For detailed difference between ViewBag and ViewData can be found here.
  • Unobtrusive JavaScript approach that actually separates the functionality from presentation layer on a web page.
  • Improved Dependency Injection with new IDependencyResolver.
  • Partial page output caching.

Random password generator using Ajax in ASP.Net MVC

You can download the project from here : Download MVCPasswordExample 

As title says when user click a button it send ajax request to controller
$.post('@Url.Content("~/Home/GeneratePassword/")' ...
and returns Json with new 8 character password.


MODEL



public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { getset; }

        [Required]
        [DataType(DataType.EmailAddress)]
        [Display(Name = "Email address")]
        public string Email { getset; }

        [Required]
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { getset; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
        public string ConfirmPassword { getset; }
    }
  



VIEW


@{
    ViewBag.Title = "Home Page";
}

@using MVCPasswordExample.Models
@model RegisterModel

<script>
    $(document).ready(function () {
        $('#updateprofile').click(function () {
            $('form')[0].reset();

        });

        $('#autogenerate').click(function () {
            $.post('@Url.Content("~/Home/GeneratePassword/")'function (data) {

                $('#password, #confirmpassword').attr("value", data.password);

            });
        });

    });

</script>


<h2>@ViewBag.Message</h2>

<table style="margin-top:100px;width:40%">
 <tr>
 <th colspan="3">Change Password</th>
 </tr>


  <tr>
      <td>@Html.LabelFor(m => m.Password)
      </td>
     <td style="width:20%">
         @Html.TextBox("password"nullnew { @class = "search_field", @id = "password", @Value = "" })
     </td>
      <td><input type="button" id="autogenerate" value="Auto generate" class="submit_button" /></td>
 </tr>
    
  <tr>
      <td>
         @Html.LabelFor(m => m.ConfirmPassword)
      </td>
     <td class="confirm" colspan="2">
          @Html.TextBox("confirmpassword"nullnew { @class = "search_field", @id = "confirmpassword" })
      </td>

 </tr>


 </table>


CONTROLLER

        [HttpPost]
        public JsonResult GeneratePassword()
        {
           var pass = Guid.NewGuid().ToString().Substring(0, 8);


            return Json(new { password = pass });

        }

You can download the project from here : Download MVCPasswordExample






DGML

A dependent property in a ReferentialConstraint is mapped to a store-generated column. Column: 'Id'.

This Exception will occur while updating the database at Savechanges( ).When this exception occur while updating database.
                 
----->Update EDMX file inorder to overcome this exception.

Sunday, June 19, 2016

HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.

sol: False to true

  <system.web>
    <compilation debug="false" targetFramework="4.0"/>
  </system.web>


  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web>


Edit any page

run this script in browser...

javascript:document.body.contentEditable = 'true'; document.designMode = 'on'; void 0

Thursday, June 16, 2016

Remote Debugging a Window Azure Web Site with Visual Studio 2013

In the Azure SDK 2.2 we released remote debugging support for Windows Azure Cloud Services. You can read more about that release at Scott Guthrie’s blog post Windows Azure: Announcing release of Windows Azure SDK 2.2 (with lots of goodies). You can find more info on Windows Azure Web Sites diagnostics and debugging at our docs for Web Sites diagnostics and debugging as well.
When we released the Azure SDK 2.2 the server side support for remote debugging Windows Azure Web Sites was not yet in production. Because of this the command was not shown in Visual Studio. We have now published the server side support in Windows Azure Web Sites, and the feature is now automatically enabled in Visual Studio.
In this post you will find the download links required to try out the new features as well as more info about the support.

How to get the new features?

In order to remotely debug your site you will need to download and install the following.
· Any version of Visual Studio 2013 which supports remote debugging
After installing the Azure SDK 2.2 you will now see a new menu option, Attach Debugger, for your Azure Web Sites. In the image below you’ll find this new menu option.
image
Now let’s see how you can use this new feature.

Remote debugging walkthrough

For a new site running in Windows Azure Web Site you’ll need to follow the following steps to get your remote debugging session started.
2. Invoke the Attach Debugger menu option in Server Explorer
To have the best debugging experience you should publish your site using the Debug build configuration. You can configure this for your publish profile on the Settings tab of the Web Publish dialog. The drop down is shown in the following image.
clip_image002
After publishing your application you can use the Server Explorer in Visual Studio to access your web sites. If you haven’t already you may need to sign in to Windows Azure in Visual Studio. You can do this using the Connect to Windows Azure button on the Server Explorer. See the image below for that button.
clip_image003
After signing in you will see your Web Sites under the Windows Azure node in Server Explorer. Right click on the site that you would like to debug and select Attach Debugger. When this is invoked the remote debugging agent will be started on your web site, you site is restarted with the agent attached, your default browser will be opened to the URL of your site, and Visual Studio will attach the remote debugger. The first time you do this the delay will be about 20 seconds, but subsequent usages will attach much quicker. If you disable the remote debugger option in the portal you’ll experience the ~20 second delay again.
After that you can debug your remote site as you would your local project. You can step through code, set breakpoints, break on exceptions, evaluate expressions, and all the other goodness you are used to.
Note: currently the support here is designed for single instance sites. If you attach to a web site running multiple instances, you will attach to a random instance. In the future we may look at providing a better experience here, but we do not have any specific plans yet.
For more info on remote debugging Windows Azure Web Sites you can visit http://www.windowsazure.com/en-us/develop/net/tutorials/troubleshoot-web-sites-in-visual-studio/#remotedebug.

Remote debugging with Visual Studio 2012

You can also remotely debug your Windows Azure Web Site with Visual Studio 2012, but you’ll need to configure a few things manually for now. We are working to bring the same experience for remote debugging to Visual Studio 2012 but we are not there yet. For now you can use the steps below for Visual Studio 2012.
  1. In the Windows Azure Management Portal, go to the Configure tab for your web site, and then scroll down to the Site Diagnostics section
  2. Set Remote Debugging to On, and set Remote Debugging Visual Studio Version to 2012 image
  3. In the Visual Studio Debug menu, click Attach to Process
  4. In the Qualifier box, enter the URL for your web site, without the http:// prefix
  5. Select Show processes from all users
  6. When you’re prompted for credentials, enter the user name and password that has permissions to publish the web site. To get these credentials, go to the Dashboard tab for your web site in the management portal and click Download the publish profile. Open the file in a text editor, and you’ll find the user name and password after the first occurrences of userName= and userPWD=.
  7. When the processes appear in the Available Processes table, select w3wp.exe, and then click Attach.
  8. Open a browser to your site URL.
    • You might have to wait 20 seconds or so while Windows Azure sets up the server for debugging. This delay only happens the first time you run in debug mode on a web site. Subsequent times within the next 48 hours when you start debugging again there won’t be a delay.


Tuesday, June 14, 2016

How to send a mail using C#

 private void send-mail( )

            {
            string senderID = "sender@gmail.com";// use sender’s email id here..
             const string senderPassword ="password of sender"; // sender password here…
           
                  Console.WriteLine("sending mails......");
                  SmtpClient smtp = new SmtpClient
                  {
                   Host = "smtp.gmail.com", // smtp server address here…
                   Port = 587,
                  EnableSsl = true,
                  DeliveryMethod = SmtpDeliveryMethod.Network,
                   Credentials = new System.Net.NetworkCredential(senderID, senderPassword),
                  Timeout = 30000,
                  };


                 MailMessage message = new MailMessage(senderID, "receiver@gmail.com");
                 message.subject= "hi ";
                  message.Body="   ur body  ";
                 smtp.Send(message);
                Console.WriteLine("mail sended successfully");
               }