Tuesday, December 30, 2008

C# Interview Questions And Answers

Hi techies,Here are the few interview questions i collected on C# covers fundamental as well as expert level.Hope You will enjoy it.......

Class Questions:

1:What is the syntax to inherit from a class in C#?

Ans:Place a colon and then the name of the base class.Example: class MyNewClass : MyBaseClass

2:Can you prevent your class from being inherited by another class?

Ans:Yes. The keyword “sealed” will prevent the class from being inherited.

3:Can you allow a class to be inherited, but prevent the method from being over-ridden?Ans:Yes. Just leave the class public and make the method sealed.

4:What’s an abstract class?

Ans:A class that cannot be instantiated. An abstract class is a class that must be inherited and have the methods overridden. An abstract class is essentially a blueprint for a class without any implementation.

5:When do you absolutely have to declare a class as abstract?

Ans:1. When the class itself is inherited from an abstract class, but not all base abstract methods have been overridden. 2. When at least one of the methods in the class is abstract.

6:What is an interface class?

Ans:Interfaces, like classes, define a set of properties, methods, and events. But unlike classes, interfaces do not provide implementation. They are implemented by classes, and defined as separate entities from classes.

7:Why can’t you specify the accessibility modifier for methods inside the interface?

Ans:They all must be public, and are therefore public by default.

8:Can you inherit multiple interfaces?

Ans:Yes. .NET does support multiple interfaces.

9:What happens if you inherit multiple interfaces and they have conflicting method names?Ans:It’s up to you to implement the method inside your own class, so implementation is left entirely up to you. This might cause a problem on a higher-level scale if similarly named methods from different interfaces expect different data

10:What’s the difference between an interface and abstract class?

Ans:In an interface class, all methods are abstract - there is no implementation. In an abstract class some methods can be concrete. In an interface class, no accessibility modifiers are allowed. An abstract class may have accessibility modifiers.

11:What is the difference between a Struct and a Class?

Ans:Structs are value-type variables and are thus saved on the stack, additional overhead but faster retrieval. Another difference is that structs cannot inherit.

12:What’s the implicit name of the parameter that gets passed into the set method/property of a class?

Ans:Value. The data type of the value parameter is defined by whatever data type the property is declared as

13:What does the keyword “virtual” declare for a method or property?

Ans:The method or property can be overridden.

14:How is method overriding different from method overloading?

Ans:When overriding a method, you change the behavior of the method for the derived class. Overloading a method simply involves having another method with the same name within the class.

15:Can you declare an override method to be static if the original method is not static?

Ans:No. The signature of the virtual method must remain the same. (Note: Only the keyword virtual is changed to keyword override).

16:What are the different ways a method can be overloaded?

Ans:Different parameter data types, different number of parameters, different order of parameters.

17:If a base class has a number of overloaded constructors, and an inheriting class has a number of overloaded constructors; can you enforce a call from an inherited constructor to a specific base constructor?

Ans:Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate constructor) in the overloaded constructor definition inside the inherited class.

Basic Questions:

1:Does C# support multiple-inheritance?

Ans:No.
2:Who is a protected class-level variable available to?

Ans:It is available to any sub-class (a class inheriting this class).
3:Are private class-level variables inherited?

Ans:Yes, but they are not accessible. Although they are not visible or accessible via the class interface, they are inherited.
4:Describe the accessibility modifier “protected internal”.

Ans:It is available to classes that are within the same assembly and derived from the specified base class.

5:What’s the top .NET class that everything is derived from?

Ans:System.Object.

6:What does the term immutable mean?

Ans:The data value may not be changed. Note: The variable value may be changed, but the original immutable data value was discarded and a new data value was created in memory. 7:What’s the difference between System.String and System.Text.StringBuilder classes?

Ans:System.String is immutable. System.StringBuilder was designed with the purpose of having a mutable string where a variety of operations can be performed.

8:What’s the advantage of using System.Text.StringBuilder over System.String?Ans:StringBuilder is more efficient in cases where there is a large amount of string manipulation. Strings are immutable, so each time a string is changed, a new instance in memory is created.

9:Can you store multiple data types in System.Array?

Ans:No.

10:What’s the difference between the System.Array.CopyTo() and System.Array.Clone()?

Ans:The Clone() method returns a new array (a shallow copy) object containing all the elements in the original array. The CopyTo() method copies the elements into another existing array. Both perform a shallow copy. A shallow copy means the contents (each array element) contains references to the same object as the elements in the original array. A deep copy (which neither of these methods performs) would create a new instance of each element's object, resulting in a different, yet identacle object.

11:How can you sort the elements of the array in descending order?

Ans:By calling Sort() and then Reverse() methods.

12:What’s the .NET collection class that allows an element to be accessed using a unique key?

Ans:HashTable.

13:What class is underneath the SortedList class?

Ans:A sorted HashTable.
14:Will the finally block get executed if an exception has not occurred?

­Ans:Yes.

15:What’s the C# syntax to catch any possible exception?

Ans:A catch block that catches the exception of type System.Exception. You can also omit the parameter data type in this case and just write catch {}.

16:Can multiple catch blocks be executed for a single try statement?

Ans:No. Once the proper catch block processed, control is transferred to the finally block (if there are any).
17:Explain the three services model commonly know as a three-tier application

.Ans:Presentation (UI), Business (logic and underlying code) and Data (from storage or other sources).
18:What’s a delegate?

Ans:A delegate object encapsulates a reference to a method.

19:What’s a multicast delegate?

Ans:A delegate that has multiple handlers assigned to it. Each assigned handler (method) is called.
20:What debugging tools come with the .NET SDK?

Ans:1. CorDBG – command-line debugger. To use CorDbg, you must compile the original C# file using the /debug switch. 2. DbgCLR – graphic debugger. Visual Studio .NET uses the DbgCLR.
21:What does assert() method do?

Ans:In debug compilation, assert takes in a Boolean condition as a parameter, and shows the error dialog if the condition is false. The program proceeds without any interruption if the condition is true.
22:What’s the difference between the Debug class and Trace class?

Ans:Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds.
23:Why are there five tracing levels in System.Diagnostics.TraceSwitcher?

Ans:The tracing dumps can be quite verbose. For applications that are constantly running you run the risk of overloading the machine and the hard drive. Five levels range from None to Verbose, allowing you to fine-tune the tracing activities.
24:Where is the output of TextWriterTraceListener redirected?

Ans:To the Console or a text file depending on the parameter passed to the constructor.
25:How do you debug an ASP.NET Web application?

Ans:Attach the aspnet_wp.exe process to the DbgClr debugger.
26:What are three test cases you should go through in unit testing?

Ans:1. Positive test cases (correct data, correct output).2. Negative test cases (broken or missing data, proper handling).3. Exception test cases (exceptions are thrown and caught properly).
27:Can you change the value of a variable while debugging a C# application?

Ans:Yes. If you are debugging via Visual Studio.NET, just go to Immediate window.
Database Questions :
28:What is the role of the DataReader class in ADO.NET connections?

Ans:It returns a read-only, forward-only rowset from the data source. A DataReader provides fast access when a forward-only sequential read is needed.
29:What are advantages and disadvantages of Microsoft-provided data provider classes in ADO.NET?

Ans:SQLServer.NET data provider is high-speed and robust, but requires SQL Server license purchased from Microsoft. OLE-DB.NET is universal for accessing other sources, like Oracle, DB2, Microsoft Access and Informix. OLE-DB.NET is a .NET layer on top of the OLE layer, so it’s not as fastest and efficient as SqlServer.NET.
30:What is the wildcard character in SQL?

Ans:Let’s say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve ‘La%’.
31:Explain ACID rule of thumb for transactions.

Ans:A transaction must be:1. Atomic - it is one unit of work and does not dependent on previous and following transactions.2. Consistent - data is either committed or roll back, no “in-between” case where something has been updated and something hasn’t.3. Isolated - no transaction sees the intermediate results of the current transaction).4. Durable - the values persist if the data had been committed even if the system crashes right after.
32:What connections does Microsoft SQL Server support?

Ans:Windows Authentication (via Active Directory) and SQL Server authentication (via Microsoft SQL Server username and password).
33:Between Windows Authentication and SQL Server Authentication, which one is trusted and which one is untrusted?

Ans:Windows Authentication is trusted because the username and password are checked with the Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only verifier participating in the transaction.
34:What does the Initial Catalog parameter define in the connection string?

Ans:The database name to connect to.
36:What does the Dispose method do with the connection object?

Ans:Deletes it from the memory.To Do: answer better. The current answer is not entirely correct.
37:What is a pre-requisite for connection pooling?

Ans:Multiple processes must agree that they will share the same connection, where every parameter is the same, including the security settings. The connection string must be identical.
Assembly Questions
38:How is the DLL Hell problem solved in .NET?

Ans:Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly.
39:What are the ways to deploy an assembly?

Ans:An MSI installer, a CAB archive, and XCOPY command.
40:What is a satellite assembly?

Ans:When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies.
41:What namespaces are necessary to create a localized application?

Ans:System.Globalization and System.Resources.
42:When should you call the garbage collector in .NET?

Ans:As a good rule, you should not call the garbage collector. However, you could call the garbage collector when you are done using a large object (or set of objects) to force the garbage collector to dispose of those very large objects from memory. However, this is usually not a good practice.
43:How do you convert a value-type to a reference-type?

Ans:Use Boxing.
44:What happens in memory when you Box and Unbox a value-type?

Ans:Boxing converts a value-type to a reference-type, thus storing the object on the heap. Unboxing converts a reference-type to a value-type, thus storing the value on the stack.

.Net Free E-Books

Hi all,Here are the some good Free E-books for .Net ,sql server,XML
http://www.free-ebooks-download.org

Monday, December 29, 2008

OOPS-(C# OOPS,Concepts,Scenarios,Tips and Tricks)

Hi Friends ,We all know that OOP's is the buzz word in the programming environment and we use these concepts in our everyday developments to get flexibility,robustness,scalability.Now a days when we go for any interview that may be C++,.Net,C#,java or SAP,the first questions they ask is OOP's because of its frequent use and importance in real time.So I am bringing you this article that demonstrates the conceptual knowledge and use case scenarios on oops.Whatever the concepts i am covering here is beyond the basic level by thinking that you are familiar with basics .Here I am explaining all the concepts based on C#,same thing applies to other languages with little bit syntax difference .Fun concepts starts from here.........................

What is OOP's:

  • OOP is the common abbreviation for Object-Oriented Programming.
  • It is the new concept of programming ,parallel to Procedure oriented programming.It were intorduced in late 80's.It consider the programming simulated to real world objects.It help in programming approach in order to built robust,user friendly and efficient softwares and provide the efficient way to maintain real world softwares

Why OOP's:

  • OOP become a popular since it provide a better programming style, you don't need to write code which you really need to run anytime you need (such as in structured programming and assembler), you just make a class of object and you may call/instantiate the class and use it from any part of your application, it is reusable.
  • compiler provide a library of those class, and you just use it, no need to write the codes. Your application mostly concern on managing the interaction among object, not write a command for any specific jobs.
  • OOP provide Inheritances model, so your application can inherit another class which is having similarity on behavior such as the variables and its methods, but you just write the distinct behaviour for your own implementation
  • OOP provide encapsulation model, once you instantiate an object, it's behavior to do their own job will not interupt another object, you dont bother if your code will affect another object.
  • OOP provide polymorphism, here you may call any methods in run time which is depend on particular command you provide, but still using the same method implementations.
  • OOP provide modularity mobel once you change part of code which is in separate module, it will not impact any module developed in application

Class and Objects:

  • Everything in our world is considered to be an object. For example, people are objects, animals are objects too, minerals are objects; everything in the world is an object. Easy, But what about classes?
  • In our world we have to differentiate between objects that we are living with. So we must understand that there are classifications (this is how they get the name and the concepts of the Class) for all of those objects. For example, I'm an object, sunil is object too, lakshmi is another object. So we are from a people class (or type).
  • I have a dog called Puppy so it's an object. My friend's dog, Snoopy, is also an object so they are from a Dogs class (or type).
  • A third example: I have a Pentium 3; this is an object. My friend has a Pentium 4, so this is another object and they are from a Computers class (or type). Makes sense right...
  • Class features can be used only after creating object called instance Types.

Classes and Objects Behaviour:

1)Static Behaviour :Static classes can be used when there is no data or behavior in the class that depends on object identity.

  • Example:Consider you have a company .Assume that there are 10 employees in that company.Here we could declare company class as static ,because company it self as an independent entity and it is common for all 10 employees.So you dont require to assign different company names for each employee.
  • When you consider employee class its not good to declare static as values will keep changing for each employee like name, sal,age etc..
  • Static classes will always have a common memory where as normal classes are not
  • Its not possible to inherit static classes .If you try it will throw compilation error
  • Only static members are allowed in static classes
  • Its not possible to create objects to static classes.Can be accessed via class name
  • when you declare static variables in normal class ,those cant be accessed from object but can be inherited.
  • Its not possible to declare interface as static

2)Constructor :

  • It is also a method with out return type
  • It gets invoked while creating object
  • Private Constructor:
  • A private constructor is a special instance constructor.
  • It is commonly used in classes that contain static members only. If a class has one or more private constructors and no public constructors, then other classes (except nested classes) are not allowed to create instances of this class
  • Private constructors are used to prevent the creation of instances of a class when there are no instance fields or methods, such as the Math class, or when a method is called to obtain an instance of a class. If all the methods in the class are static, consider making the entire class static.

Example : public class Counter

{

private Counter() { }

public static int currentCount;

public static int IncrementCount() { return ++currentCount; }

}

  • Static Constructor:
  • A static constructor is used to initialize any static data, or to perform a particular action that needs performed once only. It is called automatically before the first instance is created or any static members are referenced.
  • A static constructor does not take access modifiers or have parameters.
  • A static constructor is called automatically to initialize the class before the first instance is created or any static members are referenced.
  • A static constructor cannot be called directly.
  • The user has no control on when the static constructor is executed in the program.
  • A typical use of static constructors is when the class is using a log file and the constructor is used to write entries to this file.
  • Static constructors are also useful when creating wrapper classes for unmanaged code, when the constructor can call the LoadLibrary method.

Abstract Behaviour:

Scenario's:

  • abstract class:In most cases, using an abstract class is the "right" thing to do if you're trying to create a common class from which others will derive and which isn't fully specified.
  • Use abstract class when you want to provide some functionality to the user and at the same time would like to enforce some skeleton (structure) for the users of your class
  • Interfaces: are nice if you don't want to force classes to have a single root class in their hierarchy, as a single class can implement multiple interfaces.
  • Interfaces are used to define a skeleton. Classes who want to confirm to that skeleton implementsts the interface
  • Concrete classes should be used if it's fully specified--i.e. subclasses don't have any hooks into which they must provide functionality.
  • Concrete class - Use a concrete class to represent an object (data & methods) which can be extended or reused.



Sunday, December 28, 2008

RFID-Radio-frequency identification(RFID Technology Description,RFID and .Net Integration )

Radio-frequency identification (RFID) :is an automatic identification method, relying on storing and remotely retrieving data using devices called RFID tags or transponders.

  • Main Components: RFID reader, RFID tag
  • RFID tag:
  • is an object that can be applied to or incorporated into a product, animal, or person for the purpose of identification and tracking using radio waves. Some tags can be read from several meters away and beyond the line of sight of the reader.
  • Most RFID tags contain at least two parts. One is an integrated circuit for storing and processing information, modulating and demodulating a radio-frequency (RF) signal, and other specialized functions. The second is an antenna for receiving and transmitting the signal.
  • Types of RFID tags: active RFID tags, which contain a battery, passive RFID tags, which have no battery.
  • RFID Reader:
  • A device used to communicate with RFID tags.
  • It has one or more antennas, which emit radio waves and receive signals back from the tag.
  • It is also sometimes called an interrogator because it "interrogates" the tag.
  • It is An electronic device used for communication between RFID tags and a host computer system.
  • A reader generally consists of an RF transmitter and receiver and an antenna for communicating with tags. A digital interface enables the reader to communicate with the host computer system.
  • Reading distance :
    The distance between the antenna of a reader and a tag over which the read function can be effectively performed. This distance is influenced by the orientation and angle of the tag with respect to the antenna, and possibly by environmental conditions.

RFID-Real Time Applications:

  • Supply chain automation - the key early driver for developments and implementation of the technology
  • Asset tracking - tracking of assets in offices, labs, warehouses, pallets and containers in the supply chain, books in libraries Medical applications - linking a patient with key drugs, personnel giving the drugs, biometric measurements
  • People tracking - security tracking for entrance management or security, contact management at events, baby tags in hospitals to manage access to post-natal wards
  • Manufacturing - tracking of parts during manufacture, tracking of assembled items Retail - tracking store trolleys in supermarkets, active shelves
  • Warehouses - Real-time inventory by automated registration of items in a warehouse or store-room
  • Livestock - implanted RFID tags in animals for tracking and linking the animal to food, location. Applicable to farming as well as exotic breeds in zoos
  • Timing - sports event timing to track athletes as they start a race and pass the finish line

How does an RFID system work:

  • An RFID system consists of a tag made up of a microchip with an antenna, and an interrogator or reader with an antenna.
  • The reader sends out electromagnetic waves. The tag antenna is tuned to receive these waves.
  • A passive RFID tag draws power from the field created by the reader and uses it to power the microchip's circuits.
  • The chip then modulates the waves that the tag sends back to the reader, which converts the new waves into digital data.


Which frequency is right for your application?

  • Different frequencies have different characteristics that make them more useful for different applications.
  • For instance, low-frequency tags use less power and are better able to penetrate non-metallic substances. They are ideal for scanning objects with high-water content, such as fruit, but their read range is limited to less than a foot (0.33 meter).
  • High-frequency tags work better on objects made of metal and can work around goods with high water content. They have a maximum read range of about three feet (1 meter).
  • UHF frequencies typically offer better range and can transfer data faster than low- and high-frequencies. But they use more power and are less likely to pass through materials. And because they tend to be more "directed," they require a clear path between the tag and reader.
  • UHF tags might be better for scanning boxes of goods as they pass through a dock door into a warehouse. It is best to work with a knowledgeable consultant, integrator or vendor that can help you choose the right frequency for your application.

Standardized Frequency Bands:

  • low frequency (LF) : 125 to 134 kHz;
  • high frequency (HF) : 13.56 MHz;
  • ultrahigh frequency (UHF) : 860 to 960 MHz

RFID and .Net Integration:there are few API's which helps us to interact with RFID readers ,so that you can control the RFID devices functionality via .Net applications through these API's.Here i am using Phidgets application programming interface (API).

  • Phidgets :Phidgets are a set of "plug and play" building blocks for low cost USB sensing and control from your PC. All the USB complexity is taken care of by these API's. Applications can be developed quickly in .NET, Visual Basic, VBA (Microsoft Access and Excel), LabView, Java, Delphi, C, C++ and Python.Via (http://www.phidgets.com/)
  • Implementation :create new windows application.Install the Phidget API Dll in your system.Reference the dll in C# application.
  • NameSpaces:using Phidgets;using Phidgets.Events;
  • RFID : This object will be assigned to the RFID reader so that we can pull information from it.
  • To use the RFID reader, you will need to create an RFID object and then open the reader. You also will want to create a few event handlers to control actions that occur from the reader
  • The first thing that happens is that an RFID object is created called rfid1. This will be used to attach to the RFID hardware. Before opening the hardware for use, event handlers are created for attaching to the RFID reader (myRFID_Attach), detaching from the reader (myRFID_Detach), having a tag put near the reader (myRFID_Tag), and having a tag move out of the reader's range (myRFID_TagLost). After adding these handlers to the rfid1 object, the open method is called to begin using the RFID object
  • To use the RFID reader, in addition to being connected to your machine, it also has to be turned on
  • Turning on the reader is simply setting the Antenna property of your RFID object to true
  • myRFID.Antenna =true
  • The next important thing is to read a tag. This is done in the myRFID_Tag event handler that was added to the rfid1 object in the Form_Load event

Sample Code:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing; using System.Text;

using System.Windows.Forms; using Phidgets; // Import Name Spaces

using Phidgets.Events;

namespace RFIDTest

{

public partial class MyRFIDReader : Form

{

RFID myRFID; // Declare RFID Object

string lastTag; // Tag that just read

public RFIDReader()

{

InitializeComponent();

lastTag = "";

}

private void Form1_Load(object sender, EventArgs e)

{

myRFID= new RFID();

myRFID.Attach += new AttachEventHandler(myRFID_Attach);

myRFID.Detach += new DetachEventHandler(myRFID_Detach);

myRFID.RFIDTag += new TagEventHandler(myRFID_Tag);

myRFID.RFIDTagLost += new TagEventHandler(myRFID_TagLost);

myRFID.open();

}
// Reading Tag

private void myRFID_Tag(object sender, TagEventArgs e)

{

lastTag= e.Tag;

myRFID.LED = true; // on light

}
// When tags over

void myRFID_TagLost(object sender, TagEventArgs e)

{

txtTag.Text =

myRFID.LED = false;

}
// Detaching Reader

private void myRFID_Detach(object sender, DetachEventArgs e)

{

lblAttach.Text = "Detached";

}
// Attaching Reader to application

Private void myRFID_Attach(object sender, AttachEventArgs e)

{

Phidgets.RFID phidTag = (Phidgets.RFID)sender;

lblAttach.Text = phidTag.Name;

lblSeriaNumberl.Text = phidTag.SerialNumber;

lblVersionNumber.Text = phidTag.Version;

}
// Turn On The Reader

private void antennaButton_Click ( object sender, EventArgs e)

{

myRFID.Antenna = True;

}

}

}

Is RFID better than using bar codes:The two are different technologies and have different applications, which sometimes overlap. The big difference between the two is bar codes are line-of-sight technology. That is, a scanner has to "see" the bar code to read it, which means people usually have to orient the bar code toward a scanner for it to be read. Radio frequency identification, by contrast, doesn't require line of sight. RFID tags can be read as long as they are within range of a reader. Bar codes have other shortcomings as well. If a label is ripped or soiled or has fallen off, there is no way to scan the item, and standard bar codes identify only the manufacturer and product, not the unique item. The bar code on one milk carton is the same as every other, making it impossible to identify which one might pass its expiration date first.

Well-timed acquisitions

In a fast deteriorating economic environment India’s IT majors appear to be looking beyond the immediate crisis plaguing the global economy.
While others are holding on to whatever cash they have, the likes of TCS, Wipro and HCL are using their stockpile to make strategic acquisitions to strengthen their business.
Wipro has acquired Citi Technology Services, Citigroup’s IT arm in India, in an all cash $127 million deal. Last week, HCL Tech had closed the acquisition of UK-based Axon Group for $658 million. And earlier TCS had bought out Citi’s captive BPO arm Citigroup Global Services for about $505 million.

These acquisitions have come at a time when the consensus is that the Indian IT industry is entering a difficult phase. IT budgets are usually the first to be slashed when companies need to cut costs. This is likely to be particularly severe in the case of the crisis hit banking sector, with serious implications for the Indian IT sector.
A significant chunk of the Indian IT industry’s revenues comes from the Banking and Financial Services (BFS) vertical. One can argue that the cost cutting could conceivably lead to outsourcing of more work to the cheaper offshore centres such as India. That possibility is, however, clouded somewhat by the virtual nationalisation of many financial institutions.

Source: The Economic Times

Wednesday, December 24, 2008

SAP .NET Connector

Purpose:
The SAP .NET Connector is a development environment that enables communication between the Microsoft. NET platform and SAP systems.

This connector supports RFCs and Web services, and allows you to write different applications such as Web form, Windows form, or console applications in the Microsoft Visual Studio.Net. With the SAP .NET Connector, you can use all common programming languages, such as Visual Basic. NET, C#, or Managed C++.

Features:
Using the SAP .NET Connector and SAP .NET Proxy Wizard, you can:
· Write .NET Windows and Web form applications that have access to SAP business objects (BAPIs).
· Develop client applications for the SAP Server. Here you can use either RFCs or HTTP/SOAP/XML (outside-in).
· Write RFC server applications that run in a .NET environment and can be installed starting from the SAP system (inside-out).

With Microsoft Visual Studio .NET you can:
· Use the integrated Proxy Wizard to generate proxy objects.
· Use any common programming language that has complete access to Microsoft Visual Studio .NET.
· Link SAP tables and structure with Windows and Web form controls (Data Binding).
· Use secure authorization methods such as Single Sign-On, Kerberos, and Microsoft Passport (http://www.passport.net/).


Via : http://help.sap.com/

SAP Enterprise Services Explorer for Microsoft .NET

SAP – Microsoft interoperability Made Easier:
As part of its Enterprise Service-Oriented Architecture (ESOA) offering, SAP provides a set of consumer tools that allow discovering and consuming enterprise services from various development environments, such as NetWeaver Developer Studio, Visual Composer and Microsoft Visual Studio. SAP Enterprise Services Explorer tool for Microsoft .NET (ES Explorer for .NET) is an add-in for Microsoft Visual Studio 2005 that helps to leverage SAP ESOA by enabling .NET developers to discover SAP enterprise services and consume them in their applications. It is an important element of SAP – Microsoft interoperability. For more information please read the article Introducing SAP Enterprise Services Explorer tool for Microsoft .NET.
VIA:https://www.sdn.sap.com

Microsoft SQL Server Migration Pays Big Dividends for SAP/ERP Customers

Migrating an SAP/ERP environment to Microsoft SQL Server can reduce unplanned downtime by over 20%, cut IT labor costs by nearly 25%, and cut ongoing software support costs up to 85%. Migration from competitive databases is made easy by tools, best practices, and certified SAP migration specialists. Payback is as short as nine months, with ongoing annual savings of 30%-37% possible.
Read the full White Paper
Via http://www.microsoft.com/isv/sap/

Tuesday, December 23, 2008

Architecture of Integration Services-SQL Server

SSIS Designer :
SSIS Designer is a graphical tool that you can use to create and maintain Integration Services packages. SSIS Designer is available in Business Intelligence Development Studio as part of an Integration Services project. Runtime engine : The Integration Services runtime saves the layout of packages, runs packages, and provides support for logging, breakpoints, configuration, connections, and transactions.



















For more information, see Integration Services Packages.
Tasks and other executables :
The Integration Services run-time executables are the package, containers, tasks, and event handlers that Integration Services includes. Run-time executables also include custom tasks that you develop.
For more information, see Integration Services Tasks, Integration Services Containers, and Integration Services Event Handlers.

Data Flow engine (also known as the pipeline) and Data Flow components :
The Data Flow task encapsulates the data flow engine. The data flow engine provides the in-memory buffers that move data from source to destination, and calls the sources that extract data from files and relational databases. The data flow engine also manages the transformations that modify data, and the destinations that load data or make data available to other processes. Integration Services data flow components are the sources, transformations, and destinations that Integration Services includes. You can also include custom components in a data flow.
For more information, see Data Flow Task and Data Flow Elements.
API or object model :
The Integration Services object model includes managed application programming interfaces (API) for creating custom components for use in packages, or custom applications that create, load, run, and manage packages. Developer can write custom applications or custom tasks or transformations by using any common language runtime (CLR) compliant language.
For more information, see Developer's Guide (Integration Services).
Integration Services Service :
The Integration Services service lets you use SQL Server Management Studio to monitor running Integration Services packages and to manage the storage of packages.
For more information, see Integration Services Service and Introducing SQL Server Management Studio.
SQL Server Import and Export Wizard :
The SQL Server Import and Export Wizard can copy data to and from any data source for which a managed .NET Framework data provider or a native OLE DB provider is available. This wizard also offers the simplest method to create an Integration Services package that copies data from a source to a destination.
For more information, see Importing and Exporting Data by Using the SQL Server Import and Export Wizard.
Other tools, wizards, and command prompt utilities :
Integration Services includes additional tools, wizards, and command prompt utilities for running and managing Integration Services packages.
For more information, see Integration Services Wizards and Command Prompt Utilities (Integration Services).

Via : http://msdn.microsoft.com/en-us/library/bb522498.aspx

Sql Server Integration Services-SSIS

What is SSIS: the data ware housing platform from microsoft
Microsoft Integration Services is a platform for building enterprise-level data integration and data transformations solutions. You use Integration Services to solve complex business problems by copying or downloading files, sending e-mail messages in response to events, updating data warehouses, cleaning and mining data, and managing SQL Server objects and data. The packages can work alone or in concert with other packages to address complex business needs. Integration Services can extract and transform data from a wide variety of sources such as XML data files, flat files, and relational data sources, and then load the data into one or more destinations.

  • Typical Uses of Integration Services:
    Integration Services provides a rich set of built-in tasks, containers, transformations, and data adapters that support the development of business applications. Without writing a single line of code, you can create SSIS solutions that solve complex business problems using ETL and business intelligence, manage SQL Server databases, and copy SQL Server objects between instances of SQL Server.
    The following scenarios describe typical uses of SSIS packages.
    1)Merging Data from Heterogeneous Data Stores :
  • Data is typically stored in many different data storage systems, and extracting data from all sources and merging the data into a single, consistent dataset is challenging. This situation can occur for a number of reasons.
  • For example:
  • Many organizations archive information that is stored in legacy data storage systems. This data may not be important to daily operations, but it may be valuable for trend analysis that requires data collected over a long period of time.
  • Branches of an organization may use different data storage technologies to store the operational data. The package may need to extract data from spreadsheets as well as relational databases before it can merge the data.
  • Data may be stored in databases that use different schemas for the same data. The package may need to change the data type of a column or combine data from multiple columns into one column before it can merge the data.
  • Integration Services can connect to a wide variety of data sources, including multiple sources in a single package.
  • A package can connect to relational databases by using .NET and OLE DB providers, and to many legacy databases by using ODBC drivers. It can also connect to flat files, Excel files, and Analysis Services projects.
  • Integration Services includes source components that perform the work of extracting data from flat files, Excel spreadsheets, XML documents, and tables and views in relational databases from the data source to which the package connects.
  • Next, the data is typically transformed by using the transformations that Integration Services includes. After the data is transformed to compatible formats, it can be merged physically into one dataset.
  • After the data is merged successfully and transformations are applied to data, the data is usually loaded into one or more destinations.
  • Integration Services includes destination for loading data into flat files, raw files, and relational databases. The data can also be loaded into an in-memory recordset and accessed by other package elements.
    2)Populating Data Warehouses and Data Marts :
  • The data in data warehouses and data marts is usually updated frequently, and the data loads are typically very large.
  • Integration Services includes a task that bulk loads data directly from a flat file into SQL Server tables and views, and a destination component that bulk loads data into a SQL Server database as the last step in a data transformation process.
  • An SSIS package can be configured to be restartable. This means you can rerun the package from a predetermined checkpoint, either a task or container in the package. The ability to restart a package can save a lot of time, especially if the package processes data from a large number of sources.
  • You can use SSIS packages to load the dimension and fact tables in the database. If the source data for a dimension table is stored in multiple data sources, the package can merge the data into one dataset and load the dimension table in a single process, instead of using a separate process for each data source.
  • Updating data in data warehouses and data marts can be complex, because both types of data stores typically include slowly changing dimensions that can be difficult to manage through a data transformation process.
  • The Slowly Changing Dimension Wizard automates support for slowly changing dimensions by dynamically creating the SQL statements that insert and update records, update related records, and add new columns to tables.
  • Additionally, tasks and transformations in Integration Services packages can process Analysis Services cubes and dimensions. When the package updates tables in the database that a cube is built on, you can use Integration Services tasks and transformations to automatically process the cube and to process dimensions as well.
  • Processing the cubes and dimensions automatically helps keep the data current for users in both environments; users who access information in the cubes and dimensions, and users who access data in a relational database.
  • Integration Services can also compute functions before the data is loaded into its destination.
  • If your data warehouses and data marts store aggregated information, the SSIS package can compute functions such as SUM, AVERAGE, and COUNT. An SSIS transformation can also pivot relational data and transform it into a less-normalized format that is more compatible with the table structure in the data warehouse.
    3)Cleaning and Standardizing Data :
  • Whether data is loaded into an online transaction processing (OLTP) or online analytic processing (OLAP) database, an Excel spreadsheet, or a file, it needs to be cleaned and standardized before it is loaded.
  • Data may need to be updated for the following reasons:
  • Data is contributed from multiple branches of an organization, each using different conventions and standards. Before the data can be used, it may need to be formatted differently. For example, you may need to combine the first name and the last name into one column.
  • Data is rented or purchased. Before it can be used, the data may need to be standardized and cleaned to meet business standards. For example: an organization wants to verify that all the records use the same set of state abbreviations or the same set of product names.
  • Data is locale-specific. For example: the data may use varied date/time and numeric formats. If data from different locales is merged, it must be converted to one locale before it is loaded to avoid corruption of data.
  • Integration Services includes built-in transformations that you can add to packages to clean and standardize data, change the case of data, convert data to a different type or format, or create new column values based on expressions. For example, the package could concatenate first and last name columns into a single full name column, and then change the characters to uppercase.
  • An Integration Services package can also clean data by replacing the values in columns with values from a reference table, using either an exact lookup or fuzzy lookup to locate values in a reference table.
  • Frequently, a package applies the exact lookup first, and if the lookup fails, it applies the fuzzy lookup. For example, the package first attempts to look up a product name in the reference table by using the primary key value of the product. When this search fails to return the product name, the package attempts the search again, this time using fuzzy matching on the product name.
  • Another transformation cleans data by grouping values in a dataset that are similar. This is useful for identifying records that may be duplicates and therefore should not be inserted into your database without further evaluation. For example, by comparing addresses in customer records you may identify a number of duplicate customers.
    4)Building Business Intelligence into a Data Transformation Process : A data transformation process requires built-in logic to respond dynamically to the data it accesses and processes.
  • The data may need to be summarized, converted, and distributed based on data values.
  • The process may even need to reject data, based on an assessment of column values.
  • To address this requirement, the logic in the SSIS package may need to perform the following types of tasks:
  • 1)Merging data from multiple data sources.
    2)Evaluating data and applying data conversions.
    3)Splitting a dataset into multiple datasets based on data values.
    4)Applying different aggregations to different subsets of a dataset.
    5)Loading subsets of the data into different or multiple destinations.
    Integration Services provides containers, tasks, and transformations for building business intelligence into SSIS packages.
  • Containers support the repetition of workflows by enumerating across files or objects and by evaluating expressions.
  • A package can evaluate data and repeat workflows based on results. For example, if the date is in the current month, the package performs one set of tasks; if not, the package performs an alternative set of tasks.
  • Tasks that use input parameters can also build business intelligence into packages. For example, the value of an input parameter can filter the data that a task retrieves.
  • Transformations can evaluate expressions and then, based on the results, send rows in a dataset to different destinations. After the data is divided, the package can apply different transformations to each subset of the dataset. For example, an expression can evaluate a date column, add the sales data for the appropriate period, and then store only the summary information.
  • It is also possible to send a data set to multiple destinations, and then apply different sets of transformation to the same data. For example, one set of transformations can summarize the data, while another set of transformations expands the data by looking up values in reference tables and adding data from other sources.
    5)Automating Administrative Functions and Data Loading :
  • Administrators frequently want to automate administrative functions such as backing up and restoring databases, copying SQL Server databases and the objects they contain, copying SQL Server objects, and loading data. Integration Services packages can perform these functions.
  • Integration Services includes tasks that are specifically designed to copy SQL Server database objects such as tables, views, and stored procedures; copy SQL Server objects such as databases, logins, and statistics; and add, change, and delete SQL Server objects and data by using Transact-SQL statements.
  • Administration of an OLTP or OLAP database environment frequently includes the loading of data. Integration Services includes several tasks that facilitate the bulk loading of data.
  • You can use a task to load data from text files directly into SQL Server tables and views, or you can use a destination component to load data into SQL Server tables and views after applying transformations to the column data.
  • An Integration Services package can run other packages. A data transformation solution that includes many administrative functions can be separated into multiple packages so that managing and reusing the packages is easier.
  • If you need to perform the same administrative functions on different servers, you can use packages. A package can use looping to enumerate across the servers and perform the same functions on multiple computers.
  • To support administration of SQL Server, Integration Services provides an enumerator that iterates across SQL Server Management Objects (SMO) objects. For example, a package can use the SMO enumerator to perform the same administrative functions on every job in the Jobs collection of a SQL Server installation.

Source : http://msdn.microsoft.com/en-us/library

Monday, December 22, 2008

SQl server 2008 Features

T-SQL Data Types
SQL Server 2008's new date and time types.
The new DATE type is just a date, in the range of 0001-01-01 through 9999-12-31, which equates to Jan. 1, A.D. 1 through Dec. 31, A.D. 9999.Iit provides a simple date type usable for most business applications. SQL Server stores this information in three bytes, a vast improvement over the DATETime’s eight bytes, which is a nice savings when you don't need the overhead of the time data.
The equivalent TIME type has a range of 00:00:00.0000000 through 23:59:59.9999999, stored in five bytes at the default 100 nanosecond precision. The new DATETIME2 type doesn't show much imagination in how it was named, but it's useful, providing a larger date range, a larger default fractional precision, and optional user-specified precision stored in six to eight bytes. A new DATETIMEOFFSET type includes time zone information embedded in the type. The date and time enhancements in SQL Server 2008 make it much easier to work with temporal data, and the database stores the data much more efficiently.
SQL Server 2008 spatial data types.
SQL Server 2008 has built-in support for two kinds of spatial-data systems. The geometry types support planar or "flat-earth" coordinate data. The geography types store ellipsoidal data that stores locations on the earth's surface, a flattened sphere. Whether you're storing GPS data scattered around the globe or need to store the coordinates that define complex shapes on a rectangular surface, you'll find a lot of features in these data types, along with dozens of useful methods.
T-SQL Improvements:

The new version includes many features that make code simpler and more efficient. There are a few syntax enhancements that developers will like, including a couple that make T-SQL seem more like a "real" programming language. You can now declare and initialize variables in a single statement. Now this statement works: DECLARE @id int = 5
Another nice new programming feature is compound operators. There's no rocket science here; this code prints "6": DECLARE @id int = 5SET @id += 1PRINT @id
T-SQL supports compound operators for addition, subtraction, multiplication, division, and modulus, as well as the bitwise operators.
Sparse columns provide an efficient storage mechanism for data that consists of many nulls. When defined using the SPARSE keyword on a column definition, any nulls in the column require no storage space at all. There are a few restrictions; for example, you can't use sparse columns with a few complex data types such as the spatial types, image and text fields, or user-defined types. But using sparse types requires substantially less disk storage. You can also use sparse columns with column sets, which is untyped XML data that combines all the sparse columns in the table. Column sets are useful when the table contains many sparse columns and when working with these columns individually could prove tedious.
table-valued parameters (TVPs).
This one feature single-handedly will save you from a lot of ugly T-SQL code. Have you ever had to pass several pieces of data as a parameter to a stored procedure? Maybe it was a comma-delimited list or some other array-like structure. You'd have to write some nasty parsing code to split up the values, then probably use a loop to process the data. SQL Server 2005 introduced a table data type, but you couldn't pass it to a procedure.
TVPs solve these kinds of problems elegantly by letting you pass -- as the name suggests -- a table-valued parameter to the procedure or function. Then, in the body of the procedure, you can use the set-based features of SQL to process the data, such as by inserting it into a persistent table.


Here's a simple example of using a TVP. There are four simple steps. First, create a persistent TABLE type with the schema to hold the data: CREATE TYPE MyTbl AS TABLE (ID INT, String NVARCHAR(100))GO
Next, create a stored procedure that accepts a parameter of the TABLE type you just created. As with any stored procedures, you can have as many parameters as you like, and any or all of them can be TVPs: CREATE PROCEDURE dkSelectFromTVP(@TVParam MyTbl READONLY)AS SET NOCOUNT ON SELECT * FROM @TVParamGO
Now declare a variable of your TABLE type and insert some data: DECLARE @TVP AS MyTblINSERT INTO @TVP(ID, String) VALUES (1, ‘Fairbanks')INSERT INTO @TVP(ID, String) VALUES (2, ‘Juneau')INSERT INTO @TVP(ID, String) VALUES (3, ‘Anchorage')INSERT INTO @TVP(ID, String) VALUES (4, ‘Denali')
Finally, run the stored procedure and pass in the TVP: EXEC dkSelectFromTVP @TVP
TVPs have a few restrictions; the worst of these is that the parameter is read-only. If you leave off the READONLY keyword in the stored-procedure definition, you'll get a syntax error. The SQL community is exerting some pressure on Microsoft to ease this restriction, so perhaps a future version will make TVPs even more flexible. But now, whenever you need to pass multiple pieces of data in a single parameter, you won't have to write messy parsing code to break it up.
A database scenario that developers often need to write code for involves taking a set of source data, updating a table based on that source data, and then applying changes as necessary. You might have to update some existing rows, insert new rows, or delete rows that are no longer needed. This can be tortuous T-SQL code to write, often requiring a dreaded cursor, which is a guaranteed drain on performance.
MERGE statement:
MERGE lets you define the source and target data, as well as the operations performed on the target data based on whether the source data matches the target data (using match definitions you specify). Assume you have a table with data about a set of working dogs, with fields such as Name, BirthDate, and HarnessSize. You gather a set of changes from a user and need to apply the changes to the Dogs table. You might do this by creating a TABLE type named typDogUpdates to store the source update data that the code will apply to the dbo.Dogs table (see Listing 1). You can then use the MERGE statement to create a TABLE variable of that type and populate it with data. In this case, the primary key dogID will be the basis for matching source and target data, but you can use any field or combination of fields you want. If SQL Server finds a matching dogID, it updates the row; otherwise, it inserts the record.
The MERGE statement consists of five main clauses. The MERGE clause specifies the target for the changes -- in this case, the persistent table Dogs. The USING clause specifies the source data that contains the changes you want to apply to the target. The ON clause specifies the join condition, how the source data is matched to the target data. One or more WHEN clauses let you specify what to do when the database finds matches and what to do when source data doesn't match anything in the target. In Listing 1, the code executes an UPDATE statement when there is a match. When the source data doesn't match a row in the target, it executes an INSERT statement. You can also delete data and apply various conditions to each action. Finally, the OUTPUT clause can return a result set that contains records for each row changed in the target data.

Other great enhancements to T-SQL in SQL Server 2008: Grouping Sets are an extension to the GROUP BY clause and provide functionality similar to ROLLUP and CUBE to define multiple groupings in a single query. You now have far more options for working with unstructured data, including enhancements to the XML data type and FILESTREAM, which lets you store blobs in the file system while letting SQL Server manage the files for you.
Full-text search:
SQL Server 2008, full-text search is completely integrated into the database instead of being stored externally. Portions of full-text indexing and querying are now integrated into the query optimizer, so performance is much better, and there are more tools to extract useful data from the database. You might want to consider dumping all that gnarly T-SQL code you wrote over the last decade to give users flexible searches into their data and implement full-text searches instead.
SQL Server 2008 supports Windows PowerShell,:
an enhanced, extensible scripting shell interface for developers and administrators who love the command line. SQL Server includes two PowerShell snap-ins that expose the hierarchy of database and server objects as paths (similar to file-system paths). On the surface, this sounds a bit like an abomination, but it can simplify getting around the database object model. Another snap-in implements a set of PowerShell cmdlets for performing a variety of actions such as running sqlcmd scripts. PowerShell is a powerful tool, but if you love your mice and GUIs, you can opt not to use it.

SQL Server 2008 Editions

SQL Server 2008 Enterprise: SQL Server 2008 Enterprise is a comprehensive data management and business intelligence platform that provides enterprise-class scalability, data warehousing, security, advanced analytics and reporting support for running business-critical applications. With this edition, it is possible to consolidate servers and perform large-scale online transactional processing.
SQL Server 2008 Standard: SQL Server 2008 Standard is a complete data management and business intelligence platform that provides best-in-class ease of use and manageability for running departmental applications.
SQL Server 2008 Workgroup: SQL Server 2008 Workgroup is a reliable data management and reporting platform that delivers secure, remote synchronization and management capabilities for running branch applications. This edition includes core database features and is easy to upgrade to the Standard or Enterprise edition.
SQL Server 2008 Web. SQL Server 2008 Web is designed for highly available, Internet-facing Web-serving environments running on Windows Server. SQL Server 2008 Web provides the tools necessary to support low-cost, large-scale, highly available Web applications or hosting solutions for customers.
SQL Server 2008 Developer: SQL Server 2008 Developer allows developers to build and test any type of application with SQL Server. This edition features all of the functionality of SQL Server Enterprise but is licensed only for development, test and demo use. Applications and databases developed on this edition can easily be upgraded to SQL Server 2008 Enterprise.
SQL Server 2008 Express. SQL Server 2008 Express is a free edition of SQL Server that features core database functionality including all of the new SQL Server 2008 data types, in a small footprint. This edition is ideal for learning and building desktop and small server applications, and for redistribution by ISVs.
SQL Server Compact 3.5: SQL Server Compact is a free embedded database designed for developers and is ideal for building stand-alone and occasionally connected applications for mobile devices, desktops and Web clients. SQL Server Compact runs on all Microsoft Windows platforms, including the Windows XP and Windows Vista operating systems, and on Pocket PC and smartphone devices.

IIS, Weblogic and Websphere

Similarities:
IIS, Weblogic and Websphere are all fully capable web servers. With the right tools behind them they will all provide identical look and feel to the visiting web user.
Differences :
The main difference between IIS and Weblogic/Websphere is what architecture is at the heart of the web server. IIS is based on MTS, COM and ASP. Weblogic/Websphere is based on the Java platform and includes support for EJB and JSP.

Microsoft grants Windows XP a reprieve

Some PC makers now have an extra four months to sell Windows XP.
The BBC reported Monday that Microsoft has extended the deadline for smaller PC builders and resellers to obtain licenses for the discontinued operating system from the previous deadline of January 31, 2009 to May 30, 2009.
"Microsoft is making accommodation through a flexible inventory program that will allow distributors to place their final orders by January 31, 2009; and take delivery against those orders through May 30, 2009," a Microsoft representative said in an e-mailed statement. "This is not an extension of sales."
Even after May 30, however, it's still not the end of XP. The operating system will be available on ultra-low-cost PCs until June 30, 2010, and the low-end Windows XP Starter Edition will continue to be available in emerging markets until the same date.
Plus, big PC makers plan to offer PCs with Vista Ultimate and Vista Business that have been factory downgraded at customers' request until July 30 next year.
Source : http://news.cnet.com/8301-10805_3-10128132-75.html?tag=newsEditorsPicksArea.0

Microsoft Azure Services Platform -Cloud Computing

Azure Services Platform:

The Azure™ Services Platform (Azure) is an internet-scale cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Azure’s flexible and interoperable platform can be used to build new applications to run from the cloud or enhance existing applications with cloud-based capabilities. Its open architecture gives developers the choice to build web applications, applications running on connected devices, PCs, servers, or hybrid solutions offering the best of online and on-premises.
Azure reduces the need for up-front technology purchases, and it enables developers to quickly and easily create applications running in the cloud by using their existing skills with the Microsoft Visual Studio development environment and the Microsoft .NET Framework. In addition to managed code languages supported by .NET, Azure will support more programming languages and development environments in the near future. Azure simplifies maintaining and operating applications by providing on-demand compute and storage to host, scale, and manage web and connected applications. Infrastructure management is automated with a platform that is designed for high availability and dynamic scaling to match usage needs with the option of a pay-as-you-go pricing model. Azure provides an open, standards-based and interoperable environment with support for multiple internet protocols, including HTTP, REST, SOAP, and XML.



Microsoft also offers cloud applications ready for consumption by customers such as Windows Live™, Microsoft Dynamics™, and other Microsoft Online Services for business such as Microsoft Exchange Online and SharePoint® Online. The Azure Services Platform lets developers provide their own unique customer offerings by offering the foundational components of compute, storage, and building block services to author and compose applications in the cloud.
The Azure Services Windows Azure :
Windows® Azure is a cloud services operating system that serves as the development, service hosting and service management environment for the Azure Services Platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage internet or cloud applications. Windows Azure supports a consistent development experience through its integration with Visual Studio. In the early stages of CTP, .NET managed applications built using Visual Studio will be supported. Windows Azure is an open platform that will support both Microsoft and non-Microsoft languages and environments. Windows Azure welcomes third party tools and languages such as Eclipse, Ruby, PHP, and Python.Learn more about Windows Azure. Live Services
Live Services is a set of building blocks within the Azure Services Platform for handling user data and application resources. Live Services provides developers with an easy on-ramp to build rich social applications and experiences, across a range of digital devices that can connect with one of the largest audiences on the Web.Learn more about Live ServicesMicrosoft SQL Services
Microsoft SQL Services extends the capabilities of Microsoft SQL Server into the cloud as a Web-based, distributed relational database. It provides Web services that enable relational queries, search, and data synchronization with mobile users, remote offices and business partners. It can store and retrieve structured, semi-structured, and unstructured data.Learn more about SQL ServicesMicrosoft .NET Services
Microsoft .NET Services make developing loosely coupled cloud-based applications easier. .NET Services includes access control to help secure your applications, a service bus for communicating across applications and services, and hosted workflow execution. These hosted services allow you to easily create federated applications that span from on-premises environments to the cloud. Learn more about .NET Services


Source:http://www.microsoft.com/azure/whatisazure.mspx#Whatis

Friday, December 19, 2008

Daily Tidbits: TomTom takes aim at Google Maps


GPS vendor, TomTom, announced Thursday that it has launched an online mapping solution to compete with MapQuest and Google Maps. Dubbed TomTom Route Planner, the free service provides door-to-door route planning options to any address in the U.S. or Canada.
Using TomTom's MapShare technology, the service provides users with continued map improvements made by TomTom users that see flaws and correct them. According to the company, improvements are uploaded regularly to provide up-to-date driving conditions. TomTom's IQ Routes feature will offer more accurate arrival estimates by accessing average speeds for each road instead of employing posted speed limits to determine arrival. The service is currently in beta and available now to all users.
Local.com, a company that offers local search and networking, announced Thursday that it has signed an agreement with coupon provider, Valpak, to distribute local business offers through the Local.com network. According to the company, Valpak coupons will appear on the site's search results and profile pages. Users will be able to print the Valpak coupons for redemption at local businesses.
The Karaoke Channel Online, a service that lets people record themselves singing their favorite songs, says that it will now allow its users to publish their recordings across Facebook, MySpace, Delicious, and other social networks. In order to participate, users will need to pay $14.95 per month for unlimited access to the site's 5,000 songs. A full-year membership costs $99.95.
In its monthly Global Threat Report released Thursday, SaaS Web security firm, ScanSafe, reported that the rate of zero-day malware blocks increased to 26 percent in November, up from 16 percent in October and the 19 percent average witnessed for the year. According to the company's senior security researcher, Mary Landesman, "attackers were more intent than ever on ensuring the malware they used would bypass traditional security measures" during November. A sign of even more Web threats to come?
Goober Networks, a company that offers consumer communication services online, announced the launch of CallingAmerica.com Thursday. According to the company, the site will allow anyone in the U.S. to access the site and place an unlimited number of VoIP calls to any landline or mobile phone in the U.S. Registered users can make an unlimited number of calls, while those who choose not to register can only place calls that last no longer than two minutes in duration. To monetize the service, Goober Networks has partnered with advertisers that will place ads of 15 seconds or less before a call is placed


By Webware.com on 12/18/08

Thursday, December 18, 2008

Secure Web services Through .NET

ASP.NET-based security :
The first roadblock for a user accessing an ASP.NET application is authentication. Authenticated users are called principals.
The next step in the security process is authorization. This establishes which resources and operations the principal is allowed to access. ASP.NET supports three authentication schemes: Windows, Passport, and Forms:
Windows: authentication performed by Internet Information Services (IIS)
Passport: the Passport services that Microsoft offers
Forms: unauthenticated users are redirected to HTML form using HTTP redirection
Connection between ASP.NET and Web service security
Web services developed with the .NET Framework utilize the same ASP.NET security paradigm as its starting point. In addition, Web service-focused standards like WS-I and SOAP-based security may be used. For this article, I'll use a simple example of Windows-based security to limit access to our Web service.
Windows-based authentication relies on the Web server (IIS) to authenticate users. It takes advantage of the user accounts on the server, and it provides the following authentication methods:
Basic: The user supplies logon credentials (username/password), which are passed to the server as clear text.
Digest: This is the same approach as Basic, but the credentials are hashed before they're passed to the server. It requires Internet Explorer.
Integrated Windows: An encrypted exchange between the browser and server is used to pass user credentials. It's only supported by Internet Explorer.
Certificate: Client certificates are used to identify a user. The certificate is passed by the browser to the server. This requires the installation of the certificate on the client machine.
Anonymous: The user is not required to log in. The Web server creates a Windows access token to represent the anonymous user.
The authentication mode is designated in the Web site Properties, accessed by way of the Internet Information Services Administration screen. In addition, the web.config file must be properly set up to utilize Windows authentication in an ASP.NET application. The following sample establishes this with the first line; the second line tells the system to pass the currently logged on user's credentials to the browser (impersonate):

The identity element enables or disables impersonation with a true value, resulting in the client operating in the security context of the user account used to log onto IIS. If this option is set to false, all code is executed under the security context of the default IIS account. These elements are contained within the web.config file's system.web element.
Securing the Web service :
Adding Windows authentication to the Web service begins by accessing the necessary namespace. The System.Web.Security and System.Security.Principal namespaces are available, but you only need the latter. The base Web service class (System.Web.Services.WebService) provides the User property to access the current user. You can convert this User property easily to a WindowsPrincipal object to utilize Windows-based authentication.
The WindowsPrincipal class provides an Identity property, which returns a WindowsIndentity object. The WindowsPrincipal class also includes the IsInRole method to determine if the current user is assigned to a role. Roles, which are the equivalent of Windows server groups, determine if the Windows user is assigned to a group. The following Code uses this basic security to control access to the service.
<%@ WebService Language="C#"Class="BuilderWebServices.BuilderWebServiceExample1" %>using System;

using System.Data;

using System.Data.SqlClient;

using System.Web.Services;using System.Security.Principal;

namespace BuilderWebServices {

public class BuilderWebServiceExample1: WebService {

private const string sConn = "server=(local);InitialCatalog=Northwind;UID=sa;PWD=";private SqlConnection conn = null;private SqlCommand comm = null;[WebMethod]public string GetTotalFreight()

{

WindowsPrincipal wp = (WindowsPrincipal)this.User;if (wp.IsInRole("WebService"))

{

try {

conn = new SqlConnection(sConn);conn.Open();comm = new SqlCommand();

comm.Connection = conn;

comm.CommandText = "SELECT SUM(Freight) FROM Orders";

comm.CommandType = CommandType.Text;

if (comm.ExecuteScalar() == null)

{

return "Database error";

}

else

{

return comm.ExecuteScalar().ToString();

}

} catch (SqlException ex)

{

return "Database error: " + ex.ToString();

} catch (Exception e)

{

return e.ToString();

} finally

{

if (conn.State == ConnectionState.Open) {conn.Close();

}

}

} else { return "Security error"; }

}

}

}


Wednesday, December 17, 2008

Microsoft releases its first iPhone app


Engineers in the company's Live Labs have released the company's first application for Apple's popular smartphone--even before making it available on Microsoft's own mobile platform. Seadragon Mobile, which was added to Apple's App Store on Saturday, is a free image-browsing app that allows users to quickly "deep zoom" images while online and is intended to demonstrate what is possible with a mobile platform.


Microsoft's Seadragon on Apple's iPhone.(Credit: Microsoft)
Seadragon is the backbone for Microsoft's Photosynth, which allows users to take a grouping of photographs and stitch them together into a faux 3D environment.
Other iPhone apps are reportedly in development in Redmond; Microsoft's Tellme unit was expected to release the company's first iPhone app in the form of a voice-activated search for a variety of phones, including iPhone and BlackBerry. A Microsoft representative told my colleague Ina Fried in September that a public version of that program would likely be released in a few months.
So where's the Windows Mobile version of Seadragon?
"The iPhone is the most widely distributed phone with a (graphics processing unit)," Alex Daley, group product manager for Microsoft Live Labs, told TechFlash. "Most phones out today don't have accelerated graphics in them. The iPhone does and so it enabled us to do something that has been previously difficult to do."

Microsoft Releases Open Source Blogging Platform

However, the software maker was quick to underline that the product is aimed at developers and not intended to directly compete with popular blogging software such as WordPress or Movable Type.
Microsoft posted the Oxite code on its CodePlex Web site on Friday and made an official announcement on Monday. The software, described as an alpha release, is available under the Microsoft Public License, one of Microsoft's OSI-certified open-source licenses.

Oxite is a standards-compliant, extensible content-management system designed to support either blogs or larger Web sites, Microsoft said. The platform includes support for features such as pingbacks, trackbacks, anonymous or authenticated commenting, gravatars (globally recognized avatars), and RSS feeds at any page level, the company said.
Users can create and edit a set of pages on a site, add customized HTML into pages, and support multiple blogs on a single site.

Oxite is also able to integrate with Microsoft developer software such as ASP.Net MVC, Visual Studio Team Suite, and Background Services Architecture. The project began as a way of demonstrating the capabilities of ASP.Net MVC to developers, Microsoft said.
The Web site for Mix Online was built using Oxite, and Microsoft is providing the Mix Online Web site code for developers to learn from. Mix Online is the online community centered on Microsoft's Mix Web developer conference.

Oxite is not a direct competitor to existing, established blogging systems, nor is it intended to challenge Microsoft's own SharePoint, which includes content-management-system capabilities, according to Oxite project coordinator Erik Porter.
The software is intended for developers but could eventually be made suitable for the general public, Porter wrote in an Oxite discussion forum.

"We have no plans to make this anything but a really good developer sample that should be able to run any site you want," he wrote. "That said, this is a community project now and, if the community decides to take it a different direction, we won't stop it."

Tuesday, December 16, 2008

Microsoft Targets Adobe in Web-Design Software

  • News from Wall Street Journal:
  • Adobe Systems Inc. is facing increasing pressure from Microsoft Corp., which is using its deep pockets to challenge Adobe's dominance of Web design software.
  • Adobe's Flash software, which adds video and animation to Web sites, is at the heart of many popular Internet destinations. Retailers, media outlets and entertainment sites rely on Flash to make their sites interactive and to serve up advertisements.
  • But Microsoft has recently launched a new version of its competing Silverlight technology and has been aggressively courting the operators of popular Web sites and advertising agencies that are Adobe's core customers.