Something NEW?.....Naaa...Not much.

↑ Grab this Headline Animator

Sunday 30 December 2007

Managed Code Performance, A Checklist - Part 3/3

String Operations
- Avoid inefficient string concatenation.
- Use + when the number of appends is known.
- Use StringBuilder when the number of appends is unknown.
- Treat StringBuilder as an accumulator
- Use the overloaded Compare method for case-insensitive string comparisons.

Arrays
- Prefer arrays to collections unless you need functionality
- Use strongly typed arrays.
- Use jagged arrays instead of multidimensional arrays

Collections
- Analyze your requirements before choosing the collection type.
- Intialize collections to the right size when you can.
- Consider enumerating overhead.
- Prefer to implement IEnumerable with optimistic concurrency.
- Consider boxing overhead.
- Consider for instead of foreach
- Implement strongly typed collections to prevent casting overhead.
-Be efficient with data in collections.

Reflection and LateBinding
- Prefer early binding and explicit types rather than reflection.
- Avoid late binding.
- Avoid using System.Object in performance critical code paths.
- Enable Option Explicit and Option Strict in VB.NET

Code Access Security
- Consider SupressUnManagedCodeSecurity for performance-critical, trusted scenarios.
- Prefer declarative demands rather than imperative demands.
- Consider using link demands rather than full demands for performance - critical, trusted scenarios.

Working Set Considerations
- Load only the assemblies you need.
- Consider assemblies that are being loaded as side effects.
- Reduce the number of application domains, and/or make assemblies shared assemblies.
- Reduce the number of threads.

Native Image Generator (Ngen.exe)
- Scenarios where startup time is paramount should consider Ngen.exe for their startup path.
- Scenarios that will benefit from the ability to share assemblies should adopt Ngen.exe
- Scenarios with limited or no sharing should not use Ngen.exe
- Do not use Ngen.exe for ASP.NET V1.0 and 1.1
- Consider Ngen.exe for ASP.NET V2.0
- Measure performance with and without Ngen.exe
- Regenerate your image when you ship new versions.
- Choose an appropriate base address

Thursday 27 December 2007

Managed Code Performance, A Checklist - Part 2/3

Threading

- Minimize thread creation.
- Use the thread pool when you need threads.
- Use a Timer to schedule periodic tasks.
- Consider parallel versus synchronous tasks.
- Do not use Thread.Abort to terminate other threads.
- Do not use Thread.Suspend and Thread.Resume to pause threads.

Asynchronous Calls

- Consider client-side asynchronous calls for UI responsiveness.
- Use asynchronous methods on the server for I/O bound operations.
- Avoid asynchronous calls that do not add parallelism.

Locking And Synchronization

- Determine if you need synchronization.
- Determine the approach.
- Determine the scope of your approach.
- Acquire locks late and release them early.
- Avoid locking and synchronization unless required.
- Use granular locks to reduce contention.
- Avoid excessive fine-grained locks.
- Avoid making thread safety the default for your type.
- Use the fine grained lock (C#) statement instead of Synchronized.
- Avoid locking "this".
- Coordinate multiple readers and single writers by using ReaderWriterLock instead of lock.
- Do not lock the type of the objects to provide synchronized access.

Boxing and UnBoxing.

- Avoid frequent boxing and unboxing overhead.
- Measure boxing overhead.
- Use DirectCast in VB.NET code

Exception Management

- Do not use exceptions to control application flow.
- Use validation code to avoid unnecessary exceptions.
- Use the finally block to ensure resources are released.
- Replace VB.NET OnErrorGoTo code with exception handling.
- Do not catch exceptions that you cannot handle.
- Be aware that rethrowing is expensive.
- Preserve as much diagnostic information as possible in your exception handlers.
- Use performance monitor to monitor CLR exceptions.

Iterating and Looping

- Avoid repetitive field or property access.
- Optimize or avoid expensive operations within loops.
- Copy frequently called code into the loop.
- Consider replacing recursion with looping.
- Use for instead of foreach in performance -critical code paths.

Wednesday 26 December 2007

Cocoa...

Cocoa...

Apple's name for the collection of frameworks, APIs and accompanying runtimes that make up the development layer of Mac OS X. By developing with Cocoa frameworks you will be writing applications the same way that Mac OS X itself is written, with complete access to the full power of the operating system, including the signature Mac look and feel. Cocoa is simply the best way to create native mac applications.

The Cocoa frameworks are primarily written in Objective-C, and support both 32-bit and 64-bit applications as well as Objective-2.0's garbage collection, although there are a few components written in other languages such as C for performance or compatibility reasons, such as Core Foundation. The Cocoa frameworks are completely accessible to Objective-C programs, and can even be accessed using native syntax from AppleScript, Python and Ruby. Example frameworks included within Cocoa are Foundation, which defines the "nuts and bolts" classes for Objective-C programming, and Application Kit which includes higher-level controls such as Windows, buttons, Menus, and text fields. Whatever you need to develop, Cocoa contains the frameworks to make development productive and enjoyable.

For more Info, Cocoa

Managed Code Performance, A Checklist - Part 1/3

Design Considerations:
- Design for efficient resource management.
- Reduce boundary crossings
- Prefer single large assemblies rather than multiple smaller assemblies.
- Factor code by logical layers
- Treat threads as a shared resource.
- Design for efficient exception management.

Class Design considerations:
- Do not make classes thread safe by default.
- Consider using the sealed keyword.
- Consider the tradeoffs of using virtual members
- Consider using overloaded methods.
- Consider overriding the Equals method for value types.
- Know the cost of accessing a property.
- Consider private versus public member variables.
- Limit the use of volatile fields.

Garbage Collection Guidelines
- Identify and analyze your application's allocation profile.
- Avoid calling GC.Collect
- Consider weak references with cached data.
- Prevent the promotion of short-lived objects.
- Set unneeded member variables to Null before making long-running calls.
- Minimize hidden allocations.
- Avoid or minimize complex object graphs.
- Avoid preallocating and chunking memory.

Finalize and Dispose
- Call Close or Dispose on objects that support it.
- Use the using statement in C#.NET and Try/Finally blocks in VB.NET to ensure Dispose is called
- Do not implement Finalize unless required
- Implement Finalize only if you hold unmanaged resources across client calls.
- Move the finalization burden to the leaves of object graphs.
- If you implement Finalize, implement IDisposable.
- If you implement Finalize and Dispose, use the Dispose pattern.
- Suppress finalization in your Dispose method.
- Allow Dispose to be called multiple times.
- Call Dispose on base classes and IDisposable members.
- Keep finalizer code simple to prevent blocking.
- Provide thread-safe cleanup code only if your type is thread-safe.

Pinning
- If you need to pin buffers, allocate them at startup.

Sunday 23 December 2007

VSTS2008TFSPT

VSTS2008TFSPT - Visual Studio Team System 2008 Team Foundation Server Power Tools

VSTS2008TFSPTools is a set of enhancements, tools and command-line utilities that improve the TFS user experience.

TFSPower Tools include:
- Team Foundation Power Tool command-line tool(TFPT.exe)
- Build Notification
- Process Template Editor
- Custom Check-In Policy Pack
- Team Foundation Server Best Practices Analyzer
- Work Item Templates

New In this Release:
- Find in Source Control tool is an addition to the Team Explorer menu that provides the ability to locate files and folders in source control by the item's status or with a wildcard expression.
- Open a selected folder in Windows Explorer straight from Team Explorer. This feature allows you to jump straight to the mapped folder location from within Source Control Explorer.
- Quick Label feature that allows labels to be easily applied to a given selection of files and folders in the Source Control Explorer.
- Build Notification tool that runs in Windows task bar notification area monitoring the status of the build notifications you have specified. It can be configured to show notifications when builds are queued, started, or completed for multiple build definitions spanning multiple TFServers.
- Additional TFPT.exe commands for configuring Team Explorer connection settings (tweakui) and for destroying work Items and Work Items Type Definitions (destryWI, destroyWITD).
- Updates to the TFS Best Practices Analyzer for use with a Visual Studio Team System 2008 Team Foundation Server deployment.
- The Process Template Editor is updated for use with Visual Studio Team System 2008 Team Foundation Server. It also has several improvements, like, the ability to launch standalone w/o a VS installation, performance improvments, improved discoverability and bug fixes.

For more Info, and to download: Link

Wednesday 19 December 2007

Microsoft Sync Framework Runtime

Microsoft Sync Framework:

A comprehensive synchronization platform that enables collaboration and offline access for applications, services and devices. It features technologies and tools that enable roaming, sharing and taking data offline. Using MS Sync Framework, developers can build sync ecosystems that integrate any application, with any data from any store using any protocol over any network.

A key aspect of the Microsoft Sync Framework is the ability to create custom syncrhronization providers. A provider is a software component that represents a replica for synchronization. A replica is a particular repository of information to be synchronized, such as a file system on a handheld device. When representing a data source, a provider enumerates changes from its replica. When representing a destination, a provider applies chnages to its replica. If the data at the source and destination differ in type or schema, each provider performs any necessary mapping or transformation.

The following providers are included:
- Sync Services for ADO.NET - Synchronization for ADO.NET enabled data sources
- Sync Services for File Systems - Synchronization for files and folders
- Sync Services for FeedSync - Synchronization for RSS and ATOM feeds

For full introduction: Visit

Friday 7 December 2007

X++...

X++. What's this?
The World's First Full XML-Based Programming Language.

Work on X++ began in 2001 and the language was released in beta. Real programming logic was implemented using other languages/frameworks, such as Java, .NET etc. Then there were the XML technologies like XSLT and XPATH, used for manipulating/transforming XML. There is a reason for the proliferation of tranditional language XML-manipulation implementations. This is one of the needs that X++ aims to fill.

Every X++ object is an XML node and every XML node is an X++ object. By default all classes and objects inherit from the Node class which provides tree and node access and manipulation methods. The group of these methods comprises most methods that you will need for a typical program. X++ supports both single and multiple inheritance.

XML serialization is done at zero-cost to the program and the programmer in terms of complexity or performance. In Java, .NET and other languages/frameworks that implement XML serialization, it is necessary to use some special means: usually this requires the use of special clases. With X++, XML serialization is achieved by merely invoking the save method on the object which you want to serialize. Deserialization is achieved by loading an XML file into an object-- also a single instruction.

XML Memory
X++ is very tightly bound to XML in its syntax and also in its constructs. This idea is extended to something that has never been modelled before as XML. X++ presents the programmer with a metaphor of the run-time memory of an X++ program as an XML document. When objects are instantiated they are appended as children of the root node. All the objects that they contain are placed as their children in the object tree of the run-time memory XML document. The beauty of this move is that you can access and manipulate the run-time memory in exactly the same way as you can individual objects. Yes, the run time memory object also inherits from the Node class.

Each X++ process maintains its own run-time memory which it uses to keep track of the instantiated objects. No process can encroach upon another's run-time memory.In addition, there is the class run-time memory which keeps track of the current definition of classes.

XML-based Adaptive Programming
X++ is an adaptive language in that it allows you to write adaptive programs. X++ implements adaptive behaviour by supporting class redefinition as well as self-modifying programs. Class redefinition is the ability of a class to be redefined at run-time, thereby changing the behaviour of existing objects of the class. It is therefore necessary to keep track of the current definition of a class - that is where the class run-time memory comes in.

X++ also allows programs to modify themselves. As a safety net, a program can also save its state at run-time which produces a state file. The format of this state file is XML. This state file can be processed by the X++ interpreter at a later time, which has the effect of resuming the execution of the program from the point at which the state file as saved.

X++ is an open source project to use it freely. Get from here., MSDN

Monday 26 November 2007

How NOT to use Powerpoint

Very cool video, showing how not to use Powerpoint

Thursday 22 November 2007

Live Documents...

Live Documents, a hybrid online-offline Office suite of applications.

Live Documents is a full-featured suite of online Office Productivity applications offering functionality similar to Word, Excel and PowerPoint. Built using RIA technologies such as Flash and Flex, Live documents allow users to view and edit documents within any common browser or any operating system from anywhere. Live Documents uses a Flash-based user interface that offers a richer and responsive user experience that is comparable to native Office software applications.

Live Documents is available as a optional desktop client application that wraps around Microsoft Office and embeds collaborative capabilities into these hitherto standalone software applications - Live Documents converts Microsoft Office applications from static standalone software to smart clients that are connected to the internet and facilitate in-context document sharing and management without requiring users to give up their familiar user interfaces. The Live Documents desktop client also ensures offline access to documents - a key failing of current online Office applications.

With its hybrid "Services plus Software" approach, Live Documents gives users the choice and flexibility to work on their documents either on the desktop or on the browser and while they are online or offline - any changes made on either side are automatically synchronized to the other side ensuring that the desktop and web versions are always in sync without requiring manual actions like check-in/check-out, upload/download or import/export. Live Documents is designed to increase consumer choice when it comes to purchasing hardware, selecting an operating system, choosing a network and accessing and sharing file systems.

Wednesday 21 November 2007

Lua...

Lua...

Lua, pronouned as LOO-ah, is a lightweight, reflective, imperative and procedure language, designed as scripting language with extensible semantics as a primary goal.. The name derived from Portuguese word for MOON.

Lua was created in 1993, by the members of Computer Graphics Technology Group at Pontifical university of Rio de Janerio in Brazil. Lua has been used in many applications, both commercial and non-commercial.

Lau can be described as a mutli-paradigm language, providing a small set of general features that can be extended to fit different problem types, rather than providing a more complex and rigid specification to match a single paradim. Lua, for instance, does not contain explicit support for inheritance, but allows to be implemented relatively easily with metatables. Lua allows programmers to implement namespaces, classes and other related features using its single table implemenation; first class functions allow the employment of many powerful techniques from functional programming and full lexial scoping allows fine-grained information hiding to enforce the principle of least privilege.

Example code for Hello World:
print "Hello, World!"

Factorial in recursive function:
function factorial(n)
if n == 0 then
return 1
end
return n * factorial(n-1)
end

Lua supports closures, as
function makeaddfunc(x)
return function(y)
return x+y
end
end
plustwo = makeaddfunc(2)
print (plustwo(5)) --Prints 7

Nice? Want to learn more?... Lua...

Spring.NET Framework

Spring .NET Framework

Sprint.NET is an application framework focussed on helping build enterprise .NET apps. It provides a wide range of functionality such as Dependency Injection, Aspect Oriented Programming (AOP), data access abstractions, and ASP.NET integration.

Enterprise applications typically are composed of a number of a variety of physical tiers and within each tier functionality is often split into functional layers. The business service layer, uses objects in the data access layer to fulfill a usecase.

The .NET platform provides a wealth of functionality for architecting and building applications, ranging all the way from the very basic building blocks of primitive types and classes, to rich full-featured application servers and web frameworks.

Design patterns such as Factory, Abstract Factory, Builder, Decorator, and Service Locator have widespread recognition and acceptance within the software development.

The IoC component of the Sprint framework addresses the enterprise concern of taking the classes, objects, and services that are to compose an application, by providing a formalized means of composing these various disparate components into a fully working application ready for use.

The Spring.Core library is the most fundamental part of the framework, and provides Dependency Injection functionality. Most of the libraries in the Spring.NET distribution depend upon and extend the functionality provided by this core library.

The Spring.Aop library provides Aspect Oriented Programming(AOP) support to business objects. The Spring.AOP library complements the IoC container in the Spring.Core library to provide a rock-solid foundation for building enterprise applications and applying services to business objects declaratively.

The Spring.Web library extends ASP.NET by adding a variety of features such as Dependency Injection for ASP.NET pages, Bidirectional data binding, Master pages for ASP.NET 1.1 and improved localization support.

The Spring.Services library lets you expose any "normal" object as an enterprise (COM+) service or remoting object. .NET webservices get additional configuration flexibility with support for dependency injection and overriding of attribute metadata.

The Spring.Data library provides a Data Access Layer abstraction that can be used across a variety of data acess providers, from ADO.NET to various ORM providers. It also contains a ADO.NET abstraction layer that removes the need for tedious coding and declarative transaction management for ADO.NET

The Spring.ORM library provides integration layers for popular object relational mapping libraries. This provides functionality such as support for declarative transaction management.

Wanna know more...? documentation

Visual Studio..for Programming or for Gaming?

The XNA team is pleased to announce the Beta release of XNA Game Studio 2.0! This Beta release is your chance to try out the new features available in XNA Game Studio 2.0, including support for Visual Studio 2005, multiplayer support over System Link and LIVE, and many more features and enhancements.

If you’re an existing XNA Game Studio Express user, you won’t have to worry about uninstalling anything – XNA Game Studio 2.0 (Beta) lives comfortably side-by-side with XNA Game Studio Express. Just follow the link below to find out what’s new in XNA Game Studio 2.0 and download the Beta, as well as updated sample content you can use with the Beta right away. There’s even a multiplayer-enabled starter kit you can use to familiarize yourself with multiplayer programming in the XNA Framework.

XNA Game Studio 2.0 (Beta) supports multiplayer gaming over Games for Windows - LIVE. If you are planning on making multiplayer games on Windows that make use of any Games for Windows - LIVE features, you will need an Xbox LIVE Gamertag that has an active XNA Creators Club membership, and a special token.
To receive your token, send a message to xnacgp@microsoft.com with the subject “Beta Key Request”. Note that you must send this message from the same e-mail address that is associated with an Xbox LIVE Gamertag that has an active XNA Creators Club membership. (Note it may take up to a few days to receive your code in email)
Want to develop games...? Download here

Monday 19 November 2007

Top 10 reasons to use Visual Studio 2008

VS 2008 and .NET Fw make it easy for development organizations and developers of all skill levels to build software and services on the latest platforms including the web, windows vista, the 2007 Office system and Windows Server 2008.

VS 2008 delivers over 250 new features, makes improvements to existing features including performance work on many areas.

Some are:
- New Visual Designers: Integrated designers for .NET FW 3.5 components such as WPF, WF and WCF. Powerful unit-testing tools are now integrated directly into Visual Studio Professional.
- Workflow enabled services: Building connected applications is much easier with workflow-enabled services in .NET FW, enabling developers to build business logic for a service using WF and expose messaging from that service using WCF.
- Multitargeting: Developers can target the .NET FW 2.0, 3.0 or 3.5, helps to use the latest tools to maintain existing applications even as you start building new applications using the newest advances in .NET FW
- Office development: VS 2008 Professional now includes Visual Studio Tools for Office(VSTO), these built-in tools enable developers to quickly create applications that leverage the capabilities of MS Office and integrate with the world's most popular desktop productivity suite.
- Workflow with Expression Studio: Developers and designers can now share user interface assets, such as design elements and controls, with both MS Expression Web(ASP.NET) and Microsoft Expression Blend(WPF)
- Web development features: VS 2008's general improvements to Javascript coding(Intellisense, syntax check, debugging) help with writing Javascript code. Native support for web server communication techniques for AJAX/JSON-enabled websites.
- Code Annotations: With new version of Team Foundation Server, I can now determine who last changed a particular line of code and see why they changed the code as well as what work item that change is associated with.
- Continuous Integration: Another big feature in TFS is the ability to automatically generate a build whenever a programmer checks code into source control server. Added, a check-in policy that will check the state of the build and prevent further check-ins until the build is healthy.

Jasper

Jasper, an ADO.NET incubation project for building quick, clean and iterative applications. Building data-service applications can be cumbersome and time consuming, requiring developers to create their own data layer, write queries, and then hook everything up to a UI. Using "Jasper", developers can start with a connection string and can immediately begin programming the core of an application.

Jasper uses a set of new technologies
- Dynamic generation of data classes so there is no configuration of design time code-gen to carry around.
- Rich query and O/R capabilities because Jasper is built on top of Entity Framework.
- Auto-binding capabilities for ASP.NET, WinForms, and WPF to make binding data to a UI simple and automatic.
One can start interacting with the data in database without having to create mapping files or define classes. You can build user interfaces by naming controls according to your model without worrying about bidning code.

Jasper is also extensible, allowing to provide our own business logic and class model.

Want to download Project Jasper...? For sample application...

IIS 7.0 HTTP Status codes

When you try to access content on an IIS 7.0 server by using HTTP, IIS 7.0 returns a numeric status code as response. The HTTP status code is recorded in the IIS log. The HTTP status code may also reveal the exact reason that a request is successful or unsuccessful.

Log File: inetpub\logs\LogFiles created daily, named byusing the date like YYMMDD.log

IIS 7.0 HTTP Status Codes:

1xx - Informational
- 100 - Continue
- 101 - Switching Protocols.
2xx - Success
- 200 - Ok. The client request has succeeded.
- 201 - Created.
- 202 - Accepted.
- 203 - NonAuthritative Information.
- 204 - No content.
- 205 - Reset content
- 206 - Partial content
3xx - Redirection(Indicates that the client browser must take more action to fulfill the request)
- 301 - Moved permanently.
- 302 - Object moved.
- 304 - Not modified.
- 307 - Temporary redirect.
4xx - Client error(Indicates that an error occurred and the client browsers appears to be at fault)
- 400 - Bad request.
- 401 - Access denied.
IIS 7.0 defines several HTTP status codes that indicate a more specific cause of a 401 error.
- 401.1 - Logon failed.
- 401.2 - Logon failed due to server configuration
- 401.3 - Unauthorized due to ACL on resource.
- 401.4 - Authorization failed by filter.
- 401.5 - Authorization failed by ISAPI/CGI application.
- 403 - Forbidden.
- 403.1 - Execute access forbidden
- 403.2 - Read access forbidden
- 403.3 - Write access forbidden
- 403.4 - SSL required.
- 403.5 - SSL 128 required.
- 403.6 - IP address rejected.
- 403.7 - Client certificated required.
- 403.8 - Site access denied.
- 403.12 - Mapper denied access
- 403.13 - Client certificate revoked.
- 403.14 - Directory listing denied
- 403.16 - Client certificate is untrusted or invalid.
- 403.17 - Client certificate has expired or is not yet valid.
- 403.18 - Cannot execute requested URL in the current application pool.
- 403.19 - Cannot execute CGI applications for the client in this application pool.
- 404 - Not found
- 404.0 - Not found
- 404.2 - ISAPI or CGI restriction.
- 404.3 - MIME type restriction
- 404.4 - No handler configured.
- 404.5 - Denied by request filtering configuration.
- 404.6 - Verb denied.
- 404.7 - File extension denied.
- 404.8 - Hidden namespace
- 404.9 - File attribute hidden.
- 404.10 - Request header too long.
- 404.11 - Request contains double escape sequence.
- 404.12 - Request contains high-bit characters.
- 404.13 - Content length too large.
- 404.14 - Request URL too long.
- 404.15 - Query string too long.
- 405 - Invalid verb.
- 406 - Client browser does not accept the MIME type of the requested page.
- 408 - Request timed out.
- 412 - Precondition failed.
5xx - Server error (Indicates that the server cannot complete the request as the server encounters an error)
- 500 - Internal Server error
- 500.0 - Module or ISAPI error occurred.
- 500.11 - Application is shutting down on the web server.
- 500.12 - Application is busy restarting on the web server
- 500.13 - Web server is too busy.
- 500.15 - Direct requests for Global.asax are not allowed.
- 500.19 - Configuration data is invalid.
- 500.21 - Module not recognized.
- 500.100 - Internal ASP error.
- 501 - Header values specify a configuration that is not implemented.
- 502 - Web server received an invalid response while acting as a gateway or proxy.
- 502.1 - CGI Application timeout.
- 502.2 - Bad gateway
- 503 - Service unavailable
- 503.0 - Application pool unavailable
- 503.2 - Concurrent request limit exceeded

More...

Tuesday 13 November 2007

AMD Core Math Library 4.0

ACML - AMD Core Math Library 4.0
is a set of numerical routines tuned specifically for AMD64 processors designed to increase support for Linear Programming, an Optimizing technique for mathematically intensive code, in multi-core processing environments.

Enhancements to ACML announced, include an update to the Linear Algebra Package(LAPACK) and increased optimizations for Quad-Core AMD Processors, including Quad Core AMD Opeteron Processors and the upcoming AMD Phenom Quad-Core processor.

ACML is specifically designed to use key components of next generation AMD Processors, including Streaming SIMD Extensions(SSE), and to create highly threaded code that can help developers to better utilize multi-core processor technology.

Features:
1. A full implementation of Level 1, 2 & 3 basic Linear Algebra Subroutines(BLAS), with key routines optimized for high performance on AMD Opteron Processors.

2. A full suite of Linear Algebra(LAPACK) routines. As well as taking advantage of the highly-tuned BLAS kernels, a key set of LAPACK routines has been further optimized to achieve considerably higher performance than standard LAPACK implementations.

3. A comprehensive suite of Fast Fourier Transforms(FFTs) in single, double, Single complex and double complex data types.

4. Fast scalar, vector and array math transcendental library routines optimized for high performance on AMD Opteron processors.

5. Random Number generators in both single and double precision

Download ACML 4.0 in various versions for different platforms, compilers and bit sizes

Tuesday 6 November 2007

Lightweight Dataset

ADO.NET 2.0 offers us a unique feature through which we can make a real lightweight DataSet. This is very important and much neglected development practice to overlook the performance part. So when you have huge data and you are getting multiple hit this small tune may help you a lot.
When we pass the data through network, the bigger stream size can create problem. Let us create a text file to check the size,

DataSet dsOrders = new DataSet();

using (SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Orders", CONN_STR))
{
da.Fill(dsOrders);
gridOrders.DataSource = dsOrders;
gridOrders.DataMember = dsOrders.Tables[0].TableName;
}

//Setting the Property to make it lightweight
dsOrders.RemotingFormat = SerializationFormat.Binary;

BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream(@"C:\DataSet_2.txt", FileMode.OpenOrCreate))
{
bf.Serialize(fs, dsOrders);
}

If you do not set the SerializationFormat.Binary then the default setting is SerializationFormat.Xml. This is huge compared to Binary.

Size of the generated file, is

Xml : 434 KB
Binary : 139 KB

How's this?

Live is now live

Windows Live is now live officially

Get software and services that make what you can do on your PC and the Web just that much more amazing. Think of it as the power of Windows combined with the limitless possibility of the Internet.

Get it all now.

Windows Live Photo Gallery - Get creative and share your photos and videos.
Windows Live Writer - Easily publish rich content to Windows Live Spaces and other blogs. It’s
easy to add photos, maps, tags, and more.
Windows Live Messenger - Make your conversations count with next-generation instant
messaging.
Windows Live Mail - Free Hotmail connectivity and the ability to aggregate multiple email
accounts.
Family Safety - Provides tools to help parents protect children from inappropriate online
content and contacts.
Windows Live Toolbar - Easy access to Windows Live services from any Web page.

Get Windows Live - Free

Sunday 4 November 2007

Presence

Microsoft Presence Sample for Web Based Applications

The Microsoft Presence Sample for Web Based Applications illustrates how to display presence status and provide real-time collaboration options in web pages using the interfaces provided by Microsoft Office Communicator 2005.

The Microsoft Presence Sample for Web Based Applications demonstrates three different approaches for displaying presence status and providing real-time collaboration options on web pages:

- Using the NameCtrl Activex control that is installed by Office 2003 and used by Windows SharePoint Services and SharePoint Portal Server 2003 to display presence and provide real-time collaboration options

- Using a custom ActiveX control, the Presence Controls, to provide a custom user experience

- Using simple scripting from the web page to access the Office Communicator 2005 automation interfaces to provide a basic level of functionality

Note:
- You should install either Microsoft Visual Studio 2005 or Microsoft Visual Web Developer Express to build the controls and the sample applications
- Microsoft Office Communicator 2005 should be installed on any client machines accessing deployed instances of these web application samples
- There is no support for this sample code.

Download:
For Web Applications: Download
For Smart Client Applications: Download
For Ajax based Web applications: Download
For Microsoft Office Communicator 2005: Download

Microsoft SharedView Beta 2

Microsoft SharedView

Microsoft SharedView Beta is a fast, easy way to share documents and screen views with small groups of friends or coworkers; anytime, anywhere. Use SharedView to put your heads together and collaborate - create, convey, and communicate…across physical boundaries, through firewalls, and down to the smallest details.

Hold more effective meetings and conference calls
Connect with up to 15 people in different locations and get your point across by showing them what's on your screen.


Work together in real time
Share, review, and update documents with multiple people in real time.


Use when and where you want
SharedView is easy to use, from anywhere, at a moment's notice.


New in Beta 2!
Now SharedView is even easier to use. We've improved performance and the sign-in and join experiences, and added group chat so you can to send messages to the other people in a session.


Free download Beta 2

IEAK 7

Internet Explorer 7 Administration Kit (IEAK 7)

The most efficient way to deploy Internet Explorer 7 and manage Web-based solutions. Learn how to tailor a custom browser to meet your customers' needs. IEAK7 now includes the Windows Installer (.MSI) to make enterprise deployment easier for customers using Active Directory to deploy Internet Explorer 7

Internet Explorer Administration Kit (IEAK) 7 programs and tools make it easy for you to deploy Internet Explorer 7 and manage custom browser software packages. Here is a quick overview of the features included:

- Internet Explorer Customization Wizard. The Internet Explorer Customization Wizard browser breaks down customization into five stages. Step-by-step screens for each stage guide you through the process of creating custom browser packages. When these packages are installed on your clients' desktops, they'll receive customized versions of Internet Explorer with the settings and options that you selected.
- IEAK Profile Manager. After you deploy Internet Explorer 7, you can use the IEAK Profile Manager to change browser settings and restrictions automatically.
- IEAK Toolkit. The IEAK Toolkit contains helpful tools, programs, and sample files, such as bitmaps and a sample sign-up.
- Windows Installer (.MSI) IEAK 7 is now available with the Windows Installer (.MSI) to make enterprise deployment easier for those customers using Active Directory to deploy Internet Explorer 7.
- IEAK Help. The IEAK Help includes many conceptual and procedural topics that you can view by using the Index, Contents, and Search tabs. You can also print topics from the IEAK Help.

Office Sharepoint Server 2007 Workflows

Workflows help people to collaborate on documents and to manage project tasks by implementing business processes on documents and items in a Microsoft Office SharePoint Server 2007 site. Workflows help organizations to adhere to consistent business processes, and they also improve organizational efficiency and productivity by managing the tasks and steps involved in business processes.

What are Workflows?

Can be described as a series of tasks that produce an outcome. In context of Microsoft Sharepoint Prods & Tech, workflow is defined more narrowly as the automated movement of documents or items through a sequence of actions or tasks that are related to a business process. Business logic is basically a set of instructions that specifies and controls the actions that happen to a document or item.

Workflows can streamline the cost and time required to coordinate common business processes, such as project approval or document review, by managing and tracking the human tasks involved with these processes.


The following workflow tasks can be performed either in an Office SharePoint Server 2007 site or directly within certain client programs that are part of the 2007 Office release:

- View the list of workflows that are available for a document or item.
- Start a workflow on a document or item.
- View, edit, or reassign a workflow task.
- Complete a workflow task.


Workflows that address common business scenarios:

- Approval: This workflow routes a document or item to a group of people for approval. By default, the Approval workflow is associated with the Document content type, and thus it is automatically available in document libraries. A version of the Approval workflow is also associated by default with the Pages library in a publishing site, and it can be used to manage the approval process for the publication of Web pages.
- Collect Feedback This workflow routes a document or item to a group of people for feedback. Reviewers can provide feedback, which is then compiled and sent to the person who initiated the workflow. By default, the Collect Feedback workflow is associated with the Document content type, and thus it is automatically available in document libraries.
- Collect Signatures This workflow routes a Microsoft Office document to a group of people to collect their digital signatures. This workflow must be started in a client program that is part of the 2007 Office release. Participants must complete their signature tasks by adding their digital signature to the document in the relevant Microsoft Office program. By default, the Collect Signatures workflow is associated with the Document content type, and thus it is automatically available in document libraries.
- Disposition Approval: This workflow, which supports records management processes, manages document expiration and retention by allowing participants to decide whether to retain or delete expired documents. The Disposition Approval workflow is intended for use primarily within a Records Center site.
- Three-state This workflow can be used to manage business processes that require organizations to track a high volume of issues or items, such as customer support issues, sales leads, or project tasks
- Group Approval This workflow is similar to the Approval workflow, but it uses a designated document library and offers a personalized view of the approval processes in which a user is participating. This workflow provides a hierarchical organization chart from which to select the approvers and allows the approvers to use a stamp control instead of a signature
- Translation Management This workflow manages the manual document translation process by creating copies of the document to be translated and assigning translation tasks to translators. This workflow is available only for Translation Management libraries.

Each of these workflows can be customized for organizations in several ways.

Support for Custom workflows:
- Professional software developers can create workflows by using the Visual Studio 2005 Extensions for Windows Workflow Foundation
- Web designers can design no-code workflows for use in a specific list or library by using a Web design program, such as Microsoft Office SharePoint Designer 2007

Steps involved in using workflows
- Adding a workflow to a list, library, or content type
- Starting a workflow on a document or item
- Modifying a workflow in progress
- Completing workflow tasks
- Tracking the status of workflows

For more info on Workflows, download the whitepaper from Microsoft.

Friday 2 November 2007

Visual Studio 2008

Hi Again..!

I hope you are well aware of Visual Studio 2003 or 2005 mostly.

Let's see some few beautiful features of upcoming VS2008 for a busy developer. Feel interesting...!

1. Automatic Properties
Automatic properties allow you to avoid having to manually declare a private field and write the get/set logic -- instead the compiler can automate creating the private field and the default get/set operations for you.
2. Extension Methods
Allows developers to add new methods to the public contract of an existing CLR type, without having to sub-class it or recompile the original type
3. Lambda Expressions
Unlike anonymous methods, which require parameter type declarations to be explicitly stated, Lambda expressions permit parameter types to be omitted and instead allow them to be inferred based on the usage.
4. Query Syntax
Query syntax is a convenient declarative shorthand for expressing queries using the standard LINQ query operators. It offers a syntax that increases the readability and clarity of expressing queries in code, and can be easy to read and write correctly. Visual Studio provides complete intellisense and compile-time checking support for query syntax.
5. Anonymous Types
Anonymous types are a convenient language feature of C# and VB that enable developers to concisely define inline CLR types within code, without having to explicitly define a formal class declaration of the type.
6. LINQ
Language IntegratedQuery, LINQ supports a very rich extensibility model that facilitates the creation of very efficient domain-specific operators for data sources. The "Orcas" version of the .NET Framework ships with built-in libraries that enable LINQ support against Objects, XML, and Databases.


And many more...

Want to know all these...?
Check the Visual Studio 2008 WhitePaper from Microsoft.

Thursday 1 November 2007

Listas...!

Lista - Create Lists to share or for yourself

  • A new web outlining tool from Microsoft.
  • Allows you to easily create, manage and browse your own lists.
  • Create and share the lists with your friends.
  • Explore topic specific and popular lists within the community.

Listas toolbar allows you to collect information while you are surfing the internet and saves the relevant content in your lists.

  • All you should have a valid Live/Hotmail account...

F#...!

Do u think that I wrongly typed F#, instead of C#?

No... I'm right.

See here what is F#.

F#

F# is a typed functional programming language for the .NET Framework. It
combines the succinctness, expressivity, and compositionality of typed
functional programming with the runtime support, libraries, interoperability,
tools and object model of .NET.

F# steps from the ML family(Markup
Language family) of languages and has a core language compatible with that of OCaml(Object Caml Language), though also draws
from C# and Haskell. F#
designed from the ground up to be a first-citizen of .NET, giving smooth
interoperability with other .NET languages. For ex, C# and F# can call each
other directly, i.e., F# has immediate access to all the .NET Framework APIs.
Similarly, F# may be used from other .NET languages.

As F# and OCaml
share a similar core language, some OCaml libraries and applications can
cross-compile either directly or with minor conditionally-compiled changes,
giving a path to cross-compile and/or port existing OCaml code to .NET

A
major focus of the project has been to extend the reach of OCaml-like languages
into arenas where they have not traditionally been used.

F# for
Developers:
- Can be used with tools from .NET FW, MS Visual Studio and many
other .NET dev tools.
- F# Interactive environment fsi.exe, supports
top-level development of dynamics of code
- Command line compiler fsc.exe
supports seperate compilation, debug info and optimization.
- F# comes with
an ML Compatibility library that approximates that OCaml 3.06 libraries.

F# includes support for
- features of functionaly programming
including tuples, lists, options, function
values, local function
definitions, pattern matching and sequencing expressions.
- Computation
expressions can be used to express data queries and client/server modalities in
AJAX-style web programming, enabling programmers to write succinct and robust
reactive agents through the use of Asynchronous workflows.
- Embraces OOPs
and includes support for type-inferred, succinct descriptions of object types.
- Includes support for a form of meta-programming, inspired by LINQ.
-
Fully supports .NET generics and the language was designed partly with this in
mind. Along these, it supports advanced language and runtime features such as
Unicode strings, dynamic linking, preemptive multithreading and SMP Support.

So, developers... how do you feel
now...? A lot of things to learn.... Isn't it...? Get
ready...


What to know
more on F#...? Purchase this book @ Apress.com

Oslo...?

Oslo - Making a new class of
model-driven and service-enabled applications mainstream


What is Oslo BizTalk
Future BizTalk V.Next?


Oslo, the latest, the next generation SOA and BPM
technologies that will let Microsoft lead the way the SOA maturity space.


It simply
consist of 5 areas:

1. .NET Framework 4.0
and evolution of WCF and WF into a model driven development that allows easier
services enabled processes

2. The next
version of BizTalk Server 6 which will now build on top of WCF and WF - for
example the messaging layer will be based on WCF messages not XML
messages

3. Hosted Services - examples of
early beta versions can be found in labs.BizTalk.net and this is just will get
more mature and enterprise ready

4. Tools
that manages lifecycle support and model driven design of service enabled
composite applications that will be incorporated in VS 10

5. Metadata repository like the one in MSE but fully
integrated into the next generation of System Center so deployment, versioning
and managing these services become easier.


Microsoft is investing some of the top engineering talent at the
company to make two key investments:

Deliver a world class SOA platform across client, server, and
cloud. Microsoft has been a thought leader in Web services and SOA technologies
since the very beginning and has delivered industry leading technologies such as
the Windows Communication Foundation and BizTalk Server.

Deliver a world class and mainstream modeling platform that
helps the roles of IT collaborate and enables better integration between IT and
the business. The modeling platform enables higher level descriptions, so called
declarative descriptions, of the application.

This set of technical investments will unify our services and
modeling platforms, by moving from a world where models describe the application
to a world where models are the application. The technology to deliver these
capabilities will be delivered through BizTalk Server "V6", System Center "V5",
Visual Studio "V10", BizTalk Services "V1" and .NET Framework "V4". The code
name for this effort is "Oslo".

Wednesday 31 October 2007

Hello blog...

Hi 2 all...!

Here is the first blog... "Hello blog...".

Today, I decided to keep you know some latest things happening around the world of .NET, ...all about Microsoft .NET Framework .

Not latest, atleast some latest.

Please give me your feedback, whatever you feel. Only in ENGLISH( no other language to scold me ;) ).
Also, at the same time, kindly encourage me in posting new things whatever you know...

Thanks again.