Microsoft .NET Support Team

Developing ASP.NET MVC Applications in Visual Studio

When you install the ASP.NET MVC Framework, what the installer really does is the following:

  • It registers the MVC Framework’s assembly—System.Web.Mvc.dll—in your Global Assembly Cache (GAC), and also puts a copy in \Program Files\Microsoft ASP.NET\ASP.NET MVC 1.0\Assemblies.

  • It installs various templates under Visual Studio’s \Common7\IDE folder, which is how ASP.NET MVC becomes integrated into Visual Studio. These templates include the following:

    • Project templates for creating new ASP.NET MVC web application projects and test projects (in the ProjectTemplates\CSharp\Web\1033 and Test subfolders).

    • Item templates for creating controllers, views, partial views, and master pages from the Add Item menu (in the ItemTemplates\CSharp\Web\MVC subfolder).

    • T4 code-generating templates for prepopulating controllers and views when you create them through the Add Controller or Add View menus (in the ItemTemplates\CSharp\Web\MVC\CodeTemplates subfolder).

  • It adds a few script files for registering the .mvc file name extension with IIS, in case you want to use that (in the \Program Files\Microsoft ASP.NET\ASP.NET MVC 1.0\Scripts folder). However, you won’t usually need to use these scripts: you won’t normally want .mvc to appear in your URLs, and, even if you do, you can simply register URL extensions graphically using IIS Manager,

If you wanted, you could edit the Visual Studio templates and see your changes reflected in the IDE. However, the only ones that are really designed for you to edit are the T4 code-generating templates, and rather than editing the global ones held centrally by Visual Studio, it makes more sense to edit project-specific copies that you can store in your source control system. For more details about Visual Studio’s T4 templating engine, and how to use it in an ASP.NET MVC project, see http://tinyurl.com/T4mvc.

The Default MVC Project Structure

When you use Visual Studio to create a brand-new ASP.NET MVC web application project, it gives you an initial set of folders and files matching those shown in Figure 7-1. Some of these items have special roles hard-coded into the MVC Framework (and are subject to predetermined naming conventions), while others are merely suggestions for how to structure your project. These roles and rules are described in Table 7-1.

Image from book
Figure 7-1: Solution Explorer immediately after creating a new ASP.NET MVC application Click to collapse

Table 7-1: Files and Folders in the Default ASP.NET MVC Web Application Template
Open table as spreadsheet

Folder or File

Intended Purpose

Special Powers and Responsibilities

/App_Data

If you use a file-based database (e.g., a *.mdf file for SQL Server Express Edition, or a *.mdb file for Microsoft Access), this folder is the natural place to put it. It’s safe to put other private data files (e.g., *.xml) here, too, because IIS won’t serve any files from this folder, but you can still access them in your code. Note that you can’t use file-based SQL databases with the full SQL Server editions (i.e., anything other than Express Edition), so in practice, they’re rarely used.

IIS won’t serve its contents to the public. When you have SQL Server Express Edition installed and reference a connection string containing AttachDbFileName=|DataDirectory| MyDatabase.mdf, the system will automatically create and attach a file-based database at /App_Data/MyDatabase.mdf.

/bin

This contains the compiled .NET assembly for your MVC web application, and any other assemblies it references (just like in a traditional ASP.NET WebForms application).

IIS expects to find your DLLs here. During compilation, Visual Studio copies any referenced DLLs to this folder (except ones from the system-wide Global Assembly Cache (GAC).

IIS won’t serve its contents to the public.

/Content

This is a place to put static, publicly servable files (e.g., *.css and images).

None—it’s just a suggestion. You can delete it if you want, but you’ll need somewhere to put images and CSS files, and this is a good place for them.

/Controllers

This holds your controller classes (i.e., classes derived from Controller or implementing IController).

None—it’s just a suggestion. It makes no difference whether you put controllers directly into this folder, into a subfolder of it, or anywhere else in the whole project, because they’re all compiled into the same assembly. You can also put controller classes into other referenced projects or assemblies. You can delete this folder’s initial contents (HomeController and AccountController)—they simply demonstrate how you might get started.

/Models

This is a place to put classes representing your domain model. However, in all but the most trivial of applications, it’s better to put your domain model into a totally separate C# class library project instead. You can then either delete /Models or just use it not for full-fledged domain models but for simple presentation models that exist only to transfer data from controllers to views.

None. Feel free to delete it.

/Scripts

This is another place for statically, publicly servable files, but this one is of course intended for JavaScript code files (*.js). The Microsoft*.js files are required to support ASP.NET MVC’s Ajax.* helpers, and the jquery*.js files are of course needed if you want to use jQuery.

None—you can delete this folder, but if you want to use the Ajax.* helpers, you would then need to reference the Microsoft*.js files at some other location.

/Views

This holds views (usually *.aspx files) and partial views (usually *.ascx files).

By convention, views for the controller class XyzController are found inside /Views/Xyz/. The default view for XyzController’s DoSomething() action method should be placed at /Views/Xyz/DoSomething.aspx (or /Views/Xyz/DoSomething.ascx, if it represents a control rather than an entire page). If you’re not using the initially provided HomeController or AccountController, you can delete the corresponding views.

/Views/Shared

This holds view templates that aren’t associated with a specific controller—for example, master pages (*.Master) and any shared views or partial views.

If the framework can’t find /Views/Xyz/DoSomething.aspx (or .ascx), the next place it will look is /Views/Shared/DoSomething.aspx.

/Views/Web.config

This is not your application’s main web.config file. It just contains a directive instructing the web server not to serve any *.aspx files under /Views (because they should be rendered by a controller, not invoked directly like classic WebForms *.aspx files). This file also contains configuration needed to make the standard ASP.NET ASPX page compiler work properly with ASP.NET MVC view template syntax.

Ensures that your application can compile and run correctly (as described in the previous column).

/Default.aspx

This file isn’t really relevant for an ASP.NET MVC application, but is required for compatibility with IIS 6, which needs to find a “default page” for your site. When Default.aspx executes, it simply transfers control to the routing system.

Don’t delete this; otherwise, your application won’t work in IIS 6 (though it would be fine in IIS 7 in Integrated Pipeline mode).

/Global.asax

This defines the global ASP.NET application object. Its code-behind class (/Global.asax.cs) is the place to register your routing configuration, as well as set up any code to run on application initialization or shutdown, or when unhandled exceptions occur. It works exactly like a classic ASP.NET WebForms Global.asax file.

ASP.NET expects to find a file with this name, but won’t serve it to the public.

/Web.config

This defines your application configuration. You’ll hear more about this important file later in the chapter.

ASP.NET (and IIS 7) expects to find a file with this name, but won’t serve it to the public.

Note

You deploy an MVC application by copying much of this folder structure to your web server. For security reasons, IIS won’t serve files whose full paths contain web.config, bin, App_code, App_GlobalResources, App_LocalResources, App_WebReferences, App_Data, or App_Browsers, because IIS 7’s applicationHost.config file contains <hiddenSegments> nodes hiding them. (IIS 6 won’t serve them either, because it has an ISAPI extension called aspnet_filter.dll that is hard-coded to filter them out.) Similarly, IIS is configured to filter out requests for *.asax, *.ascx, *.sitemap, *.resx, *.mdb, *.mdf, *.ldf, *.csproj, and various others.

Those are the files you get by default when creating a new ASP.NET MVC web application, but there are also other folders and files that, if they exist, can have special meanings to the core ASP.NET platform. These are described in Table 7-2.

Table 7-2: Optional Files and Folders That Have Special Meanings
Open table as spreadsheet

Folder or File

Meaning

/App_GlobalResources

/App_LocalResources

Contain resource files used for localizing WebForms pages.

/App_Browsers

Contains .browser XML files that describe how to identify specific web browsers, and what such browsers are capable of (e.g., whether they support JavaScript).

/App_Themes

Contains WebForms “themes” (including .skin files) that influence how WebForms controls are rendered.

These last few are really part of the core ASP.NET platform, and aren’t necessarily so relevant for ASP.NET MVC applications. For more information about these, consult a dedicated ASP.NET platform reference.

Naming Conventions

As you will have noticed by now, ASP.NET MVC prefers convention over configuration.[1.] This means, for example, that you don’t have to configure explicit associations between controllers and their views; you simply follow a certain naming convention and it just works. (To be fair, there’s still a lot of configuration you’ll end up doing in web.config, but that has more to do with IIS and the core ASP.NET platform.) Even though the naming conventions have been mentioned previously, let’s clarify by recapping:

  • Controller classes must have names ending with Controller (e.g., ProductsController). This is hard-coded into DefaultControllerFactory: if you don’t follow the convention, it won’t recognize your class as being a controller, and won’t route any requests to it. Note that if you create your own IControllerFactory you don’t have to follow this convention.

  • View templates (*.aspx, *.ascx), should go into the folder /Views/controllername. Don’t include the trailing string Controller here—views for ProductsController should go into /Views/Products (not/Views/ProductsController).

  • The default view for an action method should be named after the action method. For example, the default view for ProductsController’s List action would go at /Views/Products/List.aspx. Alternatively, you can specify a view name (e.g., by returning View("SomeView")), and then the framework will look for /Views/Product/SomeView.aspx.

  • When the framework can’t find a view called /Views/Products/Xyz.aspx, it will try /Views/Products/Xyz.ascx. If that fails, it tries /Views/Shared/Xyz.aspx and then /Views/Shared/Xyz.ascx. So, you can use /Views/Shared for any views that are shared across multiple controllers.

All of the conventions having to do with view folders and names can be overridden using a custom view engine.

The Initial Application Skeleton

As you can see from Figure 7-1, newborn ASP.NET MVC projects don’t enter the world empty handed. Already built in are controllers called HomeController and AccountController, plus a few associated view templates. Quite a bit of application behavior is already embedded in these files:

  • HomeController can render a Home page and an About page. These pages are generated using a master page and a soothing blue-themed CSS file.

  • AccountController allows visitors to register and log on. This uses Forms Authentication with cookies to keep track of whether each visitor is logged in, and it uses the core ASP.NET membership facility to record the list of registered users. The membership facility will try to create a SQL Server Express file-based database on the fly in your /App_Data folder the first time anyone tries to register or log in. This will fail if you don’t have SQL Server Express installed and running.

  • AccountController also has actions and views that let registered users change their passwords. Again, this uses the ASP.NET membership facility.

The initial application skeleton provides a nice introduction to how ASP.NET MVC applications fit together, and helps people giving demonstrations of the MVC Framework to have something moderately interesting to show as soon as they create a new project.

However, it’s unlikely that you’ll want to keep the default behaviors unless your application really does use the core ASP.NET membership facility to record registered users. You might find that you start most new ASP.NET MVC projects by deleting many of these files.

Debugging MVC Applications and Unit Tests

You can debug an ASP.NET MVC application in exactly the same way you’d debug a traditional ASP.NET WebForms application. Visual Studio 2008’s debugger is essentially the same as its previous incarnations, so if you are already comfortable using it, you can skip over this section.

Launching the Visual Studio Debugger

The easiest way to get a debugger going is simply to press F5 in Visual Studio (or go to Debug Image from book Start Debugging). The first time you do this, you’ll be prompted to enable debugging in the Web.config file, as shown in Figure 7-2.

Image from book
Figure 7-2: Visual Studio’s prompt to enable debugging of WebForms pages

When you select “Modify the Web.config file to enable debugging,” Visual Studio will update the <compilation> node of your Web.config file:

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


This means that your ASPX and ASCX templates will be compiled with debugging symbols enabled. It doesn’t actually affect your ability to debug controller and action code, but Visual Studio insists on doing it anyway. There’s a separate setting that affects compilation of your .cs files (e.g., controller and action code) in the Visual Studio GUI itself. This is shown in Figure 7-3. Make sure it’s set to Debug (Visual Studio won’t prompt you about it).



Image from book


Figure 7-3: To use the debugger, make sure the project is set to compile in Debug mode.



Note



When deploying to a production web server, you should only deploy code compiled in Release mode. Similarly, you should set <compilation debug="false"> in your production site’s Web.config file, too.



Visual Studio will then launch your application with the debugger connected to its built-in development web server, WebDev.WebServer.exe. All you need to do now is set a breakpoint, as described shortly (in the “Using the Debugger” section).



Attaching the Debugger to IIS


If, instead of using Visual Studio’s built-in web server, you’ve got your application running in IIS on your development PC, you can attach the debugger to IIS. In Visual Studio, press Ctrl+Alt+P (or go to Debug Image from book “Attach to Process”), and find the worker process named w3wp.exe (for IIS 6 or 7) or aspnet_wp.exe (for IIS 5 or 5.1). This screen is shown in Figure 7-4.



Image from book


Figure 7-4: Attaching the Visual Studio debugger to the IIS 6/7 worker process



Note



If you can’t find the worker process, perhaps because you’re running IIS 7 or working through a Remote Desktop connection, you’ll need to check the box labeled “Show processes in all sessions.” Also make sure that the worker process is really running by opening your application in a web browser (and then click Refresh back in Visual Studio). On Windows Vista with UAC enabled, you’ll need to run Visual Studio in elevated mode (it will prompt you about this when you click Attach).



Once you’ve selected the IIS process, click Attach.



Attaching the Debugger to a Test Runner (e.g., NUnit GUI)


If you do a lot of unit testing, you’ll find that you run your code through a test runner, such as NUnit GUI, just as much as you run it through a web server. When a test is inexplicably failing (or inexplicably passing), you can attach the debugger to your test runner in exactly the same way that you’d attach it to IIS. Again, make sure your code is compiled in Debug mode, and then use the Attach to Process dialog (Ctrl+Alt+P), finding your test runner in the Available Processes list (see Figure 7-5).



Image from book


Figure 7-5: Attaching the Visual Studio debugger to NUnit GUI



Notice the Type column showing which processes are running managed code (i.e., .NET code). You can use this as a quick way to identify which process is hosting your code.



Remote Debugging


If you have IIS on other PCs or servers in your Windows domain, and have the relevant debugging permissions set up, you can enter a computer name or IP address in the Qualifier box and debug remotely. If you don’t have a Windows domain, you can change the Transport drop-down to Remote, and then debug across the network (having configured Remote Debugging Monitor on the target machine to allow it).



Using the Debugger


Once Visual Studio’s debugger is attached to a process, you’ll want to interrupt the application’s execution so you can see what it’s doing. So, mark some line of your source code as a breakpoint by right-clicking a line and choosing Breakpoint Image from book “Insert breakpoint” (or press F9, or click in the gray area to the left of the line). You’ll see a red circle appear. When the attached process reaches that line of code, the debugger will halt execution, as shown in Figure 7-6.



Image from book


Figure 7-6: The debugger hitting a breakpoint



The Visual Studio debugger is a powerful tool: you can read and modify the values in variables (by hovering over them or by using the Watch window), manipulate program flow (by dragging the yellow arrow), or execute arbitrary code (by entering it into the Immediate window). You can also read the call stack, the machine code disassembly, the thread list, and other information (by enabling the relevant item in Debug Image from book Windows). A full guide to the debugger is off-topic for this book; however, consult a dedicated Visual Studio resource for more information.



Stepping into the .NET Framework Source Code


There’s one little-known debugger feature that, in 2008, suddenly became a lot more useful. If your application calls code in a third-party assembly, you wouldn’t normally be able to step into that assembly’s source code during debugging (because you don’t have its source code). However, if the third party chooses to publish the source code through a symbol server, you can configure Visual Studio to fetch that source code on the fly and step into it during debugging.



Since January 2008, Microsoft has enabled a public symbol server containing source code for most of the .NET Framework libraries. This means you can step into the source code for System.Web.dll and various other core assemblies, which is extremely useful when you have an obscure problem and not even Google can help. This contains more information than the disassembly you might get from Reflector—you get the original source code, with comments (see Figure 7-7).



Image from book


Figure 7-7: Stepping into Microsoft’s source code for ASP.NET Forms Authentication



To set this up, make sure you have Visual Studio 2008 SP1 installed, and then follow the instructions at referencesource.microsoft.com/serversetup.aspx.



Note



Microsoft has made the ASP.NET MVC Framework’s source code available to download so that you can compile it (and modify it) yourself. However, it has not released the source code to the rest of the .NET Framework libraries in the same way—you can only get that though Microsoft’s symbol server for the purposes of stepping into it while debugging. You can’t download the whole thing, and you can’t modify or compile it yourself.



Stepping into the ASP.NET MVC Source Code


Since you can download the whole ASP.NET MVC Framework source code package, it’s possible to include the System.Web.Mvc source code project in your solution (as if you created it!). This allows you to use Visual Studio’s Go to Declaration command to directly jump any reference in your own source code to the corresponding point in the framework source code, and of course to step into the framework source code when debugging. It can be a huge timesaver when you’re trying to figure out why your application isn’t behaving as expected.



This isn’t too difficult to set up, as long as you know about a few likely problems and how to solve them. The instructions may well change after this book is printed, so I’ve put the guide on my blog at http://tinyurl.com/debugMvc.



[1.] This tactic (and this phrase) is one of the original famous selling points of Ruby on Rails.

Continue reading »

Visual Studio 2010 BUGs, suggestions, Feedback

BUG1

IDE: VS2010 Beta 1 Team Suite.
Though I pressed on "Save All" either from
1. ToolBox
or
2. File -> Save All.
still * icon is being shown for Project Properties Tab.

Steps to Re-produce the issue.
1. Create WPF User Control Library Project.
1. Open Project Properties
2. Change Assembly Name to some new name.
3.
Press Save All Icon
[BUG]Still shows Start after Project Properties Tab.
or
Press Save All from Menu -> File -> Save All
[BUG]Still shows Start after Project Properties Tab.

BUG2

IDE: VS2010 Beta 1 Team Suite.
[BUG] Properties are not dispplaying in Property Box.

Steps to re-produce
1. Open WPF User Control Project.
3. Open UserControl.xaml
4. Drop any component and select it.
5. Open Solution Explorer.
6. Open Property window.
Now Solution Explorer and Property window both will display Top and Bottom at right side of IDE
7. Now Close Solution Explorer.

[BUG][BUG][BUG] All properties in Property window disappear suddently though the component is selected ( in step4)

Continue reading »

infragistics - NetAdvantage for Silverlight Data Visualization 2009 Volume 2!

High-end, High Performance Web-based Data Visualization Experiences
This second version is focused on improving the mapping control to deliver an unbelievable user experience. We’ve added other features that make this the ultimate package for those of you focused on communicating information clearly and effectively through graphical means such as charts, gauges, timelines and maps.

Flexibility, Power and Usability When Building BI Apps
New enhancements to the xamWebMap allow you and your users to pull information from more places like Microsoft® bing™ maps, CloudMade, and OpenStreetMap into your Silverlight mapping applications. And, we’ve made it possible to pull both GEOMETRY and GEOGRAPHY data types from geo-spatial databases like Microsoft® SQL Server® 2008 using the new SqlShapeReader object. More maps to create more killer apps!

Present Data Clearly and Cleanly
Get controls that simplify the visual representation of large quantities of information in graphical ways. A graph designed to show a lot of information in one place, the new xamWebBulletGraph™ helps you deliver a clear and concise view of key performance indicators in Silverlight dashboards.

The xamWebChart™ has been enhanced to include chart cross hairs which is a graphical display that helps users clearly see the relationship between points on the graph, and their corresponding X- and/or Y-axis values. Each line can be independently styled to have the line style (solid, dashed, dotted, etc.), thickness and color you want.

Quickly Achieve Rich, Advanced Silverlight Data Visualization at a Very Low Price
For only $595, 445 EUR, 385 GB, NetAdvantage for Silverlight Data Visualization is a comprehensive collection of User Interface Controls to Build Rich Dashboards, Visualize Business Data and Empower Decision Makers. You can create high-end BI applications without writing a lot of code.

Buy Now

Contact Infragistics:

  (800) 231-8588

In Europe (English Speakers):

  +44 (20) 8387 1474

En France (en langue française):

  0800 667 307

Für Deutschland (Deutscher Sprecher):

   0800 368 6381

In India:

+91 (80) 6785 1111

Continue reading »

String =”” vs String.Empty

Here's a curious program fragment:

object obj = "Int32";
string str1 = "Int32";
string str2 = typeof(int).Name;
Console.WriteLine(obj == str1); // true
Console.WriteLine(str1 == str2); // true
Console.WriteLine(obj == str2); // false !?

Surely if A equals B, and B equals C, then A equals C; that's the transitive property of equality. It appears to have been thoroughly violated here.

Well, first off, though the transitive property is desirable, this is just one of many situations in which equality is intransitive in C#. You shouldn't rely upon transitivity in general, though of course there are many specific cases where it is valid. As an exercise, you might want to see how many other intransitivities you can come up with. Post 'em in the comments; I'd love to see what obscure ones you can come up with. (Incidentally, one of the interview questions I got when applying for this team was to invent a performant algorithm for determining intransitivities in a simplified version of the 'better method' algorithm.) Continue

Continue reading »

Gene Expression Programming (GEP) in C# and .NET

In the past we explored ways of using Genetic Algorithms (GA) to solve problems with a string of numbers that represent numbers. For example, we used genetic algorithms in our MasterMind game as a computer player for solving the hidden color combination where each color was represented by an integer. Gene Expression programming (GEP) is also a subset of Genetic Algorithms, except it uses genomes whose strings of numbers represent symbols.  The string of symbols can further represent equations, grammars, or logical mappings.  The genome can be mapped to a binary tree that you can walk along the nodes to evaluate the equation.  This is an extraordinarily powerful technique because now you are not mapping a GA to hard values, but to general symbols.

Figure 1 - Quadratic Equation represented in a symbolic tree expression

Let's give an example of what we mean.  Lets let the value 0 represent the variable a,  1 represent multiplication, and 2 represent +.  So the string of numbers below:Continue

Continue reading »

Beautiful post on Code Contracts

Introduction

Code contracts allow one to specify the behavior of an algorithm by explicitly adhering to a well defined contract. Commonly, these contracts are in the form of pre- and post-conditions. Further, one can also specify behavioral contracts for a type in the form of a type invariant. For now you need not worry about how such contracts can be defined (we will discuss that later), however, it is important to understand some of the benefits of using code contracts, these include:

  • provide high-level behavioral description of an algorithm;
  • force programmers to be explicit about the behavior of their algorithms;
  • help catch bugs early.

For many readers code contracts will not be a new concept, most likely you will have seen them before in texts on data structures and algorithms [2]. However, most readers will be new to applying similar concepts to their actual codebase.

In this article we will cover code contracts using Spec#, the code contracts library shipping with .NET 4.0, and finish with a lo ok at VC++ source code annotations. Continue

Continue reading »

Innovation/Showcase on Windows 7

Windows 7 is what a modern managed desktop should be. It helps us increase productivity, reduce costs, and provide enhanced desktop security”

- Doug Miller, Practice Architect, CDW

Join us at Microsoft’s Windows 7 Innovation Showcase where you can explore how Windows 7 delivers ‘the new efficiency” by growing your business through cost savings, productivity and innovation!  Register today to see what Innovation can do for you!

Areas covered include:

· Address top seven business values of Windows 7 that enterprise customers care about

· Take advantage of the advancements in the Windows 7 user experience to make your application more compelling to users

and your users more productive in the tasks they care about

· Dive into the business scenarios and technical details of Multi-Touch and the Sensor and Location API on Windows 7

· Ease of Migrating to Windows 7

City/State

Date

Microsoft Location

Registration Link

Farmington, CT

October 15, 2009

Farmington Directions

Farmington Registration Link

Waltham, MA

October 20, 2009

Waltham Directions

Waltham Registration Link

Reston, VA

October 20, 2009

Reston Directions

Reston Registration Link

New York, NY

October 21, 2009

New York Directions

NY Registration Link

Rochester, NY

October 22, 2009

Rochester Directions

Rochester Registration Link

Alpharetta, GA

October 22, 2009

Alpharetta Directions

Alpharetta Registration Link

Ft Lauderdale, FL

October 26, 2009

Ft Lauderdale Directions

Ft Lauderdale Registration Link

Malvern, PA

October 29, 2009

Malvern Directions

Malvern Registration Link

Continue reading »

Windows Mobile development in VS2010

With the release yesterday of Windows Phone (press release , blog post , training , launch site) and with the upcoming release of Visual Studio 2010 Beta2, we are starting to see the question again: "where is the smart device development support in Visual Studio 2010?".
This question was asked a lot during the VS2010 Beta1 timeframe and the answer remains the same: Mobile Development Tools are now aligned to the mobile platform releases and are hence decoupled from Visual Studio releases, so I personally guess we should see tool support in VS2010 when a new mobile platform is released. For now, stick with VS2008 for device development needs (official statement) and keep an eye on the Windows Mobile Development Center.

Continue reading »

Fault Tolerance in Windows Azure

Ever since we announced Windows Azure there has been speculation about how reliable it will be and how we will insure that your application will continue to operate reliably in the face of changes to your application or the underlying software.  Although we did say that we use multiple role instances and update domains to insure that your allocation has no single point of failure it was not until recently that we exposed more of the details of how this will work. 

Now we have published the documentation on how this will work here and there is an excellent blog post here that explains the process in more detail.

There is also a new Deployment and Management API documented here which can be used as an alternative to using the portal for many deployment and management operations. But that will have to wait for another blog post.

Continue reading »

.NET Rx Framework: Asynchronous Development with LINQ over Events

Ever looking for a new, generic, way to incorporate asynchronous programming capabilities into your applications? Ever wish you could just write a LINQ query over your application events and just create reaction methods for when an event occurs?

Well now you can with the .NET Rx Framework - which provides a new look at asynchronous programming.  It’s really just LINQ over IEnumerable…More

Continue reading »

Backup and Restore SQL Server databases programmatically with SMO

In my last set of tips, I discussed SMO at a basic level. In this tip I am going to provide examples to SQL Server Database Administrators on how to backup and restore SQL Server databases with SMO. I will start with how you can issue different types (Full, Differential and Log) of backups with SMO and how to restore them when required programmatically using SMO.... continue

Continue reading »

NetAdvantage® for Win Client 2009 Vol. 2 Released

This month, Infragistics released NetAdvantage for .NET 2009 Volume 2: Win Client. Comprised of WPF and Windows Forms toolsets, this package includes complete feature sets and in-depth capabilities to arm developers with all the controls and components needed to create powerful user interfaces that deliver the 'WOW-factor' to end users. The new offering promises a high-performance WPF data grid, optimized for millions of rows of data; the ability to export data from WPF Data Presenter to .XLS/.XLSX; a new WinTilePanel™ that allows end users to easily customize their screen; and more. For a complete list of new WPF features, visit www.infragistics.com/wpfwhatsnew. For a complete list of new Windows Forms features, visit www.infragistics.com/wfwhatsnew.

Continue reading »

Belgium ReMix and Architect Forum: 10 Years of Framework Design Guidelines

I had a great time at ReMix and the Architect Forum in Belgium.    I had a chance to cover build an application end-to-end with Silverlight 3 and RIA Services which was basically the this application.    At the Architect Forum I had a chance to talk in more depth about the general application pattern we are thinking about for RIA applications.  I shameless stole some slides from Nikhil Kothari for this one. More

Continue reading »

C#: Connect To Oracle Database With No Oracle Client Install Needed (Winform DataGridView Loading Example)

This article demonstrates in a step by step fashion the easiest, and frankly fastest way to connect to an Oracle database using C#. The goal is to not have to install the huge Oracle Client either on the development machine nor the target machine the code will run on. This example creates a winform and inserts the content into a DataGridView for quick viewing. The code below is base on .Net 3.5.

Steps
  1. Oracle has an Oracle Database Instant Client which is a set of Dlls which can be XCopy installed onto the development and target PC to allow Oracle database access without installing the full Oracle client. In future steps we will include those target Dlls to be copied to the target output folder with the executable. Download the appropriate package and add Dlls to a folder of your choice on the PC.
  2. In Visual Studio create a Winform Project. From the Solution Explorer and within the project create a subfolder named Oracle Dlls.
  3. Add the reference to the project of System.Data.OracleClient to the project..
  4. In Studio again select the folder created in step 2 and select Add->Existing Item,and iInsert all the top level Oracle Dlls from step one into the the directory into the folder; unless for some reason you need previous versions all those dlls at the top level should be fine.  More
Continue reading »

Sneak Peek: ASP.NET Time Edit Control

Check out this sneak peek video on the upcoming ASP.NET Time Edit control, the ASPxTimeEdit. The ASPxTimeEdit gives your websites an editor with a slick user interface to edit date and time values. The control looks and behaves a lot like our ASP.NET spin edit control. This is a great for your end users because theyre already familiar with how to use the up or down buttons of the control. And with keyboard support, there are now 3 different ways to edit the values: Type the date and time into...

Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

Continue reading »

SourceOffSite 4.1 Synchronization Issues with VSS Server

This post is regarding the problems synchronization/refreshing problems with SourceOffSite version 4.1 to connect to VSS Server.

Problem Description

Sometimes SourceOffSite is not refreshing the version of some files.

ex: Latest version of File1 is 10 chcked in by VSS client. Sourceoffsite shows version 9 as latest though tree has been re-freshed.

so when we use Show Differences it compares local copy with version 9 rather comparing with version 10 as it is latest.

Query1: any hotfix for SourceOffSite 4.1 to resolve this issue?
Query2: is this issue still there in SourceOffSite version 6?

Solution:
We are investigating the issue and try to post the solution soon.

Thanks,
Dutt

Continue reading »

ASP.NET Tutorial for Traditional ASP Developers

All too often, developers spend considerable time working with a single technology. They become deeply immersed in the nuances of building solutions with it, but unable to find time to keep up with other technologies. When they have a chance to look into an alternate technology, it may be well past the 1.0 release. This can make it very difficult to find relevant learning content that is both current and inclusive of previous versions. This course is designed to help ASP developers learn the nuances of building web applications with ASP.NET, without presuming existing knowledge of earlier versions of the technology. Syntax in ASP.NET is compared to its usage in ASP, to guide the developer through similar concepts in ASP.NET. Labs offer the developer a chance to work in hands-on scenarios with ASP.NET. This track should enable ASP developers to quickly learn the relevant core skills of ASP.NET, and provide foundational knowledge to get started down the path of building web applications with Visual Studio.

Level 1: Developing Web Applications – Tooling
In this module, we will discuss the development tools that will help you quickly get started building ASP.NET applications.

Level 2: ASP.NET Syntax for ASP Developers
In this module, we will compare ASP.NET syntax with ASP syntax, so that ASP developers can easily see how to do things in ASP.NET that they are familiar with from an ASP perspective.

Level 3: Programming WebForms
In this module, we’ll introduce the concept of Web Forms, and how you can use them to group controls as you build your web site.

Level 4: Web Configuration
Many web sites benefit from settings that span multiple pages within the site. This module will introduce web configuration files, which are a great way to store this type of information.

Level 5: Programming Web Events
Web events are a way to notify your application when some specific item of interest occurs in your web application. This topic will introduce how you can use web events to make your ASP.NET applications more responsive.

Level 6: State Management
As visitors move through your web application, it often makes sense to track data on the server, so the application can quickly access information to give the user a better experience. This module will discuss various aspects of state management, and optimal times to choose each technique. more

Continue reading »

MSDN Flash India - Virtual TechDays is Back!

As we begin a new fiscal year in Microsoft, I wanted to share with you the key activities that will provide us with an opportunity to interact with you. Every quarter, we will bring to you the 2-day Virtual TechDays readiness-focused event – the first one being planned for the second half of August. Tell us what you would like the Microsoft technology experts to talk about during this event by visiting; www.virtualtechdays.com TODAY.

We will also be launching the next version of Windows very soon – along with a host of other products like Silverlight 3 (July 10, 2009), Expression 3 and Visual Studio 2010, among others. While you can interact with us during the series of product launch focused events, I would urge you to START TRYING the beta versions of the software today and tell us what you think about these next generation of Microsoft technologies.
If you are in an organization which develops software products in the mobile, database and/or web domain, you may find that InnovateOn-India is the one place that offers you everything to help you bring your solution(s) to the market fast. For a free, online, community-based learning opportunity, we are pleased to offer to you the Ramp Up online training platform, where you can avail of extensive training courses across 11 technology tracks.

In addition, we will continue to share with you the latest product updates and technical articles through this fortnightly Newsletter. To ensure that this communiqué provides you with the right set of information, please do write to us on what you think is beneficial to you. We will continue to work with you on an ongoing basis to ensure that the MSDN Flash Newsletter is the single source that you can refer to for any of your Microsoft technology related development needs.

Continue reading »

Code Coverage is not enabled for this test run

Here are the steps to follow if you have problem in checking the "Code Coverage" Results.

Go to the test project in your application.

Open Test-> Edit Test Run Configuration

1

Go to Code Coverage, and select the dll that have to run for code coverage

2.

This settings should solve the problem.

Code Coverage results are not displayed in “Debug” mode.

Change it to “Release” mode and run the test project. The Code Coverage results should be displayed.

Continue reading »

Culture Information in Sting.Compare for Globalisation

We all know that String.Compare can be used to compare two strings. One of the parameter for this Compare method allows us to compare two string in different culture. String.Compare("eg1", "eg1", true, new System.Globalization.CultureInfo("tr-TR")); Continue reading »

Difference between Build Solution and Rebuild Solution option in VS.Net

VisualStudio.Net provides us with two options for compiling and creating builds for our application. They are Build Solution and Rebuild Solution options which can be accessed from the Build menu. The differences between these two options are

1. The Build Solution option compiles only those project files and components that have changed since the last build. For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Build Solution option after making some changes to Proj1 only Proj1 will be compiled and built but Proj2 will not be compiled since there are no changes to it.

2. On the other hand the Rebuild Solution option builds all project files and components irrespective of the changes made to them.  For example consider that you have two projects Proj1 and Proj2 in your solution MySolution. When you compile the solution using Rebuild Solution option after making some changes to Proj1, both Proj1 and Proj2 will be compiled and built even though there are no changes made to Proj2.

Continue reading »

Clean Solution option in Visual Studio to handle unexpected errors in C#.NET applications

When we encounter unexpected build errors for Post Build and Prebuild commands.

It is always advisable to do the following:

1. Remove..%temp% files

2. Use “Clean Solution”

3. Building the solution starting from the most independent project..to the most dependant project

4. Rebuild the entire solution

Continue reading »

Publish articles to Blog using Microsoft Word 2007

Yes this is true!!! Wondering how? I will walk you through this.

Open word –> File –> New –> Other Documents –> Select “New Blog Post” –> Select “Template”

image

Register the blog details

image

Select the blog provider

image

Give the account details.

image

Here you go...Happy Blogging!

More details at

Continue reading »

Microsoft Web Platform Installer 2.0 Beta

This is a free tool available for download here

The Microsoft Web PI makes facilitates the Web platform for development and application hosting on Windows. It works with Windows XP, Vista, Windows 7, Windows Server 2003 and Windows Server 2008. The Web Platform Installer provides an easy way to quickly install and customize all the software you need to develop or deploy web sites and applications on a Windows machine.  The tool automatically analyses what your system currently has installed, allows you to easily mark additional components to be added, and then automates installing them all at once when you click the install button.

Continue reading »

Translate text or webpage using YAHOO or GOOGLE

Here are two links that provide the facility to translate text or a given webpage to YAHOO or GOOGLE

http://babelfish.yahoo.com/

http://translate.google.com/#

Continue reading »

Scroll to a row in Component One Flexgrid

Following code snippet scrolls to a row in flexgrid progamattically

Grid.ShowCell(Grid.RowSel,0) ;

Continue reading »

Command to delete files

 

Type the following to delete a file named “a.txt”

DELETE a.txt

To delete all files with extension “.txt”

DELETE *.txt /q

/q make sures that the files are silently deleted

To check if the file exists and delete

if exists *.txt delete *.txt /q

Continue reading »

Dot A 6.60 is released!!!!!

DotA 6.60 has been released and it is now available for free download.

Continue reading »

27 New Features of .NET Framework 4.0

Also Read
1. 22 New Features of Visual Studio 2008 for .NET Professionals
2. IIS 7.0 New features
3. Dead-end for Microsoft ?
4. Visual studio Team System vs Professional and All Versions Comparison

This post contains information about key features and improvements in the .NET Framework version 4 Beta 1. This topic does not provide comprehensive information about all new features and is subject to change.

The new features and improvements are described in the following sections:

Programming Languages
Common Language Runtime (CLR)
Base Class Libraries
Networking
Web
Client
Data
Communications
Workflow

Common Language Runtime (CLR)

The following sections describe new features in security, parallel computing, performance and diagnostics, dynamic language runtime, and other CLR-related technologies.

Security

The .NET Framework 4 Beta 1 provides simplifications, improvements, and expanded capabilities in the security model. For more information, see Security Changes in the .NET Framework 4.

Parallel Computing

The .NET Framework 4 Beta 1 introduces a new programming model for writing multithreaded and asynchronous code that greatly simplifies the work of application and library developers. The new model enables developers to write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool. The new Parallel and Task classes, and other related types, support this new model. Parallel LINQ (PLINQ), which is a parallel implementation of LINQ to Objects, enables similar functionality through declarative syntax. For more information, see Parallel Programming in the .NET Framework.

Performance and Diagnostics

In addition to the following features, the .NET Framework 4 Beta 1 provides improvements in startup time, working set sizes, and faster performance for multithreaded applications.

ETW Events

You can now access the Event Tracing for Windows (ETW) events for diagnostic purposes to improve performance. For more information, see the following topics:

Performance Monitor (Perfmon.exe) now enables you to disambiguate multiple applications that use the same name and multiple versions of the common language runtime loaded by a single process. This requires a simple registry modification. For more information, see Performance Counters and In-Process Side-By-Side Applications.

Code Contracts

Code contracts let you specify contractual information that is not represented by a method's or type's signature alone. The new System.Diagnostics.Contracts namespace contains classes that provide a language-neutral way to express coding assumptions in the form of pre-conditions, post-conditions, and object invariants. The contracts improve testing with run-time checking, enable static contract verification, and documentation generation.

The applicable scenarios include the following:

  • Perform static bug finding, which enables some bugs to be found without executing the code.

  • Create guidance for automated testing tools to enhance test coverage.

  • Create a standard notation for code behavior, which provides more information for documentation.

Lazy Initialiation

With lazy initialization, the memory for an object is not allocated until it is needed. Lazy initialization can improve performance by spreading object allocations evenly across the lifetime of a program. You can enable lazy initialization for any custom type by wrapping the type inside a System..::.Lazy<(Of <(T>)>) class.

Dynamic Language Runtime

The dynamic language runtime (DLR) is a new runtime environment that adds a set of services for dynamic languages to the CLR. The DLR makes it easier to develop dynamic languages to run on the .NET Framework and to add dynamic features to statically typed languages. To support the DLR, the new System.Dynamic namespace is added to the .NET Framework. In addition, several new classes that support the .NET Framework infrastructure are added to the System.Runtime.CompilerServices namespace. For more information, see Dynamic Language Runtime Overview.

In-Process Side-by-Side Execution

In-process side-by-side hosting enables an application to load and activate multiple versions of the common language runtime (CLR) in the same process. For example, you can run applications that are based on the .NET Framework 2.0 SP1 and applications that are based on .NET Framework 4 Beta 1 in the same process. Older components continue to use the same CLR version, and new components use the new CLR version. For more information, see Hosting Changes in the .NET Framework 4.

Interoperability

New interoperability features and improvements include the following:

  • You no longer have to use primary interop assemblies (PIAs). Compilers embed the parts of the interop assemblies that the add-ins actually use, and type safety is ensured by the common language runtime.

  • You can use the System.Runtime.InteropServices..::.ICustomQueryInterface interface to create a customized, managed code implementation of the IUnknown::QueryInterface method. Applications can use the customized implementation to return a specific interface (except IUnknown) for a particular interface ID.

Profiling

In the .NET Framework 4 Beta 1, you can attach profilers to a running process at any point, perform the requested profiling tasks, and then detach. For more information, see the [IClrProfiling::AttachProfiler]IClrProfiling Interface::AttachProfiler Method method.

Garbage Collection

The .NET Framework 4 Beta 1 provides background garbage collection; for more information, see the entry So, what’s new in the CLR 4.0 GC? in the CLR Garbage Collector blog. 

Covariance and Contravariance

Several generic interfaces and delegates now support covariance and contravariance. For more information, see Covariance and Contravariance in the Common Language Runtime.

Base Class Libraries

The following sections describe new features in collections and data structures, exception handling, I/O, reflection, threading, and Windows registry.

Collections and Data Structures

Enhancements in this area include the new System.Numerics..::.BigInteger structure, the System.Collections.Generic..::.SortedSet<(Of <(T>)>) generic class, and tuples.

BigInteger

The new System.Numerics..::.BigInteger structure is an arbitrary-precision integer data type that supports all the standard integer operations, including bit manipulation. It can be used from any .NET Framework language. In addition, some of the new .NET Framework languages (such as F# and IronPython) have built-in support for this structure.

SortedSet Generic Class

The new System.Collections.Generic..::.SortedSet<(Of <(T>)>) class provides a self-balancing tree that maintains data in sorted order after insertions, deletions, and searches. This class implements the new System.Collections.Generic..::.ISet<(Of <(T>)>) interface.

The System.Collections.Generic..::.HashSet<(Of <(T>)>) class also implements the ISet<(Of <(T>)>) interface.

Tuples

A tuple is a simple generic data structure that holds an ordered set of items of heterogeneous types. Tuples are supported natively in languages such as F# and IronPython, but are also easy to use from any .NET Framework language such as C# and Visual Basic. The ..NET Framework 4 Beta 1 adds eight new generic tuple classes, and also a Tuple class that contains static factory methods for creating tuples.

Exceptions Handling

The .NET Framework 4 Beta 1 class library contains the new System.Runtime.ExceptionServices namespace, and adds the ability to handle corrupted state exceptions. 

Corrupted State Exceptions

The CLR no longer delivers corrupted state exceptions that occur in the operating system to be handled by managed code, unless you apply the HandleProcessCorruptedStateExceptionsAttribute attribute to the method that handles the corrupted state exception.

Alternatively, you can add the following setting to an application's configuration file:

legacyCorruptedStateExceptionsPolicy=true

I/O

The key new features in I/O are efficient file enumerations, memory-mapped files, and improvements in isolated storage and compression.

File System Enumeration Improvements

New enumeration methods in the Directory and DirectoryInfo classes return IEnumerable<(Of <(T>)>) collections instead of arrays. These methods are more efficient than the array-based methods, because they do not have to allocate a (potentially large) array and you can access the first results immediately instead of waiting for the complete enumeration to occur.

There are also new methods in the static File class that read and write lines from files by using IEnumerable<(Of <(T>)>) collections. These methods are useful in LINQ scenarios where you may want to quickly and efficiently query the contents of a text file and write out the results to a log file without allocating any arrays.

Memory-Mapped Files

The new System.IO.MemoryMappedFiles namespace provides memory mapping functionality, which is available in Windows. You can use memory-mapped files to edit very large files and to create shared memory for inter-process communication. The new System.IO..::.UnmanagedMemoryAccessor class enables random access to unmanaged memory, similar to how System.IO..::.UnmanagedMemoryStream enables sequential access to unmanaged memory.

Isolated Storage Improvements

Partial-trust applications, such as Windows Presentation Framework (WPF) browser applications (XBAPs) and ClickOnce partial-trust applications, now have the same capabilities in the .NET Framework as they do in Silverlight. The default quota size is doubled, and applications can prompt the user to approve or reject a request to increase the quota. The System.IO.IsolatedStorage..::.IsolatedStorageFile class contains new members to manage the quota and to make working with files and directories easier.

Compression Improvements

The compression algorithms for the System.IO.Compression..::.DeflateStream and System.IO.Compression..::.GZipStream classes have improved so that data that is already compressed is no longer inflated. This results in much better compression ratios. Also, the 4-gigabyte size restriction for compressing streams has been removed.

Reflection

The .NET Framework 4 Beta 1 provides the capability to monitor the performance of your application domains.

Application Domain Resource Monitoring

Until now, there has been no way to determine whether a particular application domain is affecting other application domains, because the operating system APIs and tools, such as the Windows Task Manager, were precise only to the process level. Starting with the .NET Framework 4 Beta 1, you can get processor usage and memory usage estimates per application domain.

Application domain resource monitoring is available through the managed AppDomain class, native hosting APIs, and event tracing for Windows (ETW). When this feature has been enabled, it collects statistics on all application domains in the process for the life of the process.

For more information, see the <appDomainResourceMonitoring> Element, and the following properties in the AppDomain class:

64-bit View and Other Registry Improvements

Windows registry improvements include the following:

Threading

General threading improvements include the following:

  • The new Monitor..::.Enter(Object, Boolean%) method overload takes a Boolean reference and atomically sets it to true only if the monitor is successfully entered.

  • You can use the Thread..::.Yield method to have the calling thread yield execution to another thread that is ready to run on the current processor.

The following sections describe new threading features.

Unified Model for Cancellation

The .NET Framework 4 Beta 1 provides a new unified model for cancellation of asynchronous operations. The new System.Threading..::.CancellationTokenSource class is used to create a CancellationToken that may be passed to any number of operations on multiple threads. By calling Cancel()()() on the token source object, the IsCancellationRequested property on the token is set to true and the token’s wait handle is signaled, at which time any registered actions with the token are invoked. Any object that has a reference to that token can monitor the value of that property and respond as appropriate.

Thread-Safe Collection Classes

The new System.Collections.Concurrent namespace introduces several new thread-safe collection classes that provide lock-free access to items whenever useful, and fine-grained locking when locks are appropriate. The use of these classes in multi-threaded scenarios should improve performance over collection types such as ArrayList, and List<(Of <(T>)>).

Synchronization Primitives

New synchronization primitives in the System.Threading namespace enable fine-grained concurrency and faster performance by avoiding expensive locking mechanisms. The Barrier class enables multiple threads to work on an algorithm cooperatively by providing a point at which each task can signal its arrival and then block until the other participants in the barrier have arrived. The CountdownEvent class simplifies fork and join scenarios by providing an easy rendezvous mechanism. The ManualResetEventSlim class is a lock-free synchronization primitive similar to the ManualResetEvent class. ManualResetEventSlim is lighter weight but can only be used for intra-process communication. The SemaphoreSlim class is a lightweight synchronization primitive that limits the number of threads that can access a resource or a pool of resources at the same time; it can be used only for intra-process communication. The SpinLock class is a mutual exclusion lock primitive that causes the thread that is trying to acquire the lock to wait in a loop, or spin, until the lock becomes available. The SpinWait class is a small, lightweight type that will spin for a time and eventually put the thread into a wait state if the spin count is exceeded.

Networking

Enhancements have been made that affect how integrated Windows authentication is handled by the HttpWebRequest, HttpListener, SmtpClient, SslStream, NegotiateStream, and related classes in the System.Net and related namespaces. Support was added for extended protection to enhance security. The changes to support extended protection are available only for applications on Windows 7. The extended protection features are not available on earlier versions of Windows. For more information, seeIntegrated Windows Authentication with Extended Protection.

Web

The following sections describe new features in ASP.NET core services, Web Forms, Dynamic Data, and Visual Web Developer.

ASP.NET Core Services

ASP.NET introduces several features that improve core ASP.NET services, Web Forms, Dynamic Data, and Visual Web Developer. For more information, see What’s New in ASP.NET and Web Development.

ASP.NET Web Forms

Web Forms has been a core feature in ASP.NET since the release of ASP.NET 1.0. Many enhancements have been made in this area for ASP.NET 4, including the following:

  • The ability to set meta tags.

  • More control over view state.

  • Easier ways to work with browser capabilities.

  • Support for using ASP.NET routing with Web Forms.

  • More control over generated IDs.

  • The ability to persist selected rows in data controls.

  • More control over rendered HTML in the FormView and ListView controls.

  • Filtering support for data source controls.

Dynamic Data

For ASP.NET 4, Dynamic Data has been enhanced to give developers even more power for quickly building data-driven Web sites. This includes the following:

  • Automatic validation that is based on constraints defined in the data model.

  • The ability to easily change the markup that is generated for fields in the GridView and DetailsView controls by using field templates that are part of your Dynamic Data project.

Visual Web Developer Enhancements

The Web page designer in Visual Studio 2010 has been enhanced for better CSS compatibility, includes additional support for HTML and ASP.NET markup code examples, and features a redesigned version of IntelliSense for JScript. In addition, two new deployment features called Web packaging and One-Click Publish make deploying Web applications easier.

Client

The following sections describe new features in Windows Presentation Foundation (WPF) and Managed Extensibility Framework (MEF).

Windows Presentation Foundation

In the .NET Framework 4 Beta 1, Windows Presentation Foundation (WPF) contains changes and improvements in many areas. This includes controls, graphics, and XAML.

For more information, see What's New in Windows Presentation Foundation Version 4.

Managed Extensibility Framework

The Managed Extensibility Framework (MEF) is a new library in the .NET Framework 4 Beta 1 that enables you to build extensible and composable applications. MEF enables application developers to specify points where an application can be extended, expose services to offer to other extensible applications, and create parts for consumption by extensible applications. It also enables easy discoverability of available parts based on metadata, without the need to load the assemblies for the parts.

For more information, see Managed Extensibility Framework. For a list of the MEF types, see the System.ComponentModel.Composition namespace.

Data

For more information, see What's New in ADO.NET.

Expression Trees

Expression trees are extended with new types that represent control flow, for example, LoopExpression and TryExpression. These new types are used by the dynamic language runtime (DLR) and not used by LINQ.

Communications

Windows Communication Foundation (WCF) provides the new features and enhancements described in the following sections.

Support for WS-Discovery

The Service Discovery feature enables client applications to dynamically discover service addresses at run time in an interoperable way using WS-Discovery. The WS-Discovery specification outlines the message-exchange patterns (MEPs) required for performing lightweight discovery of services, both by multicast (ad hoc) and unicast (using a network resource).

Standard Endpoints

Standard endpoints are pre-defined endpoints that have one or more of their properties (address, binding, contract) fixed. For example, all metadata exchange endpoints specify IMetadataExchange as their contract, so there is no need for a developer to have to specify the contract. Therefore, the standard MEX endpoint has a fixed IMetadataExchange contract.

Workflow Services

With the introduction of a set of messaging activities, it is easier than ever to implement workflows that send and receive data. These messaging activities enable you to model complex message exchange patterns that go outside the traditional send/receive or RPC-style method invocation.

Workflow

Windows Workflow Foundation (WF) in .NET Framework 4 Beta 1 changes several development paradigms from earlier versions. Workflows are now easier to create, execute, and maintain.

Workflow Activity Model

The activity is now the base unit of creating a workflow, instead of using the SequentialWorkflowActivity or StateMachineWorkflowActivity classes. The WorkflowElement class provides the base abstraction of workflow behavior. Activity authors implement WorkflowElement objects imperatively when they have to use the breadth of the runtime. The Activity class is a data-driven WorkflowElement object where activity authors express new behaviors declaratively in terms of other activity objects.

Richer Composite Activity Options

The Flowchart class is a powerful new control flow activity that enables authors to construct process flows more naturally. Procedural workflows benefit from new flow-control activities that model traditional flow-control structures, such as TryCatch and Switch.

Expanded Built-in Activity Library

New features of the activity library include the following:

  • Data access activities for interacting with ODBC data sources.

  • New flow control activities such as DoWhile, ForEach, and ParallelForEach.

  • Activities for interacting with PowerShell and SharePoint.

Enhanced Persistence and Unloading

Workflow state data can be explicitly persisted by using the Persist activity. A host can persist a WorkflowInstance without unloading it. A workflow can specify no-persist zones when working with data that cannot be persisted so that persistence is postponed until the no-persist zone exits.

Improved Ability to Extend WF Designer Experience

The new WF Designer is built on Windows Presentation Foundation (WPF) and provides an easier model to use when rehosting the WF Designer outside Visual Studio. It also provides easier mechanisms for creating custom activity designers. For more information, see Extending the Workflow Designer.

Continue reading »

Visual studio Team System vs Professional and All Versions Comparison

Continue reading »

Microsoft “Kumo” or “Bing” Search

 

Microsoft is ready to release a new internet search engine named “Kumo”

Read more at:Kumo Sneak  Peeak

Continue reading »

Visual Studio 2010 New features : Top 5 features

Microsoft announced the .NET Framework 4.0 on 29 September 2008.
The Public Beta was released on 20 May 2009.[3]

Web Development

    JavaScript IntelliSense® is supported in visual studio editor
    One Click Deployment
    Full fledged support for Silverlight to provider rich internet applications

Cloud Development

    Windows Azure™ Tools in Visual Studio 2010 developers can build, debug and deploy services and applications for Microsoft's new cloud platform.

More Databases

    In addition to SQL Server developers will be able to work with IBM DB2 and Oracle databases

Support for developers

    Contextual support helps developers better understand existing code – and write new code more efficiently
    Enable Office tools to make your solutions more flexible and productive for specific needs

    Call Hierarchy enables you to navigate through your code by displaying the following:
        All calls to and from a selected method, property, or constructor
        All implementations of an interface member
        All overrides of a virtual or abstract member
    This enables you to better understand how code flows and to evaluate the effects of changes to code.
    Highlighting References
        This enhancement enables you to highlight all instances of a particular symbol
        in a document by clicking that symbol.
        To navigate between references, you can use CTRL+SHIFT+DOWN ARROW or CTRL+SHIFT+UP ARROW.


Dynamic Support
    Visual C# 2010 provides support for late binding to dynamic types by introducing a new type, dynamic.

Better USER Experience
    Clear UI Organization
    Reduced clutter and complexity
    Improved editor
    Better support for floating documents and windows
    Enhanced document targeting
    Focused animations for action feedback

Parallel Programming
    Parallel programming is simplified, so both native- and managed-code developers can  productively build innovative applications.
    IDE support for parallel programming

Full support for IronPython, IronRuby, and F#.[32]

Continue reading »

Cloud Computing and sand: Google vs Microsoft

Robin Harris: An independent study finds that on-site Microsoft apps cost 20x in capital dollars and 5x-6x more on a three-year TCO basis than Google Apps. How can Microsoft compete? Google will, of course, blow their huge cost advantage.

Model assumptions

Daily volume of new email: 100 MB

Local copy of email: None

Archiving: None

Cost per hour of downtime: $500

Cost per GB of data loss: $5,000

Network outage: Lose email access

Office apps assumptions:

Daily volume of new documents: 50 MB

Local copies of documents: None

Cost per hour of downtime: $250

Cost per GB of data loss: $30,000

Network outage: No application access more

Continue reading »

MS Dos command to copy files from network location

XCOPY Source [Destination] /i

/i says that the destination is a folder.

ROBOCOPY Source [Destination]

Refer: http://en.wikipedia.org/wiki/Robocopy

Continue reading »

Setup project for Vista in C#.NET: put "Run as administrator" in the Shortcuts

“Run as Administrator” option is not provided by default in deployment wizard.

In order to provide this shortcut for user one has to modify the Property table of the MSI file and add case-sensitive DISABLEADVTSHORTCUTS with a value of 1.

This can be done manually opening the MSI file.

We can achieve the same by using Orca MSI package editor. This editor helps us to modify the settings of MSI file. Open the msi file you want to modify with Orca package and set the DISABLEADVTSHORTCUTS to value 1.

Download Orca from the Windows Installer SDK: http://download.microsoft.com/download/platformsdk/sdk/update/win98mexp/en-us/3790.0/msisdk-common.3.0.cab (open the CAB and rename the Orca-file to Orca.MSI to install it.

http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/fc52d8bf-118e-47e2-9d32-08fdf72861d5/

Continue reading »

Restore Sql database using sqlcmd and batch file

RESTORE DATABASE TESTDB FROM DISK = 'C:\TESTDB\TESTDB.BAK' WITH REPLACE

This command restores the database from the local drive to the sqlserver.

Put these lines in “RestoreDB.bat” file

@echo off
sqlcmd -E -S .\DA -i RestoreDB.sql -o RestoreDB.log
@echo off
pause

Place the following code in “RestoreDB.sql”

USE MASTER
RESTORE DATABASE TESTDB FROM DISK = 'C:\TESTDB\TESTDB.BAK' WITH REPLACE

Double click the RestoreDB.bat file to restores the dbs from local drive.

Continue reading »

Unable to view the templates while adding new file or projects in Visual Studio 2005 or Visual Studio 2008. Empty template folders.

Solution:

1. Close Visual Studio.  Open a new ‘Visual Studio 2005 Command Prompt’ as an Administrator.

Once there type the following command at the prompt, press enter and wait…devenv /installvstemplates

2. Open the Options window in Visual Studio.
Select Projects and Solutions.
Change the Visual Studio user item template location to the folder where the standard templates are located ( C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ItemTemplates).

Change the Visual Studio user project template location to the folder where the standard templates are located ( C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates).

clip_image002

Continue reading »

VS Tools-Options : Check-in items

If you have “Check out automatically” in “Checked-in items” settings in VS Tools-Options, please switch them to “Prompt for check out”/”Prompt for exclusive checkouts” (see images below). This is to prevent TFS/SCSF behavior of automatic solution file checkout.

Once you make the change, you will get dialog box (twice) asking to check out the solution file whenever you try to open a VS solution. Unless you actually need to change the solution file, click “Cancel” both times.

clip_image001

clip_image001[4]

Continue reading »

Outlining Keyboard shortcuts for Visual Studio .NET.

 

CTRL+MM (that's two key presses!) - collapse/open the current parent region


CTRL+ML - Collapse/Open all regions in document recursively (meaning you might get only one line in the document - one big namespace region which is collapsed or you'll see the entire page code uncollapsed


CTRL+MO - Collapse all regions not recursively.

Continue reading »

Sorting a collection using IComparer

Place this code in the collection.

public class EmployeeList

{

       public void Sort()
       {
           base.InnerList.Sort(new DateComparer());
       }

}

Create “DateComparer” class which implements IComparer and provides methods to compare to objects. This Compare method compares the joining dates of the employees and sorts the list.

/// <summary>
    /// This is for Joiningdate comparision
    /// </summary>
    public class DateComparer : IComparer
    {
        /// <summary>
        /// This method compares Joiningdate
        /// </summary>
        /// <returns>int</returns>
        public int Compare(object LobjEmployeeFirst, object LobjEmployeeSecond)
        {
return -((Employee)LobjEmployeeFirst).JoiningDate.CompareTo(((Employee)LobjEmployeeSecond).JoiningDate);

        }
    }

Continue reading »

CRYSTAL REPORTS 2008 WHAT’S NEW

#   Crystal Report 2008 is for  development ,Designing and  Embedding of reports  into applications  Its a Named user License i.e one computer one license INR 26524+ Taxes per License

# Crystal Reports 2008 Developer Advantage is a runtime license for embedding Crystal Reports runtime engine in applications shared outside your organization, or in commercial applications. Give external users access to professional reporting at no incremental cost, and allow developers to gain flexibility with a royalty free license for deployment anywhere. Get comprehensive licensing and a single reporting solution for.NET or Java developments with Crystal Reports, the leader in reporting for developer applications. From access to virtually any data source, to support for major browsers and operating systems, rely on the technology that powers millions of applications around the world. Its available only in License format - No Media - INR 125000 for Unlimited Runtime License

# Crystal Report Server is For   Production i.e  Publishing & Deployment  and management of Reports in Secure manner with scheduling  & many other Enterprise features  such as    Viewing & Publishing of Multiple reports by end  users  coming from various locations on a singular , secured platform access -  It is   available in  Concurrent Access format + Named user format   & combination of both


Crystal Reports® is an intuitive reporting solution that helps you create flexible, feature-rich, and dependable reports – tightly integrating them into both thick and thin client applications.
CRYSTAL REPORTS 2008
Crystal Reports 2008 provides advanced functionality to help reduce report proliferation and maintenance – increasing visualization flexibility and saving time with highly productive design features.
The following is an overview of the new features in Crystal Reports 2008:
• Advanced information visualization capability
• Improved end user viewing experience
• Enhanced report designer productivity
• New flexible deployment options
• Flexible application integration
• A more streamlined and flexible report designer


Advanced Information Visualization with Flash, Flex and Xcelsius1
• Adobe Flash integration: A wide variety of flexible data presentation options are now available through Flash. Flash (SWF) files can be integrated into your report and report data can be shared with SWF via Flashvars for compelling, interactive, and information-rich reports. The SWF files can be embedded in the report or linked via a website.
1 Flash features are available for viewing in the .NET, Winform and Java DHTML viewers only
• Xcelsius integration: Import Xcelsius-generated SWF files into your report and benefit from improved design-time integration and stunning visualizations. Enhance your reports with what-if analysis models that enable users to make important decisions dynamically, without leaving the report file.
• Adobe Flex integration: Integrate your reports with operational workflows by embedding Adobe Flex (SWF) applications into your reports. Using Adobe Flex Builder you can create any business-user UI to access report data and integrate with external web services. Data in your report can be passed to the Flex application via Flashvars, making it easy to create a flexible UI even when you don’t have access to your data via web services. The Flex applications can do tasks like database write-back – invoking operational workflows directly within Crystal Reports.
Improved End-User Report Viewing Experience
• Interactive report viewing: On-report sorting, filtering, and report reformatting with the .NET Winform, Java DHTML, and .NET Webform viewers allows users to explore information interactively without re-querying the database. New optional parameters provide for complex user-driven filtering scenarios. Users can answer more business questions with fewer, more flexible reports – significantly reducing Developer and IT support dependency.
• Parameter panel: The report designer and the .NET Winform, Java DHTML, and .NET Webform viewers have a parameter panel so that parameter values can be set without refreshing data. Parameters used are displayed on the panel so that report consumers can easily see them, make changes, and have the new values applied directly to the saved data.
• Flexible pagination: Report designers can customize page size and easily control page breaking after N records/groups. A single report can combine portrait and landscape oriented pages and the white space at the end of groups can be removed by compressing the page footers. Online report consumption is improved because reports are easier to read.
Enhanced Report Designer productivity
• Powerful crosstabs: Summary, variance, and any other customer calculations can be inserted into a crosstab row or a column – especially useful for reports that benefit from a table structure such as financial reports. The crosstab table structure makes reports much faster to build and maintain. This feature also provides powerful benefits to crosstab-based charts since custom formulas in the crosstab can be visualized within the charts.
• Built-in barcode support: Generate barcodes with only a few clicks of the mouse by using the new “turn to barcode” function in the context menu. Easily convert fields to Code39 barcodes without any coding or extra steps. Additional barcode fonts are available from third-party vendors.
• Enhanced designer features: Report designer will be more productive with features like global formula search, duplicate formula, duplicate running total, auto complete field names, and the Find in Field Explorer feature.
• Hyperlinking wizard2: Report designers will save time by automatically creating the Crystal Reports formula required to invoke a BusinessObjects Enterprise OpenDocument hyperlink.
New Flexible Deployment Options
• Save reports directly to crystalreports.com: Expand your deployment options with on-demand reporting capabilities when you open and save reports directly to
2 Available only with a BusinessObjects Enterprise XI Release 3 server environment
crystalreports.com. This new integration allows you to manage and share your reports securely without dependency on IT.
• Improved XML exporting: Render reports in almost any format and enjoy faster and easier integration with your industry-specific business processes – without any custom coding. The XSLT transformations are embedded into the report file and will be triggered by users from within the viewer when exporting to XML. This provides a powerful, flexible hook for transforming Crystal Reports data and integrating it into other applications.
• Advanced report publishing2: Also known as report bursting, advanced report publishing is a platform for the mass distribution of personalized content. Multiple reports can be created based on different data sources, combined into one desired file format (such as PDF), loaded with personalized content, and then sent to a dynamic list of recipients – with a single action. The content can be archived, printed, or emailed in separate actions, or simultaneously. This makes scheduling much faster and easier, with the ability to conduct cost effective one-on-one marketing campaigns and other personalized high-volume reporting.
Improved Report Designer
• Single edition: Crystal Reports 2008 comes in a single edition that is the feature equivalent of the old Developer Edition. This single offering provides customers with quick access to the features they need to meet any application and user requirement. Report samples and developer documentation are now a free, optional download.
• Multilingual reporting: Choose the working language you prefer by simply selecting the language packs you wish to use during product installation. Then switch the report designer UI to use any of the installed language packs. The report content locale can also be explicitly set for each report file. This setting controls sorting, grouping and formatting that matches the local language customs and conventions.
• Reduced install footprint: The download size has been reduced to 250MB to provide fast access via the download site. The runtime files included in developer applications are also significantly smaller.
Flexible application integration
• Integrated salesforce.com driver: The salesforce.com driver included with Crystal Reports 2008 allows for easy access to complete customer data – turning it into actionable business information. Reports that use a salesforce.com driver will refresh when deployed to crystalreports.com.
• Enhanced web services data driver: Integration with various web services can be difficult and complex due to a wide variety of implementation types. The new data driver offers additional web access to web services by providing support for RPC encoding of SOAP messages, SSL-secured web servers, as well as a working compatibility with the WS-Security standard. It adapts to custom logon requirements such as email addresses or user/password.
• NET report modification SDK: The Report Application Server SDK is now available for users of CR.NET API without the use of a RAS server. Report modification such as changing / adding / removing database providers, adding / removing / creating report objects, parameters, formulas, and sections can be achieved by accessing the RAS SDK through the CR .NET SDK..
WHAT’S CHANGED
In an effort to improve the Crystal Reports experience, we’ve made some changes to certain components of Crystal Reports 2008:
• Reports samples and sample database: To reduce download time, report samples and the Xtreme sample database are now accessed through separate downloads on the Start Page of Crystal Reports 2008.
• .NET developer SDK documentation, merge modules, and MSI files: .NET developer documentation, merge modules, and MSI files are now accessed through separate downloads on the Start Page of Crystal Reports 2008.
• Report developer component (RDC): The RDC is unsupported in Crystal Reports 2008. Developers wishing to use Crystal Reports in a COM application should use Crystal Reports XI Release 2. The ActiveX viewer remains a fully supported component of Crystal Reports 2008.
• Advanced DHTML viewers: The Advanced DHTML viewers have been removed from Crystal Reports 2008. The improvements to the DHTML viewers make these additional viewers unnecessary.
• Java reporting component (JRC) availability and Java SDK documentation: Java developers now receive the JRC and Java SDK documentation through the free Crystal Reports for Eclipse download. This product will be updated on a separate schedule from Crystal Reports. Visit the start page in Crystal Reports 2008 for more information on updates to Crystal Reports for Eclipse.

For more information visit businessobjects.com

Continue reading »

Tech.Ed 2009 offers more value than ever in so many ways

Tech.Ed-India 2009 is all about getting yourself ready for the next wave of technology innovations and trends. In today’s economic scenario, more than ever before, it has become pertinent that we stay ahead of the curve so as to establish ourselves as the future trend- setters. Tech.Ed-India 2009 – with its offering of sub-events – offers you this opportunity to interact with some of the leading lights in the business and technology space globally, talk to Microsoft product development teams directly, and get in-depth hands-on-trainings and certifications in some of the most coveted and anticipated technologies of our time.

Attend Tech.Ed this year and avail free certification of your choice.

To know more about Tech.Ed India 2009 please visit: www.msteched.in or call: + 918025219657/+919663682120 or email: msteched@endtoend.in

Some key points on Tech.ed India 2009
1. First time in India Steve Ballmer (CEO, Microsoft) will deliver a keynote and a number of Industry luminaries to address the crowd on other two days.
2. 10 parallel focused tracks on Web Development, Cloud Services, SOA, RIA, BI, Tools development, App Development, UC, Virtualization, Windows Server, Windows 7, Infrastructure Management, Database Administration and many more. More than 3 days of hardcore Technical Content which you might not get via Live search.
3. Tracks dedicated for Senior Architects separately and get exclusive time with the Patterns and Practices Teams.
4. Over 110+ in-depth technical sessions for Developers + IT Professional and many more chalk talks as side activities.
5. New to technology? Get access to HOLs on MS technologies through the day on all days of the conference.
6. Get a chance to meet all your local experts from MVPs, RDs, Company CEOs, Microsoft Technology Experts and your peers thorough-out the conference. Have on-spot Community Chalk talks from experts present at the Community booths.
7. Get Certified on ANY MS certification for free at our even right through the day and night.
8. Focused networking opportunities and after-hours fun events and day long interaction window with the Microsoft Product teams from India Development Center (MSIDC).
9. Expo hall with top MS partner vendor solutions and services.
10. Special prizes and giveaways, only for conference attendees. Attend, answer a question or be interactive and get more.
11. Get full-Demo ONLY session for an hour on each of the days.
12. Before Early bird registration ends - Register today and block your seat.

Microsoft Tech.Ed Response Team.

Continue reading »

Converting blob data into a word file C#.NET

Byte[] bytData =null;

//Change the ConnString as per your system.

string constring = @"Data Source=LOCAL;Initial Catalog=DA;Integrated Security=True;"; SqlCommand command = new SqlCommand(@"SELECT BlobData FROM Lib.LibBlob WHERE BlobID='04F24251-AE4C-4FDA-BDB7-0689C9616462'"); command.CommandType = CommandType.Text;

SqlConnection myconn = new SqlConnection(constring);

command.Connection = myconn;

myconn.Open();

SqlDataReader dr = command.ExecuteReader();

while(dr.Read())

{

bytData = (byte[])dr["BlobData"];

}

if (bytData !=null)

{

/*If it is a file other than imagetype change the extension in the filepath accordingly. */ FileStream fs = new FileStream("C:\\Temp\\Test1.doc", FileMode.OpenOrCreate, FileAccess.Write);
      BinaryWriter br = new BinaryWriter(fs);
      br.Write(bytData);
      fs.Dispose();

}

Continue reading »

Converting blob data from sql server to image in C#.NET

Byte[] bytImage=null;

//Change the ConnString as per your system.

string constring = @"Data Source=LOCAL;Initial Catalog=DA;Integrated Security=True;"; SqlCommand command = new SqlCommand(@"SELECT BlobData FROM Lib.LibBlob WHERE BlobID='04F24251-AE4C-4FDA-BDB7-0689C9616462'"); command.CommandType = CommandType.Text;

SqlConnection myconn = new SqlConnection(constring);

command.Connection = myconn;

myconn.Open();

SqlDataReader dr = command.ExecuteReader();

while(dr.Read())

{

bytImage = (byte[])dr["BlobData"];

}

if (bytImage !=null)

{

//saving this to bmp file

MemoryStream ms = new MemoryStream(bytImage);

System.Drawing.Bitmap BMP = new System.Drawing.Bitmap(ms);

BMP.Save("C:\\Temp\\Test.bmp");

//saving to jpg image

//System.Drawing.Image img = new System.Drawing.Bitmap(ms);

//img.Save("C:\\Temp\\Test1.jpeg", ImageFormat.Jpeg);

}

Continue reading »

Microsoft Live Writer Tutorial

Since Live Writer is currently the best way to manage blogs, Live Writer Guide. The guide shows you how to setup your blog, create, edit, and delete posts. It is easy to learn how to perform the basic tasks in Live Writer (except maybe for deleting posts).  However, we will be updating the guide to help with some of the more complex tasks in the future.

Continue reading »

IT PRO Challenge

The Security Quiz is designed to build on your knowledge of security features available in the various operating systems offered by Microsoft. So, get set to put your knowledge to test, and in the process, win some EXCITING PRIZES.
The Winner of this Quiz will receive a Windows Mobile Phone. There are also 10 Consolation Prizes, the winners of which will receive a Microsoft Arc Mouse each.
Please refer to the Terms & Conditions for Contest Judging Criteria.

Contest closes 15th February, 2009

Here's another opportunity for you to sharpen your knowledge to identify security loopholes. Participate in the 'Microsoft Virtual TechDays' and have all your questions answered. Register today for this exclusive online event!

©2009 Microsoft Corporation. All rights reserved. 

Continue reading »

20 New Features of .netCHARTING v5.3

Rich ToolTip Support
Complex tooltips are now supported with inline formatted image text, MicroCharts, InfoGrids and even full chart previews ideal for drilldown cases.

MicroChart Data Feature Additions
Significant additions have been made to make creating and populating MicroCharts effortless. New functionality includes sub value date grouping, simplified subvalue creation and enhanced calculation methods for sub values.

Organizational Chart Zooming
Advanced pan and scroll support has been added for organizational charts. Now you can easily view an org chart of any size and click to expand or contract nodes within the org hierarchy. As always, organizational charts support simple binding to your database data and advanced annotation formatting and shading to ensure your charts look exceptional.

Organization Chart Drill Down
A .netCHARTING first, org charts now support drill down in addition to expansion. This gives a unique view of charts contained to a single viewing pane with the ability to drill down into or back out of the hiearchy while maintaining a fixed view without scrolling. Level support further complements this feature by allowing more data to be displayed in one frame at a given time.

Organizational Chart Indicators
Unique visualizations are provided for nodes to indicate if they support expansion or contraction. In addition, you can easily customize the display with your own images for actions such as node addition, removal, or expansion / contraction operations.

Dynamic Organization Chart Creation
With .netCHARTING it is simple to create a web based form for dynamic org chart creation. Simply click on a org level to add a node below it or remove a given node all from a easy to use web interface. A sample for dynamic org chart creation is included with .netCHARTING.

Organization Chart Expansion
Expansion allows an organizational chart to grow as nodes are expanded. Here too, there is flexibility for display when using AJAX pan and scroll; the chart can maintain its size or, within a fixed window, elements can be sized smaller on expansion to fit within the specified window. .netCHARTING now provides one of the most advanced organization charting feature sets of any product. As always, these advanced add-ons are included with every .netCHARTING license with no additional cost.

Object Chart Creation
Now you can easily create small chart images from labels and annotations. These charts are particularly well suited for usage in previews, tooltips and dashboard implementations.

Background Shading
The chart background box now supports shading in addition to the chart area box. Two new shading effects specifically designed for use in backgrounds have been added in this release.

Mapping Interactivity Enhancements
.netCHARTING includes advanced mapping functionality with every license purchase; no add-on required! The latest version now supports rich tooltips on maps which can include images and text data along with hotspot interactivity.

Map Shape Annotations
All map shapes now support annotations. Now it is simple to click and view detailed information for a given map location within an annotation. You can also tune the visuals of the generated annotations to specifically match your applications requirements.

MicroChart Feature Additions
A new Image MicroChart including Image sizing and rotation allows for innovative use of MicroCharts as labels for chart elements. The possibilities are endless and options can be controlled programmatically based on your own database data.

New MicroChart Scale Option
A new bottom scale gives additional scale layout functionality for MicroCharts.

MicroChart Interactivity
Interactivity support has been added with the new tooltip and url support for MicroCharts. Using Image MicroChart with URL setting allows for creating clickable icons.

Annotation Size Customization
It is now possible to set annotation size directly as well as dynamically size contents in width or height while the other dimension is automatically sized based on the contents.

Pie Annotation Orientation
The pie chart type presents a unique visual challenge for annotations. A specifically tuned orientation enables annotations to ring the outside of the pie, preventing the pie itself from being obstructed.

Sample Search
The Asp.net sample browser now offers a search option. An API member or keyword can be used to instantly find all related samples and improve productivity.

AJAX Zoomer Category Support
Now you can zoom, pan and scroll category axis charts (such as names or text) in addition to numeric or date axis. You can also specify the zoom starting position and control the axis ticks which determines scale. Large charts have never been simpler to display regardless of if they are employee results by name, product sales by product or any other possibilities.

New Token Support
The powerful .netCHARTING token system has continued to be expanded with token support for ID and ParentID for organizational charts along with new calculation based additions for PercentOfSeriesMax, PercentOfMax and PercentOfGroupMax. Now you can inline these values simply be using the template token and the chart will render with the calculated value specific to the object used.

New Visibility Options
Simply control the visibility of a given subvalue or line with the new Visible properties added for these objects.

Continue reading »

Will Windows 7 be Microsoft's biggest business hit ever?

The Internet echo chamber assumes that any tech product is a failure if it doesn't achieve world domination in 30 days. But businesses move at much more deliberate speeds. When nearly half of IT pros plan a migration to Windows 7 within months of its release, that's profound indicator of the OS's potential for success.more Continue reading »