Wednesday, November 28, 2007

VB Interview Questions

  • Why do you use Option Explicit?
  • What are the commonly used data types in VBScript?
  • What is a session object?
  • What are the three objects of ADO?
  • What are the lock-types available in ADO?
  • Explain. What are the cursor types available in ADO? Explain.
  • What is a COM component? How do you register a COM component?
  • What is a virtual root and how do you create one?
  • What is a database index, how do you create one, discuss its pros and cons?
  • How do you use multiple record sets(rs.NextRecordSet)?
  • As soon as you fetch a record set, what operations would you perform?
  • Define a transaction.
  • What are ACID properties of a transaction?
  • How would you remotely administer IIS?
  • What is RAID? What is it used for?
  • What is normalization? Explain normalization types.
  • What is the disadvantage of creating an index in every column of a database table?
  • What are the uses of source control software?
  • You have a query that runs slowly, how would you make it better?
  • How would you make it better in .NET environment?
  • What is a bit datatype? What is it used for?
  • How would you go about securing IIS and MS-SQL Server?
  • What is the difference between Request("field") and Request.Form("field")?
  • What versions of VB have you used? Have you also used VBA or VBScript?
  • Have you ever used classes? If so, how have you used them?
  • Have you ever created ActiveX DLLs? If so, why did you create the DLLs instead of using code in the main application?
  • Have you ever created ActiveX controls? If so, what did they do?
  • Have you ever created ActiveX EXEs? If so, what were they used for?
  • Have you ever used Collections? Collection Classes?
  • Have you ever used ADO? DAO? RDO? Any other database engines?
  • What database backends have you worked with? Access? SQL Server? Oracle?
  • Have you ever used resource files? If so, for what reason?
  • Have you used the FileSystemObject? The Dictionary Object? Regular Expressions?
  • Have you developed COM+ components? Any other types of server based components?
  • What source code control systems have you used?
  • What versions of Windows have you used? Have you used any other operating systems?
  • What third party ActiveX controls have you used?
  • Are there any other programming tools, such as database diagramming, UML, or CASE tools, that you've used?
  • Have you developed components for IIS? Developed ASP pages?
  • If you were writing a program, what method would you use to send information from the main form of the application to a modal popup form and then pass any changes to the data back to the main form when the popup form was closed?
  • How would you center a form on the screen? How about centering it on another form?
  • If an event, such as a tool bar button or menu click,occurs on a MDI parent how can it invoke an action on one or more MDI child forms?
  • What are some methods you can use to send data from one VB executable to another one?
  • What are the differences between a standard module and a class module?
  • What do you have to do to make your class visible to programs other than your own?
  • How can you tell what kind of object an object variable is holding?
  • Describe the different scopes of variables in VB.
  • Describe the difference between a public variable in a form and one in a standard code module.
  • How do you handle error conditions in your code?
  • What are some uses and misuses of variants?
  • What are some of the steps you can take to determine why your program is crashing with "Invalid Page Fault" errors?
  • What are the different ways you can use threading in VB? When are they appropriate?
  • How many tabs in a tabbed dialog do you consider appropriate?
  • How many items should you make available to users in a listbox or combo box?
  • What are the three main differences between flexgrid control and dbgrid(Data bound Grid) control
    The Microsoft FlexGrid (MSFlexGrid) control displays and operates on tabular data. It allows complete flexibility to sort, merge, and format tables containing strings and pictures. When bound to a Data control, MSFlexGrid displays read-only data.Adaptation to existing Visual Basic code for the data-bound grid (DBGrid).

    Dbgrid is A spreadsheet-like bound control that displays a series of rows and columns representing records and fields from a Recordset object.

    The data grids are bound controls; that is, they require a data source that actually connects to a database and retrieves their data. And it seems that the root of the problem with DBGrid is that there's no data source that can be readily included along with the DBGrid control.In Visual Basic, the solution is simply to include the Data Control on the same form as DBGrid. But the Data Control is an intrinsic control; it's unavailable to anything outside of the Visual Basic environment itself. and VB 6.0 has a new set of data controls (DataGrid, DataList, DataCombo, MSHFlexGrid, MSFlexGrid) that once again are bound controls. Unlike DBGrid, though, they support OLE DB, and therefore rely on the an ADO Data Source (and in particular the ActiveX Data Objects Data Control, or ADO DC) for data access. Unlike the Data Control, the ADODC is a custom control (that is, an .OCX) that can be added to any project. In short, if you add ADO DC to your project along with theDataGrid control.
  • ActiveX and Types of ActiveX Components in VB ?
    Standard EXE
    ActiveX EXE
    ActiveX DLL
    ActiveX document
    ActiveX Control
  • What is difference between inprocess and out of process ?
    An in-process component is implemented as a DLL, and runs in the same process space as its client app, enabling the most efficient communication between client and component.Each client app that uses the component starts a new instance of it.
    An out of process component is implemented as an EXE, and unlike a dll, runs in its own process space. As a result, exe's are slower then dll'sbecause communications between client and component must be marshalled across process boundaries. A single instance of an out of process component can service many clients.
  • Advantage of ActiveX Dll over Active Exe ?

    ACTIVEX DLL:An in-process component, or ActiveX DLL, runs in another application’s process. In-process components are used by applications or other in-process components. this allows you to wrap up common functionality (like an ActiveX Exe).

    ACTIVEX EXE:An out-of-process component, or ActiveX EXE, runs in its own address space. The client is usually an application running in another process.The code running in an ActiveX Exe is running in a separate process space. You would usually use this in N-Tier programming.

    An ActiveX EXE runs out of process while an ActiveX DLL runs in the same process space as VB app. Also, and ActiveX EXE can be run independent of your application if desired.
  • Explain single thread and multithread thread apartments.
    All components created with Visual Basic use the apartment model, whether they’re single-threaded or multithreaded. A single-threaded component has only one apartment, which contains all the objects the component provides.
    This means that a single-threaded DLL created with Visual Basic is safe to use with a multithreaded client. However, there’s a performance trade-off for this safety. Calls from all client threads except one are marshaled, just as if they were out-of-process calls.
  • What is a Component?
    If you compile an ActiveX dll, it becomes a component.If you compile an ActiveX Control, it becomes both a component and a control.
    Component is a general term used to describe code that's grouped by functionality. More specifically, a component in COM terms is a compiled collection of properties/methods and events.
    Typically a component is loaded into your project via the References whereas an ActiveX Control is loaded into your project via "components".
  • What is meant by "Early Binding" and "Late Binding"? Which is better?
    Early binding and late binding refer to the method used to bind an interface's properties and methods to an object reference (variable). Early binding uses type library information at design time to reference procedures, while late binding handles this at run time. Late bindinghandles this by interrogating the reference before each call to insure that it supports a particular method. Since every call to a late boundobject actually requires two calls ("Do you do this?" followed by "Okay, do it then"), late binding is much less efficient than early binding. Except where early binding is not supported (ASP, scripting, etc.), late binding should only be used in very special cases.
    It is a common misconception that any code using the CreateObject function instead of
    Set = New is using late binding. This is not the case. The type declaration of the object variable determines whetherit is late or early bound, as in the following:

    Dim A As Foo
    Dim B As Foo
    Dim C As Object
    Dim D As Object
    Set A = New Foo 'Early Bound
    Set B = CreateObject("FooLib.Foo") 'Early Bound
    Set C = CreateObject("FooLib.Foo") 'Late Bound
    Set D = New Foo 'Late Bound

No comments: