Tuesday, July 24, 2007

My TOP 10 Coolest Visual Studio 2008 Features

Visual Studio 2008, due for release at the end of 2007, promises numerous improvements for Visual Basic, a data query called the Language Integrated Query (LINQ), a new Entity Framework for ADO.NET and updated tools for ASP.NET AJAX and Office 2007 development.
My top ten Visual Studio's IDE features are as follows:

1) Multi-targeting

Visual Studio 2008 is billed as the design surface for the .NET Framework 3.5, which itself is the merger of the .NET 3.0 toolset introduced earlier this year with updated versions of ASP.NET, ADO.NET, Visual Basic, C# and the CLR. At the same time, though, Orcas allows developers to work backwards and develop specifically for .NET 2.0 or 3.0. Once a framework version has been selected, Visual Studio 2008 will enable the reference features that are appropriate for that version of the framework. (In other words, don't try using LINQ in a .NET 2.0 application.)

2) N-tier application development

An n-tier application is spread among any number of different systems, typically a service layer, an access layer and a business logic layer. With such a model, it is easy to share validation logic between entities. Unfortunately, developing such applications in Visual Studio 2005 is pretty much impossible because a dataset and the code that connects it to a database are in the same file. The change in Visual Studio 2008 is subtle but important, as the table and the dataset now reside in different layers.

3) An improved designer

Visual Studio 2005 designer is a little more of the Internet Explorer renderer turned into an editor. To improve upon this, the Visual Studio group turned to Expression, the Microsoft product suite for Web designers. The new designer allows developers to apply styles in line, with an existing class, with a new class or with Internet Explorer. In addition, changes such as margins and paddings around images can be applied to rules and not just individually. This also makes for cleaner CSS files.Finally, the designer offers a split view, so developers can look at source code and design simultaneously. This is a response to the growing trend of development using two monitors.

4) ASP.NET AJAX and VSTO for Office 2007

Right now, developers aiming to build cutting edge Web applications have to download the ASP.NET AJAX framework, and those who want to develop for Office 2007 have to download Visual Studio 2005 Tools for Office Second Edition. Both ASP.NET AJAX and VSTO 2005 SE will be directly incorporated into Visual Studio 2008. VSTO will come with a new runtime, which will run both Office 2007 and Office 2003 add-ins, while ASP.NET AJAX will come with a variety of JavaScript tools, such as IntelliSense and robust debugging.

5) The ADO.NET Entity Framework

The biggest changes to ADO.NET revolve around its Entity Framework, which, unfortunately, is now slated to be released quite a while after Visual Studio 2008. This framework consists of a conceptual layer, which fits between an application's logical database layer and its object layer, and the Entity Data Model. Run the Entity Data Model Wizard in Visual Studio 2008 and the output is three files - a conceptual model that talks to object classes, a logical model that the relational database talks to, and map between the conceptual and logical models. Within the conceptual layer, one finds entity types bundled into sets, associations that define the relationship between entities, and sets of associations. The information in this layer will handle the back and forth with SQL Server without touching data access code. Once entities have been created, developers can use the either CreateQuery or new LINQ to Entities query to retrieve entity objects, data records or anonymous types.

6) LINQ: The Language Integrated Query

In Visual Studio 2005, querying a dataset typically involves a stored procedure, a newly created view and a bit of ADO.NET filtering. This is the case because data exists in rows, while .NET code deals with objects. They are always two different worlds and LINQ puts queries inside the languages and merges the worlds together.
At its most basic level, the Language Integrated Query, a feature of both Visual Basic and C#, uses the concept of the SQL Select statement to make its queries. However, there are two important differences:
(a) Firstly LINQ statements begin with a From statement instead of the Select statement. By listing the data source first, IntelliSense is triggered.
(b) Secondly, since C# is an object-oriented languages, whatever you can express in C# you can make part of LINQ queries. This encompasses anything that is IEnumerable - entities, collections and even XML. Moreover, since the queries are being made in an object-oriented environment, you can do very complex things that result in a completely different result set, such as calling up an instance of objects that did not exist in the source at all.
LINQ also brings about the introduction of several new language concepts for Visual Basic and C#. The expression tree, for example, is a data representation of the LINQ expression that bridges the gap between the .NET code and the SQL Server. In addition, property initialization makes it possible to create an object and set its properties in a single line of code.
Other new language concepts, which will be discussed below, include implicit types and extension methods.

7) Implicit types

Implicit types provide strong typing without forcing developers to figure out the type they need. The compiler does the work for them, since the type is inferred from the initializer expression. Implicit types work well when looping through a collection, since in such a scenario a developer is likely to be looking only for a key and a value and will not know, or care, what is the index type. In addition, inferring types makes it possible for extensions to bind to data types such as XML. This is fundamental to making LINQ work.

8) Extension Methods

Extension methods is a feature coming straight from LINQ, since all LINQ query operators are extension methods. These methods are marked with custom attributes and are then added to other objects automatically (so long as they are not already there). Extension methods can be used just about anywhere a developer would use a normal function. However, they cannot contain optional parameters, parameter arrays or generic arguments that have not been typed. Also, late binding cannot be done with extension methods.

9) IntelliSense

IntelliSense, already referred to as "Intellicrack" in some development circles, is set to encompass keywords, member variables and anything in scope. Moreover, IntelliSense will work with implicit types, once the compiler has figured out what is the type. In addition, LINQ is set up to take advantage of IntelliSense. In SQL syntax, the Select query comes first, but in LINQ, the From statement comes first. With the data source listed first, IntelliSense has a chance to kick in. Visual Studio 2008 has also added JavaScript IntelliSense to accommodate ASP.NET AJAX development.

10) Relaxed delegates, initializers and more

Check this MSDN article to learn more on relaxed delegates and initializers. The emphasis there is on productivity gains developers can expect to enjoy when building data-oriented applications with an increasingly dynamic language.

What is .NET 3.0?

A lot of people have asked me about what .NET 3.0 is and the features it ships. Here is my quick summary. .NET 3.0, formerly known as WinFX, is the latest version of Microsoft's .NET Framework, which represents both the company's business strategy and its collection of programming support for Web services. .NET 3.0 was released at the same time as Vista, Microsoft's update to its Windows operating system.

.NET 3.0 consists of four news tools. The Windows Communication Foundation lets developers build unified Web services and other distributed systems that can talk to each other. The Windows Presentation Foundation is a development tool for Web applications and rich client applications. The Windows Workflow Foundation is a programming model for building workflow-enabled applications in Windows. Finally, Windows CardSpace is an identity management component.

In addition to those four new tools, .NET 3.0 also includes several key existing pieces of .NET 2.0, such as ADO.NET 2.0, ASP.NET 2.0, Windows Forms 2.0 and the Common Language Runtime, or CLR 2.0. Microsoft's Expression suite, Windows File System and Visual Studio 2005 development suite are also compatible with .NET 3.0.

Wednesday, July 18, 2007

My TOP 18 Coolest Visual Studio Add-Ons

1) Microsoft Interop Forms Toolkit 2.0 - http://www.microsoft.com/downloads/details.aspx?FamilyID=934de3c5-dc85-4065-9327-96801e57b81d&DisplayLang=en "This toolkit helps you bring the power of .NET to your existing VB6 applications, by allowing them to display .NET Forms and Controls from within the same application. Instead of upgrading the entire code base, these applications can now be extended one form at a time. The goal is a phased upgrade, with production releases at the end of each iteration containing both VB6 and VB.NET forms running in the same VB6 .exe process."

2) Application Verifier - http://www.microsoft.com/downloads/details.aspx?FamilyID=d2dd7ee0-aaa2-402a-821d-43795d6cf139&DisplayLang=en "Application Verifier is a runtime verification tool for unmanaged code that assists in finding subtle programming errors that can be difficult to identify with normal application testing. Run the Application Verifier tests on your code to identify issues within heaps, handles, and locks."

3) ILMerge - http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&DisplayLang=en "ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly. It works on executables and DLLs alike and comes with several options for controlling the processing and format of the output."

4) XML Notepad 2007 - http://www.microsoft.com/downloads/details.aspx?FamilyID=72d6aa49-787d-4118-ba5f-4f30fe913628&DisplayLang=en "XML Notepad 2007 provides a simple intuitive user interface for browsing and editing XML documents."

5) Internet Explorer Developer Toolbar - http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&DisplayLang=en "The Microsoft Internet Explorer Developer Toolbar provides a variety of tools for quickly creating, understanding, and troubleshooting Web pages."

6) Team Foundation Power Tool - http://www.microsoft.com/downloads/details.aspx?FamilyID=7324c3db-658d-441b-8522-689c557d0a79&DisplayLang=en "The Microsoft Visual Studio 2005 Team Foundation Server Power Tool (formerly known as Power Toys) is a set of enhancements, tools and command line utilities that improve the Team Foundation Server experience."

7) ASP.NET AJAX 1.0 - http://www.microsoft.com/downloads/details.aspx?FamilyID=ca9d90fa-e8c9-42e3-aa19-08e2c027f5d6&DisplayLang=en "ASP.NET AJAX is a set of technologies to add AJAX (Asynchronous JavaScript And XML) support to ASP.NET. It consists of a client-side script framework, server controls, and more."

8) Enterprise Library 3.0 - http://www.microsoft.com/downloads/details.aspx?FamilyID=62ef5f79-daf2-43af-9897-d926f03b9e60&DisplayLang=en "This release of Enterprise Library includes: Caching Application Block, Cryptography Application Block, Data Access Application Block, Exception Handling Application Block, Logging Application Block, Policy Injection Application Block, Security Application Block and Validation Application Block."

9) Windows PowerShell 1.0 - http://www.microsoft.com/downloads/details.aspx?FamilyID=6ccb7e0d-8f1d-4b97-a397-47bcc8ba3806&DisplayLang=en "Microsoft Windows PowerShell is a new command-line shell and scripting language designed for system administration and automation. Built on the .NET Framework, Windows PowerShell enables IT professionals and developers control and automate the administration of Windows and applications."

10) Microsoft ASP.NET Futures - http://www.microsoft.com/downloads/details.aspx?FamilyID=9323777e-fe78-430c-ad92-d5be5b5ead98&DisplayLang=en "The Microsoft ASP.NET Futures May 2007 release contains an early developer preview of features providing a wide range of new functionality for both ASP.NET and Silverlight."

11) Reflector for .NET - http://www.aisto.com/roeder/dotnet/ "Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#, Visual Basic and IL."

12) GhostDoc - http://www.roland-weigelt.de/ghostdoc/ "GhostDoc is a free add-in for Visual Studio that automatically generates XML documentation comments for C#. Either by using existing documentation inherited from base classes or implemented interfaces, or by deducing comments from name and type of e.g. methods, properties or parameters."

13) DPack - http://www.usysware.com/dpack/ "DPack is designed to greatly increase developer's productivity, automate repetitive processes and expand upon some of the Microsoft Visual Studio features. DPack includes various browser tools that allow the developer to quickly narrow the search down to a particular class, method or assembly type. DPack includes greatly enhanced numbered bookmarks feature, various code navigation tools as well as streamlined surround with feature, and much more."

14) CodeKeep - http://www.codekeep.net/addins.aspx "With the CodeKeep add-in, you can manage your code snippets and search for other code snippets without ever having to leave Visual Studio."

15) AnkhSVN - http://ankhsvn.tigris.org/ "AnkhSVN is an open-source Visual Studio .NET addin for the Subversion version control system. It allows you to perform the most common version control operations directly from inside the VS.NET IDE. Not all the functionality provided by SVN is (yet) supported, but the majority of operations that support the daily workflow are implemented."

16) VSCmdShell - http://visualstudiohacks.com/vscmdshell "The VSCmdShell powertoy combines the command window and the command prompt and makes them available in a single window. Just about anything you can do in the command prompt you can now do right inside of the IDE. You can also execute Visual Studio commands in the same window by simply prefacing that command with an exclamation point, you will even get IntelliSense for the command list. "

17) Regionerate - http://www.rauchy.net/regionerate/ "Regionerate is an open-source tool for developers and team leaders that allows you to automatically apply layout rules on C# code. Regionerate runs on Visual Studio 2005, Visual Studio Codename Orcas Beta 1, #develop 2.0, NAnt and on command line."

18) Consolas Font Pack for VS 2005 - http://www.microsoft.com/downloads/details.aspx?familyid=22e69ae4-7e40-4807-8a86-b3d36fab68d3&displaylang=en "The Microsoft Consolas Font Family is a set of highly legible fonts designed for ClearType. It is intended for use in programming environments and other circumstances where a monospaced font is specified. This installation package will set the default font for Visual Studio to Consolas."

Tuesday, July 17, 2007

Can i manage Digital Assets (like media, artworks, logos etc) using MOSS 2007?

MOSS 2007 offers a rich platform to manage your digital assets. Microsoft's collaborative media management solution, named "Microsoft Interactive Media Manager", extends Microsoft Office SharePoint® Server 2007 for media and entertainment companies. The solution builds on existing technology investments, and helps companies create an end-to-end content production system accessible by everyone. In addition, Interactive Media Manager easily integrates with Microsoft business intelligence tools, giving management insight into production details. Check this article out from Microsoft to find out more

Friday, July 13, 2007

Sunday, July 01, 2007

Enterprise Single Sign On with MOSS 2007

Microsoft Office SharePoint Server enables enterprises to develop an intelligent portal that seamlessly connects users, teams, and knowledge so that people can take advantage of relevant information across business processes to help them work more efficiently. Microsoft Windows SharePoint Services v3 and MOSS 2007 have become very popular in recent years and have helped many businesses create an infrastructure for sharing and collaborating internal information. Read this article to find out more about how SharePoint SSO can be deployed across your enterprise.