Jun 26, 2007

Silverlight for Linux [Moonlight Project]

Miguel de Icaza and his Mono project cohorts have quickly produced an implementation of Silverlight for Linux. The effort is called Moonlight.

Silverlight is an extended subset of the 2.0 .NET framework that can support rich media on multiple browsers and platforms.

Various developers worked intensely to create the first version of Moonlight, which de Icaza demonstrated at a European Microsoft MIX event last week.

de Icaza blog on Moonlight
http://tirania.org/blog/archive/2007/Jun-21.html
Moonlight Project page
http://www.mono-project.com/Moonlight
continue reading Silverlight for Linux [Moonlight Project]

Jun 25, 2007

Jcx.Software releases VS.php 2.3 for Windows Vista

Jcx.Software has announced the release of VS.Php 2.3 for Visual Studio 2005, a PHP integrated development environment (IDE) for Microsoft Visual Studio 2005.

VS.Php 2.3 adds support for Windows Vista and Visual Studio Service Pack 1 for Visual Studio 2005.

Its new features focus on providing developers with the ability to work easily on existing PHP applications hosted on remote sites.

VS.Php 2.3 has also improved support for deploying local projects in a faster and more efficient manner, including support for deploying files using FTP over SSL.

Another key feature in VS.Php 2.3 is the ability to import projects from a remote server. The wizard lets the developer download the entire Php application from a remote server and makes it possible to work on the project locally. The developer can then choose to deploy the files back to any remote server.

Jcx.Software founder J. Rivera explained: "Developers no longer have to worry about editing files over a command shell window or editing files locally and copying their changes via FTP. VS.Php lets you work on remote files as if they were local in context."

VS.Php 2.3 comes in four different editions:

  • VS.Php 2.3 Standalone Edition
  • VS.Php 2.3 for Visual Studio 2005
  • VS.Php 2.3 for Visual Studio .NET 2003
  • VS.Php 2.3 for Visual Studio .NET

Said Brian Goldfarb, group product manager in the Web/Client UX Platform & Tools Team at Microsoft Corp., "By making optimal use of Visual Studio, VS.Php provides an all-in-one IDE to PHP developers that allow them to build dynamic web applications faster and ensure quality throughout the development process."

Follow this link to visit the download page.
Read More
continue reading Jcx.Software releases VS.php 2.3 for Windows Vista

Jun 20, 2007

Introducing the Entity Framework






Databases tend to be a necessary evil to most developers. They want a way to persist data, but they do not want to deal with any of the minutiae of writing code against them. This is not a new phenomenon. I have seen commercial packages going back into the eighties that purported to make working with the database completely seamless. Whether they are called “persistence layers”, “object-relational tools” or even “data abstraction layers”; many of these tools are aimed at speed to market or rapid application development (RAD) solutions. There is no best solution here. Depending on your project or enterprise, the requirements will often dictate the right tool for the job.

When Microsoft announced they were going to release a new technology called “The Entity Framework”, it was met with interested skepticism by most of the development community. Immediately there were comparisons to popular object-relational tools (NHibernate, LLBLGen Pro, et al). What got lost in the haze of comparisons was that the Entity Framework was a completely different animal. The most important piece of information in this article is that the Entity Framework is not meant to solve the same problem that these other tools are trying to meet.

In this article I will introduce you to this new technology and try to explain the “why” and “where” of the Entity Framework. I am purposely skimping on the “how” because details of the implementation are in a constant state of flux in response to customer and community involvement.

For this article I am using the Entity Framework as it exists in the Orcas Beta 1 version delivered by Microsoft in April of 2007.

The Problem…

Teams build software, not developers. Different members of a team think of data differently. For example:

  • Developers think in class diagrams
  • Analysts think in OR diagrams
  • DBAs think in ER diagrams

There is an impedance mismatch between these different models. Developing a common language for these models is one approach to solve the mismatch, but these groups continue to think in different ways about a project’s data.

The mismatch of data model continues outside out the realm of software development teams. We have a larger set of tools and technologies that each try and develop their own models for consuming data. If we look at how our data is consumed, only some of it comes in the form of software projects. Data is mined, reported on, warehoused and exposed through interoperability points. Each of these points has their own idea of what the data looks like. This means that either the schema is exposed up through the middle tier or application models are pushed down to the middle tier. Developing a common dictionary for data model within an organization is difficult because there is not a common grammar that works across different fiefdoms.

Read Full Article : Click Here



continue reading Introducing the Entity Framework

Hibernate, NHibernate, drivers and data

As with any software, individuals find their ‘mileage may vary’ when they implement ORM solutions. Things go wrong, or, more likely, things work, but they don’t work fast enough. While clearly seeking to complement and not supplement software like Hibernate/NHibernate, makers of established data access layer software tools may have a valid perspective on the issue when they say “Don’t forget the drivers!”

By Jack Vaughan
One area where the Java and .NET communities have seen at least a modicum of development overlap is in object-relational mapping via the Hibernate tool; that being Hibernate on the Java side and NHibernate on the .NET side. There are different schools of thought on the value of Hibernate/NHibernate, but little doubt that the software has proved useful and popular.

As with any software, individuals find their ‘mileage may vary’ when they implement ORM solutions. Things go wrong, or, more likely, things work, but they don’t work fast enough. While clearly seeking to complement and not supplement software like Hibernate/NHibernate, makers of established data access layer software tools may have a valid perspective on the issue when they say “Don’t forget the drivers!”

This message comes through in a recent conversation I had with Jonathon Bruce at Microsoft TechEd I Orlando. Bruce, a former Sun hand, is now program manager at DataDirect Technologies for .NET and XQuery Technologies.

As such, Bruce is involved with multiplatform issues, with data being the common thread. DataDirect has a long history in the forefront with ODBC and JDBC data access methods. [Obviously, for DataDirect and for most developers, data access is much more than just that - but let’s remember how formative ODBC and JDBC were when new!]

We asked Bruce if people have disappointment when implementing Hibernate/NHibernate but then overlook possibly related issues in the systems chain, such as with data drivers. He said:

“One of the things to remember when using things like Hibernate or NHibernate is that you are putting more effort on your application development time and your runtime to actually abstract yourself away the data base.”

“And in doing so you really expose yourself to the criticality of how you actually communicate with the data base. So the right thing to do from the get-do – and I will acknowledge that [Hibernate/NHibernate] certainly saves you a lot of development time - is making sure you have all your ducks lined in the right row.”

“You have to match up your … drivers or providers … so that you can be sure your application will perform and have the level of reliability that you really need – particularly when you move your application from a small production environment to a critical application environment.”

One can say: ‘Well, driver people would say that wouldn’t they?’ Yup, that is true. But they may know a thing or two, too.

Jonathon Bruce’s blog is a lively journal that regularly touches on these and related topics. Bruce is particularly interested in XQuery, which, when first discussed, seemed like a potent data interoperability solution of sorts. Reading his blog one discovers that – lo and behold - XQuery finally got through the standards process this year. It was a hard and too-long journey, really. But maybe it is time to revisit the XQuery firmament too. What do you think? What role do you think data interoperability plays in the overall world of application interoperability?


Source : Click



continue reading Hibernate, NHibernate, drivers and data

Jun 19, 2007

aspect-oriented extension to C#

Eos is an aspect-oriented extension to C# programming language for Microsoft® .NET Framework™. Its programming language model is based on AspectJ-like languages. It supports modularization of crosscutting concerns by adding three constructs to C#. A concern is a dimension in which some design decision is made. Some examples of concerns are execution trace policy, use of common thread pool, security policy enforcement, caching etc. A concern is crosscutting if it cannot be realized in traditional object-oriented designs in a modular way – that is, if any implementation of the concern involves scattered and tangled code. Scattered means not localized in a module but fragmented across a system. Tangled means mingled with code for other concerns. For example, the implementation of execution trace policy is scattered across all methods of the system and tangled with the concerns implemented by the methods.

The language model of Eos adds three new constructs to C#: pointcuts, bindings, and inter-type declarations. The pointcut and inter-type declarations are similar to their counterpart in AspectJ. The pointcut select points in the execution of a program. These points are called join points in aspect-oriented terminology. The binding construct connects the join points to methods. Whenever the join point is reached in the program execution, the bound method is executed. The binding construct uses the pointcut construct to select a set of join points to connect a method. The inter-type declaration allows a third party type to add additional members and interfaces to a type without involvement of the type itself.

Source : http://www.cs.virginia.edu/~eos/doc/
continue reading aspect-oriented extension to C#

Runtime Assembly Instrumentation Library



This project plans to implement an API that allows CLR assemblies to be manipulated and instrumented before they are loaded and executed.
In the CLR, the AppDomain class and the ResolveEventHandler event handler already provide an excellent mechanism for dynamically loading assemblies into an application domain under the control of the programmer. At the same time, the reflection capabilities of the CLR are extremely powerful. Not only it is possible to query the existing types at runtime, but is also possible to define new assemblies in memory and use Reflection.Emit to generate MSIL on-the-fly. Our plan is to fill the gap between these two concepts. The idea is to have an API that allows the programmer to intercept the class resolution process, examining and manipulating the code that exists in an assembly, before the code is actually defined on the virtual machine. This API will be called RAIL: Runtime Assembly Instrumentation Library.
By using RAIL it will be possible to specify specific transformations that must be done at an assembly before it is loaded and executed. These transformations will be specified using a high-level API, abstracting the programmer from the low-level details of MSIL and the assembly binary format. For instance, it will be possible to substitute the references to a class for references to another class, change the name and usage of constants and variables, examine and change existing methods, and so on.

Source : http://rail.dei.uc.pt/index.htm
continue reading Runtime Assembly Instrumentation Library

Jun 18, 2007

Microsoft .NET Release Bug

Introduction

This article demonstrates a major flaw in the Microsoft .NET Framework 1.1. To my knowledge, there isn't a patch to fix the problem.

Background

You may ask ... "What is a Release Bug?"

A release bug is the outcome of code that was written to be output differently when compiled in different modes. Take for example that you have a simple program that adds two variables, and outputs the data. Say the input values were (2, 2) and the result returned SHOULD BE EQUAL to 4. If compiled in debug mode you get the answer 4 and in release mode you get the answer 5. Sounds funny? It's NOT FUNNY AT ALL! This is a real problem. Now the example I just used does not produce a RELEASE BUG, but was just for you to understand the scope of the problem.

Now there are 4 different ways that a program can be run:

  1. Through the Visual Studio IDE in DEBUG mode
  2. Through the Visual Studio IDE in RELEASE mode
  3. Run the EXECUTABLE that was compiled in DEBUG mode
  4. Run the EXECUTABLE that was compiled in RELEASE mode (this is where the RELEASE BUG appears)

Three of the four running applications will return the same results, while that last will return irregular results. Release bugs are some of the hardest bugs to find. Nowhere is there a compile error, logical error, warning, or anything at all. Sorry there is one thing ... NOTHING. When sifting through 60,000+ lines of code to look for this, it becomes quite complex. Don't give up, they are possible to find.

The code compiled here demonstrates the problem I encountered and what I did to fix it. I also explain ways to help fix the problems.

Read More : Click



continue reading Microsoft .NET Release Bug

Jun 11, 2007

How can ASP.NET applications run on Linux?

Introducing The Mono Project

As the title of this article suggests, you are probably asking yourself “How can ASP.NET applications run on Linux?” The answer comes in the form of a free software download from Ximian, a little known company that was recently acquired by networking giant Novell. The Mono Project, as the software development effort is officially known, is primarily designed to allow Unix and Linux developers to compile and run .NET applications on their platform of choice. However, if you’re not a Unix or Linux developer don’t turn the channel just yet! The odds are good that at least deploying ASP.NET applications on Linux may still be in your future because of the reduced costs associated with this combination. Even if you have no personal interest in Linux or Mono’s cross-platform goals it’s still a good idea to be prepared to offer this low-cost option to your customers or management.

As you may be aware, most companies offering low-cost web hosting services provide their customers with access to a Linux box running Apache. They also generally provide access to some form of open source database software (often MySQL or PostgreSQL) as well as access to a scripting language like PHP that is pretty much equivalent to classic ASP. While this combination can be employed effectively to build a variety of web-based applications, it’s impossible to deny that there are many benefits to using a more modern language architecture like ASP.NET. Customers who want the best of both worlds—that is, the ability to deploy ASP.NET applications in a low-cost environment—will inevitably be drawn to the powerful combination of Linux and Mono to provide this capability.

Compatibility - The Good News

As we get into the nitty-gritty of our discussion of Mono’s compatibility with .NET be prepared for some good news and some not so good news. As tradition dictates, we’ll look at the good news first.

Our first bit of good news is that if you want to use Mono to test your applications for compatibility but have little interest in establishing a Linux test environment then you’re in luck. Mono provides a simple Windows executable that will install and configure your system for Mono development. In fact, it’s important to note that Mono has no dependencies on .NET applications or class libraries so you don’t need to have .NET installed on Windows to develop .NET applications with Mono. To download the latest Mono installer head on over to http://www.go-mono.com/download.html and grab the latest version.

Mono currently supports ASP.NET deployment on Linux using either a small, light-weight web-server written in C# called XSP or via an add-on for Apache called mod_mono. Whereas XSP is ideal for experimentation and development scenarios mod_mono is clearly the choice for deployments demanding greater performance and reliability. Currently, Mono’s XSP web-server is not included as part of the Mono distribution. Although downloading the C# source code for XSP is easy enough, actually building the source on Windows is a pain since Mono’s build system is very UNIX-centric in its reliance on “make” files. Since most Windows users don’t have the tools required to compile “make” files I’ve posted the XSP executable at my web-site here. What’s interesting to note is that although I built the XSP executable on Linux it runs just fine under Windows, which brings us to our next bit of good news…

Because Mono’s .NET compatible run-time (officially called the CLI, short for Common Language Infrastructure) is byte code compatible with Microsoft .NET binaries, you can (at least in theory) copy an existing .NET application from Windows to Linux and run it without recompilation. Likewise, any application compiled using Mono’s C# compiler will also run without recompilation under Windows. Of course, the truth of the matter is that, in either case, if you write your application using assemblies that are not available on the alternative platform you’re going to run into problems and therein lies the rub…

Compatibility - A Few Missing Pieces

Of the various .NET namespaces that often crop up during ASP.NET development most are very well supported considering Mono has not yet reached the 1.0 milestone. The chart below (Figure 1) will give you a good idea of where Mono’s porting efforts currently stand in regard to several namespaces typically associated with ASP.NET development. If you want to keep tabs on the development of any particular namespace you should head over to Mono’s web-site and check out their Class Status Page at http://www.go-mono.com/class-status.html. For a broad view of Mono’s release schedule take a look at their roadmap page at http://www.go-mono.com/mono-roadmap.html.

Namespace

Percent Complete

System.Web

98%

System.Web.Services

97%

System.Data

90%

System.XML

99%


As the table above indicates, the ADO.NET namespace is about 90% complete. Moreover, Mono provides reasonably functional SQL Server drivers and work to improve them continues at a pretty fast clip. The biggest problem Windows developers are likely to face, however, is that any hosting company unwilling to spring for a Windows server license is not likely to provide you with access to Microsoft SQL Server either. Instead, you will most likely be given access to either MySQL or PostgreSQL. The former, MySQL, is generally more popular in the Linux world because of its simplicity and reputation for fast SELECT queries which makes it ideal for serving dynamic web content. PostgreSQL is no slouch either and has features which make it a much better match with SQL server from the standpoint of the developer but, alas, at the cost of additional complexity.

Now for that bit of bad news I mentioned. Although Mono’s implementation of ASP.NET is fairly complete, one functional area closely related to ASP.NET is not very far along in development; namely, the System.EnterpriseServices namespace. The EnterpriseServices namespace essentially wraps underlying Windows operating system services to provide support within .NET for transactions, message queuing, and other enterprise services. The problem is that to implement these same services Mono will have to provide either native .NET implementations or wrap similar services that are available on the Linux platform. In either case, compatibility will likely be an issue so you’ll probably want to avoid this namespace for some time to come.

Since Mono is by definition attempting to reverse engineer and re-implement Microsoft’s released implementation and specifications it stands to reason that they will always be one step behind the latest Microsoft release. In addition, given the differences between the Windows and Linux platforms it is quite likely that Mono will offer additional APIs to offer full coverage on their platform of choice.

Real World Mono

Now that you understand that Mono’s implementation of .NET is still a work-in-progress it’s important to reflect on how much has been accomplished by the talented programmers contributing to this effort. A good example of the progress Mono has made toward providing a viable cross platform ASP.NET implementation is found in the fact that a number of Microsoft’s sample applications including IBuySpy work unmodified on Mono. As for performance, although Microsoft’s C# compiler generates more performant code is currently more performant than that produced by mono’s C# compiler the gap is closing rapidly. In addition, Mono’s support for Visual Basic.NET is shaping up quite nicely.

Even though Mono has yet to reach a 1.0 release at least one hosting provider, http://www.monohosting.net/, has committed to providing low-cost ASP.NET hosting using Mono. In the meantime, you can experiment with this interesting technology and even contribute to the project yourself if you are so inclined. For more information on how you can help Mono develop into the powerful cross-platform development tool it may well become just click on this link: http://www.go-mono.com/contributing.html

Mono, Microsoft, and Software Patents
continue reading How can ASP.NET applications run on Linux?

Jun 5, 2007

Flash Player or Silverlight?

Who’s better looking – Flash Player or Silverlight?

As of today, 98% of the world computer users know what Flash Player is and only 2% or so know what’s Silverlight. But this will change pretty soon because Silverlight is nothing else but a new name of Microsoft’s WPF/E (Windows Presentation Foundation Everywhere).

Or to put it simple, it’s a Web browser plugin that supports Internet Explorer, FireFox and Safari.

While Flash Player applications can be developed by Flash, Flex or OpenLaszlo developers, applications for Silverlight can be developed in Visual Studio or Expression studio. I’ve seen the demo of these IDEs last month at Microsoft, and they looked very good.

Both Flash Player and Silverlight can read any plain HTTP feed. Flex also offers faster binary protocols for communication with the server side applications written in Java and other languages, including a third party solution (offered by Midnight Coders) for integration with .Net. I am not sure if there are any such deals for fast communication between Silverlight and non .Net applications.

For streaming video for Flash Player you can use either Flash Media Server or open source Red 5. For streaming video for Silverlight, you can use Microsoft’s Internet Information Server.

As of today, Flash Player is far ahead in terms of install base and it’ll take Microsoft lots and lots of efforts to come even close to the leader. But I’m sure Microsoft will be in a much better situation a year from now, and they won’t need to use Flash Player for online commercials of their future versions of Windows as they did with Vista.

Source : http://java.sys-con.com/read/362283.htm
continue reading Flash Player or Silverlight?

Flash Player or Silverlight?

Who’s better looking – Flash Player or Silverlight?

As of today, 98% of the world computer users know what Flash Player is and only 2% or so know what’s Silverlight. But this will change pretty soon because Silverlight is nothing else but a new name of Microsoft’s WPF/E (Windows Presentation Foundation Everywhere).

Or to put it simple, it’s a Web browser plugin that supports Internet Explorer, FireFox and Safari.

While Flash Player applications can be developed by Flash, Flex or OpenLaszlo developers, applications for Silverlight can be developed in Visual Studio or Expression studio. I’ve seen the demo of these IDEs last month at Microsoft, and they looked very good.

Both Flash Player and Silverlight can read any plain HTTP feed. Flex also offers faster binary protocols for communication with the server side applications written in Java and other languages, including a third party solution (offered by Midnight Coders) for integration with .Net. I am not sure if there are any such deals for fast communication between Silverlight and non .Net applications.

For streaming video for Flash Player you can use either Flash Media Server or open source Red 5. For streaming video for Silverlight, you can use Microsoft’s Internet Information Server.

As of today, Flash Player is far ahead in terms of install base and it’ll take Microsoft lots and lots of efforts to come even close to the leader. But I’m sure Microsoft will be in a much better situation a year from now, and they won’t need to use Flash Player for online commercials of their future versions of Windows as they did with Vista.

Source : http://java.sys-con.com/read/362283.htm
continue reading Flash Player or Silverlight?

Jun 4, 2007

Microsoft Pre-Release Software Microsoft .NET Framework 3.5 – Beta 1

Overview

The Microsoft .NET Framework 3.5 Beta 1 is a preview release of the latest version of the .NET Framework. Many ISV’s, enterprises and Microsoft product teams are successfully building on the new features Windows Workflow Foundation (WF), Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF) and Windows CardSpace in the .NET Framework 3.0. Microsoft plans to continue to invest in the .NET Framework developer platform and in support of existing users the .NET Framework 3.5 has a minimal number of breaking changes. So that existing applications built for .NET Framework 2.0 or .NET Framework 3.0 should continue to run without requiring changes. The .NET Framework 3.5 adds new features in several major technology areas; including:
  • Deep integration of Language Integrated Query (LINQ) and data awareness
  • ASP.NET AJAX for quickly creating more efficient, more interactive and highly-personalized Web experiences that work across all the most popular browsers
  • New web protocol support for building WCF services including AJAX, JSON, REST, POX, RSS, ATOM and several new WS-* standards
  • Full tooling support for WF, WCF and WPF including the new workflow-enabled services technology
  • New classes in the base class library (BCL) for the .NET Framework 3.5 address the most common customer requests.
.NET Framework 3.5 is planned to release at the end of 2007 and will ship with Visual Studio code name ”Orcas” and will also continue to be available for separate download from MSDN.

For more detail about the features being introduced in .NET Framework 3.5 and Visual Studio code name “Orcas”, click here http://msdn2.microsoft.com/en-us/vstudio/aa700830.aspx


For more information about the .NET Framework, click here http://msdn.microsoft.com/netframework

Download : Click
Source : www.microsoft.com

continue reading Microsoft Pre-Release Software Microsoft .NET Framework 3.5 – Beta 1

Jun 2, 2007

Top Ten New and Exciting Features in ASP.NET 2.0

ASP.NET 1.0 was a revolutionary advance in developing Web Applications. With its fully complied, highly extensible Server-Side control model, it was one of the best applications of Microsoft’s .NET runtime. It solved many of the issues plaguing ASP developers, and kept the development-centric philosophy that made ASP such a huge hit amongst the web-client community.

But problems remained with the ASP.NET 1.0 release, not an entirely unexpected situation given it was, after all, a 1.0 product. Developers found themselves writing a lot more code than they thought was good, and it was more difficult than it should have been to keep presentation and business logic well-partitioned and separate.

With ASP.NET 2.0, the ASP.NET team has continued to lead the way in making developer’s daily lives more enjoyable. The main theme of ASP.NET 2.0 seems to be “write less code”. In this article, with homage to David Letterman, we will count down my top ten favorite features of this new runtime. (Feel free to imagine the top ten list being enthusiastically read by Bill Gates, but of course, in your imagination he will only be reading the topics themselves—I will be reading the actual explanations.)

With no further ado, we begin, as always, with:


10) Application-wide registration of custom controls.

One of my biggest complaints about custom controls (and this was true of both UserControls and custom controls from a custom assembly) was that you had to put a “<%@ Register %>” directive at the top of every .aspx page from which you wanted to declare an instance of the control.

One of the main purposes of custom controls was to be able to use them from multiple .aspx pages in one application. Since controls typically encapsulate elements like menus, site navigation etc., it seems counterintuitive to me that in order to reuse that code, you have to add something to each and every page. But in ASP.NET 1.0, there has to be one Register directive for each assembly/namespace combination and one for each UserControl. If you need to add a new custom control, you have to go into every page where you want to use it, and add it manually.

In ASP.NET 2.0, you can add the Register directives to the web.config.





tagPrefix="jonishappy"
namespace="JonIsHappyNamespace"/>




You might wonder, if I was so worked up over it in ASP.NET 1.0, why it is number 10 on my list and not number 1? To be fair, despite my ranting, it was annoying, but not really life-threatening. It usually wasn't too hard to find the problem in the first place, and a simple cut-and-paste operation usually fixed the problem in seconds.


9) Programmable Configuration.

This is really a .NET runtime improvement, but it is still a big win for ASP.NET. The web.config file contains all the configuration information for an ASP.NET application. In ASP.NET 1.0, in order to change something (like a database connection string in the AppSettings element) you have to open the web.config file in the text editor of your choice.

With the new version, you can go into the configuration programmatically (without having to resort to manipulating the XML directly) and change the settings of your ASP.NET applications. This makes building things like installers, administration modules, and pages much easier.


8) Web Part controls.

Even though the personalization craze of the web has somewhat died down in recent years, there still are plenty of situations in which you will need to expose customization of pages to your end users.

With Web Parts, the ASP.NET team has given us a way to do that without writing any additional code. The WebPartZone control is used to define an “area” of the page that can be customized. Each zone can be made up of multiple parts which can be a ContentWebPart control, a custom control, or a UserControl. Used in conjunction with the WebPartManager controls, you can give your end users the ability to change where the controls in their page are displayed.


7) Posting to other pages.

One programming paradigm that ASP.NET 1.0 developers had to get used to was that the HTML forms in ASP.NET 1.0 had to have their action attribute refer back to the page that created the rendered page.

This wasn’t so much a limitation on functionality, since with Response.Redirect or Server.Transfer, moving a user from one page to the other was just a matter of maintaining the page’s state for the second page to retrieve. But it was a nuisance just slightly above the @Register directive on the annoyance scale.

ASP.NET 2.0 gives controls that cause a post-back to the server the ability to change the action of the form in the HTML page, causing the page’s state and data to be posted directly to an ASP.NET page other than the one that created it.

In the ASP.NET where you are declaring the server-side controls you set the PostBackUrl property to the aspx page you’d like the form to submit to.

In the second page you can retrieve the data the user inputted into the HTML form rendered by the first page by accessing the PreviousPage property and finding each control you’d like to get data from.


6) SQL Cache Dependency.

The ASP.NET 1.0 HttpCache class was a great feature for maintaining application-level state. One of the coolest features was the ability to create a dependency between an object you placed into the cache with another object, a file, or a directory.

Since frequently the object that you put into the cache related back to a table in your database, probably the question I got asked the most often when lecturing on ASP.NET was whether an object put into the cache could be invalidated when the underlying table changed. The answer in ASP.NET 1.0 was no. The new answer is yes.

To make this work, you first have to configure the SQL Server instance using the aspnet_regsql.exe command line tool. Then create an instance of the SqlCacheDependency class and add that into the Cache object when adding your data to the Cache.


5) Master Pages.

Using implementation inheritance was a cornerstone of the ASP.NET 1.0 model. Each .aspx page was compiled into a .NET class, and System.Web.UI.Page was that class’ eventual base class.

One oft-used technique in ASP.NET 1.0 was to create a “master page class”. This class derived from Page and generally had all the common functionality that each and every .aspx page in an application needed to use. It was trivial to get ASP.NET to use this class as the base class for all classes generated from your .aspx files.

Since ASP.NET is a framework to create user interfaces, the downside of this “master base class” model was that any server-side controls that were added dynamically via this class wouldn’t appear in the .aspx file designer in Visual Studio .NET.

In ASP.NET 2.0 there is a new feature called Master Pages. Master Pages are essentially ASP.NET syntax in a file with the .master extension. A Master Page can be created and serves the same purpose as the “master base class”. There are two main differences with the Master Page model.

One, the .master pages are visually designable. Not only that, when a .aspx page uses a Master Page, the visual elements from the Master Page are displayed in the design view of the .aspx page – grayed out.

Two, the Master Page isn’t used as the base class for the .aspx file.


4) Visual Studio .NET project model.

One complaint that was heard around the world about ASP.NET 1.0 wasn’t really an ASP.NET problem, but a Visual Studio .NET (VS.NET) problem. Although ASP.NET supposed a number of different compilation and deployment models, VS.NET was fairly myopic in its view of how everyone should develop ASP.NET web applications. VS.NET’s model wasn’t wrong for every scenario, but it was wrong in enough instances to warrant a fairly bad rap when developing ASP.NET.

In ASP.NET 2.0, VS.NET (specifically VS.NET 2005) is much more flexible. It is flexible in terms of what part of an ASP.NET application may be open in the IDE at one time (no more solution files). VS.NET 2005 allows you to use a “codebehind” file or not, it is up to you, where VS.NET 2002/2003 both strictly enforced the “codebehind” file model.


3) Visual Studio .NET /ASP.NET compilation model.

In close connection with item number 4, VS.NET 2005 also frees the intrepid developer to compile at will. In fact, late compilation is the norm with 2005, which again is the opposite of the 2002/2003 model.

Part of this new lax view towards compilation goes hand in hand with new features built into ASP.NET 2.0. ASP.NET 2.0 takes advantage of the new feature built into C# and the CLR itself which allows a class to be defined in multiple files. Essentially, instead of “codebehind”, we now have “codebeside”, in which the class created from the .aspx file gets compiled into the same class that can exist in another file. This straightens out some of the weird object-oriented weirdness that sometimes ensued because of ASP.NET 1.0’s derived (.aspx ) base class (“codebehind”) model.

Also with ASP.NET 2.0 there is a command line compiler (aspnet_compile) that allows you to precompile a whole ASP.NET application. This feature is also exposed with a specialized handler which can be found at the precompile.axd endpoint in your application.


2) Provider model.

When the ASP.NET team looked at the code being written in the real world, they saw many chunks of code they felt they could build into the runtime itself. Many of these chunks need some data to back up the UI. Of course the ASP.NET team couldn’t choose a data source for every application, nor should they. So they used a layer of indirection.

This layer is known as a provider. A provider sits between the UI piece (the ASP.NET server-side control) and the data (which could be an ADO.NET data source, an XML file, or something else). The provider generally derives from a specific base class and that base class has methods that the UI piece can call to get the data necessary to render itself. ASP.NET 2.0 ships with providers for the most common types of data. If you have a different data source, you are free to build your own provider.

One standout example is membership. For membership, ASP.NET 2.0 ships a provider for Access and SQL Server, and a set of controls that allow logins, account creation, account editing, password reminders, etc. Building a gated web site with these new controls and a provider is really a snap. Expect to see more of this functionality unfold over time.


1) Declarative Databinding.

In ASP.NET 1.0, Databinding was one of the top features. Freeing developers from looping over rows of data and concatenating strings to generate HTML by allowing a control to just take a data object and run with it, with the rendered HTML being created based upon properties set on the control, was a genius idea. The only slight problem was that in order to make Databinding work, we still had to write code.

In ASP.NET 2.0, they introduce the concept of Declarative Databinding, which essentially allows you to declare the properties you want on your data source with the same declarative model you use to declare the server-side controls themselves. Datasource objects are created in the same way as server-side controls, by dragging and dropping them from the toolbox, or by adding the declaration to the .aspx file. Once configured, a datasource can be bound to a data-bound control.

Clearly, there are a lot more than just 10 new features in the ASP.NET 2.0 release; we could easily have turned this into a Top Twenty, Top Fifty or even Top One Hundred list, had we wanted. ASP.NET marks a huge new set of functionality, driven by customer demands and requests, and your Top Ten list will likely differ from my own, depending on your experience and history with ASP.NET. But in the meantime, while you're building your own list, try starting with these 10—I think you'll like these new features just as much as I do.

Source : http://www.theserverside.net/tt/articles/showarticle.tss?id=WhatsNewASPNET
continue reading Top Ten New and Exciting Features in ASP.NET 2.0

64-Bit Performance Benchmark

CachePerf: Examining the Impact of 64-bit Extended Memory Addressability on .NET and WebSphere Middle Tier Web Applications

November 2005

Download the source code for the applications referenced in this article

Download this article in PDF format

Introduction

With the arrival of 64-bit computing for mainstream developers, many developers and IT professionals are asking an important question: in what scenarios will 64-bit computing make a performance difference for line-of-business applications on the middle tier, and how big a difference can it make? This paper examines one core scenario where 64-bit platforms can have a tremendous impact on the performance of a wide variety of middle-tier applications. This scenario is the use of the extended memory addressability of 64-bit platforms vs. their 32-bit counterparts to dramatically expand the benefits of object caching on the middle tier. We analyzed this scenario using a Web-based benchmark application we created called CachePerf. CachePerf measures the performance of an application server as it receives incoming Web requests and services these using an object-level, server-based cache.

In addition, the CachePerf results presented in this paper directly compares the performance of .NET 2.0 and IBM WebSphere 6.0.2.3 on both 32-bit and 64-bit platforms. Specifically, benchmark results are presented for 32-bit and 64-bit .NET 2.0 on Windows Server 2003 and 32-bit and 64-bit IBM WebSphere Application Server 6.0 on both Windows Server 2003 Enterprise Edition and RedHat Linux Enterprise Server 4.

All tests were conducted on AMD-Opteron hardware.


Full Article : http://msdn2.microsoft.com/en-us/vstudio/aa700838.aspx


continue reading 64-Bit Performance Benchmark