Users running pirated or counterfeit copies of Windows XP or Windows Server 2003 can now download Internet Explorer 7, Microsoft announced Thursday.

From the moment it released IE7 almost a year ago, Microsoft has restricted the browser to users who can prove they own a legitimate copy of the operating system. Before Microsoft allows the browser to download, it runs the user's PC through a Windows Genuine Advantage (WGA) validation test, a prime part of XP's antipiracy software.

When it instituted the requirement in 2006, Microsoft said rights to IE7 was one of the rewards for being legal. It changed its mind Thursday, saying the move is in users' best interest.

"Because Microsoft takes its commitment to help protect the entire Windows ecosystem seriously, we're updating the IE7 installation experience to make it available as broadly as possible to all Windows users," said Steve Reynolds, an IE program manager in a posting to a Microsoft company blog. "With today's 'Installation and Availability Update,' Internet Explorer 7 installation will no longer require Windows Genuine Advantage validation and will be available to all Windows XP users."

Microsoft has consistently touted IE7 as a more secure browser, and post-launch patch counts back that up. In the past 11 months, IE6 for Windows XP SP2 has been patched for 22 vulnerabilities, 20 of them rated critical. IE7 for XP SP2, however, has been patched only 13 times; 10 of those fixes were ranked critical. In fact, when Microsoft announced that IE7 would not be offered to users running illegal copies of XP, some analysts questioned the company's commitment to security.


 
Categories: Security | Web Development

The final release of the VS 2005 Web Application Project is now available.   You can download it for free here.

 


The VS 2005 Web Application Project option provides an alternate web project model option to the VS 2005 Web Site Project Model that ships built-into VS 2005.  VS 2005 Web Application Projects support the same project, build and compilation semantics as the VS 2003 web project model.  Specifically:




  • All files contained within the project are defined within a project file (as well as the assembly references and other project meta-data settings).  Files under the web’s file-system root that are not defined in the project file are not considered part of the web project.



  • All code files within the project are compiled into a single assembly that is built and persisted in the \bin directory on each compile.  Incremental publishing of compiled apps is fully supported within the IDE (see this post for details).



  • The compilation system uses a standard MSBuild based compilation process.  This can be extended and customized using MSBuild extensibility rules.  You can control the build through the property pages, name the output assembly or add pre- and post-build action rules.  It can also provide much faster compile times for large web projects.

Because the VS 2005 Web Application Project model has the same conceptual semantics as the VS 2003 Web Project Model, it also makes migrating VS 2003 web projects very, very easy – with zero/minimal code changes required.  To learn how to automatically upgrade a VS 2003 web project using this option, please review these VB and C# tutorials that walkthrough the VS 2003 to VS 2005 upgrade process step-by-step.


 


If you want to migrate an existing VS 2005 Web Site Project to be a VS 2005 Web Application Project, please also review these other VB and C# migration tutorials that walkthrough the Web Site to Web Application conversion process step-by-step.  This article here also describes some of the differences between the VS 2005 Web Site Project Model and VS 2005 Web Application Project Model.


 


Note that the VS 2005 Web Application Project option is available now as a free web download.  It will also be added built-in to VS 2005 SP1, and will be fully supported with Visual Studio releases going forward.  


 


Read More at Scott Guthrie’s Blog


 
Categories: Web Development

Microsoft has announced plans to deliver the beta version of its Commerce Server 2006 .Net-based e-commerce offering.


The software giant said that Commerce Server 2006 will allow customers to link e-commerce systems to existing line-of-business applications and trading partners through integration with Microsoft BizTalk Server 2006.


The application also supports integration with back-end systems from SAP and Oracle.


In addition, Commerce Server 2006 will offer a new production-ready starter site to help customers build e-commerce systems based on web services and service-oriented architectures.


Capabilities include catalogue browsing, searching, shopping cart, checking out, profile management and personalisation.


The starter site also includes multilingual and multicurrency support to enable customers to create a global presence.


New tools such as Customer and Order Manager, Catalog Manager, Marketing Manager and Reports and Analytics will help business users interact with their e-commerce sites.


"By providing tighter integration with BizTalk Server 2006, SQL Server 2005 and Visual Studio 2005, Commerce Server 2006 enables customers to reduce costs and accelerate revenue growth through automated delivery of online services and products," said Steven Martin, director of the Connected Systems Division at Microsoft.


Commerce Server 2006 Beta is available on Microsoft Connect. Sign-up instructions are available online here. 


The software is scheduled for release in July 2006. Pricing and licensing details will be available at a later date.


 


 
Categories: Web Development

ASP.Net V2.0 has much improved encryption over v1.x including the ability to encrypt any part of the connection string.  Of course there is some performance overhead to do this so only sections that have sensitive information should be encrypted.


I really battled with part of this today when trying to encrypt the connection string so I thought I would include some of the syntax required, specifically how to reference a particular web.config file within a specific site.  All articles I have found so far reference the default site and not a specific site.


 


Read More


 


 
Categories: Web Development

The upcoming release of the .NET 2.0 framework brings many new enhancements to the CLR and the C# and VB.NET languages, and with the availability of Beta2, it seems like an appropriate time to dive into the .NET 2.0 framework and see what’s cooking. Since .NET is a platform that supports multiple languages my approach with each new release has been to review what the CLR has to offer first, since it is the foundation for all languages, and then review what is common for the languages I use the most, which are C# and VB.NET. Last, I review each language on its own to see how each enhancement can solve the particular shortfalls of the previous version and how the new enhancements can improve the clarity and efficiency of my code. Now with this solid understanding behind me I can make better decisions as to which language or languages to use on my next project.

CLR Enhancements
The new enhancement that stands out the most in terms of enterprise computing is the 64-bit version of the .NET framework. This version of the framework allows you to take full advantage of the underlying 64-bit hardware platform without having to deal with the differences between 32-bit and 64-bit hardware platforms. What this means is if you created a 32-bit application that doesn’t rely on floating-point numbers or native code you can simply compile your code using the 64-bit compiler, for your language of choice, and begin running your application on a Windows 2003 SP1 or Windows XP 64-bit operating system with no modifications.
   
Generics are another enhancement that I will keep under the CLR umbrella due to the CLS compliance to them. Generics provide developers with a way to create type-safe data structures consisting of classes and interfaces that are data-type agnostic. This means that when you declare your type-safe data structure you put a placeholder for the agnostic type and during instance creation you specify the actual type used. An example of creating a custom generic type can be seen in Listing 1. One of the strengths you can see right away with Generics is their use in collections where you were previously forced to use the System.Object data type no matter what type you passed in. This of course incurred boxing for value types which let to a performance hit. To help us out Microsoft has created the System.Collections.Generic namespace. It provides an assortment of commonly used generic collections that you can use so you don’t have to create type-safe collections by hand unless you want to.
   
Friend assemblies are another new enhancement that enable developers to expose C# internal and VB.NET friend decorated types and methods to multiple assemblies. In the past this was accomplished by either making the type public, which exposed the type to all assemblies, or decorating each type or method with the StrongNameIdentity- Permission attribute, which was time consuming and error prone. With friend assemblies, adding the [assembly:InternalsVisibleTo(“AssemB, PublicKeyToken= 32ab9ba32e0a51a1” )] attribute to the assembly allows all friend-specified types or methods to be visible in the named assembly.

Read More | Symbian Developers Journal


 
Categories: Web Development

As Microsoft inches closer to the first beta release of Internet Explorer 7, the company's development advisors have been advising Web site developers and managers to run certain tests now to prevent problems when the beta version does appear.

Although Microsoft Corp. is not releasing a specific date for the beta version, the company has stated that the browser will appear this summer, and that developers should be getting ready.


At this point, Microsoft has given limited information on what will be included in the initial beta test, beyond stating that it will include features such as tabs and "developer platform advancements."

Developers can expect that much more information will be forthcoming shortly on the company's technical resource site, however, said Gary Schare, director of Microsoft's Internet Platforms and Security Product Management.

"Follow the IE Blog to gain general technical insights about IE 7 directly from the development team," Schare added. "Stay tuned in the coming months as we announce more details."

One area that Microsoft has clearly articulated as being one in which developers can start work now to prepare for IE 7 involves the UA (user agent) string.

First discussed in the company's Weblog in April, the code change prompted a reminder on Wednesday to developers, telling them that Microsoft continues to run across Web sites that are not expecting Version 7 of the browser, and urging them to test their UA strings.


"Developers should ensure that their sites are ready for the IE 7 user agent string and treat IE 7 just like they would IE 6," Schare said. He did not comment on what would happen if changes were not made, but said it is likely that testing issues will be discussed again on the development blog.


Despite Microsoft's reminders, some developers have chosen to simply wait until the beta version arrives to do testing and make changes.

"I don't use IE at all, but I'll test on it because I have to," said Web designer Donna Donohue, owner of Norwich, Conn.-based development firm KidoImages. "We code to standards to be compliant with Firefox, and then hack for IE."


Web developer Steve Champeon admitted that waiting for beta testing is not always the best approach, but it is a common strategy nonetheless.

"There are undoubtedly many Web sites that are so poorly built or tested that IE7 will break them," he said, "So it's not entirely dumb to make a fuss about IE7's impending release."

However, Champeon added that he builds sites from the ground up to work in any Web browser, by following the set of principles known as "progressive enhancement." Because of this approach, he doesn't utilize UA string detection.

"We're not going to waste our time specifically addressing any one browser when we can address them all instead, using faster development techniques that don't favor one platform or browser over all the others," Champeon said.


Via eWeek


 
Categories: Web Development

July 2, 2005
@ 11:07 PM

By Andrew Flick and Devin Rader

Here's a question for all of you rapid application Web developers: Do you find yourself setting the same properties multiple times? For instance, have you set the font or the color of a font more than once in an application, setting it to the exact same specifications each time? If you answered "yes" to either of the preceding questions, you may be a candidate for cascading style sheets, better known as CSS.

CSS has been around for a long time, but we felt it was a necessary addition to our tips and tricks section because, even to this day, people are afraid of utilizing the technology. It seems that many people still insist on either writing the same blocks of code over and over (and over) again, or they click on different controls in Visual Studio.NET and set the exact same settings multiple times, as if CSS is some sort of voodoo. There is absolutely nothing wrong with that; however, if you want to make an application-wide style change, it does make maintenance quite a pain.

Currently there are two separate versions of CSS in existence: CSS1 and CSS2. All CSS1 style sheets work and are valid CSS2 style sheets; however, CSS2 adds the capability for the designer to target different end-devices (such as printers and handheld devices). Furthermore, according to the W3C, CSS2 supports content positioning, downloadable fonts, table layouts, internationalization, and many more features geared for UI development. For the purpose of this article, we'll discuss the basics of CSS1, because many developers are targeting IE as their end-browser and IE does not fully support CSS2 as, according to Microsoft Watch, Microsoft views the current implementation of CSS2 as "flawed." Finally, CSS3 is currently under development, so it will be exciting to see if this gains traction in the Microsoft world and acceptance of the W3C. So, utilizing CSS1, we'll discuss the structure of CSS, inline vs. external styles, CSS classes, precedence, and inheritance.

Read | ASP.Net Pro


 
Categories: Web Development

Microsoft on Friday announced its intention to fully support the RSS Web publishing standard in its next generation version of Windows, code-named Longhorn, along with plans to help application developers more easily create RSS-enabled applications for Windows.


Officials said the company is proposing its own Simple List extensions to RSS that will better allow the technology to support ordered lists of information. Presently, RSS feeds are sent and received as streams of messages with their order being determined only by the time they were sent. Microsoft's extensions are reportedly offering a way to add ordering information so RSS feeds can more intelligently handle, for instance, a Web site's list of best-selling items.


"The RSS [Simple List] extensions we are developing can allow a content publisher to enable a Web site to publish feeds that represent ordered lists of items. We will make these extensions widely available to developers through the Creative Commons [license]," said Megan Kidd, a group product manager on the Windows team.


Microsoft has already done some "baseline work at the platform level" that supports a range of basic functions that are contained in all applications that support RSS, which should help lighten their overall development effort.


"RSS feeds now come through Weblogs but it will go way beyond that. For instance, if you are at a conference and go to that Web site, subscribe to a feed that has all the conference information, you can have an RSS feed right into your calendar application like Outlook that will automatically update you on all changes being made at the conference like keynotes and sessions," Kidd said.


Some industry observers were encouraged not only by Microsoft's endorsement of the technology, but also because the software giant appears uninterested in dominating the technology and is being proactive in trying to help create commercial opportunities for other application developers.


"When Microsoft would talk about embracing and extending a technology, many would interpret that as engulfing and devouring. In this case, they seem to be really going out of their way to talk about extending but not co-opting this technology. The fact they are releasing this under the Creative Commons License, the same license that RSS is released under, is a pretty big deal in and of itself," said Michael Gartenberg, a vice president and research director at Jupiter Research.


Another upside for Microsoft, according to Gartenberg and others, is that the inclusion of RSS in Longhorn, along with the commitment to help ISVs create compatible applications, is that it builds more interest around Longhorn among developers and users, something the upcoming product needs.


"This should get developers a little more pumped up over Longhorn," Gartenberg said.


The downside about the move however, is that many smaller developers with RSS technologies will have the added pressure of having to be more innovative with their applications in order to stay ahead of much larger developers as RSS-based products become more of a commodity.


Asked about Microsoft's plans to incorporate RSS support into its upcoming Office 12 suite of desktop applications, Kidd said, "you can expect to see some functionality with Outlook," but that the company has yet to formulate any specific plans.


Microsoft will also make it easier for users to discover feeds within their browsers by illuminating icons that allow them to easily see what RSS feeds are available to them at any given moment. The company will also allow users to view the feed live from within the browser, which Kidd said is not available today.


"They will be able to actually see the feed, pick the one they want to subscribe to. We want to make it a one click experience," Kidd said.


Microsoft is expected to make the announcement Friday at the Gnomedex conference in Seattle.


Via InfoWorld


 
Categories: Web Development

Wouldn't it be nice if you could turn your plain old Web pages into something more exciting? Isn't it time to inject some life into your decade-old Web technologies? If you feel the need for the fresher, richer, and more interactive Web experience, get to know AJAX.


If you use Google Maps or the Gmail Web client you actually have experienced an AJAX-based solution already. AJAX, which stands for asynchronous JavaScript and XML, is a conglomerate technology that enables dynamic, asynchronous behavior on Web pages without the need for annoying browser page refreshes. Utilizing AJAX, users can interact with Web pages almost as they would with rich clients.

AJAX is a simple technology that all the major browsers already support. As you will see shortly, the only prerequisite for AJAX implementation is knowledge of JavaScript.


How AJAX Works


If you've used the Gmail Web client or Google Maps you probably noticed that you can scroll over the map or spell check the typed text, respectively, without page submits. AJAX, the technology behind this behavior, handles the requested operations in _JavaScript and asynchronously invokes the server-side operations that provide the desired results.



Introducing the XMLHttpRequest

At the core of AJAX technology is a JavaScript object: XMLHttpRequest. This object has been supplied through browser implementations—first through Internet Explorer, and then through Mozilla/Safari. At the time of writing this article, version 8 of the Opera browser supplied a compatible implementation. However, Opera has had a somewhat rocky history in terms of the stability of its XMLHttpRequest implementation.



AJAX in Action


In order to demonstrate AJAX, this tutorial implements a common portal scenario: e-mail message previewing. (Click here for the application source code.) Most Web portals allow portal users to preview the contents of their e-mail inboxes from the main page. In order to view the body text in their messages, however, users need to click on the individual messages—one by one, refreshing the page each time. This case study demonstrates how to practically accomplish richer Web client behavior, similar to what rich clients like Outlook Express and Mozilla Thunderbird provide, utilizing the existing Web technologies of AJAX.


Read | DevX


 
Categories: Web Development

June 13, 2005
@ 11:25 PM

Whether or not you missed TechEd 05 held last week in Florida, you might want to check out these video podcasts from the floors of teched. Microsoft is providing video podcasts from the floors of TechEd.  The podcasts includes interviews with presenters as well as vendors on the exhibition floor.  In addition the Regional Directors held “Grok Talks” from the floors -- these were 10 minute presentations on varying .Net related subjects including SQL 2005, ASP.Net 2.0, Visual Studio Team System and much more.  Currently only six of these presentations are available but they promise to make additional presentations available as they editing process is completed.  These videos are provided as video streams from the Grok Talk Blog.  For the Microsoft Podcasts you'll need a podcast client such as Ipodder or Doppler.  For those not familiar with podcasts you may want to read the Getting Started with Podcasts page.


Resources:



 
Categories: Web Development


With Internet Explorer 7 Beta 1 set to debut next month, Microsoft has quietly closed the door on Windows 2000 users planning to adopt the new Web browser. IE7 will require Windows XP Service Pack 2 due to internal security changes that rely on Microsoft's latest operating system release.


The decision to update Internet Explorer before Longhorn arrives in late 2006 was announced by Bill Gates at the RSA Conference in February. Although Microsoft had said it was focusing on Windows XP SP2 only, the company did leave open the possibility of IE7 supporting Windows 2000.


We're actively listening to our major Windows 2000 customers about what they want and comparing that to the engineering and logistical complexity of that work," IE team head Dean Hachamovitch wrote in February.



But now, Microsoft says the task is too complex due to security features not available in the older operating system. Company officials also noted that Windows 2000 is moving into the "Extended" support phase of Microsoft's product lifecycle as of June 30, 2005.


"It should be no surprise that we do not plan on releasing IE7 for Windows 2000," IE program manager Chris Wilson wrote on the Internet Explorer Web log.


"One reason is where we are in the Windows 2000 lifecycle. Another is that some of the security work in IE7 relies on operating system functionality in XPSP2 that is non-trivial to port back to Windows 2000."


The decision brought mixed reactions, with some users agreeing that Windows 2000 customers should be making the upgrade to Windows XP or Server 2003. Others, however, noted that large numbers of users remain on Windows 2000, and developers would be forced to continue working around quirks found in IE6.


 
Categories: Web Development

Building an application can be more than pressing F5. Much more. With an increasing number of quality packages being released, developers for the .NET platform now have options to create a very sophisticated build process. This article describes a sample build environment and shows how a number of tools can work together to make reliable, predictable, and value added builds.

The goals of the build system are outlined below.

  • Monitor source control for changes
  • Get latest source code from source control
  • Build the application in a versioned directory
  • Run unit tests over the new assemblies
  • Validate coding standards on the new assemblies
  • Create documentation based on the latest code
  • Publish the results to the Web and via e-mail

As you can see, the build process will automate many tasks.

First you will start with NAnt and create a sample build. Then you will expand the NAnt build file to run some other tasks as a sample of what else can be done. The steps are listed below.

  • Setup the build environment
  • Build a "program" solution with Visual Studio .NET
  • Create first NAnt build file and build
  • Build a "test" project with Visual Studio .NET
  • Add NUnit tests to build
  • Validate coding standards during build with FxCop
  • Create API Documentation during build with NDoc
  • Add the solution to VSS source control
  • Add SCC control to the build file
  • Add versioning
  • Use CruiseControl.NET to monitor and manage the build process
    • Trigger a build once something has changed
    • Report back to build master outcome via email and Web reporting

This article is not an in-depth introduction to any of the concepts or tools used. This article should serve as a technical example of how some of the available tools can be used together. This is also just an example. All of the tools used here have many options that will not even be touch upon. You are encouraged to look deep into the help for each of these products and become creative in your own build process.

Overview

The main purpose of a build process is to build an application. A build process should collect all of the pieces of an application and create a deployable package for this specific version. By making this a process of its own, you add both reliability and predictability.

Beyond a predictable build, a number of tools have been introduced that allow for other automated tasks to be run. In a team development environment, the build process would typically bring together code from a number of developers. That makes build time the ideal place to run tasks such as unit tests, and documentation creation. Having these tasks automated in the build can increase the quality of your code and offload some important tasks from the developers.

In addition to adding value to builds, you also have the facility to track and report on the builds. When configured to trigger on a check into source control, your development team can receive unit test results via e-mail within minutes of any given change. This allows developers to react quickly to changes while they are still thinking about the change.

The reporting also includes the results of a check against the coding standards. This allows code reviews to focus on code instead of standards.

Below is a list of the packages that will be used, a brief description of each package and how it will be utilized.

Nant (http://nant.sourceforge.net/)
NAnt is the platform that will be used to create the actual build process. NAnt is an open source package modeled after Ant for Java. NAnt will be responsible for the actual building, as well as triggering any other tasks that will be run throughout the build process.

NAntContrib (http://nantcontrib.sourceforge.net/)
NAntContrib is a collection of add-on tasks for NAnt. NAntContrib is also an open source package. NAntContrib adds tasks for vss, the gac, ngen, and many nice tasks. NAntContrib will be used to communicate with VSS.

NUnit (http://www.nunit.org/)
NUnit is an open source unit testing framework for .NET and is modeled after JUnit for Java. NUnit allows developers to create test fixtures and write unit tests for their applications. NUnit includes a GUI and a commandline tool, as well as a set of attributes you add to test assemblies. NUnit will be used to unit test the class library in this article.

NDoc (http://ndoc.sourceforge.net/wiki)
NDoc is an open source package that creates API documentation from XML documentation files from Visual Studio .NET or packages like VBCommentor. NDoc allows developers many options when creating documentation and also comes in GUI and command line flavors. NDoc will be used to create HTML and chm documentation of the application.

CruiseControl.NET (http://ccnet.thoughtworks.com)
CruiseControl.NET ("CCNet") is an open source package used for Continuous Integration and build process reporting. Continuous Integration is a practice of creating a new build once updated files have become available, thus creating a continuous build process. Assuming tasks like unit testing are included in the build process, this allows teams to identify and fix bugs very quickly, provided there is good coverage in the unit tests of course. CCNet will be used to trigger and report on the build process.

FxCop (http://www.gotdotnet.com/team/fxcop/)
FxCop is a package distributed by Microsoft to enforce coding standards. FxCop automates the process of analyzing code for coding standards. This allows peer review sessions to really focus on code and not waste time on things like correcting casing or naming violations. FxCop will be used to analyze the coding standards in the application.

Visual Source Safe (http://www.microsoft.com/vstudio)
Visual Source Safe ("vss") is a source control package distributed by Microsoft. VSS is commonly used for source control when using Visual Studio .NET. It's used here because of its wide availability and adoption, but the concepts in this article would translate to most other source control systems by changing a couple elements in the NAnt file.

Setup Build Environment

[Easy Way Unzip attached BuildSolution.zip into c:\projects Unzip attached devtools.zip into c:\devtools] So now it's time to dive right into action. The first thing that needs to be done is to install these tools. Although not necessary, it's nice to have these tools in one place, i.e. c:\DevTools.

Provided with this article is a devtools.zip of the various packages that should be installed here and configured appropriately. You can extract this zip file into c:\devtools to review the samples. The steps are outlined below.

Install/Extract Packages

  1. Download and extract NAnt to c:\devtools
  2. Download and extract NantContrib to c:\devtools
  3. Download and install nunit to c:\devtools
  4. Download and install NDoc to c:\devtools
  5. Download and install FxCop to c:\devtools
  6. Download and extract CCNet to c:\devtools

Add NAntContrib to Nant

  1. Copy all of the files from c:\devtools\nantcontrib\bin into c:\devtools\nant\bin

[Read More]


 
Categories: Web Development

May 26, 2005
@ 03:56 PM
Ajax is an awesome technology that is driving a new generation of web apps, from maps.google.com to colr.org to backpackit.com. But Ajax is also a dangerous technology for web developers, its power introduces a huge amount of UI problems as well as server side state problems and server load problems.

I've compiled a list of the many mistakes developers using Ajax often make. Javascript itself is a dangerous UI technology, but I've tried to keep the list to problems particular to Ajax development:


Mistakes:



  1. Not giving immediate visual cues for clicking widgets.
    If something I'm clicking on is triggering Ajax actions, you have to give me a visual cue that something is going on. An example of this is GMail loading button that is in the top right. Whenever I do something in GMail, a little red box in the top right indicates that the page is loading, to make up for the fact that Ajax doesn't trigger the normal web UI for new page loading.

  2. Breaking the back button
    The back button is a great feature of standard web site user interfaces. Unfortunately, the back button doesn't mesh very well with Javascript. Keeping back button functionality is a major reason not to go with a pure Javascript web app.

  3. Changing state with links (GET requests)
    As I've referenced in a previous posting, Ajax applications introduce lots of problems for users who assume GET operations don't change state. Not only do state changing links cause problems for robots, users who are accustomed to having links drive navigation can become confused when links are used to drive application state changes.

  4. Blinking and changing parts of the page unexpectedly
    The first A in Ajax stands for asynchronous. The problem with asynchronous messages is that they can be quite confusing when they are pop in unexpectedly. Asynchronous page changes should only ever occur in narrowly defined places and should be used judiciously, flashing and blinking in messages in areas I don't want to concentrate on harkens back to days of the html blink tag.

  5. Not using links I can pass to friends or bookmark
    Another great feature of websites is that I can pass URLs to other people and they can see the same thing that I'm seeing. I can also bookmark an index into my site navigation and come back to it later. Javascript, and thus Ajax applications, can cause huge problems for this model of use. Since the Javascript is dynamically generating the page instead of the server, the URL is cut out of the loop and can no longer be used as an index into navigation. This is a very unfortunate feature to lose, many Ajax webapps thoughtfully include specially constructed permalinks for this exact reason.

  6. Too much code makes the browser slow
    Ajax introduces a way to make much more interesting javascript applications, unfortunately interesting often means more code running. More code running means more work for the browser, which means that for some javascript intensive websites, especially poorly coded ones, you need to have a powerful CPU to keep the functionality zippy. The CPU problem has actually been a limit on javascript functionality in the past, and just because computers have gotten faster doesn't mean the problem has disappeared.

  7. Inventing new UI conventions
    A major mistake that is easy to make with Ajax is: 'click on this non obvious thing to drive this other non obvious result'. Sure, users who use an application for a while may learn that if you click and hold down the mouse on this div that you can then drag it and permanently move it to this other place, but since that's not in the common user experience, you increase the time and difficulty of learning your application, which is a major negative for any application.

  8. Not cascading local changes to other parts of the page
    Since Ajax/Javascript gives you such specific control over page content, it's easy to get too focused on a single area of content and miss the overall integrated picture. An example of this is the Backpackit title. If you change a Backpackit page title, they immediately replace the title, they even remember to replace the title on the right, but they don't replace the head title tag with the new page title. With Ajax you have to think about the whole picture even with localized changes.

  9. Asynchronously performing batch operations
    Sure with Ajax you can make edits to a lot of form fields happen immediately, but that can cause a lot of problems. For example if I check off a lot of check boxes that are each sent asynchronously to the server, I lose my ability to keep track of the overall state of checkbox changes and the flood of checkbox change indications will be annoying and disconcerting.

  10. Scrolling the page and making me lose my place
    Another problem with popping text into a running page is that it can effect the page scroll. I may be happily reading an article or paging through a long list, and an asynchronous javascript request will decide to cut out a paragraph way above where I'm reading, cutting my reading flow off. This is obviously annoying and it wastes my time trying to figure out my place.

In constructing this list of mistakes I've been using Backpackit. You can check out my list of AJAX mistakes on backpackit, and if you want to help add to the list, reply in the forums and I'll add you to the list of users who can modify the list.


[Via SourceLabs]


 
Categories: Web Development

Many web applications use DataSet to bind data with controls such as DataGrid. DataSet allows you to easily sort the data using objects such as DataView. However, in pure OO design instead of sending DataSet to the presentation layer you may want to send an object array. In this case how will you allow users to sort the data? That is what this article explains. Keep reading.

IComparable interface

Sorting is nothing but ordering the list of items in a perticular way. In order to sort any list the underlying system must be able to compare various elements of the list so that they can be rearranged based on the result of comparison. The System namespace contains an interface called IComparable that can be used to provide such custom comparison mechanism for your classes. The IComparable interface consists of a single method called CompareTo that accepts the object to compare with current instance. The method should return 0 if both the instances are equal, less than 0 if current instance is less than supplied instance and greater than 0 if current instance is greater than the supplied one.
[C#]
int CompareTo(object obj);

[Visual Basic]
Function CompareTo(ByVal obj As Object) As Integer


How does this solves our problem?

DataGrid web control can be bound with variety of data sources such as DataSet, DataTable and ArrayList. If we want to bind the grid with an a list of objects ArrayList can be good choice for this binding. ArrayList class has a method called Sort() that checks whether each element has implemented IComparable interface. If it does implements then the CompareTo() method implemented in the class will be used to sort the various elements. That means in order to implement custom sorting we need to:

  • Create a class (say Employee) that implements IComparable
  • Create an ArrayList
  • Add instances of Employee class to the ArrayList
  • Bind the ArrayList to the DataGrid
  • Handle the SortCommand event of the DataGrid

[Read More]


 
Categories: Web Development

With FogBugz winning Asp.netPro's Reader's Choice Award for Best Project Managment/Defect Tracking Tool I thought I would go over the features and benefits of this popular tool.


FogBUGZ keeps track of cases.


There are three kinds of cases:



  1. Features that you want to add to your product,
  2. Bugs or other possible flaws in your product, and
  3. Inquiries, when someone has a question about how something should work, a suggestion for improvement, or an email from a customer.

New cases can be entered using the FogBUGZ web interface. You can also send email into FogBUGZ by setting up an email account for that purpose: incoming messages instantly become cases. Cases can come from anyone: someone on your team, a manager or a tester; they can also come from your customers, who email you or fill out a form on your web site. You can even modify your own software to create a case automatically whenever it crashes or encounters an unexpected situation.


Every case is always assigned to exactly one person until it is closed. That person is responsible for it until they assign it to someone else. Here's the lifecycle of a simple bug:



  • A tester finds a bug, enters it, and assigns it to the development manager.
  • The development manager assigns it to the programmer who is responsible for that area of the code.
  • The programmer fixes it, and assigns it back to the tester to check that it's really fixed.
  • The tester confirms that it's fixed and closes the bug.

FogBUGZ can be used for customer support, to manage email sent in to global accounts like customer-service@example.com. Each mail message can be assigned and tracked. Anyone can reply to the message right in FogBUGZ. If the customer responds to that response, the entire thread is kept together in one FogBUGZ case so that everyone can always see the full history and provide seamless customer service. Here's the lifecycle of a typical customer feature request:



  • Customer has problem, emails feature request alias. Case is automatically imported to FogBUGZ and assigned to the product manager.
  • Product manager designs a new feature that solves the customer's problem, and assigns it to development lead to implement.
  • The development lead assigns it to a programmer to implement.
  • The programmer implements it and assigns it to tester to test.
  • When it is tested and working, tester assigns it back to the product manager who emails the customer announcing the new feature.

In either case an entire record is kept in one place.


FogBUGZ has completely flexible workflow. A programmer might assign a reported bug back to the tester to clarify something before the bug can be reproduced. Or a programmer might discover that a bug is in another programmer's code and assign it to the second programmer to fix. Or the programmer may think that the behavior reported is correct, and assign the case to the product manager to confirm. FogBUGZ can handle any workflow scenario automatically: you don't need to define rigid workflow diagrams which never seem to correspond to reality and you never need to go "off line," resorting to side-discussions on email which are not tracked and lost to posterity.


Whenever a case is assigned to somone, they get an email. Anyone can subscribe to any case, and receive email notifications when it changes. And because you can create cases with email, you don't have to persuade your pointy-hair boss or your best customers to use FogBUGZ: let them email their bug reports and suggestions and receive email replies, without losing any of the benefits of a real database.



FogBUGZ users create custom filters which show them all the cases that match a certain set of rules. Anyone can easily create and save filters using a simple form.
For example:



  • show me all the cases assigned to me
  • show me all the cases that need to be fixed for version x
  • show me all the cases that were opened today
  • show me all the cases in project x that I opened which have been resolved

You can attach screenshots, sample files, or just about any kind of document to a case in FogBUGZ. FogBUGZ supports Unicode so bugs can be entered in any language.


Cases can, optionally, have time estimates. This is especially useful for planning new features. You can use FogBUGZ to plan the next release of your software by entering all the features under consideration, setting priorities on them, and entering time estimates. Then you can assign features to release dates or milestones until you've got a complete schedule.


FogBUGZ can be integrated with CVS or Perforce source code managers. You can maintain bidirectional links between checkins and bugs.
FogBUGZ can be accessed using any web browser. It runs on a Windows NT/2000/.Net based server, on your own intranet for speed and security. Setting up FogBUGZ is easy with a wizard-based installation program that does everything you need to get up and running in a matter of minutes and comes with a free 90 day support contract should anything goes wrong.


For more information or to take an online tour visit Fog Creek Software at http://www.fogcreek.com/FogBUGZ/


 
Categories: Web Development

I don’t think there is a default answer to which caching technique you should use for your custom web parts. However it is important to understand the differences between using the ASP .Net cache object, the Web Part cache memory and database stores and the Caching Application Block found in the Enterprise Library.

There is plenty of documentation on the asp .net cache object so I don’t want to go into too much detail. In summary:



  1. Allows you store objects in memory
  2. When the web application is recycled the entire cache is lost
  3. When items are added they can have an expiration policy based on time (a sliding window if needed) and/or dependencies on other objects e.g. if a file changes on disk, then the cache item becomes invalid
  4. Items are removed from cache when they expire or if memory pressures on the machine mean that items must be purged from the cache. ASP .Net will then remove items based on their priority, even if they haven’t expired.
  5. A web part is really just an ASP .Net server control and hence there is no reason why you cannot implement caching in the control like you would any other server control. Either caching objects used by the control or the html rendered by the control. There is nothing web part specific in this scenario. One advantage of using this model is that multiple instances of your control can share the same cache, for example on 200 web part pages you have the same web part with the same data irrespective of the user viewing it. Here you would like to cache the data only once, not 200 times or even more if you do it on a per user basis. Also, you are using the ASP .Net cache which is tried, tested and …and works!


If you choose to use the built in caching functionality of the web part framework you have the option of storing the cache in memory or in SQL Server. This is designed to be configurable, i.e. changing an option in web.config will change the store for **ALL** web parts for that web application. In some way you could say that this is something that an administrator can change at any stage, however the reality is that this is not the case.


[Read More]


 
Categories: Web Development

In response to criticisms over the high cost of VSTS for small organizations, Microsoft is changing its pricing and some of the packaging of Visual Studio Team System and the MSDN Subscriptions. Changes include a user limited version of Team Foundation Server to ship with any Team Edition and a lower costs for renewals of subscriptions.

The restricted version of Team Foundation Server will include a license for only five developers. It is unclear if you will need to upgrade to the full version to add individual licenses.

Pricing changes are:



  • Universal subscribers that want all of the client functionality of Team System will be able to upgrade to Team Suite by paying just the incremental software assurance or renewal price for the duration of their agreement. In retail, this amounts to around $2300 and for most customers this represents a 75% or more discount on the full price of Team Suite. Volume customers will, of course, pay less. Renewals for volume license customers continue at the promotional price for as long as you are an active volume license subscriber.
  • Universal subscribers who want Team Edition for Software Architects, Team Edition for Software Developers, or Team Edition for Software Testers will continue to be able to upgrade at no additional cost. Each of these “role Editions” includes the MSDN Premium Subscription which will come with the limited TFS.
  • Universal subscribers who want the 2005 equivalent of MSDN Universal can simply choose Visual Studio 2005 Professional Edition with MSDN Premium Subscription. Universal subscribers who choose this option at renewal will get the functional equivalent of MSDN Universal for about 15% less than what they paid today. This version will not have any of the role based features nor will it include the limited TFS.

[Via Rick LaPlante's Blog]


 
Categories: Web Development


The Code Room returns with Rory Blythe as executive producer -- former co-host of Dot Net Rocks and Microsoft Evangelist.   Four experts on Windows XP Embedded and the Compact Framework are challenged with building a fully functioning kiosk that implements Bluetooth, SQL Server Mobile, and Windows XP Embedded technologies.


The Code Room is a 1/2 hour pilot TV show that exposes technologists to the latest tools and technologies for tackling real-world software development issues. This professionally produced & directed TV show highlights the social, teaming, and technical challenges faced when attempting to complete a software development project.


The Code Room is developed around the free MSDN Developer Events held almost 500 times throughout the year. Each episode focuses on a topic presented at the event. In addition, three attendees are selected from the audience to write functioning code using the principles and concepts discussed in the presentation. By exposing the viewers to the detailed information from the event presentation and seeing the real world application of that information that they can actually use themselves, a viewer takes away a deep understanding of the topic.


[Via The Server Side | Video]


 
Categories: Web Development

WSE uses security tokens internally to represent security claims from Web service methods. The security tokens let WSE authenticate the user, validate the password, and check whether the user has sufficient rights to execute the desired Web service method. The Web services security implementation includes authentication as well as authorization. This article discusses how to use custom authentication methods in WSE using an example that authenticates incoming SOAP messages and then authorizes the consumption of a particular service using AzMan, (Windows' Authorization Manager) with custom principals. As an example, the article uses a telecom dealer application, which lets prospective telecommunications dealers activate postpaid customers and manage their accounts.

WSE Authentication

When you configure WSE 2.0 in your Web service project, clients of that Web service will create two Web service proxy classes named according to your project, such as MyWebService1 and MyWebService1WSE. The second proxy class, derived from the WSE Microsoft.Web.Services2.WebServicesClientProtocol class, contains support for adding WSE Security tokens used to authenticate clients. Client programs must add a security token—for example, a Username token—to the Tokens collection of the RequestSoapContext of the Web service instance implemented with WSE. The Username token isn't the only possible security token; there are other security tokens—and you can also create a custom security token by creating a custom SecurityTokenManager class. But a security token of some type is required.


[More]


 
Categories: Web Development

Visual Studio for Applications, or VSA,  provides an excellent means of providing extensibility to your program by allowing script code to modify your program long after the main object model has been designed and compiled. Allowing your programs to host and run script files is an excellent way to allow others to extend your program in ways you may not have foreseen at its induction. Many times, added functionality is required by end users or high demand clients that require new changes to be recompiled into the old system by its creators. This takes time and money, and is often only necessary because modifications require the use of professional build tools, something many users aren’t skilled at using. However, with a solid object model exposed to a scripting interface, anyone capable of writing macros using a text editor and following an SDK can tweak much of the functionality of your program without the major hassles involved with professional build tools.


What is VSA?


VSA replaces the older technology Visual Basic for Applications, or VBA. VSA allows .NET programs to host and compile scripting languages such as VBScript and Jscript. Using VSA, you can create a scripting engine directly inside your .NET programs, and pass your own object instances and assembly references to the engine and script. Using your own custom object model, you can allow the scripts to modify your program after it has been compiled. Anyone with a text editor can follow up and add custom scripts or change existing ones, without having to bother you to make these changes.


[More at Code Project]


 
Categories: Web Development

May 5, 2005
@ 10:55 PM

A common problem that Web Application Developers encounter is how to stop the user from refreshing the page. This is a problem if the previous request to the server was a PostBack, which, for example, inserted the WebForm’s data into a database. This will result into the addition of duplicate rows in the database. But we have constraint that we can’t stop user by refreshing the page, So What to do? Although we can’t stop user from refreshing the page but we can however determine if this event has occurred and then take appropriate action.


This article is result of inspiration from article “Build Your ASP.NET Pages on a Richer Bedrock” in which Dino Esposito outlined a mechanism to detect a page refreshes. But the problem with this method is that it is cumbersome and more complicated than necessary, although the fundamental idea is sound and forms the basis of this solution. Dino’s mechanism uses a counter stored on the page and a session variable to store the previous request’s counter on the server, if the two match then we have a page refresh.


[More at Code Project]


 
Categories: Web Development

Session Summary


Thursday, May 5, 2005: 10:00 AM Pacific time (Greenwich mean time - 8 hours)

This Support WebCast is intended for users who are already familiar with Microsoft SQL Server 2000 Reporting Services. The WebCast will discuss the various software updates and new feature improvements that have been provided as part of the Service Pack 2 release of SQL Server 2000 Reporting Services. There will also be a feedback session intended to help improve the overall user experience of SQL 2000 Reporting Services.

This is a Level200 session that will be presented by Nosheen M. Syed .

Nosheen M. Syed is an acting technical lead in Microsoft Product Support Services (PSS) WebData Support. He holds an MS and an MBA and has more than four years of experience in IT. This includes over two years with Microsoft as a support engineer with the PSS WebData WA team. He has been involved with Microsoft SQL Server Reporting Services from a supportability perspective since the V1.0 Beta initiative.

[Register here]


 
Categories: Web Development

Overview


SP2 includes a variety of improvements to the initial product release. Documentation for this release is provided in the SP2readme_lang.htm, which can be downloaded below or found in the Reporting Services installation directory after Setup is complete.




Note: Service Pack 2 will require a reboot after installation. For more information, see Knowledge Base article 889641.

Key Functional Enhancements



  • SharePoint Web parts enable you to explore and view reports located on a report server by using Microsoft Windows SharePoint Services or SharePoint Portal Server.

  • Reports can now be printed directly from within Internet Explorer. A Microsoft ActiveX control is provided to support a rich client-side printing experience including full page preview.

System Requirements




  • Supported Operating Systems: Windows 2000 Advanced Server, Windows 2000 Server, Windows 2000 Service Pack 2, Windows Server 2003, Windows XP Professional Edition




  • SP2 Setup upgrades all four editions of Reporting Services (Enterprise, Developer, Standard, and Evaluation). It also upgrades all installation configurations (client-only, server-only, and client-server).

  • SP2 can be applied to an existing installation of Reporting Services or an existing installation of Reporting Services with Service Pack 1.

  • SP2 requires 40 MB of free disk space to install.

[Download Here]


 
Categories: Web Development

One of the features of Longhorn that a lot of people are excited about is "Avalon", the code name for the new graphical subsystem that enables not only richer control design and development, but it also relies heavily on a vector-based system instead of the more common pixel-based one. Avalon also introduces a new programming model known as XAML which heralds in a new way of designing application user interfaces.


In this episode of the .NET Show David Ornstein and Pablo Fernicola discuss the purpose and benefits of the new graphical model for Longhorn. Later, Rob Relyea and Nathan Dunlap walk through some source code to show how the use of XAML in writing user interfaces for applications can create a better collaboration between designers and programmers.


[View/Download Video Here]


 
Categories: Web Development

Microsoft has provided a version of the March 2005 Indigo and Avalon Community Technology Previews for the general public.


Indigo is the codename for Microsoft’s unified programming model for building connected systems. It extends the .NET Framework 2.0 with additional APIs for building secure, reliable, transacted Web services that interoperate with non-Microsoft platforms and integrate with existing investments. By combining the functionality of existing Microsoft distributed application technologies (ASMX, .NET Remoting, .NET Enterprise Services, Web Services Enhancements, and System.Messaging), Indigo delivers a single development framework that improves developer productivity and reduces organizations’ time to market.

Avalon is the code name for Microsoft's unified presentation subsystem for Windows. It consists of a display engine and a managed-code framework. Avalon unifies how Windows creates, displays, and manipulates documents, media, and user interface. This enables developers and designers to create visually-stunning, differentiated user experiences that improve customer connection. When delivered, Avalon will become Microsoft's strategic user interface (UI) technology.

This preview also contains the WinFX SDK documentation, samples and tools.



System Requirements




  • Supported Operating Systems: Windows Server 2003, Windows XP




  • Supported Visual Studio tool set: February CTP release of Visual Studio 2005

[Download Available Here]


 
Categories: Web Development

May 1, 2005
@ 04:44 PM

Visual Basic at the movies is a site developed by the msdn team that highlights the features of Visual Basic.Net.  The site is targeted at the would be vb.net newcomer as well as the advanced vb.net developer and contains 101 short videos covering topics from control features to features of ADO.Net, XML, the Visual studio.net development environment and much, much more.  I encourage you to visit the site and take a look at the varied topics covered.  The site's theme is that of a classic movie theater with each topic displayed as a classic film. Take a look and as the site suggests, “grab your popcorn and soda, sit back and enjoy”.


[Vb At the Movies]


 
Categories: Web Development

It's time again to open up your developer's toolbox and make room for the new must-have tool, virtual machines. As a software consultant, I find myself traveling from customer to customer and constantly working in new development environments. As interesting as that is, a new environment means installing and configuring new tools. Inevitably, a tool install or uninstall fails, I remove a piece of software that I end up needing again later, different versions of tools conflict, or I just plain screw things up. Since my development laptop is my only laptop, wiping out and reinstalling the drive is not a fun task.

Enter virtual machines. Virtualization technology has come a long way in the past few years, and hardware is now fast enough to make a virtual machine feasible for interactive development. Virtualization software, such as Microsoft Virtual PC or VMWare Workstation, allows you to run another complete operating system—a virtual machine (VM)—in your current operating system. Although virtual machines have been gaining popularity on the server side recently, their growth on the client side has been limited—especially in a development environment.


[More]


 
Categories: Web Development

Microsoft finally told Web developers what they've wanted to hear for years, promising support for graphics and style sheet standards.

In a blog entry posted Friday, a member of Microsoft's Internet Explorer development team said the company plans to support key elements of World Wide Web Consortium (W3C) recommendations Portable Network Graphics (PNG), an image format, and Cascading Style Sheet (CSS), a Web page styling standard.

"We have certainly heard the clear feedback from the Web design community," Chris Wilson, lead program manager for the Web platform in IE, said in reference to support for the PNG standard. "Our first and most important goal with our Cascading Style Sheet support is to remove the major inconsistencies so that Web developers have a consistent set of functionality on which they can rely."

Glitches in IE's standards support mean that developers have to code separately for IE and for browsers that hew more closely to the standards. IE enjoys about 90 percent browser market share despite losing some points to the Mozilla Foundation's open-source Firefox browser.

Other improvements said to be on tap for IE 7, currently code-named Rincon, include tabbed browsing and support for IDN (Internationalized Domain Names).


[Via C|Net]


 
Categories: Web Development

Refactor! for Visual Basic 2005 Beta 2 is a free plug-in from Developer Express Inc., in partnership with Microsoft, that enables Visual Basic developers to simplify and re-structure source code inside of Visual Studio 2005, making it easier to read and less costly to maintain. Refactor! supports more than 15 individual refactoring features, including operations like Reorder Parameters, Extract Method, Encapsulate Field and Create Overload.


Simplify Your Visual Basic Code


More and more developers are recognizing that simple, easy-to-read code is the key to application flexibility and easy maintenance. Managers are realizing that easy maintenance means low cost maintenance. If you know in your heart that parts of your code base could be better, but uncertainty about maintenance cost or concerns over breaking code have kept you from cleaning up your house, then Refactor! is for you. Refactor vaporizes barriers to code simplification, dramatically reducing the cost traditionally associated with improving, simplifying, and refactoring existing code.


Download Now


Additional Resources:


http://shrinkster.com/4v9


Demo Videos:


http://msdn.microsoft.com/VBasic/Downloads/2005/Tools/Refactor/30SecDemo.Aspx


http://msdn.microsoft.com/VBasic/Downloads/2005/Tools/Refactor/3MinDemo.Aspx


[More]


 
Categories: Web Development

Declarative programming by way of custom controls has always been a part of Windows (WinForms) development. But it wasn't until the release of ASP.NET that developers got a chance to apply these principles and techniques to Web development.

OK, time to pick a fight. What is declarative programming? Well, as I stated above, I've seen many definitions of that term lately; but most of them pretty much break down into similar descriptions. It is a style of programming whereas at one level you define, in detail, how a variety of things are done, and from another level you instruct as to what needs to be done. Let me explain with a couple of examples in the context of languages I'm sure you already know.


[More]


 
Categories: Web Development

Microsoft is offering a free copy of Windows XP Professional x64 Edition via the Technology Advancement Program.  This is designed to assist customers who have acquired a new x64 Computer with the intention of replacing a previously licensed 32-bit version of Microsoft® Windows XP Professional for the new version of Windows XP Professional x64 Edition.


[Via Microsoft]




 
Categories: Web Development

Ajax is a combination of several technologies that promises to make browser based applications more interactive. But will it be enough to counter the claim that Windows based Smart Clients provide the best possible interface and user experience in an Internet world? We want to know what you think?

Ajax is the combination of several technologies including


  • standards-based presentation using XHTML and Cascading Style Sheets (CSS)
  • dynamic display and interaction using the Document Object Model
  • data interchange and manipulation using XML and XSLT
  • as