News Archives 
   
(click month to expand)
  

Recent Technology News Stories

Solentive News
New Video on ASP.NET  [click for more...]
Chris Pels shows how to create two DropDownList controls where selecting an item in the first list populates the items in the second list.  Watch this and other videos on the Learn page.
12/03/2009   [Link] ASP.NET News
Best Practices on Best Practices?  [click for more...]

So the other day I was helping out a coworker on a project and was taken aback by the complexity of the project.  I was expecting a hacky WinForms app with a single form and one monolithic method.  Instead, I saw an organized solution with 6 projects, including a test project.  It took me a good 30 minutes to follow through the logic from one class to the next, across projects and assemblies.  This of course made me feel dumb, so my first reaction was – this project is too complex! 

So while discussing the project with some others to get ideas of what could be wrong, I happened to say - “there’s a time and a place for best practices”.  There was a moment of silence and then I got looks like I had just walked into a courtroom wearing a blue velour suit.  Because of the various reactions, I thought this would be a good topic to discuss with you.

I’ve always been a believer in the “do what it takes to get the job done” camp.  I like to follow best practices until they get in the way.  There, I said it..  I’m not going to hide it anymore!  I believe that a “best practice”, just like most patterns has a certain solution set that it’s best fit for.  I’m not saying throw caution to the wind and forego every bit of programming common sense, but would I use MVVM the next time I want to write a quick utility application?  Probably not.  I follow a rule of thumb – if the pattern I’m using is more complex than the solution the software is supposed to be providing, I’m not going to use it.  It all boils down to ROI – what benefits do I get by following this pattern and how much is it going to cost me to do it? 

Here’s a perfect example.  MVC is getting a lot of buzz right now, and seems like a good solution for a certain set of applications.  Does that make it better than ASP.NET’s classic MVP pattern?  I’ve grown fond of the idea of dropping a control on a form, writing a couple lines of code and being done.  Am I about to dump all of that because MVC is the new hot pattern?  I think you know the answer to that already.  That’s not to say MVC isn’t useful – as I said earlier there is a problem/solution set that MVC is perfect for.  It just turns out, that’s not the problem set I’m normally involved in..

So what do you think about all of this?  Are you a pattern / best practices follower?  Have you found certain ones worthwhile, or vowed never to use a one (or many) ever again?  Leave your thoughts in the comments.

12/03/2009   [Link]
ASP.NET C# Search Engine (highlighting, JSON, jQuery & Silverlight)  [click for more...]
More professional ASP.NET c# search with proper document summary, query highlighting and RIA display options.
12/03/2009   [Link] craigd
Adding Time to DateTime Fields in SharePoint Lists  [click for more...]

Recently a fellow list member ran into a snag while trying to create a calculated field of the form [DateTimeField1 + TimeValue].  Ostensibly, his problem was the lack of seconds in the displayed value; in reality, however, the initial approach betrayed an all-too-common misunderstanding of the way date and time values are treated in SharePoint.

The heart of the problem turned out to be the TIME function.  This takes a set of three integer parameters (hours, minutes, seconds) and converts them into a decimal value as a fraction of a day.  For example, the conversion of 10:20:15, or TIME(10, 20, 15) would yield a return value of 0.43.  This can't actually be added to a datetime field unless you convert the field value with the same function, which leaves you with just the sum of the times (and not in a very usable format).

The alternative, then, is the somewhat more intuitive (if more obscure) method of simply adding the two datetime/time fields, like this:

 =[DateTimeField1] + TimeValue

For the final piece, the field needs to be displayed in the desired format, which in this case includes the display of seconds.  The TEXT function -- which converts a given value type to a string based on the provided formatting expression -- will do the job.

 =TEXT(([DateTimeField1] + TimeValue), "m/d/yyyy h:MM:ss")

This formatting should be familiar to anyone who has worked with date and time data in Microsoft development tools, whether VBA in Office or C# in ASP.NET.

Obviously the string can be altered to include only date, only time, or a longer date format; this should serve as a starting point for whatever time calculations you might need.

12/03/2009   [Link]
ATL Windowless ActiveX Media Container  [click for more...]
Full-fledged ATL Windowless ActiveX Container. Ideal for hosting Windows Media Player, Transparent Flash and Silverlight Animations.
12/03/2009   [Link] Ernest Laurentin
LocaleManager - A Practical Tool to Manage Resources Files of Different Locales for Java/Flex and .NET  [click for more...]
Implementation of a software tool in C# to help to manage *.resx files for .NET or *.properties files for Java or AS3 of different locales.
12/03/2009   [Link] bhan2000
New Updates to the ASP.NET Wiki  [click for more...]
The Wiki continues to grow with updated Wiki Articles on State Management, Themes in ASP.NET, ASP.NET Open Source Projects, and more. Share your knowledge and earn Community Recognition points by contributing to the ASP.NET Wiki.
12/03/2009   [Link] ASP.NET News
New Article: Extending LINQ - Specifying a Property in the Distinct Function  [click for more...]
For those of you who are already comfortable with LINQ, you've probably run into this same limitation with the "Distinct" function... check out the article (and source), it's a fun way to solve a common problem: Extending LINQ - Specifying a Property in the Distinct Function
12/03/2009   [Link]
Learn How to Perform Validation in ASP.NET MVC  [click for more...]
Stephen Walther demonstrates how you can validate form data in an ASP.NET MVC application. Learn how to use model state and validation HTML helpers. Learn how to take advantage of the IDataErrorInfo interface to customize your validation error messages.
12/03/2009   [Link] ASP.NET News
Multi-map generic collection class in C# - A Dictionary collection class that can store duplicate key-value pairs  [click for more...]
The generic Dictionary collection class in .NET requires the key to be unique. But many applications/services require a flexible, generic Dictionary collection type that can accept multiple values for a key. This article explains one such generic Dictionary collection type.
12/03/2009   [Link] Bharath K A
A Concurrent Collection: Multi-Thread-Enumerable MultiMap generic Collection class in C#.net - Part 2  [click for more...]
MultiMap is similar to .Net Dictionary collection type, but accepts duplicate Key,Value pairs during addition. This collection supports the enumerator be used across multiple threads or sessions (in case of web project)
12/03/2009   [Link] Bharath K A
Build a Web based Chat using ASP.NET Ajax  [click for more...]
Build a GMail like web based chat using ASP.NET Ajax that can handle several requests and simultaneous users
12/03/2009   [Link] Jorge Bay Gondra
New Control Gallery Additions  [click for more...]
Manage online content with controls like DbNetGrid and DbNetFile with DbNetSuiteVS, render PDFs from a webform using DynamicPDF Generator for .NET, or check out .netInvoice ASP.NET Invoicing Software for a feature-rich ASP.NET-based invoicing solution. Try these controls and others in the Control Gallery.
12/03/2009   [Link] ASP.NET News
SharePoint Manager 2007  [click for more...]

One extremely useful utility for SharePoint is SharePoint Manager 2007. SPM2007 is developed by Carsten Keutmann. You may know him better by his other project – WSPBuilder that is one of the best SharePoint add-ins for Visual Studio.

CodePlex site describes this tool as follows: “The SharePoint Manager 2007 is a SharePoint object model explorer. It enables you to browse every site on the local farm and view every property. It also enables you to change the properties (at your own risk). This is a very powerfull tool for developers that like to know what the SharePoint holds of secrets.

Basically it lets you explore SharePoint server and see properties of all objects. You can see and sometimes modify even those properties that SharePoint doesn’t show you through browser based interface. There are more very cool uses for this tool but let’s see some pictures too.

SharePoint Manager 2007: Job properties
SharePoint Manager 2007. Properties of Dead Site Delete timer job.
Click on image to see larger version of it.

Properties of all objects are presented same way as on screenshot above. For lists you can see also some additional tabs like shown on following screenshot.

SharePoint Manager 2007: List schema
SharePoint Manager 2007. Lists and libraries have also browsing and schema tabs.
Click on image to see larger version of it.

When building SharePoint solutions on Visual Studio you may need XMLs for list schemas. SharePoint Manager 2007 gives you these schemas. Just move to Schema XML tab and use copy-paste. XML is nicely formatted so you can also read it without using editors that can step XML. Same way you get also XML definitions for content types, site columns, groups and role definitions.

I used SharePoint Manager 2007 to compare properties of site columns to find out differences that caused problems on one server. It took only couple of minutes to find out problems. And as a bonus I got all list definitions to my Visual Studio project very fast.

12/03/2009   [Link]
Combine/Compress/Minify JS and CSS files in ASP.NET MVC  [click for more...]
This article will present a technique for delivering CSS and JavaScript files to a client within an ASP.NET MVC application. More specifically it will show how to deliver compressed, minified, combined and cached CSS / JavaScript files in the context of an ASP.NET MVC application.
12/03/2009   [Link] Brian Rush
ASP.NET MVC Release Candidate 2 Now Available  [click for more...]
ASP.NET MVC enables Web developers to build compelling standards-based Web solutions that are easy to maintain because it decreases the dependency between layers by using the Model-View-Controller (MVC) pattern and provides complete control over the page markup. It also improves testability which enables Test Driven Development (TDD). Click here to download ASP.NET MVC or to learn more about it.
12/03/2009   [Link] ASP.NET News
TextBoxHint  [click for more...]
Standard .NET TextBox control with three additional properties that allow the developer to add a 'hint' to the text...sort of like a tooltip but always visible while the control is empty.
12/03/2009   [Link] Elkay
Streaming Chart Images as FileResult from MVC Controllers  [click for more...]
Using a proper MVC pattern to stream an image from Microsoft Chart controls for the Microsoft .NET Framework 3.5.
12/03/2009   [Link] Nic_Roche
Message to the .NET world: Seriously, the UX does matter  [click for more...]

The new gig I started in December as the company's technical architect ("technical" to make the distinction that it's not "information architect") has been an interesting experience for me thus far. My experience at Insurance.com was excellent in so many ways, because the processes were entirely solid and my peers were rock stars without the ego. Getting laid-off from there sucked, but it also presented an opportunity to find something where I could lead processes and have that "enterprise" experience applied to a place that needs it.

My new employer has been primarily a creative marketing endeavor for most of its history, and app development has been a smaller part of their business. Appropriately, their processes around development, QA and deployment were a lot less structured than I was used to, so my initial goals were to mitigate risk and decrease costs in every area I could while leading the overall technical direction of new projects. As you might expect, there are a lot of cultural challenges to deal with.

But I did hit most of my goals in the first three months, including the establishment of coding standards, good source control, continuous integration, solid libraries and code reviews. I'm really happy with the way the team pulled together and bought in to what we were doing.

So what does this have to do with the title of this post? Being a largely creative agency means that people spend a lot more time thinking about how to make things functional and visually attractive. This has really influenced me a great deal, and I didn't expect that. It's like the classic comparison where people say that Windows was written by engineers for engineers (see any of Vista's copy confirm dialogs, if you need an example), while OS X was written by engineers for their grandmothers. The user experience matters. Working for a company rooted in design, I've really come to appreciate that.

No where does this become more apparent than in the various communities that surround the .NET ecosystem. We're surrounded by poorly thought out, and often ugly, implementations of all kinds of stuff. For example, in the official ASP.NET forums, you can click the button to subscribe to a thread for e-mail notifications. But here's the catch... you might not actually ever hear from the site. That's because the poorly organized user control panel has a switch to turn it off. So subscribing to a thread doesn't really subscribe you to it. There's no indication or clue that what you just did didn't actually do anything.

I think we have some incredibly awesome tools to work with in the .NET world. I mean seriously, every day I thank God for Visual Studio (not to say it doesn't have its quirks), ReSharper, anonymous types, Cruise Control .NET, and now, the MVC framework. It blows my mind that we have so much power at our finger tips to deliver really great stuff. But in the case of the poor design that I just mentioned, there are actually people who spend time being apologists for this kind of thing. They'll go as far as justify the design and chalk it up to some user issue. Are you kidding?

Yes, I can be a gear head too, but come on, my .NET brothers and sisters, we have to do better than this. We need to pay better attention to how we design our interaction with humans. I see all of this stuff built on Rails or PHP that is just so entirely slick and easy to use, and it really has nothing to do with the back end, except that the developers in those spaces seem to pay more attention to the front end design. Dependency injection is a fascinating thing to talk about with very obvious benefits, but at the end of the day, if your app is hard to use or sucks in some other way, it won't mean anything that you can manage and alter the app easily because no one is using it anyway.

The user experience matters. Stop ignoring it.

12/03/2009   [Link]
The Open Source Projects on ASP.NET MVC  [click for more...]

Last night the forehead four head has released the 1st chapter of their upcoming Wrox book along with a sample project NerdDinner and I think this is the best application to check if anyone is trying to lean the new ASP.NET MVC framework.

And this is the list of currently available Open Source Projects developed in ASP.NET MVC. I am ordering it based upon the complexity and learning curve according to my understanding:

  1. NerdDinner
  2. CodeBetter Award
  3. CodeCampServer
  4. BeerHouse
  5. StoreFront
  6. Oxite
  7. KiGG
  8. FubuMVC/AltOxite (Eric Hexter is absolutely right it does not has any dependency on System.Web.MVC)
Happy ASP.NET MVC learning !!!
Shout it
12/03/2009   [Link]
Copyright © 2007 Solentive | Disclaimer | Contact | Home