Register Site Map | Contact
  
 
All Things Dev Blog
Latest Posts 
LINQ in a Tiered Environment - Saturday, February 02, 2008 Posted By: louie

I've recently been working with LINQ and in particular, DLINQ. My concern is where to use it in a tiered application. When we developers begin to develop an application, we stick to our concept of tiers which include the presentation layer, a business logic layer and a data access layer. Many of the examples on MSDN show databinding to controls that allowing databinding to anything that inherits from IEnumerable. So in the future to keep an application consistent and easy to maintain where should we be using LINQ?

If in the data access layer we return back arrays of objects or objects of IEnumerable this sounds like the best approach to keeping the presentation layer seperate from the bll and dal. I like the flexibility of LINQ and the ability to still be able to utilize stored procedures and other db objects as we're already used to. As we begin to move out our db queries into .net languages, it will be interesting to see how sql server and tsql play a role in future development.

Comments (0)
Microsoft CRM 4.0 Has Shipped - Tuesday, December 18, 2007 Posted By: erika

Copied from an email to Microsoft Partners:

I am pleased to report that Monday night our engineering team signed off and released Microsoft Dynamics v4.0 to manufacturing (RTM).  This is a tremendous milestone and enables us to deliver a whole new level of value and innovation to our customers and to our partners. 

Microsoft Dynamics CRM has outpaced the growth of its competitors in the $6.2 billion US CRM market due to groundbreaking product innovation and go-to-market excellence. CEO Steve Ballmer recently said, "I think you will agree that Microsoft Dynamics CRM 4.0 is the best version of our product and maybe any product we've ever brought to market." From small businesses to large enterprises … from on-premise deployments to partner-hosted Dynamics CRM to our new Microsoft Dynamics CRM Live service,  this new release of Microsoft Dynamics CRM offers an outstanding user experience, exceptional ease of use and configuration, and flexible platform technology that enables the delivery of world-class customer relationship systems for all segments and every type of business around the world.

Click here for the official press release

 

Check out techVisions for more information on how your business can jump on the Microsoft CRM bandwagon.
Comments (0)
Albuquerque Installfest - Thursday, November 29, 2007 Posted By: erika

Have you heard about the Microsoft Visual Studio InstallFest?

.NET Users Groups across the country are hosting InstallFests. EVERYONE THAT REGISTERS FOR AND ATTENDS THE EVENT IN PERSON WILL RECEIVE A FREE COPY OF VISUAL STUDIO 2008 PROFESSIONAL IN THE MAIL ONCE IT'S AVAILABLE!

 If you've been excited about seeing what VS 2008 has to offer, register and attend a local event.  If you're in the Albuquerque area, watch the New Mexico .Net Users Group web site, subscribe to the mail list and look for an email with the firmed up date, giveaways, sponsors and details.

This is very exciting news for the local developer community.  Albuquerque doesn't get a lot of love from Microsoft, so lets show them we are worthy of more big events and local training opportunities!

Comments (0)
Microsoft Dynamics - Thursday, October 25, 2007 Posted By: erika

I've had the opportunity the past few months to work with components of Microsoft Dynamics, specifically CRM 3.0.  As a .NET developer and what Microsoft terms an "Information Worker," I have to say I'm highly impressed with this product.

CRM integrates seamlessly into your Outlook client.  In addition, it has a browser based client.  The best selling point, in my opinion, is the customization options.  There is a free SDK for CRM available from Microsoft that enables developers to customize the software, build add-ons, and integrate external corporate applications with the CRM data and functionality.

The implementation procedure for CRM is not overly difficult and there are many configuration and licensing options for small, medium, and enterprise level installations.

Microsoft has improved this product by leaps and bounds over version 1.2.  It definitely rivals, if not out performs, its competition.  I've worked in SalesForce.com and ACT intimately.  I helped build a CRM solution for a large National Laboratory and understand the complex data relationships that are required to warehouse, not to mention display. 

Microsoft has not only made it look easy, but has created a whole new platform to spring from for developers.

 

Comments (0)
Sql Cache Dependency - Monday, September 24, 2007 Posted By: louie

Microsoft SQL Server 2005 - Sql cache dependency is nothing new to ASP.NET for 2005. But the way it's handled in 2005 is. In SQL Server 2005, the polling model is no longer used as it was used in SQL Server 2000. Rather, in 2005 ASP.NET uses SQL Notification services to notify subscribing applications that a change has been made on the table. Prior to SQL Server 2005, the ASP.NET application spawns a thread that polls the specified database tables looking for a change to the underlying data. When a change occurs then and only then is a call to the database made and the data is pulled back to fill your datasource.

So what does SQL cache dependency buy us? It avoids the overhead of making round trip calls to the database thus eleviating traffic on chatty applications. It allows your record set to be refreshed with current data. So how do you enable SQL Cache dependency? A good start on SQL Server 2005 is by runntng the utility tool aspnet_regiis.exe. You can also run this via the command line, but the gui is intuitive. By running the interface you tell SQL which database you want to enable cache dependency on, it will also enable the chosen database for SQL Role Membership using the SQL Role Provider which can be discussed in a different thread.

Comments (0)
Playing with Paint.net - Tuesday, July 31, 2007 Posted By: erika

Okay, so we partner with a fantastic design and marketing firm and really don't have to know how to do the flashy design stuff, but its fun to play with anyway. I'm working on a placeholder logo for a new client and decided to try to employ one of the tutorials at the forums for Paint.NET. If you have never heard of Paint.NET, please check it out. It's an open source version of Adobe PhotoShop written on the .NET platform.

There is an entire community that writes new plug ins for the application. (A little ironic to me that the forums are .php.)  One of the true "open source" .net projects I've found out there.

Here's the icon I created (not too bad for a programmer!):

Comments (0)
Cool Site of the Day - Thursday, July 19, 2007 Posted By: erika

Okay, so it's not development related, but I thought I'd share the wealth with anyone reading.  It isn't even a nicly designed site using great technology. Its just a site I visit everyday.

Woot

Check it out. Everyday they have a new deal. I got a Roomba scheduler for $69 one day.

Comments (0)
SQL 2005 Common Table Expressions (CTE) - Tuesday, July 17, 2007 Posted By: louie

Common Table Expressions (CTE)

A new feature to SQL Server 2005 is the addition of Common Table Expressions. You can think of CTEs as dynamic views. With a sql view, you cannot pass parameters to filter data, with CTEs you can and it does so with ease. So what is a real world application of CTEs you ask? I was recently tasked with building a web app, and in one particular part of the application I needed to traverse hierarchical data. Sounds pretty straight forward right? The data in SQL was architectured with a parent child relationship in one table. This table(Question) held the data that represented, a Question Domain, a question section, possibly subsections, and at the lowest leaf level, question(s).
 
So given any point in the navigation tree, I need to show where I am in the survey of questions and aggregate points based on the number of sections and questions within those sections. As I began writing a query my first stab was a stored procedure that would in turn call a scalar valued function and aggregate data for parent child relationships. That worked for small pieces of data until I had a domain that included over 100 sections each with 15 questions, needless to say that solution wouldn't have worked.
 
The second attempt was to aggregate the data and traverse my way back up by running a stored procedure and then in turn looping and calling my stored procedure multiple times to simulate recursion. Whereas this also worked, this was horrible on performance.
 
So taking the two previous concepts, I was introduced to CTEs, the dynamic view and using it to traverse hiearchical data. First a CTE was built to select the data that I wanted, so for instance
 
WITH domain (QuesitonId, ParentId, Description)
As
(
SELECT QuestionId, ParentId, Description FROM Question
 
 
* note: If the 'WITH' statement had been preceeded by anthing else, that precedding statement would need to be terminated by a (;). As it stands, the above will create a record set that I could query from, like a view!
 
next:
 
UNION
 
SELECT a.QuestionId, a.ParentId, a.Description FROM domain a WHERE (ParentID = QuestionId)
)
 
* at this point the record set has begun to iterate on itself and will do so until the condition cannot be met and will terminate iterating on its own.
 
So when the condition stops what we're left with is an in memory record set of the traversed data that we can either query against or use for another CTE if we needed. This method proved to be so much more efficient than calling my stored proc numerous times. Have fun!
Comments (0)

All Things Dev Blog Print this page
@ 2007, WhiteHat Development LLC, All Right Reserved.
 WhiteHat Software Development