Tips for Running the Dynamic Data System (DDS)

The Dynamic Data System (DDS) makes loading a data warehouse much easier and faster. This system uses SSIS to load standard and partitioned tables via SSIS packages created on the fly using metadata. This eliminates the need to maintain complex SSIS packages. Only basic T-SQL skills are needed. The Dynamic Data System is available on CodePlex.

My current data warehouse project uses SQL Server 2008 R2. Out of the box I found a couple minor configuration issues that prevented me from getting started with using DDS. The following notes, in addition to the documentation provided with the product, should get you on your way.
Continue reading “Tips for Running the Dynamic Data System (DDS)”

Please follow and like us:

ASP.NET MVC – LabelFor htmlAttributes Extension

Part of using any new framework such as ASP.NET MVC, is finding out what it can and cannot do. I was designing the layout for my application’s web forms and found out the LabelFor HTML helper didn’t allow one to pass html attributes like many of the other HTML helpers. Digging around on the web, I found this handy bit of code on Imran Baloch’s blog that neatly solved my problem. Continue reading “ASP.NET MVC – LabelFor htmlAttributes Extension”

Please follow and like us:

New Critters Version in the Works

I recently started working on the next generation of Critters, my personal pet health record project. The new version will be based on ASP.NET MVC and JQuery Mobile.

Pet data will be stored on a secure server and allow access to any device that supports a JavaScript enabled web browser. This will give end users a wider range of devices to use with Critters. Multiple devices in conjunction with cloud services and storage puts your pet’s information at your fingertips anywhere!

Check back and we will let you know when we get our demo up and running!

Please follow and like us:

ASP.NET MVC and Tabs

Recently I have been spending time creating a batch application for SQL Server Reporting Services. During the day, I work for a third-party administrator (TPA). Part of the business involves the payment of medical, vision and dental claims on the behalf of our clients. Periodically we need to print the check registers on the accounts from which the claims payments are made. A data driven subscription alone is not flexible enough. Running the report on demand for each date and client would take too long.

To make it easy for the accounting department to run these reports, I created a web application using ASP.NET MVC that allows the user to search for check runs by date and then select which registers to print from the search results. The selection is used to populate a parameter table followed by the application executing a SQL Agent job associated with a standard data driven subscription for the check register report. Now that the background is out of the way, on to the problem and solution.

Continue reading “ASP.NET MVC and Tabs”

Please follow and like us:

Back to WordPress

After playing around with BlogEngine.NET for the last couple of months, I have decided to retire it and go back to WordPress. The bottom line is the software is not quite ready for Mono and Linux. There always seemed to be some minor issue to overcome whether it was installing a plugin or figuring out why your session was expiring unexpectedly. Most of these problems were related to subtleties in Mono’s implementation of .NET and while they were not show stoppers, they always seemed to get in the way of using the tool for its designed purpose.

I might have stuck with BE however, the project lacks any sort of unit or integration testing which would help with the quality of the releases. There appeared to be a number of bugs and discussion topics related to regression failures which confirmed this is a problem that could be mitigated through some sort of testing discipline.

I would like to thank the BlogEngine developers for creating a feature packed open source tool.  Please consider taking a test driven approach with future versions of BE and you will have a winner!

Please follow and like us:

Mono Development on Ubuntu

The past month has been an in depth investigation of developing .NET applications on Ubuntu using Mono. The experiment was quite simple, use Mono and MonoDevelop to create a simple ASP.NET application. The test application was built using Mono 1.9.1 and MonoDevelop 2.0 from the SVN repository (trunk).

The application makes use of master pages and the membership API. I used the membership providers from the BlogEngine.NET project to save time. Putting the application together with MonoDevelop was not difficult however, it would have been nice to have a shortcut for adding page events to the code-behind instead of from memory or the API documentation. If this functionality exists, perhaps a reader could kindly point out how to use it.

After a couple of hours I have this little test application that serves pages to authenticated users with role based authorization. I am feeling pretty good at this point and I am ready to move to the next part of my evaluation, unit testing. This is where MonoDevelop’s warts start to surface and although I am using an alpha version of the IDE, the problem encountered has been reported in the past on the Mono mailing lists and Novell’s Bugzilla.

The first brick wall that I encountered was the inability to use a custom app.config for my NUnit tests. I have used standalone NUnit in the past under Windows and Ubuntu with a custom app.config without any problems. I simply copy the app.config to the build directory renamed to match the assembly name e.g. TestAssembly.dll -> TestAssembly.dll.config. The two files are co-located and NUnit picks up the custom configuration file. MonoDevelop ignores the custom configuration file and uses mdhost.exe.config located in MonoDevelop’s bin directory. This departs from the expected NUnit behavior and was a source of frustration until I figured out how MonoDevelop was handling the configuration files. This bug was reported over a year ago on Bugzilla without any action, see Bug #325514 for details. I hope this bug will be addressed when MonoDevelop 2.0 goes final, but I have my doubts based on the current status in Bugzilla. I have also posted this to MonoDevelop mailing list (with others experiencing the same problem) as well as adding my experiences to the existing bug report, without any feedback on the problem.

I also encountered an issue with the ConfigurationManager and ProviderSettings classes in Mono 1.9.1. Basically the name and type are saved to the configuration file with the parameters collection being ignored, see Bug #421166 for details. The sample snippet I included in the bug report is confirmed to work on Windows with the expected results. As with the previous bug I also posted my finding to the Mono development mailing list and have not received any feedback to date.

I realize that a project like Mono is a monumental undertaking and I applaud the progress made by the team to date. There are a lot of developers working on this project who know more than I and deserve recognition for their contributions. On the other hand I really worry about committing to the platform when I take the time to report basic functionality issues and see no acknowledgment or action taken to resolve them.

If you are a Mono or MonoDevelop contributor and steps are being taken to address these issues, I would love to hear from you. Again, great work and a job well done!

Please follow and like us:

Mono and MonoDevelop

Two years later and a lot of work by dedicated developers, Mono’s .NET 1.1 support is essentially 100% complete. The prospect of cross-platform .NET while exciting, brought back memories of the progress made by the Wine project. Wine has been around longer than Mono and still cannot run most Windows applications in a stable fashion. This was part of my decision to wait an extended period before evaluating Mono.

Yesterday I downloaded the generic Linux installer for Mono v.1.2.2.1 and had a working Mono instance on Ubuntu 6.10 after a few mouse clicks. Using the command line tools, I compiled a couple of simple .NET 2.0 programs I developed on Windows using Visual Studio. I was able to install my assemblies into the GAC and run my applications without any errors. Mono appears to work quite well for .NET 1.1 development and has enough 2.0 support for simple applications.

My experiences with MonoDevelop were disappointing to say the least. My first attempt to create a simple ASP.NET application worked well enough, a couple of basic controls on form that echoed their content on submit. I noticed a number of quirks such as the aspx and code behind files not being displayed in a nested fashion until the project was saved and re-opened. Trying to connect to and query a MySQL 5.0 database was so frustrating I gave up. I was able to create the connection and display the tables in my database. Trying to refresh the view randomly locked MonoDevelop and trying a simple “SELECT *” resulted in a query syntax error. The same query copied from MonoDevelop and pasted into the MySQL Query Browser worked flawlessly. MonoDevelop generated numerous “data source already open” errors.

I checked out the latest MonoDevelop from SVN and built it with the alpha ASP.NET designer. JSCall-Sharp is needed by the ASP.NET editor and was checked out from the SVN trunk as well. MonoDevelop configured and built without any errors. I started the application and encountered the same errors with MySQL and could not get the ASP.NET editor to function as well. The ASP.NET editor was complaining about the number of calls present in JSCall-Sharp.

A project of this scope is difficult and complex. The members of the Mono team have made an outstanding effort creating a cross platform version of .NET. I will be waiting for the official 1.0 release of Mono before re-evaluating the platform. For now the best option for cross platform enterprise applications is still Java.

Please follow and like us: