Dec 13

Part 4 from Bill Horst’s series, now its functions turn.

Functions

SQL SELECT clauses often involve functions, which can be scalar or aggregate. An aggregate function is applied to a field over all the selected records, while a scalar function is called with individual values, one record at a time. It is possible to re-create both kinds of functions with VB LINQ expressions, but in very different ways.

Scalar Functions

Scalar functions are called on each record with whatever parameters are specified. They can appear various places in a SQL query, such as in the SELECT clause. The Scalar Functions available differ from system to system, but usually, there will be an analogous VB method that can be used. If using a Scalar Function in a LINQ Select clause, you will probably need to specify an alias as well (FirstThreeLetters, CurrentTime).

SQL

SELECT LEFT(ItemName, 3) FirstThreeLetters, NOW() CurrentTime
FROM OrderTable

VB

From Shipment In OrderTable _
Select FirstThreeLetters = Left(Shipment.ItemName, 3), CurrentTime = Now

In the above case, Left and Now are methods already built into VB, defined in Microsoft.VisualBasic.dll. This will likely be the case for most common scalar functions you will find in SQL statements. Even if the function you wish to call does not exist in VB already, you can define your own methods, too. However, user-defined methods cannot be used in a Database query, as they will throw an exception at runtime. In the below example, MyFunction is a user-defined function called from the Select clause.

VB

From Shipment In OrderTable _
Select MyFunction(Shipment.Cost, Shipment.ShippingZip)

Aggregate Functions

Aggregate functions are called on certain fields over an entire set of records, and return one value. In a SQL statement, they can appear in the SELECT clause. With VB LINQ, this concept appears a bit differently.

A VB LINQ expression usually begins with a From clause. However, they can also begin with an Aggregate clause. The Aggregate clause has the same syntax as a From clause, except that it starts with a different keyword. If a query starts with an Aggregate clause, it must end with an Into clause. An Into clause is a comma-delimited list of Aggregate function calls, with aliases that can accompany them. The below example shows a SQL SELECT statement that uses Aggregate functions, and an equivalent VB LINQ expression.

SQL

SELECT SUM(Cost) TotalCost, COUNT(*)
FROM OrderTable
WHERE OrderDate > “Sept-29-2007

VB

Aggregate Shipment In OrderTable _
Where Shipment.OrderDate > #9/29/2007# _
Into TotalCost = Sum(Shipment.Cost), Count()

read source

Dec 04

Bill Horst continues with those simple examples. After this one here comes the other set. They are perfect to show basic syntax. Here are few more:

DISTINCT
SQL SELECT statements can include the DISTINCT specifier, which causes all duplicate records in the query result to be removed. In a LINQ expression, Distinct is its own individual clause, rather than a specifier on the Select clause. This means that Distinct can appear between any two other clauses. The Distinct clause takes whatever result is returned by the preceding clause (Select, in the case below) and returns a filtered result with duplicates removed. To two code examples below accomplish the same results:

SQL

SELECT DISTINCT Name, Address
FROM CustomerTable

VB

From Contact In CustomerTable _
Select Contact.Name, Contact.Address _
Distinct

ORDER BY
The SQL ORDER BY clause can also be represented in a LINQ expression. A LINQ Order By clause allows for a comma-delimited list of expressions to specify how results should be sorted. Any valid VB expression can be used, so these expressions don’t necessarily have to be the names of field that were selected.

SQL

SELECT * FROM CustomerTable
ORDER BY Phone

VB

From Contact In CustomerTable _
Order By Contact.Phone

ASC/DESC
A SQL ORDER BY clause can also include ASC and DESC keywords, to specify that the sort should be in ascending or descending order, respectively. VB uses Ascending and Descending keywords for the same purpose, with the same syntax. If neither specifier is present, ascending order is the default.

SQL

SELECT * FROM CustomerTable
ORDER BY Phone ASC, Name DESC

VB

From Contact In CustomerTable _
Order By Contact.Phone Ascending, Contact.Name Descending

Here is the original post by Bill Horst

Dec 03

I have severe lack of time so thats the reason to blog about the following posts in one short notice. Few weeks ago I came across Matt Berseth’s blog and made me quite good impression. He blogs frequently and providing quality posts. His last two I liked a lot.

The first one was about how to create image reflections. He describes three practices:

- Browser Specific Client Side Solution
- Cross Browser Client Side Solution
- Cross Browser Server Side Solution

Which one we choose is a matter of what we really want - rendering time or support for all browsers.

Then he wrote about my favourtite IDE - Visual Studio 2008. Matt described how we can use the new ListVew control plus adding DataPager control and extend it with SliderExtender Control from AjaxControlToolkit.

This post is provided with demo and source code for download. Thanks Matt!

Sep 20

Въведение

Silverlight е нова технология от Майкрософт предназначена за разработването на RIA. Тя се вгражда във всеки браузър като плъг-ин и е платформено независима. В тази статия ще покажа как се вграждат Silverlight проект в ASP.NET сайт.

Какво е необходимо

Като за начало изтеглете и инсталирайте новата версия на VS 2008 бета 2 от тук. Повече за новостите във Visual Studio 2008 бета 2. За да разработвате Silverlight приложения, също така ви е необходимо и Silverlight Tools Alpha. След като ги инсталирате, опцията за Silverlight проект ще стане активна в VS.
За да виждаме резултата в браузър ни е необходимо Silverlight runtime/plugin 1.1 Alpha

Идеята

Silverlight е базиран на Xaml, което е XML базиран език за UI елементи. С помоща на Xaml е възможно разграничаването на визуалните елементи от програмната част. Това се реализира чрез ‘code-behind’ концепция позната ни от ASP.NET. На всеки Xaml файл съществува C# файл, който съдържа програмната логика за управлението на графичните елементи.
Когато създаваме Silverlight проект използвайки темплейт от VS 2008, някои файлове се генерират автоматично с образователна цел. Xaml файлът е интегриран в примерена HTML страница. В тази статия ще ви покажа как да извадите Xaml от HTML страницата и да го интегрирате в ASP.NET страница.

Проектите

1. Silverlight проекта
Ако сте инсталирали всичко правилно трябва да видите следният екран когато изберете от менюто File -> New Project:

1.jpg

Проекта ще бъде създаден след като натиснете OK. Следните страници са създадени по подразбиране:
- Page.xaml: това е страницата в която описвате UI елементите
- Page.xaml.cs: тук пишете програмната логика. Обикновен C# код
- Silverlight.js: това е javascript файл с който създавате Silverlight контрола в HTML/ASPX страницата за да показвате Xaml съдържанието.
- TestPage.html: HTML страницата която съдържа Silverlight контрола

2. ASP.NET сайтът
Трябва да добавим и асп проектът към общия solution. Add -> New Web Site.

3. Добавяме Silverlight към уеб сайта
Натискаме с десния бутон на прокта на уеб сайта и от падащото меню избираме Add Silverlight Link.

2.jpg

Това беше първата стъпка. Следващата е да разгледаме HTML страницата за да разберем кой код е отговорен за генерирането на Silverlight контрола в testpage.html:

<head>
    <title>Silverlight Project Test Page </title>
 
    <script type="text/javascript" src="Silverlight.js"></script>
    <script type="text/javascript" src="TestPage.html.js"></script>
 
</head>
 
<body>
    <div id="SilverlightControlHost">
        <script type="text/javascript">
            createSilverlight();
        </script>
    </div>
</body>
</html>

Както се вижда, контрола е създаден с javascript функция, която се съдържа в Silverlight.js. Това което трябва да направим е да добавим този файл към асп сайта. После създаваме нов javascript файл, който ще съдържа в себе си кода от testpage.html.js

// JScript source code
 
//contains calls to silverlight.js, example below loads Page.xaml
function createSilverlight( xamlPage )
{
    Silverlight.createObjectEx({
        source: xamlPage,
        parentElement: document.getElementById("SilverlightControlHost"),
        id: "SilverlightControl",
        properties: {
            width: "100%",
            height: "100%",
            version: "1.1",
            enableHtmlAccess: "true"
        },
        events: {}
    });
 
    // Give the keyboard focus to the Silverlight control by default
    document.body.onload = function() {
      var silverlightControl = document.getElementById('SilverlightControl');
      if (silverlightControl)
      silverlightControl.focus();
    }
 
}

С малка промяна(добавен параметър) кодът изглежда по следния начин:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Integrating Silverlight in aspx</title>
 
    <script type="text/javascript" src="Silverlight.js"></script>
    <script type="text/javascript" src="XamlPageCreation.js"></script>
 
</head>
<body>
    <form id="frmMain" runat="server">
    <div id="SilverlightControlHost" >
        <script type="text/javascript">
            createSilverlight( 'Page.xaml' );
        </script>
    </div>
    </form>
</body>
</html>

Какво ще показваме?

Засега имаме работещ ASP.NET/Silverlight пример който не показва нищо. Нека направим TextBlock със съобщение потребителя да избира файлове. При кликване на TextBlock-а се отваря FileBrowse диалог и след селекция на няколко файла, техните имена се показват в TextBlock контрола.

<Canvas x:Name="parentCanvas"
        xmlns="http://schemas.microsoft.com/client/2007" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Loaded="Page_Loaded" 
        x:Class="SilverlightSamplePrj.Page;assembly=ClientBin/SilverlightSamplePrj.dll"
        Width="400"
        Height="400"
        Background="#EEEEEE"
        >
 
  <TextBlock x:Name="txtFileName"
             Canvas.Top="5" Canvas.Left="5" 
             Foreground="Black"
             Text="Click for OpenFileDialog"
             MouseLeftButtonDown="OnClick"/>
 
</Canvas>

Ето и кода в C# файла:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
 
namespace SilverlightSamplePrj
{
    public partial class Page : Canvas
    {
        public void Page_Loaded(object o, EventArgs e)
        {
            // Required to initialize variables
            InitializeComponent();
        }
 
        public void OnClick(object o, MouseEventArgs e)
        {
            txtFileName.Text = "";
            string NL = Environment.NewLine;
            OpenFileDialog ofDlg = new OpenFileDialog();
            ofDlg.EnableMultipleSelection = true;
            if (ofDlg.ShowDialog() == DialogResult.OK)
            {
                foreach (FileDialogFileInfo fdFileInfo in ofDlg.SelectedFiles)
                {
                    txtFileName.Text += fdFileInfo.Name + NL;
                }
            }
        }
    }
}

Заключение

Това е достатъчно за начало, очакваме следващите версии на Silverlight където се надяваме да има предефинирани контроли плюс куп други възможности който да утвърдят Silverlight като Технологията за RIA.

Aug 26

Наскоро Microsoft представиха последните версии на Visual Studio 2008 и .NET 3.5 beta 2. Visual Studio 2008 можете да изтеглите от тук, а умалената експрес версия от тук. Важно е да отблежим, че новите версии можете да инсталирате съвместно с по-старата VS 2005.

Ето и някои от последните нововъведения в Visual Studio 2008:

- Поддръжка на Multi-Targeting – VS 2008 ви дава възможност да създавате приложения предназначени за различни версии на .NET Framework. Лесно може да се превключва от една версия на друга.

- VS 2008 Web Designer и поддръжка на CSS – в тази версия е включен подобрен HTML web designer. В него се поддържат ‘двоен’(сплит) изглед, внедрени една в друга master pages, и подобрена CSS поддръжка.

- ASP.NET AJAX и поддръжка на JavaScript – в .NET 3.5, ASP.NET AJAX е внедрен, както и са добавени нови функционалности като UpdatePanel с WebParts, поддръжка на WCF за JSON, и редица други подобрения по бързодействието. VS 2008 има и увеличена поддръжка относно интегрирането на JavaScript и AJAX в приложенията. Новото студио се отличава с подобрен Intellisense, който дори работи при включени външни JavaScript файлове.

- Езикови подобрения и LINQ – новите компилатори на VB и C# имат доста подобрения относно функциите на езиците. Това основно се забелязва при LINQ(language integrated query) който добавя нови възможности при заявки и работа с данни. Ето и някой от подобренията налични в C#:
o Automatic Properties, Object Initializer and Collection Initializers
o Extension Methods
o Lambda Expressions
o Query Syntax
o Anonymous Types

- Подобрен достъп до данни чрез LINQ към SQL
LINQ към SQL е внедрен OR/M (object relational mapper) в .NET 3.5. Той ви дава възможност да правите заявки чрез LINQ, както и да редактирате/изтривате и вмъквате нови записи. LINQ към SQL напълно поддържа транзакции, изгледи и запазени процедури.

Това са само някои от многото подобрения представени в новата версия. Дотук всичко е добре, но лично за мен остават отворени въпросите:
- Ще успеят ли да разработят всичките езикови подобрения и за Visual Basic?
- Ще успеят ли до Февруари 2008 да са готови с крайната версия?

Aug 20

Scott Guthrie again shows one of the new feature of the new Visual Studio 2008 which is the improved designer support for ASP.NET AJAX Control Extenders.

What are ASP.NET Control Extenders?

ASP.NET Control Extenders are controls that derive from the System.Web.UI.ExtenderControl base class, and which can be used to add additional functionality (usually AJAX or JavaScript support) to existing controls already declared on a page. They enable developers to nicely encapsulate UI behavior, and make it really easy to add richer functionality to an application.

The ASP.NET AJAX Control Toolkit is a great example of a project that takes advantage of this control extender functionality. It includes more than 40+ free control extenders that you can easily download and use to add AJAX functionality to your applications.

For example, let’s assume we wanted to have a textbox on a page where a user could enter a date:

If the browser has JavaScript enabled, we might want to have a nice client-side calendar date picker appear when the user sets the focus on the date textbox to help with selecting the date:

Enabling this is trivial using the ASP.NET AJAX Control Toolkit. Just add the “CalendarExtender” control that ships with it to the page and point its “TargetControlID” property at the :

The CalendarExtender now automatically emits an ASP.NET AJAX javascript client script that adds the client-side calendar behavior to the TextBox at runtime. No additional code is required.


Using ASP.NET AJAX Control Extenders in VS 2008

With VS 2005 you had to manually wire-up control extenders yourself (either via source-view or via the property grid).

VS 2008 makes it even easier to discover and attach control extenders to your controls.
read original

Aug 07

Here is latest post from ScottGu’s blog. There he describes how to build a custom RSS Feed Reader using LINQ to XML. Check it out:

One of the big programming model improvements being made in .NET 3.5 is the work being done to make querying data a first class programming concept. We call this overall querying programming model “LINQ”, which stands for .NET Language Integrated Query.

LINQ supports a rich extensibility model that facilitates the creation of efficient domain-specific providers for data sources. .NET 3.5 ships with built-in libraries that enable LINQ support against Objects, XML, and Databases.


What is LINQ to XML?

LINQ to XML is a built-in LINQ data provider that is implemented within the “System.Xml.Linq” namespace in .NET 3.5.

LINQ to XML provides a clean programming model that enables you to read, construct and write XML data. You can use LINQ to XML to perform LINQ queries over XML that you retrieve from the file-system, from a remote HTTP URL or web-service, or from any in-memory XML content.

LINQ to XML provides much richer (and easier) querying and data shaping support than the low-level XmlReader/XmlWriter API in .NET today. It also ends up being much more efficient (and uses much less memory) than the DOM API that XmlDocument provides.


Using LINQ to XML to query a local XML File

To get a sense of how LINQ to XML works, we can create a simple XML file on our local file-system like below that uses a custom schema we’ve defined to store RSS feeds:

I could then use the new XDocument class within the System.Xml.Linq namespace to open and query the XML document above. Specifically, I want to filter the elements in the XML file and return a sequence of the non-disabled RSS feeds (where a disabled feed is a element with a “status” attribute whose value is “disabled”). I could accomplish this by writing the code below:

VB:

read whole article

Jul 18

Rick Strahl is again sharing his thoughts about VS 2008 and the new ASP.NET 3.x, here is part of it:

I’ve been running Orcas quite a bit since Beta 1 was released in April and overall I’m pretty damn happy with this update to Visual Studio 2008. You may have noticed that I HAVEN’T posted a lot about Orcas issues and that’s because overall Visual Studio Orcas and the feature set is working rather well for me. Microsoft has really done a much, much better job this time around to provide a sane set of updates to the framework as well as what amounts to an incremental update in Visual Studio.

Visual Studio 2008 is interesting on several levels. First and I think this is very significant is that it works with .NET 2.0 and you can build applications that run on .NET 2.0. This means it’s possible to take advantage of many of the new features in Visual Studio - especially the new designer and the somewhat improved JavaScript support - even for today’s projects. That makes the new tool very palatable to try and play with immediately. I’ve moved several of my internal applications to Orcas and it’s been a pleasure working in VS 2008.

Second although there are some major changes in the editors, overall the Visual Studio shell isn’t completely changed. In fact, most of my add-ins, Intellisense scripts, templates etc. all work in Visual Studio 2008 which gives me my base toolset I work with and helps with productivity. I’m really glad that there wasn’t another complete overhaul of the system that required everything to be at least recompiled if not to be redesigned.

One of the biggest advantages in VS 2008 is the new HTML editor both for markup and design view. It’s based on the same editor that’s in Microsoft Web Expression (which is a great tool BTW and which I use daily!) and provides a ton of improved functionality and much better rendering. However, the biggest bonus that you’ll notice immediately with the new editor is that it is much, much faster than the VS 2005 editor. You know the feeling in VS 2005 as you open a markup or worse a designer page and you wait and wait and wait some more. With VS 2008 that is no longer the case - activating markup or design view happens in a second or two even for complex pages. Not only that but because there’s split view for design and markup you rarely switch views and because both panes stay in sync the whole experience is much more expressive. The editor and speed alone is a big productivity improvement at least for me.

That isn’t to say that that there aren’t problems with VS 2008. Yes some things are broken and Orcas will crash occasionally (although not any more than VS 2005) but overall the experience for a Beta 1 product is very good! Good enough to be productive with it.

ASP.NET 3.x

I’ve also spent a bit of time working with .NET 3.5 mostly for back end related framework stuff. There’s a lot of interesting stuff but most of the really cool features of .NET 3.5 are related to LINQ and the language enhancements in C# and VB.NET many of which are very useful productivity enhancers. I’ll post more on some of this in the coming weeks.

But what’s interesting is that there’s not a lot of new stuff for ASP.NET 3.5. In fact looking through the System.Web.Ui namespace with Reflector there’s only a couple of new controls - the ListView and DataPager. ListView is a new control that’s sort of a mix between a repeater and a GridView. It provides the rich templating of a Repeater combined with the grid’s advanced features like Paging, Sorting and Editing. It’s interesting but hardly something to jump up and down about. There’s also a LINQDataSource which makes it easy to create and consume LINQ data. That’s about all that I could find that was obvious. I spent a bit of time looking around trying to find more information on what’s new in ASP.NET but couldn’t really find anything else of note. It’s clear that the core of new features that will impact ASP.NET 3.5 are going to be related to the language enhancements and LINQ.

Disappointing? Not at all!

It’s important to remember that the ASP.NET team has already delivered very important support features prior to the Orcas release cycle. Specifically I’m thinking of ASP.NET AJAX and full support for the IIS 7 integrated pipeline, which in my opinion really counts as the ASP.NET 3.0! IIS 7 and the integrated pipeline opens up many new possibilities for deep Web server integration and it’s great to see that this whole new pipeline model was able to integrate with ASP.NET so seamlessly that as a developer you never actually know the difference.
read original

Jul 18

Hi all, I have been quite busy lately so didnt got much time to post here, but now will try to catch it up. Here is a post from Scott Guthrie which is PART 5 of his LINQ to SQL series:

Over the last few weeks I’ve been writing a series of blog posts that cover LINQ to SQL. LINQ to SQL is a built-in O/RM (object relational mapper) that ships in the .NET Framework 3.5 release, and which enables you to easily model relational databases using .NET classes. You can use LINQ expressions to query the database with them, as well as update/insert/delete data.

Below are the first four parts of my LINQ to SQL series:

In these previous LINQ to SQL blog posts I focused on how you can programmatically use LINQ to SQL to easily query and update data within a database.

In today’s blog post I’ll cover the new control that is shipping as part of ASP.NET in the upcoming .NET 3.5 release. This control is a new datasource control for ASP.NET (like the ObjectDataSource and SQLDataSource controls that shipped with ASP.NET 2.0) which makes declaratively binding ASP.NET UI controls to LINQ to SQL data models super easy.


Sample Application We’ll be Building

The simple data editing web application I’ll walkthrough building in this tutorial is a basic data entry/manipulation front-end for products within a database:

The application will support the following end-user features:

  1. Allow users to filter the products by category
  2. Allow users to sort the product listing by clicking on a column header (Name, Price, Units In Stock, etc)
  3. Allow users to skip/page over multiple product listings (10 products per page)
  4. Allow users to edit and update any of the product details in-line on the page
  5. Allow users to delete products from the list

The web application will be implemented with a clean object-oriented data model built using the LINQ to SQL ORM.

All of the business rules and business validation logic will be implemented in our data model tier - and not within the UI tier or in any of the UI pages. This will ensure that: 1) a consistent set of business rules are used everywhere within the application, 2) we write less code and don’t repeat ourselves, and 3) we can easily modify/adapt our business rules at a later date and not have to update them in dozens of different places across our application.

We will also take advantage of the built-in paging/sorting support within LINQ to SQL to ensure that features like the product listing paging/sorting are performed not in the middle-tier, but rather in the database (meaning only 10 products are retrieved from the database at any given time - we are not retrieving thousands of rows and doing the sorting/paging within the web-server).

read original

Jul 06

This is last list published by Scott, in which he presents latest articles and posts relating ASP.NET, ASP.NET AJAX, Visual Studio, Silverlight and IIS7. Check it out here, at the bottom is a link to the original:

ASP.NET

  • ASP.NET RSSToolkit 2.0 Released: One of the cool projects for ASP.NET 2.0 that was released last year was this free RSS Toolkit - which makes consuming and exposing RSS feeds in ASP.NET super easy (you can even databind any ASP.NET control against them). The team working on the CodePlex project has recently released V2 of the RSSToolkit. You can learn all about it and download it here.

  • Building a Custom Database Driven Site Map Provider: Scott Mitchell has written a great article on how to implement your own site map provider for ASP.NET that is populated from a database (instead of statically from an XML file). You can learn more about the ASP.NET 2.0 SiteMap system from this older blog post of mine here.

  • .NET DateTime and Number Format String Cheat Sheet: If you are like me, you might have trouble remembering all of the standard format strings you can pass to the String.Format() method and/or the Eval() databinding method in ASP.NET to generate the appropriate string output from a DateTime or Numeric datatype. This PDF cheatsheet is a useful one to download and save to quickly look these format strings up. John has some other really useful .NET PDF cheatsheets he has also created that you might like to download here.

  • Profile Support for ASP.NET Web Application Projects: VS 2005 Web Application Projects can’t directly access the strongly-typed ASP.NET “Profile” object that web site projects support. This VS add-in supports the ability to generate a strongly typed profile class to accomplish this. You can read this great series of posts to learn more about how to use the ASP.NET 2.0 Profile system. I have it on my list of tips/tricks posts to-do to cover using this VS add-on as well.

  • ASP.NET Photo Handler: Bertrand has posted a cool photo album HttpHandler for ASP.NET that allows you to easily drop images into a web directory and automatically generate a nice photo album of them (complete with EXIF information, stack sorting icons, etc). Might be very useful for people enjoying holidays this summer. Download the code here.

  • BlogEngine.NET: This is a new open source blog engine for ASP.NET that Mads Kristensen has helped start up, and which I’ve heard a lot of good things about. You can read about its features here, and download it here.


ASP.NET AJAX

  • ScriptDoc 1.0 Available: Bertrand Le Roy has published a cool ScriptDoc utility that extracts documentation from JavaScript files and packages it into XML that can be consumed by documentation building tools. A very useful tool as you start to build up your own JavaScript libraries.


Visual Studio

  • GhostDoc 2.1.1 Released: GhostDoc is a free add-in for Visual Studio 2005 (and now 2008) that automatically generates default XML documentation comments for code you write in C# or VB. It can automatically re-use existing documentation inherited from base classes or implemented interfaces, or generate initial documentation by deducing comments from the name and type of the member signature. You can learn more about it and download it for free here.


Silverlight

  • Silverlight Tutorials: Michael Schwarz has a great blog where he writes regularly about Silverlight. This tutorials link points to a bunch of great Silverlight content.


IIS 7

  • IIS 7.0 is now running all of Microsoft.com: One of the things we push at Microsoft is to “dogfood” our products on our high volume sites when they enter the beta cycle. As of a few weeks ago, all of the web servers running www.microsoft.com are now running on IIS7 and Windows 2008 Server Beta3. These servers host 500+ virtual roots and 350 ASP.NET applications, and handle 300,000 concurrent connections. IIS7 is going to be an awesome release.

  • IIS 7.0 on Server Core: Bill Staples blogs about some of the new IIS7 enhancements that appear with the June CTP of Windows 2008 Server. One of the big features that is now supported is the ability to install IIS7 on “server core” - which is a low footprint installation of Windows 2008 Server that lays down just the minimal footprint needed to boot (meaning no GUI shell). This lowers the resources required on servers, and even more importantly means that servers don’t need to be updated if a patch is released for a component not installed on the server (which lowers the downtime of servers). ASP.NET and the .NET Framework aren’t supported yet in server core configurations - but will be in the future.

read original