|
Friday, August 13, 2010
#
The developers at Mindscape have a fantastic Visual Designer for their LightSpeed O/R Mapper that integrates into Visual Studio. I absolutely love the roundtrip synchronization between the database and domain model as well as the added support for refactoring, inheritance, migrations, etc. The number of features and ease-of-use shows Mindscape's deep commitment to making the developer experience as productive and pleasurable as possible.
The other day they released a separate product, called NHibernate Designer, that offers similar functionality for those developers using the NHibernate O/R Mapper. Again, this is a Visual Designer that quickly and easily integrates within Visual Studio and allows you to do model-first development using the designer or reverse engineer tables from a database. As you make changes to the model or the database you can easily synchronize them to your heart's delight:

Under the covers the NHibernate Visual Designer is creating and managing the necessary domain entities as well as the XML Mapping that NHibernate needs in order to properly map your classes to the database. This saves you an incredible amount of time and headache and allows you to focus on the domain and its rich behavior as opposed to the friction associated with the O/R Mapping Infrastructure. The NHibernate Designer also contains a simple ConfigurationHelper that takes care of extracting the mapping information created by the designer and integrating that with the other NHibernate configuration details in your app.config, web.config, etc.
I haven't spent a lot of time with the designer, but I am very excited about the possibilities. I created a simple Blog Model with Post and Category Entities using the designer and a Comment Entity reverse engineered from the database and the synchronization worked beautifully. The Mapping Configuration worked flawlessly as well using their ConfigurationHelper because within about 10-15 minutes I was successfully using NHibernate and LINQ To NHibernate to handle all my data access needs for this simple model.
Mindscape is really good at adding new features and fixing bugs as part of their nightly builds, so if you are interested in a visual design surface for NHibernate that integrates within Visual Studio, I recommend you download the free trial, pound on it, and give them feedback as to any bugs and missing functionality in the product. Download the trial here.
David Hayden
Monday, August 09, 2010
#
FinalBuilder is one of those indispensible tools that you will immediately love and use on every project to automate your build process. I was literally hooked on day 1 by the graphical user interface that greatly simplifies creating build files and the incredible number of pre-built actions that has handled all my build automation needs for years!! And for those developers that want to create unique, re-usable actions for their build process, you have the wonderful ActionStudio that makes creating new actions a snap.
FinalBuilder 7 has a number of new features and boasts a new IDE for managing multiple build projects simultaneously. It also has several new actions and I am particularly excited about the new actions for Git, Mercurial, and NDepend. If you have yet to automate your build process or you are not entirely happy with your current solution, check out the following links on FinalBuilder 7:

David Hayden
Sunday, August 08, 2010
#
If you downloaded ASP.NET MVC 3 Preview 1, Microsoft has also uploaded the source code to CodePlex so you can kick the tires and look under the hood.
Again, this stuff is really early and subject to change, so I wouldn't waste too many cycles memorizing the code.
As mentioned before, you can take a peek at early implementations of the following features in ASP.NET MVC 3:
- Razor View Engine
- Dependency Injection hooks using a service locator interface.
- Support for .NET 4 Data Annotation and Validation attributes.
- Add View dialog support for multiple view engines including custom view engines.
- Global Action Filters
Download the ASP.NET MVC 3 Preview 1 Source Code here.
Related Post: Pro ASP.NET MVC 2 Framework Book Review
David Hayden
Tuesday, August 03, 2010
#
Developing database-driven websites using the ASP.NET Web Pages Framework, WebMatrix and Razor is not evil as most professional ASP.NET Web Developers might think. It is hard to look back on the 90's and Classic ASP websites with much optimism as ADO, millions of include files, and spaghetti code literally became the norm. Maintaining them was an utter nightmare in most cases.
This is a different time, however, and Microsoft.Data.dll is much better than ADO, the Razor Syntax is much better than VBScript, and a lot of the security concerns around Encoding, SQL Injection, proper validation, etc. are much more well-known and publicized than it was when Classic ASP first came on the scene. At the time, we also didn't have other frameworks, like WebForms and ASP.NET MVC, and other options for data access, like LINQ To SQL and Entity Framework, so we were pretty stuck making all kinds of crazy mistakes given there wasn't another avenue for more complicated websites.
WebMatrix, the ASP.NET Web Pages Framework with Razor, and Microsoft.Data.dll fit a particular need and development environment around simple, forms-over-data websites that are nothing more than a thin layer on top of a database. Personally, at this level, anything that attempts to abstract the fact that we are just pumping data from the database onto a web page is overcomplicating the issue and making the application more difficult to maintain.
As an example, take your typical Recent News or Recent Posts page on a personal website that literally pulls data from a single table based on either a publication date or id. I see no reason to create an ASP.NET MVC or WebForms website in Visual Studio with an O/R Mapper, Visual Designer, codebehind files, view model, a bloated web.config, and other nonsense when you can just take your favorite text editor and add a few lines of Razor syntax into a page in a few minutes with a much simpler deployment model.

This is far more easier to maintain than a similar application written with ASP.NET WebForms or ASP.NET MVC. Here we have 1 file that can easily be understood in any text editor with a clear understanding that this data is coming from a database using a particular query and dumped onto a web page. Want to sort it differently? Want to display more than 20 stories? It is pretty darn clear and pretty darn easy to make those changes and any changes that fit this simple, database-driven niche.
Other than those 3 lines at the top this looks pretty close to a view in the ASP.NET MVC Framework. If things get much more complicated and you need to offer a layer of abstraction and separate out concerns, you could move those 3 lines out of the view and migrate to MVC. I suspect such an application wouldn't grow to such a need, but if it does, there is a path to a more appropriate framework.
Also noticed that by default everything is HTML Encoded with less chance for JavaScript Injection. I have to work around the framework and use an HtmlString to display the body of the post to allow raw HTML to be displayed. We didn't have automatic encoding with Classic ASP :)
And, as mentioned on my previous post, Microsoft.Data.dll makes it much easier to send parameterized queries and avoid SQL Injection. Wish we had this with Classic ASP, too!
var post = blog.QuerySingle("SELECT Id, Title, Body FROM Posts WHERE Id=@0", postId);
Although nothing is perfect and mistakes will be made by new developers, it won't be anything like the 90's and Classic ASP. This is good stuff for simple forms-over-data websites. As professional web developers I realize we worked long and hard to learn how to properly architect complex web applications, but I think the pendulum may have swung a bit too far and we forget the joy, ease, and beauty of developing simple websites using simple techniques and simple tools.
I love this framework. Very fun indeed! The right tool for the right job.
David Hayden
Related Posts:
Monday, August 02, 2010
#
David Fowler mentioned the new Microsoft.Data collection of classes as a simple wrapper around ADO.NET to simplify access to a database for querying and CRUD services. Those of us who have been around the block will compare this to the old SqlHelper and Data Access Application Block in Enterprise Library. The wrappers not only reduce the amount of code you write, but also typically embody proven practices around ADO.NET that are often difficult to remember and implement in your own code.
For most .NET Developers, working with ADO.NET and any wrappers is old school. In general, ADO.NET is abstracted by using an O/R Mapper, like LINQ-To-SQL, Entity Framework, NHibernate, LLBLGen Pro, LightSpeed, etc, allowing one to think more about classes and their relationships and letting the O/R Mapper deal with the relational model. It used to be that O/R Mappers were just about abstracting the database, but now they have gotten very sophisticated with change tracking, first and second-level caching, and all kinds of other higher-level services that can benefit your application.
Although I love O/R Mappers and what they provide to my applications and development process, they are overkill for applications that are but a thin, almost transparent, layer on top of a database. Forms-over-data websites and applications just don't need a sophisticated layer of O/R Mapping services and tooling to support it. These applications just pipe data from the database to the web pages and quite frankly don't need anything more than a DataReader, and this is where Microsoft.Data comes in.
Microsoft.Data is for use with WebMatrix and the ASP.NET Web Pages Framework for developing PHP-like applications where data access is primarily all the code you write. The databases tend to be simple, flat, and written to fulfill the needs of the applications, so the data access solution should be just as simple as well. Microsoft.Data has a very simple style for writing parameterized queries ( SQL Injection Safe ) that can be done using NotePad, WebMatrix, or any other simple text editor:
var blog = Database.OpenFile("Blog.sdf"); var post = blog.QuerySingle("SELECT Id, Title, Description FROM Posts WHERE Id=@0", postId);
The complexities of connection management, proper parameterization of queries, when and where to dispose of objects, and other best practices are maintained while allowing the developer to focus on the needs of the application and provide business value at a proper layer of abstraction for this database-driven website. The development environment is also of an appropriate level for these applications that don't need more than a text editor to develop a website.
Now I am just waiting for JetBrains to come out with their new WebStorm IDE to support the ASP.NET Web Pages Framework. You know it's coming :)
David Hayden
Related Posts
Sunday, August 01, 2010
#
If you want to stay up-to-date on the bleeding edge of ASP.NET MVC, you will no doubt be interested in downloading the just released ASP.NET MVC 3 Preview 1 from here.
A few features added to ASP.NET MVC 3 Preview 1 include:
- New Razor View Engine - This view engine made its debut as a part of WebMatrix and has now been added to ASP.NET MVC 3. Right now there is no intellisense or code highlighting, which will come in the future, but for those of you who have only used the WebForms View Engine with MVC, you will appreciate the code-centric and less verbose format.
- Global Filters - Many times you wanted to create various filters on all controllers and controller actions and thus created a base controller to hold those filters. An alternative is to use the new GlobalFilters.Filters Collection where you can add and remove filters globally in your application without burdening a base controller class with this information. This global facade isn't a new concept as you did the same thing when using multiple view engines within ASP.NET MVC using ViewEngines.Engines, etc.
- New ActionResults - You probably made these yourself, but a few new ActionResults will be in ASP.NET MVC 3, including HttpNotFoundResult, HttpRedirectResult with support for Permanent Redirects, and HttpStatusCodeResult.
- Model Binding to JSON - The DefaultModelBinder now supports JSON-encoded data which is great for ASP.NET MVC Web Applications using jQuery and other JavaScript Frameworks for a richer UI experience.
- Validation - .NET 4 introduced IValidatableObject and some enhancements in the ValidationAttribute to provide even better validation and ASP.NET MVC 3 will offer better support for them.
- Dependency Injection and Common Service Locator Enhancements - There will be lots of controversy on the best way to do it, but the concepts are sound. We need a better way to inject dependencies into not only the controllers, actions, and views that we have today, but also the harder to do modelbinders, value providers, validation providers, and other extensibility points in the ASP.NET MVC Framework. ASP.NET MVC 3 is looking at leveraging a common service locator to help pull dependencies from your IoC Container of choice, like Unity, Autofac, Windsor, Ninject, etc.
ASP.NET MVC 3 is still early and I wouldn't expect a release anytime soon for those of you just getting around to learning ASP.NET MVC 2 now that it is a part of Visual Studio 2010. Of course, I suspect ASP.NET MVC 3 will be another out-of-band release so get used to installing and using it outside the normal releases of Visual Studio.
Again, download ASP.NET MVC 3 Preview 1 here.
David Hayden
Related Posts:
 Microsoft released the second version of the ASP.NET MVC Framework, ASP.NET MVC 2, earlier this year which includes a lot of good and necessary features for developing web application on ASP.NET using MVC. Pro ASP.NET MVC 2 Framework by Steve Sanderson and Apress updated their earlier book with all the goodness you would expect:
- Pluggable Validation - Out with IDataErrorInfo, which none of us used anyway, and pluggable validation where one can use System.ComponentModel.DataAnnotations, Enterprise Validation Application Block, Fluent Validation, Castle Validation, or your own home grown validation framework to your hearts desire.
- Templated View Helpers and Model MetaData - Say hello to UI Scaffolding using temptates, template view helpers, and various model metadata in the form of attributes ( or whatever it's pluggable ) as inspired by ASP.NET Dynamic Data. Html.LabelFor, Html.DisplayFor, Html.EditorFor, etc. further complement the use of T4 Templates that we had with the exsting AddView and AddController Scenarios.
- Strongly-Typed Input Helpers - The strongly-typed input helpers, like HtmlTextBoxFor, that were previously in the ASP.NET MVC Futures Assembly are now in ASP.NET MVC and help provide intellisense and refactoring support using lambda expressions.
- Async Controllers - For those long running IO bound processes that may clean out your worker thread pool you have the option of using Async Controllers ( also once in ASP.NET MVC Futures ) to put those threads back in the pool quickly and handle more concurrent requests.
- Automatic HTML Encoding - For those using .NET 4, one can use Html Encoded Code Expressions backed by a smart IHtmlString to safely explicity encode all your output to avoid Script Injection and the underlying helpers have the smarts to encode that information or not.
- etc...
Per my previous book review on the earlier edition of the book, this is the best book on ASP.NET MVC Framework without a doubt. Whether you are completely new to ASP.NET MVC or an advanced ASP.NET MVC developer you will find lots of great introductory and advanced MVC coverage.
The author has an uncanny ability to write a book that not only walks you gently through creating an ASP.NET MVC Web Application but also explaining just what you want and need to know before moving on to the next subject. Later on, when you are ready, he then takes you into the depths of MVC and answers those questions again that are foremost on your mind. In addition, the examples in the book are exactly what you will find yourself doing in the real world and many of the helpers, filters, etc. are very useful for your own library. Whereas most books focus on certain features of ASP.NET MVC or a certain crowd, Pro ASP.NET MVC 2 Framework covers everything!!
Whether you want to learn ASP.NET MVC from scratch or just interested in understanding a particular feature in-depth, Pro ASP.NET MVC 2 Framework by Steve Sanderson is an incredible book and equally valuable when read cover-to-cover or as a reference book on your desk. Love this freakin' book :)
Check out the reviews on Amazon.
David Hayden
Monday, July 12, 2010
#
 I bought ASP.NET MVC 2 in Action as a PDF yesterday and read all the updated chapters on my iPad and much of the previous information from the first edition of the book. I just can't put these types of books down :)
I really like this book as it has a professional tone that seeks not only to teach you ASP.NET MVC but how to use it adhering to sound software development principles. As I mentioned in my review of the first edition, in my humble opinion the goal of ASP.NET MVC in Action is not to teach you every little thing about ASP.NET MVC, but to teach you patterns and principles to help you take your ASP.NET MVC applications to the next level - a more maintainable and sustainable level complete with good separation of concerns, testability, and other professional software development concerns.
Some of the non-ASP.NET MVC content of the first edition was actually removed to make way for a number of the new features in ASP.NET MVC 2 like Areas, Display and Editor Templates, Strongly-Typed View Helpers, Client-Side Validation, Value Providers, and other features in MVC 2. Because a couple of the authors are involved in the MvcContrib Project, there is also coverage of integrating MvcContrib into your applications like Portable Areas, Grid, etc. And for those of you who prefer NHibernate, AutoMapper, and Domain-Driven Design concepts in your development, you will appreciate the coverage of those subjects as well.
If you seek a different flavor in your ASP.NET MVC books that focus on web development concepts and practices to build more maintainable applications, I think you will get a lot out of this book. If you are interested in the open-source community and feel comfortable about trying technologies like MvcContrib, AutoMapper, Fluent NHibernate, NHibernate, and other such solutions, I think you will definitely appreciate the book.
If you really just want the details of ASP.NET MVC and are not interested in anything but the Microsoft Stack and care little for software development practices that focus on separations of concerns and testability, you may want to hold out for another book, but I urge you to expand your comfort zone :)
You can buy ASP.NET MVC 2 in Action on Amazon.
Hope this helps.
David Hayden
Related Posts:
Although I have only scratched the surface of WebMatrix I felt comfortable with its existence as the right tool for a very particular job. My gut was that technically we could look at WebMatrix as a solution for simple forms-over-data web applications where the data is your application and you just need a pipe to get it back and forth between your datastore and web pages. Screw separation of concerns in these scenarios as it would just add friction and unnecessary abstractions and make the solution less maintainable. Just toss the data access and minimal code within the pages themselves as best as possible. As long as we learned from Classic ASP days that this type of structure can get really ugly, really fast as the complexity of the application evolves, we should be okay :)
From a Microsoft perspective the WebMatrix stack may get developers going to PHP for this type of development to come to ASP.NET and IIS. It will hopefully also get the remaining Classic ASP Developers to move to .NET as well.
This is great, but recently I read a blog post suggesting that WebMatrix is a good way for developers to ramp-up to more enterprise frameworks and tooling.
"WebMatrix is a stack and tool for folks just entering the ASP.NET development arena. The hope is WebMatrix will provide an easy on-ramp to the enterprise worthy frameworks for the those new to the party. WebMatrix is more concerned with you learning the fundamentals than allowing you to effectively separate the concerns of your application, unit test every aspect of your site or create an n-tier solution."
I agree that one can learn the fundamentals of ASP.NET using WebMatrix, but I doubt it will help with learning the fundamentals of enterprise web development and what it takes to move to an enterprise-worthy framework. In fact, development learned using WebMatrix may do more harm than good as a stepping stone to enterprise development.
Enterprise web development is all about creating maintainable and sustainable applications for which you must understand separation of concerns and other core software development principles that you won't be leveraging with WebMatrix. One can just read the Twitter streams of all the professional ASP.NET Developers during the WebMatrix announcement that it pretty much has no place in their toolbelt except for the possibility of the situation I mention above ( and as the shiny new toy we all love to play with ). The fact is, separation of concerns and other basic software development principles are crucial to professional enterprise web development and not learning them from the beginning can cause more pain later on as you try to unlearn all your “bad practices.“ Just ask me who is constantly unlearning old habits, all the Classic ASP developers who never could transition to .NET, and those ASP.NET Web Developers who still don't fully understand how to develop a maintainable web application. It is difficult to unlearn old techniques that were put in place while learning a skill.
My goal isn't to beat up WebMatrix as I can see a purpose for it, but let's not have developers thinking this is the best path for being a professional enterprise web developer. For those interested in Enterprise Web Development, I recommend using tools and techniques being used by the professionals that embody sound software development principles and focus on the methodologies, practices, and principles for turning out good solutions.
The WebMatrix technology stack is mainly about providing a suite of tools for more simple development needs - the right tool for the right job.
To all those just starting to learn web development I wish you the best of luck. Technology is changing faster than ever and it is easy to get distracted and not focus on skills that will sustain you in the long run. In general, you may want to focus on your software development skills first and then learning a particular envirornment for you to apply those skills. Sound software development skills will always stay with you, be in demand, and will allow you to adapt quickly to changes in technology.
David Hayden
Sunday, July 11, 2010
#
 I don't know about other Macromedia Fans, but even after all these years I still have a difficult time using any other bitmap and vector graphics editing software other than Fireworks . I held onto my copy of Macromedia Studio MX 2004 for years hoping to never have to update to the Adobe Software. Still annoyed after all these years that Macromedia sold out to Adobe, I finally broke down and purchased Adobe Fireworks CS5.
Although I also own Adobe Photoshop, if you are doing graphics for mainly the web and not a high-end web designer or graphics designer, I personally would look at Adobe Fireworks before trying Adobe Photoshop. This has nothing to do with money, but workflow and productivity. I find the Fireworks UI much more intuitive and easy to navigate for most web graphics design needs.
As much as I tried to use the very popular and free, Paint.net, which I would recommend for people for general graphics editing, I have a difficult time navigating its interface and being productive. If you haven't spent years using Fireworks this may not be a problem for you.
An article on SmashingMagazine.com has some really interesting comments regarding Adobe Photoshop vs. Fireworks. Although I believe the two products serve two different types of needs, the comments have some really good insight that I overall agree with in terms of the usability of Fireworks for general web graphics needs. Check it out here.
A pretty nice description of Adobe Fireworks CS5 on Amazon, too.
David Hayden

I have used the Telerik Extensions for ASP.NET MVC on a couple of small projects and they are quite convenient out of the box. The most useful extension has got to be the Grid Control, which allows you to very easily place a grid in your MVC Web Application complete with paging, filtering, sorting, etc. along with the ability to handle both server-side and client-side templates. The fact that the ASP.NET MVC Extensions leverage jQuery, come with a few skins, and have support for Telerik's CDN is awesome, too!
In Telerik's Q2 2010 update, which should be here very soon, we will see the beta of a basic HTML Editor with the ability to do formatting, bullets, hyperlinks, etc. A couple other MVC “Controls“ I am excited to see are mentioned on their blog:
“The other Extensions that will debut in our MVC package are the Window, featuring various built-in behaviors—animations, maximize/restore, resize, refresh and drag capabilities—and the ComboBox suite. The ComboBox will actually encompass three Extensions–AutoComplete, DropDownList and ComboBox. You can choose between the three depending on your application scenario.“
Pretty excited to see these new ASP.NET MVC Extensions in the Q2 Update. You can check out the extensions on the Telerik Website.
David Hayden
Filed: .NET Developer Tools and Components
Saturday, July 10, 2010
#
 Pro ASP.NET MVC 2 Framework was just released by Apress and I should have my copy by the middle of next week. I am really looking forward to the second edition of this book as I found the first edition excellent ( Pro ASP.NET MVC Framework Book Review ).
You can expect a review of the book within a week or two :)
Although a bit dated now that we should be seeing updated versions of MVC Books for ASP.NET MVC 2, you can also check out my thoughts on choosing a book on the ASP.NET MVC Framework.
David Hayden
Safari 5 was released during Apple's Worldwide Developer Conference ( WWDC ) and boasts some really nice developer tools, fantastic support for HTML 5 and CSS 3, ability to host extensions, and is really, really fast. I also love the Readability Feature which allows reading online tutorials and articles so much more enjoyable. You can get a comprehensive list of the features in Safari 5 on the Apple website.
In terms of Safari 5 Extensions, developing them couldn't be easier as they are just HTML, CSS, and Javascript. You can develop them right in Safari using the Safari 5 Developer Tools. If you want to deploy them so others can use the extensions, you will need to join the FREE Safari Developer Program and get your own certificate to sign the extension. This keeps others from maliciously hacking your extension and also proves it comes from you. In the near future Apple will have an Extensions Gallery for developers to upload their extensions and share with all Safari 5 Users.
I am really looking forward to sharing Safari Extensions with other users. For more information on developing Safari 5 Extensions, check out Apple's Safari Extensions Developer Guide. If you don't have Safari 5, download it now.
David Hayden
Related Posts: Firefox 4 Beta - More CSS 3 and HTML 5 Features
Firefox 4 Beta has been released with much more support for CSS 3 and HTML 5, which makes the idea of using these emerging standards much more practical than I think web designers want people to think.
The Firefox 4 Beta will support features, like:
- WebSockets - Essentially provides a full-duplex communications channel allowing real-time interactions like gaming, chatting, etc.
- Indexed DB - Store application data locally for running web applications while offline
- HTML 5 Support - Audio, Video, etc.
- CSS 3 Transitions, etc.
Safari and Chrome already have great support for HTML 5 and CSS 3. Quite frankly I never install Flash so I won't miss it from the Internet.
Learn more about Firefox 4 Beta.
Related:
Thursday, July 08, 2010
#
One of the best things about Visual Studio are the 3rd party tools and JetBrains makes some of the best.
Most people are familiar with ReSharper and love it for its refactoring, code analysis, and code navigation features. I have been using ReSharper since 1.0 and find it crucial for my development. For those of you running ReSharper 5, note there is a new maintenance release, 5.1, that was just made available and you can learn about here.
Along with ReSharper and dotTrace .NET Developer Tools, JetBrains has released a beta of dotCover, which is a code coverage tool for .NET and integrates with ReSharper. The description on the JetBrains website is as such:
“dotCover features include:
- Reporting statement-level coverage in .NET applications.
- Highlighting for uncovered code in Visual Studio.
- Detecting which tests cover a particular location in code.
- Integration with Visual Studio 2005, 2008 and 2010.
- Integration with ReSharper to show test coverage.“
With all the latest releases of several IDE's: PhpStorm, WebStorm, PyCharm, RubyMine, etc. as well as the awesome Visual Studio .NET Tools, one would think JetBrains would just release an IDE for .NET :)
Learn more about dotCover here.
David Hayden
Kudos to Microsoft for releasing SQL Server CE 4 CTP1, which is a free, lightweight, xcopy deployable, embedded database that is a part of the SQL Server family.
Right now you can find SQL Server Compact 4 as part of the WebMatrix Beta and later on it will be integrated in a updated release of Visual Studio 2010. You can download the CTP from Microsoft Downloads here or you can download it along with WebMatrix via the Web Platform Installer 3 Beta here.
For the full scoop on SQL Server Compact 4, you can check out Rob Tiffany's blog.
SQLite
I recommend you also look at SQLite, which I have been using for years and absolutely love. The SQLite Description pretty much says it all:
“SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.”
I also love the tagline: “Small. Fast. Reliable. Choose any three.”
If you are interested in SQL Server Compact Edition 4 and have never looked at SQLite, you owe it to yourself to look at SQLite!
Some SQLite resources worth looking into include:
And you'd be crazy not to download and use the Firefox SQLite Manager. Yep, that's right, administer SQLite databases from the comfort of your browser :)
David Hayden
Related Posts:
Wednesday, July 07, 2010
#

For Web Developers interested in developing database-driven websites using the Microsoft Stack, you may be interested in a new web development tool by Microsoft, called WebMatrix.
WebMatrix is completely free and includes a pretty nice web development IDE and development environment that allows a developer to build database-driven websites using ASP.NET, the new ASP.NET Razor View Engine, the new IIS Developer Express lightweight web-server, and a new lightweight, file-based version of SQL Server, called SQL Server Compact Edition. It is a pretty tight 15MB download, unless you don't have the .NET 4 Framework, which makes it a 50MB Download. Currently WebMatrix is in beta and you can get the bits here.
If you are a PHP Developer and have been looking for a cost-effective and easy way to learn or begin developing .NET Websites for clients on Windows, WebMatrix is a nice way to jump into IIS and ASP.NET Development. In addition to downloading WebMatrix, you will probably want to check out numerous screencasts to help you learn more about it. Check out the WebMatrix Screencasts here.
David Hayden
Related Posts
Sunday, June 06, 2010
#
Lots of efforts and discussion around Document Databases, like CouchDB and MongoDB, in the .NET Developer Community. When you really start to get involved in the technology and become a part of the discussions it really makes you think about why you are using a relational database, like SQL Server, and how you are using it.
I first started hearing about MongoDB from the guys over at TekPub. They use Rails, MongoDB, MongoMapper, and MySQL, all open source technologies, as the technological basis for their wonderful business. In fact, they switched from ASP.NET MVC and SQL Server because not only did the open source technologies provide a better development story but saved them a bundle of money. You can read the InfoQ interview here which is quite fascinating and mentions a lot of technologies.
Just to show you how the Microsoft .NET Developer Community is embracing this technology, you can see a list of .NET Drivers for MongoDB. Note that they have LINQ Support :)
Then Oren came out with Raven DB, which is a document-database focused more from a .NET Perspective.
And then lately the European VAN has been having some interesting meetings on NoSQL. They had a general presentation on NoSQL and you can watch the video here. Recently they had a meeting on CouchDB, which was excellent. You can watch the CouchDB video here. And tomorrow, Monday June 7, the European VAN has a presentation on MongoDB.
Also worth mentioning is a free online book on CouchDB, CouchDB: The Definitive Guide, which has some really interesting thoughts on the technology in general. Read the Introduction Section just to get a feel for the technology.
I am personally starting to question the use of SQL Server, and relational databases, in my projects. In many cases, a relational database does not have to play as important a role in my web applications. A document database, like MongoDB or CouchDB, may better suit my needs and increase the performance and scalability wonderfully. A relational database, and a free one, can take a smaller role for simple tasks where it makes sense.
Lots of wonderful open-source software ( OSS ). I realize more and more how easy and inexpensive it is to start a business and create solutions for clients using OSS.
David Hayden

Mindscape just released an update to their awesome O/R Mapper, LightSpeed 3.1, which includes support for Visual Studio 2010!
In addition to support for Visual Studio 2010, there are some additional enhancements, including:
- Linked Models for Better Large Model Organization
- Class Table Inheritance
- Support for invoking SQLCLR server-side methods via LINQ. This means you can now do SQL Server 2008 spatial queries using LightSpeed!
- Reminder notes in the designer so you can include comments and links on the design surface.
- A T4 directive processor so that you can write your own T4 templates against LightSpeed designer models.
- Lots of improvements to group and join support.
Learn more about LightSpeed 3.1 here. For a quick comparison to a few other O/R Mappers, check out the LightSpeed comparison page.
Filed: O/R Mappers
David Hayden
JetBrains has released both their WebStorm and PhpStorm Web Developer IDE's. WebStorm is a general purpose web developer IDE for developing website and web applications using HTML, JavaScript, CSS, etc., while PhpStorm is focused on developers building websites with PHP. Where applicable, you get all the wonderful benefits of code completion, debugging, custom templates, refactoring, unit test runner, version control integration, and other benefits of professional web development.
Even better is that both WebStorm and PhpStorm are available for Windows, MAC OS X, and Linux.
You can download a free 45 day trial of WebStorm and PhpStorm from the JetBrains Website.
David Hayden
Related Posts:
Monday, May 31, 2010
#
 I finished reading Visual C# 2010 Recipes: A Problem-Solution Approach at the pool today and wanted to write a quick book review while the book is still fresh in my mind. Note that I received a copy of this book for free from Apress because I had purchased Visual C# 2005 Recipes from Apress in the past and really enjoyed that version of the book.
In general, I am a big fan of cookbook-style books that provide real-world, bite-sized problems and solutions. First, these books are a great way to learn new language and .NET Framework features that you may be completely unaware of and possibly never normally come across. Second, because these books are pretty much all about code, typically the code is of a higher quality than you will find in non-recipe books that are more often than not just conveying a concept with code that is not useful in the real-world. Third, these books rarely get boring as the problem-solution changes every few minutes and you can easily jump around from problem-to-problem to find an interesting subject based on your mood.
That being said, I really enjoyed Visual C# 2010 Recipes just like I did the previous version of the book. The book is filled with all kinds of recipes broken down by larger categories like Threads and Synchronization, Files and Directories, Database Access, Networking, Windows, WPF, LINQ, Common Patterns, etc. The book weighs in at over 900 pages ( 300 more pages than the older version ) and pretty much all of it is filled with code. Typically these books pay for themselves pretty quickly as you will run across several of the problems in your daily work and can easily find an answer without spending hours searching on the Internet and filtering through questionable code. Much of this code ends up in your personal libraries to be used over and over again which makes them even more valuable. If you don't have a book like this on your bookshelf, I recommend checking out the list of recipes on Amazon by clicking the book's cover on Amazon to look inside. That way you can see the list of recipes and see if any catch your eye.
It is worth mentioning that the title may be a little misleading as one might think all the samples are specific to C# 4, .NET Framework 4, and Visual Studio 2010. This is not the case. The book has been updated from its 2005 Version to include not only the previous features that are still relevant today, but a lot of features based on C# 3 and 4 as well as the .NET Framework 3.5 and 4. Alhough the book is not a replacement for a good C# or .NET Framework book with its detailed analysis of new features, the book certainly does complement those books by providing a quick overview and solution to the most common problems that those features solve.
Again, I enjoy these types of books as they always teach me something new and come in very handy during day-to-day development. I probably wouldn't have purchased this book only because I have the previous version as well as a few others just like it and some recent language and .NET Framework books. That being said, this book is good and very useful if you don't have others like it. As I mentioned, I recommend checking out the list of recipes on Amazon first before buying just to make sure the problems and their solutions are of interest.
Visual C# 2010 Recipes: A Problem-Solution Approach on Amazon.
Hope this helps.
David Hayden
You will have a difficult, if not impossible, time finding developers more interested in code quality and code metrics than Patrick Smacchia.
Patrick is the developer of the ever-so-popular NDepend that helps developers understand and measure the quality of their .NET Applications through various code metrics and dependency graphs. The beauty of NDepend is the ability to query information about your application using the Code Query Language ( CQL ), which feels like LINQ or any other query language. With NDepend v3 you get Visual Studio 2010 support as well as a number of new features.
If you are interested in better understanding the quality and behavior of your .NET Application, I highly recommend you visit the NDepend Website and check out the features as well as download the trial. Then, I would go to Patrick's blog where he has several examples of how to use NDepend to analyze various frameworks and applications. If you are responsible for the overall quality of your applications ( and who isn't ), I am not sure how you can achieve the role without a tool like NDepend.
I demonstrated NDepend at the Tampa ASP.NET MVC Developer Group and will probably do the same at an upcoming Sarasota Web Developer Group. If you are new to NDepend and measuring code quality, it is worth your time to look at NDepend.
Filed: .NET Developer Tools
David Hayden
If you haven't looked at the LLBLGen Pro O/R Mapper in awhile, I highly recommend you take another peek as LLBLGen Pro version 3 has quite a bit more features than earlier versions.
First, LLBLGen Pro supports a number of O/R Mappers in addition to its own framework:
- LINQ To SQL,
- Entity Framework, and
- NHibernate
Second, LLBLGen Pro now supports model-first driven development in addition to database-driven development that it has in the past.
The folks at Solutions Design have done an incredible amount of work on the visual designer if you prefer to visually work with your domain model to help improve productivity and reduce mistakes.
You can download a free 30 day trial of LLBLGen Pro on their website.
Also, Frans Bouma has a number of blog posts about why you will want to consider LLBLGen Pro for working with Entity Framework v4 over the built-in Visual Studio Designer. Check out his videos and blog posts for some good information.
We'll be showing off LLBLGen Pro v3 at an upcoming Sarasota Web Developer Group Meeting.
Filed: O/R Mappers, Code Generation
David Hayden
Tuesday, May 18, 2010
#
If you plan on downloading RIA Services 1.0 you will need the Silverlight 4 Tools for Visual Studio 2010.
Per Microsoft Downloads:
Silverlight 4 Tools for Visual Studio 2010 includes several features:
- Support for targeting Silverlight 4 in the Silverlight designer and project system
- RIA Services application templates and libraries
- Support for Silverlight 4 elevated trust and out-of-browser applications and other new Silverlight 4 features, including
- Working with Implicit Styles
- Go To Value Definition lets you directly get to styles from your page
- Style Intellisense lets you easily modify styles
- Working with Data Source Window outputs
- Drag and drop from the data source window and see the data can, from which you can easily select and modify your data source information
- Add, remove, and re-sort DSW outputs using the Grid Row and Column context menu
- Move your controls around the form and change alignments in bulk using the margin editor
- Add sample data to see item templates and bindings at design time
- Working with Silverlight 4 Out-of-browser applications
- Automatically launch and debug your OOB app from inside the IDE
- Specify XAP signing for trusted OOB apps
- Set the OOB window characteristics
You can download Silverlight 4 Tools for Visual Studio 2010 here.
David Hayden
Microsoft released RIA Services 1.0 for Silverlight 4 and Visual Studio 2010.
Per Microsoft: “Microsoft WCF RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations. It also provides end-to-end support for common tasks such as data validation, authentication and roles by integrating with Silverlight components on the client and ASP.NET on the mid-tier.“
You can download RIA Service 1.0 here.
Get started with RIA Services by watching some videos, etc. here.
David Hayden
|