Tuesday, January 17, 2006

Simulate Windows Service using ASP.NET to run scheduled jobs - The Code Project - ASP.NET

Simulate Windows Service using ASP.NET to run scheduled jobs - The Code Project - ASP.NET: "How to run scheduled jobs from ASP.NET without requiring a Windows Service to be installed on the server? Very often we need to run some maintenance tasks or scheduled tasks like sending reminder emails to users from our websites. This can only be achieved using a windows service. ASP.NET being stateless provides no support to run some code continuously or to run code at scheduled time. As a result, we have to make our own Windows Services in order to run scheduled jobs or cron jobs. But in a shared hosted environment, we do not always have the luxury to deploy our own windows service to our hosting provider's web server. We either have to buy a dedicated server which is very costly, or sacrifice such features in our web solution. However, running scheduled task is a very handy feature especially for sending reminder emails to users, maintenance reports to administrator, run cleanup operations etc. So, I will show you a tricky way to run scheduled jobs using pure ASP.NET without requiring any windows service. This solution runs on any hosting service providing just ASP.NET hosting. As a result, you can have scheduled job feature in your ASP.NET web projects without buying dedicated servers. "

SafeCOMWrapper - Managed Disposable Strongly Typed safe wrapper to late bound COM - The Code Project - C# Programming

SafeCOMWrapper - Managed Disposable Strongly Typed safe wrapper to late bound COM - The Code Project - C# Programming: "There are several problems using COM from .NET:
You cannot implement the Dispose pattern by utilizing the 'using' block in order to safely dispose COM references.
You cannot guaranty COM references are finalized. There's no way to implement '~Destructor()' for COM references.
COM reference is not released when a call to Marshal.ReleaseComObject is skipped due to an Exception.
When you 'Add Reference...' to a COM library, the reference is version specific. So, if you add a reference to the Office 2003 COM library, it does not work properly when deployed to Office 2000.
The only solution to version independent COM is to use Late Bound operations but you miss all the features of a strongly typed language.
Let's solve all these problems. We want to use a Managed strongly typed approach to Late Bound COM operations and also utilize the Dispose pattern on COM objects. The solution proposed here works for any COM object which can be Microsoft Office COM libraries, IE & DHTML objects and even your own COM objects. You should use this approach whenever you are dealing with any type of COM library.
Before going to the solution, let's learn a bit of background on RealProxy and method interception."

Thursday, October 27, 2005

BetaNews | .NET Framework 2.0 Final Released

BetaNews | .NET Framework 2.0 Final Released
In preparation for the launch of Visual Studio 2005 and SQL Server 2005 on November 7, the final release of the .NET Framework 2.0 is now available for download. Version 2.0 serves at the underpinnings for next-generation Windows applications and will be integrated into Windows Vista.

According to Microsoft, the new release "improves scalability and performance of applications with improved caching, application deployment and updating with ClickOnce, support for the broadest array of browsers and devices with ASP.NET 2.0 controls and services."

Thursday, October 13, 2005

Experts: Microsoft-Yahoo alliance is food for IM worms | CNET News.com

Experts: Microsoft-Yahoo alliance is food for IM worms | CNET News.com: "On Wednesday, Microsoft and Yahoo announced that they would make their instant-messaging services interoperable. By the middle of next year, users of both are expected to be able to exchange instant messages, see if their contacts are online, share emoticons, add friends from either service and make PC-to-PC voice calls.
But the partnership has a flipside, an instant-messaging security expert said. 'As Microsoft, Yahoo and others connect their global IM networks, IM worms will spread faster and attack a larger population of end-users,' said Jon Sakoda, chief technology officer at messaging security company IMlogic. "

Microsoft, Yahoo link instant message services - Tech News & Reviews - MSNBC.com

Microsoft, Yahoo link instant message services - Tech News & Reviews - MSNBC.com: "Microsoft Corp. and Yahoo Inc. will make their instant-messaging programs work together, a partnership that could give the companies more power to compete against market leader America Online.
The Yahoo-Microsoft partnership, allowing users of the two services to exchange messages seamlessly, gives the companies nearly as many users combined as AOL has in total. The companies said in a statement Wednesday that they expect the service to start by June 2006."

Tuesday, September 20, 2005

Visual C# Developer Center : Future Versions

Visual C# Developer Center : Future Versions: "C# 3.0 introduces several language extensions that build on C# 2.0 to support the creation and use of higher order, functional style class libraries. The extensions enable construction of compositional APIs that have equal expressive power of query languages in domains such as relational databases and XML. "

Monday, September 12, 2005

SQL Server Developer Center: XML Indexes in SQL Server 2005

SQL Server Developer Center: XML Indexes in SQL Server 2005: "Although not everyone would agree, one of the main reasons for the success of the relational database has been the inclusion of the SQL language. SQL is a set-based declarative language. As opposed to COBOL (or most .NET-based languages for that matter), when you use SQL, you tell the database what data you are looking for, rather than how to obtain that data. The SQL query processor determines the best plan to get the data you want and then retrieves the data for you. As query-processing engines mature, your SQL code will run faster and better (less I/O and CPU) without the developer making changes to the code. What development manager wouldn't be pleased to hear that programs will run faster and more efficiently with no changes to source code because the query engine gets better over time?
One of the ways to allow the query processor the choice of optimized access is to create indexes over the data. Creating the correct index can dramatically change how the query engine evaluates the query. You decide which indexes to create by analyzing which queries you actually perform and figuring up how the engine could optimize those queries. A tool to analyze query workloads and suggest indexes comes with SQL Server. In SQL Server 2005, this tool is Database Tuning Advisor. "

ASP.NET Home: Building ASP.NET 2.0 Web Sites Using Web Standards

ASP.NET Home: Building ASP.NET 2.0 Web Sites Using Web Standards: "Web standards enable you to build Web sites that are accessible to the broadest possible audience with the least amount of work. The promise of Web standards is that you can design a page once and have the page appear and function in exactly the same way in any modern browser. For example, when built against standards, a page that was designed to display a certain way in Microsoft Internet Explorer can appear the same way in other browsers, such as Mozilla Firefox, Netscape Navigator, Opera, Camino, and Safari, without requiring you to perform any additional work.
An additional benefit of Web standards is that they make your Web sites more easily accessible to persons with disabilities. This is a broad audience that includes everyone from a middle-aged person with failing eyesight, to a person who just broke his or her arm while skiing, to a person who is completely blind. Standards prevent you from unintentionally blocking persons with temporary or permanent disabilities from your Web pages."

Monday, August 22, 2005

Web Services and other distributed technologies: Performance of ASP.NET Web Services, Enterprise Services, and .NET Remoting

Web Services and other distributed technologies: Performance of ASP.NET Web Services, Enterprise Services, and .NET Remoting: "While absolute performance is of paramount concern for several areas of technology (devices, hardware controllers, life and healthcare services, certain financial systems), these tend to be among the minority. Most business applications' primary goals are 'correctness', 'time to delivery', and the need to be as fast as is necessary, but not more so. The cost and effort of engineering applications that deliver absolutely maximum possible performance can be enormous; the considerable time and skill required for peak performance is often unnecessary for many business systems. However, while absolute maximum performance is often overkill, ensuring good overall system performance is still a goal for most businesses wanting to maximize their return on investment.
In this white paper, we will provide a comparative analysis of the relative performance levels of real-world components/services hosted within each of the three distributed component/service technologies available in .NET:
.NET Enterprise Services (ES) hosted in COM+
ASP.NET Web services (ASMX) hosted in IIS
.NET Remoting hosted in IIS and custom hosts "

Darrell Norton's Blog [MVP] : Submitting default buttons when the user presses the Enter key - finally!

Darrell Norton's Blog [MVP] : Submitting default buttons when the user presses the Enter key - finally!: "One of the hardest things in web development is getting a certain button to submit if you have more than one button on the page"

Friday, August 19, 2005

How to Protect Your Application Against Parameter Injection

How to Protect Your Application Against Parameter Injection: "Securing your web application against the hackers of the world is a difficult task. Authentication mechanisms, sessionIds, and user accounts are a few of the options that are available to you for your efforts. However, the most common technique of remotely manipulating an application is parameter injection. So, for example, let�s say you are viewing a transaction of customer #448, and your URL looks something like www.myapplication.com/customer.aspx?customerID=448. What is to stop customer 448 from typing in 449, let�s say, and viewing another customer�s transaction details? The situation can even escalate into typing in complete SQL statements and executing them inside the original statements you have coded. Well, this article isn�t here to magically solve your problems and completely seal your sensitive data. Checking for let�s say a customer sessionID and matching it against the URL and the page will still have to be done by you. However, this article will demonstrate a simple method of checking for valid parameters in an already written application. It can be easily plugged in to any website and even if the website contains hundreds of pages, it can still be a very effective tool in your efforts against hackers. The idea behind it is very simple and includes three components. "