Wednesday, January 25, 2006

How-To-Select an Obfuscation Tool for .NET™

From the How-To-Select™ Guides at http://www.howtoselectguides.com/

Automated Smart Client Deployment and Update - Today and Tomorrow

March 31, 2005 (at http://www.theserverside.net)
Smart client application architecture is gaining ground as a replacement for many intranet and some internet web applications. Smart client architectures have many considerations that you need to take into account to build a well robust, reliable, scalable, performant, and secure app. However, building the application is only part of the battle.

Once you get the smart client application designed and tested along with its supporting middle tier components, you need to deploy the application to client machines and support it with (possibly frequent) updates while it is there.

This article will discuss some of your options, including capabilities that exist today with .NET 1.1 such as Windows Installer, No Touch Deployment, and the Updater Application Block, as well as those that will soon arrive with the release of .NET 2.0, specifically ClickOnce.

A Case Study in Performance Tuning

Columnist : Gordon Pollokoff Posted: 01/24/2005 at sqlservercentral.com

Summary:SQL Server does a wonderful job of tuning itself, selecting the optimum query plans and in general performing very well under a variety of conditions. That does not mean the a good DBA cannot add value by setting up the system and ensuring the optimizer receives the information that it needs. New author Gordon Pollokoff brings us a short case study from a project he as recently involved in where a new application required a bit of tuning.

Microsoft Enterprise Library 2.0 Released

Microsoft Enterprise Library 2.0 Released Microsoft's Patterns & Practices Team has released Enterprise Library 2.0. Enterprise Library is a collection of application blocks including data access, logging, configuration, cryptography, exception handling, caching, and security.

This version has been updated to work with .NET 2.0 and includes some significant changes.

Key Changes from Enterprise Library 1.x

  • Configuration now built on System.Configuration
  • Configuration Application Block no longer exists
  • Easier to use blocks with or without configuration files
  • Instrumentation configurable and disabled by default
  • Much Improved Logging Application Block
  • Flexibility and Performance Improvements
  • Simpler and more powerful Data Access Application Block
  • Use with OLE-DB, ODBC or any managed provider
  • Most of the Security Application Block has been removed
  • Deprecated in favor of .NET's Membership and Profile Features

Step-byStep in debugging ASP.Net memory leaks

Tess Ferandez, MVP, posted in the blog about NET Memory Leak Case Study: The Event Handlers That Made The Memory Baloon. Very good read.

Friday, January 20, 2006

Go-Live License for WCF and WF

Windows Communication Foundation and Windows Workflow Foundation are now Go-Live enabled as of Beta 2.

Read more on Go-Live... http://msdn.microsoft.com/winfx/getthebeta/golive/default.aspx

History of BASIC and C Based Languages by Billy Hollis

Billy Hollis takes a rather tongue-in-cheek look at the history of the BASIC and C family of languages in two recent blog posts.

Thursday, December 22, 2005

Complex data binding expressions in ASP.NET

Complex Data Binding Expressions in ASP.Net by Fritz Onion

New Patterns & Practices: Upgrading VB6 to VB.NET and VB 2005

TheServerSide.net

Microsoft's Patterns & Practices group has published a new guide in its series of books. The title is "Upgrading Visual Basic 6.0 Applications to Visual Basic .NET and Visual Basic 2005."

This guide is intended for software technical decision makers, solution architects, and software developers who are involved in Visual Basic 6.0 application or component development. It helps individuals understand the issues and risks that go along with upgrading to Visual Basic .NET. It also provides steps for preparing your applications for a successful and cost-effective upgrade. Finally, it gives ideas and pointers about how advance your application after you successfully upgrade it to Visual Basic .NET.

The 700+ page book consists of 21 chapters and is organized into the following four parts:
General Upgrade Practices
Understanding the Upgrade Process
Manual Upgrade Tasks
Beyond the Upgrade

/Gill

patterns and guidance available for securing web services with WSE 3.0 and Indigo.

Web Service Security Guide

Brief Description
Scenarios, Patterns, and Implementation Guidance for Web Services Enhancements 3.0. This guide will help you quickly make the most appropriate security decisions in the context of your Web service's requirements while providing the rationale and education for each option.

Overview
This guide will help you quickly make the most appropriate security decisions in the context of your Web service's requirements while providing the rationale and education for each option. A scenario-driven approach is provided to demonstrate situations where different security patterns are successful. The guide also combines a series of decision matrices to assist you in applying your own criteria to use the Web service security patterns to meet the requirements of your environment.

Sunday, December 18, 2005

CorasWorks Free Web Part - WSS Cross-Site Search

Todd from MindSharpBlog has posted on the free webpart for searching across website, which out of the box, WSS does not do.

Here is the download URL but please do the read the

Wednesday, December 07, 2005

Embedding SQL Server Express into Custom Applications

Embedding SQL Server Express into Custom Applications
By: Additional Articles (from MSDN Developer Community)

This white paper discusses how to integrate and deploy Microsoft SQL Server Express-based applications by using configuration files and the ClickOnce deployment technology in Microsoft Visual Studio.

Saturday, December 03, 2005

Patterns & Practices: Enterprise Development Reference Architecture

Overview
The Enterprise Development Reference Architecture (EDRA) – previously code named "Shadowfax" – provides architectural guidance that an organization can use to standardize and improve the development of distributed systems.EDRA includes an extensible application framework, four QuickStarts, an application template, and supporting documentation. The Global Bank Reference Implementation (GBRI) is also available, which is a sample application that uses patterns & practices guidance (including EDRA) in an online banking scenario.

Did you know there Hands-On-Labs for EDRA? (from gotdotnet)
EDRA Hands On Labs (08/02/2005 • News) Southworks is pleased to announce the release of its EDRA Workshop material to the community! You can find the documentation in the workspace downloads section.

WinFX's Windows Workflow Foundation explained.

Dave's detailed post on the different types of workflow that WF supports and which to use when. This is good post to get started with WF.

Ten Essential Tools : Visual Studio Add-Ins Every Developer Should Download Now

Read the article from James Avery about Ten Essential Tools for VS 2003 and VS 2005 developers. James wrote a article last year on ".NET Tools: Ten Must-Have Tools Every Developer Should Download Now" but those were stand-alone tools which did not integrate into Visual Studio.

The article this year, he is doing just that: talking about tools which are Visual Studio Add-Ins.

This year's top ten Visual Studio Add-In Tools are:

TestDriven.NET
GhostDoc
Paster
CodeKeep
PInvoke.NET
VSWindowManager PowerToy
WSContractFirst
VSMouseBindings
CopySourceAsHTML
Cache Visualizer

Last years top tool were:
Snippet Compiler
Regulator
CodeSmith
NUnit
FxCop
Lutz Roeder's .NET Reflector
NDoc
NAnt
Switch Tools

Monday, November 28, 2005

Excellent article on team development whose principles

Here an excellent article on team development whose principles have application within the realm of IT management. Read this in the MCPMag.com newsletter.


IMPROVING SOFTWARE DEVELOPMENT: Return of the Toolsmith Software developments teams of late are becoming so fractious, toolsmiths are becoming a necessity to help maintain focus and development best practices.
By Mike Gunderloy

Each team will need its own toolsmith, regardless of the excellence and reliability of any centrally provided service, for his job is to see to the tools needed or wanted by his surgeon, without regard to any other team's needs. The tool-builder will often construct specialized utilities, catalogued procedures, macro libraries.
-- Frederick P. Brooks, Jr., "The Mythical Man-Month"
http://tinyurl.com/a9u9b

Brooks was writing before many of my readers began their software development careers (indeed, I suspect before some of my readers were born). Despite that, the point about development teams (the "surgeon" in his example is a metaphor for the lead programmer) needing their own dedicated toolsmith has never seemed more true than it does today -- which just goes to show, I suppose, that things don't really change all that fast in our field.

THE JOY OF CONTINUOUS INTEGRATION
What got me thinking along these lines was some fun I had recently with revising my own working process on a couple of small projects. I decided that it was finally time to get end-to-end continuous integration running here, so I paused writing code long enough to set up a couple of servers (using virtual machines -- fortunately I had a relatively new dual Xeon server that wasn't yet heavily loaded) and started downloading software.

The first order of business was to get a Subversion source code control repository up and running. Then I installed TortoiseSVN http://tortoisesvn.tigris.org/ on my development box to give me an easy interface to give me an easy way to move code back and forth between the box and the repository. Next, I set up the other server as a continuous integration box with CruiseControl.NET http://tinyurl.com/3jepz as its backbone.

This server also got all the tools to manage the build: NAnt http://nant.sourceforge.net/ for scripting, NUnit http://www.nunit.org/ for testing, FxCop http://www.gotdotnet.com/team/fxcop/ for compliance checking, NCover http://www.ncover.org/ for code coverage checking, Simian http://www.redhillconsulting.com.au/products/simian/ for duplication checking, and Vil http://www.1bot.com/ for metrics generation.

With all the pieces in place, I was ready to dive into configuration. This mainly meant some time writing NAnt scripts, though there was also time spent figuring out why things that compiled on the dev box didn't compile on the build server ("oh, I forgot to install that library"). Finally, the job was done.

In case you've never used continuous integration, it's really pretty slick. Now, as soon as I check a change into the Subversion server, the CruiseControl.NET server starts beavering away. A few seconds later I get a little notification in the tray of my dev box, and I can go to a Web page on my intranet to see what all the tools have to say about the quality of my code (usually at least one of them has something uncomplimentary to say, but that's another story). It's a wonderful system; With a smoothly-running continuous integration server, you know that at any moment you've got code that's shippable (or you know exactly what's broken). If you're already using source code control, performing unit testing, and writing good specs, I recommend you look into adding continuous integration to your bag of tricks.

KEEPING THE ENGINE RUNNING
But there's a downside to all this plumbing, too. If your development process evolves to the point of depending on a continuous integration server and the software on it, you'd darned well better keep that server running. You'd also better keep the scripts that it depends on checked into your source code control. And don't forget that this stuff is cutting-edge: All the various tools are under active development, so you can expect to have new versions to evaluate and possibly install on a regular basis. I have the luxury that I'm just futzing around. You probably don't.

This is where I see the opening for the modern toolsmith.
Someone has to stay down in the boiler room, shoveling coal into the engines that keep the whole operation running.

Certainly, such positions have already existed in the software world for quite some time. If you go to Microsoft, for example, you'll find plenty of build engineers whose job is to make sure that Windows or Office comes rolling out of source code each and every day. But I think more and more smaller teams are going to realize that this has to be a dedicated position, rather than something that gets done by other developers as an extra job at the end of the day.

IT'S TIME FOR SPECIALIZATION
Let's think about the things that a dedicated toolsmith might do for a team of, say, eight or ten developers:
* Keep the build and source-code control and bug-tracking servers running
* Test new versions of tools the team is already using and install them as needed
* Evaluate new tools and suggest ones that can streamline processes
* Write scripts and tools specifically for the team
* Document processes and be ready to set up the software environment for new hires

I don't know about you, but I sure see a full-time job there.
Now, granted, these jobs already get done on small and medium teams. But how do they get done? In my experience it's by some combination of asking corporate IT to do things (at least, when there is a corporate IT to ask) and hoping they get done, stealing time from other projects, working late, and shoving things under the table to be done later (like that ever happens).
Wouldn't it be better to have one person who lived and breathed tools devoting full-time to making this stuff happen? Wouldn't it be better to have your other devs devoting their time to writing the product's code and not worrying about trying to be experts in NAnt and NCover and all the rest too? I'd bet the average eight-person team could pull one developer to dedicated toolsmith activities and not experience any loss in code productivity at all.

To my mind, this is just one facet of a change that's inevitably coming to software development as our tools and target environments get more complex: specialization. Many of us are generalists now, ready to dive in and learn whatever the project requires, whether that be a new communications subsystem, a build tool, a new UI design language, or whatever. But I think we're hitting the limits of generalists pretty quickly, if indeed we're not already there. Consider the demands that Windows Presentation Foundation will make on user interface designers -- do you really think every developer you know will be able to create an attractive user interface in the new world of Vista? I don't. We'll see user interface specialists commanding high wages from companies who have a clue.
But I digress.

MOVING FORWARD
It was Adam Smith, back in Victorian times, who pointed out the connection between specialization and economic growth. As large jobs are broken down into smaller components and workers become more specialized, they more expert in their jobs. This in turn means that they can do those jobs more efficiently, helping create more wealth. Though this principle hasn't been widely applied to software development yet, I can see no reason why it shouldn't be. Perhaps the toolsmiths of tomorrow will be the ones who lead us into a new era of creating richer software in a more efficient fashion.

More VB.Net samples then C#

Tom Archer has a post on how there are more VB.NET based code samples in MSDN now compared to C#.
I have a feeling of Deja vu.
When .NET was first released, almost all code samples that led to a great amount of misinformation being spread that C# was the language of .NET and that VB.NET would be dead in a few years time. There was also a lot of debate on how all VB developers should move to C# as they had no future.
Now when .NET goes into version 2.0, the adoption of VB.NET remains very strong, both in the corporate world as well as among hobbists. And atlast Microsoft seems to have realised that it may have been sending a worng signal, one it did not intend to.
Though I dont buy the explanation Archer gives, I still think it is good move to atleast debunk the VB is dead bogey.

Source: .net India

Thursday, November 24, 2005

New .NET 2.0 Benchmarks

The results show that the .NET 2.0/Windows Server 2003 implementation of the benchmark application running against SQL Server 2005 outperforms the Java EJB-based WebSphere 6.0.2.3/RedHat Linux implementation by up to 183%. The results also show that .NET achieves significantly better price/performance ratios than WebSphere 6 on all implementations tested. This paper will also show that Java applications can get good performance when connecting to SQL Server 2005: the performance of the PlantsByWebSphere JDBC-based application that uses the soon-to-be-released Microsoft SQL Server 2005 JDBC driver is approximately equivalent to the performance of the equivalent application that connects to Oracle 10G.

Source:.net India and TheServerSide

Saturday, November 12, 2005

The LINQ Project

The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities.

Below are resources that you would like to use to jump into LINQ.


Featured Information
LINQ on Channel9Watch this Channel9 video with Anders Hejlsberg and Luca Bolognese as they explain what The LINQ Project is, and how it will help you create XML and data-driven applications.

LINQ Project Overview documentRead about the goals of, and the features proposed for The LINQ Project.

101 Samples using LINQSee The LINQ Project in action in these code samples. (Note: these samples are in C# only for now)


Information
Standard Query Operators
Standard Query Operators is an API that enables querying of any .NET array or collection.
DLinq Overview
Read about the features of LINQ as they apply to querying relational data.
XLinq Overview
Read about the features of LINQ as they apply to querying XML.



Downloads
C# LINQ Tech Preview Update for Visual Studio 2005 RTM Release
This is an updated version of the LINQ Technical Preview unveiled at PDC 2005. It includes samples, whitepapers, hands-on labs and compiler support to create LINQ-enabled applications using the RTM release of Visual Studio 2005 or Visual C# 2005 Express Edition.
Visual Basic LINQ Tech Preview
The LINQ Technical Preview includes samples, whitepapers, hands-on labs and compiler support to create LINQ-enabled applications using release candidate versions of Visual Studio 2005 or Visual Basic 2005 Express Edition. Note: this preview works only with the Visual Studio 2005 Release Candidate.
XLinq Hands-on Lab Exercises
Experiment with the proposed features of XLinq for querying XML files.

Videos
Future Directions for Data Programming in Visual Basic
Join Paul Vick and Amanda Silver as they discuss some of the features coming in Visual Basic 9.0.
Using Visual Basic as a Dynamic Programming Language
Paul Vick and Erik Meijer talk about the dynamic aspects of programming in Visual Basic, both in Visual Basic 2005 and Visual Basic 9.0.
C# 3.0 Language Enhancements in action
See the changes proposed to C# 3.0 in action. This video showcases implicit variable declaration, extension methods and lambda expressions. If you would like to follow along, you should install the LINQ Technology Preview first.
C# 3.0 LINQ in action
This video showcases the use of The LINQ Project with C# 3.0. In this video, LINQ is used to query in-memory data stores. If you would like to follow along, you should install the LINQ Technology Preview first.
C# 3.0 XLinq in action
This video showcases the use of The LINQ Project with C# 3.0. In this video, LINQ is used to query XML files. If you would like to follow along, you should install the LINQ Technology Preview first.
C# 3.0 DLinq in action
This video showcases the use of The LINQ Project with C# 3.0. In this video, LINQ is used to query relational databases. If you would like to follow along, you should install the LINQ Technology Preview first.

Hands-on Labs
LINQ Hands-on Labs
Use LINQ with in-memory collections, relational data and XML documents, and explore the query operators available in LINQ in these four hands-on labs.
DLinq Hands-on Labs
Create DLinq object models, use DLinq to modify data in relational databases, and explore the advanced features in DLinq in these hands-on labs.
XLinq Hands-on Labs
Query and manipulate XML files using XLinq in these hands-on labs.

/Gill
Resource: http://msdn.microsoft.com/netframework/future/linq/