Wednesday, February 8, 2017

TCS Dot net interview questions




TCS Dot net interview questions for experienced Candidates

One of my friend attended TCS dotnet interview in Bangalore. Below is his Interview experience.

First Round of technical Interview:
Interviewer started with, asking about the personal details, work experience and skill rating on asp.net mvc , c#,Oops and sqlserver.


1.       How does ‘page lifecycle’ of ASP.Net MVC works?

2.       How route table has been created in ASP.NET ASP.Net MVC?
Ans : In short,  Method : "RegisterRoutes()" is used for registering the routes which will be added in "Application_Start()" method of global.asax file, which is fired when the application is loaded or started.

3.       Why to use "{resource}.axd/{*pathInfo}" in routing in ASP.Net MVC?

4.       How can we call a JavaScript function on the change of a Dropdown List in ASP.Net MVC? Asked to write the sample code.


5.       How stage-management concept works in asp.net MVC?
Ans : Interviewer asked about the  uses of Tempdata, Viewbag, ViewData,Sessions.

6.       Does Tempdata hold the data for other request in ASP.Net MVC?

7.       Explain Peek method in Tempdata in ASP.Net MVC?
Ans : Similar to Keep method we have one more method called "Peek" which is used for the same purpose. This method used to read data in Tempdata and it maintains the data for subsequent request.
        string A4str = TempData.Peek("TT").ToString();

8.       How  you can send the result back in JSON format in MVC?

          Ans :  return Json( objCustomer,JsonRequestBehavior.AllowGet);

a9.      What are the action filters available in asp.net mvc?
Ans : An action filter is an attribute that you can apply to a controller action -- or an entire controller -- that modifies the way in which the action is executed. The ASP.NET MVC framework includes several action filters.
· OutputCache – This action filter caches the output of a controller action for a specified amount of time.
· Handle Error – This action filter handles errors raised when a controller action executes.
· Authorize – This action filter enables you to restrict access to a particular user or role

10.  What methods do we need to overrider to implement custom action filter?
Ans :          
1.  OnActionExecuting()                
2.  OnActionExecuted()
3.  OnResultExecuting()
4.  OnResultExecuted
   
11.  Can we use multiple models for a single view? How do you achieve this?
 No, we can't use  multiple models for a single view at a time. But  we can handle this scenario, by creating a view model.

12.  What are the design patterns followed in your project?

Ans :  I said  we followed Repository patter, factory pattern

13.  What is the single ton pattern? In which scenario we can use singleton pattern?

14.  Difference between abstract class and interface?
Sr.No
Abstract Classes
Interface
1
 Abstract class can extend only one class or one abstract class at a time.
 Interface can extend any number of interfaces at a time.
2
Abstract class can extend from a class or from an abstract class.
Interface can have only abstract methods.
3
 Abstract class can have both abstract and concrete methods.
Interface can have only abstract methods.
4
 A class can extend only one abstract class.
 A class can implement any number of interfaces.
5
 Abstract class can have protected public and public abstract methods.
 Interface can have only public abstract methods i.e. by default.
6
 Abstract class can have static, final or static final variable with any access specifier.
Interface can have only static final (constant) variable i.e. by default.
 

15.   Does the abstract class should contain at least one abstract method?
     Ans : No, not required

16.   Why we have interface as we can do everything with abstract class?

17.  How do you maintain security for your application?
Ans: Since, our applications is an intranet, we used windows authentication

18.  How to implement windows authentication? How do you specify roles and permissions to the users?

19.   I have 10 text boxes and a button. The button should be enabled only after I have filled the values in all the textboxes. How do you do that?
    
20.  I have a transaction in the database. Inside that, I have a nested transaction. I have written an insert statement and committed. Now in the outer transaction, if I write rollback, will the committed thing inside the nested transaction will be roll-backed?


 Please share your interview experiences to my Mail id : nsubhash007@gmail.com


Tuesday, February 7, 2017

Binding Tree view In Asp.net MVC



In this article we will see how to bind the tree view in asp.net MVC using Jquery and Bootstrap.


Before starting the implementation, make ensure to get the below prerequisites

  1.  Jquery  CDN  :  <script   src="https://code.jquery.com/jquery-2.2.4.min.js"   integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="   crossorigin="anonymous"></script>
  2.  Bootstrap  CDN:   <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7    /css/bootstrap.min.css" rel="stylesheet" />
  3.  CSS for tree view : ( You can download from below link ). 
  4.  Image: glyphicons-halflings.png (This should get automatically render when referring the bootstrap.css, incase not rendering copy the img file to the solution).
In this article, I’m considering a scenario as, need to display the Portfolio Management Hierarchy, below is how  hierarchy is formatted.    

1.       Portfolio Name

1.1    Program Name

1.1.1          Project Name

1.1.1.1    Project Leader

1.1.1.1.1           Team Members



Here Top level node is portfolio. Portfolio may contain multiple programs and each program may have multiple Projects. Similarly, each project may have multiple project managers and so on..   this hierarchy drill down to till  team members.


Step 1: Create a new MVC project.
Step 2: Create a folder “shared” under folder “view” and add the master layout.
Step3:  Create a controller “OrganizationHierarchyController.cs” and add a view corresponding to that controller.  

Add below lines of  code to the newly created view.




CSS:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<link href="~/Scripts/CustomContent/CSS/Bootstaptreetable.css" rel="stylesheet" />


JavaScript : 
 
<script type="text/javascript">
    $(document).ready(function () {
      
        var selectedparentnode = null;

        $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Expand this branch');
        $('.tree li ul >li').hide();

       
        $('.tree li.parent_li > span').on('click', function (e) {
            var children = $(this).parent('li.parent_li').find(' > ul > li');
            if (children.is(":visible")) {
                children.hide('fast');
                $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign');
            } else {
                children.show('fast');
                $(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign');
            }
            e.stopPropagation();
        });
    });

</script>
HTML Code:

<h2> Binding tree structure Hirearchy </h2>
<div class="col-lg-6">
    <div class="tree well">
        <ul>
            <li>
                <span><i class="icon-folder-open"></i>  Portfolio : Heavy machineries and Medical Equipment</span>
                <ul>
                    <li>
                        <span><i class="icon-minus-sign"></i> Program: Heavy machineries </span>
                        <ul>
                            <li>
                                <span><i class="icon-minus-sign"></i> Project : General Motor</span>

                                <ul>
                                    <li>
                                        <span><i class="icon-minus-sign"></i> ProjectLeader : John</span>

                                        <ul>
                                            <li>
                                                <span><i class="icon-leaf"></i> Team Members : 50</span>
                                            </li>
                                        </ul>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                    <li>
                        <span><i class="icon-minus-sign"></i> Program: Medical Equipment </span>
                        <ul>
                            <li>
                                <span><i class="icon-minus-sign"></i> Project : GE HealthCare</span>

                                <ul>
                                    <li>
                                        <span><i class="icon-minus-sign"></i> ProjectLeader : Charles</span>

                                        <ul>
                                            <li>
                                                <span><i class="icon-leaf"></i> Team Members : 50</span>
                                            </li>
                                        </ul>
                                    </li>
                                </ul>
                            </li>

                            <li>
                                <span><i class="icon-minus-sign"></i> Project : GE Life sciences </span>

                                <ul>
                                    <li>
                                        <span><i class="icon-minus-sign"></i> ProjectLeader : Mike</span>

                                        <ul>
                                            <li>
                                                <span><i class="icon-leaf"></i> Team Members : 30</span>
                                            </li>
                                        </ul>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>

                </ul>
            </li>

        </ul>
    </div>
</div>

<div class="col-md-6">
    <div>

    </div>
</div>


Binding tree view through programmatically 

https://dotnetkudos.blogspot.in/2017/02/binding-tree-view-in-aspnet-mvc.html