Yup, No SQL Server CE in Windows Phone 7

Yesterday's Windows Phone 7 launch extravaganza renewed the months-long debate among developers about database options--specifically, whether the new mobile OS should come with persistent local storage such as built-in SQL Server Compact Edition.

Microsoft's answer, of course, is go to the cloud. And if you don't want to do that, you can opt for a local storage alternative such as XML files, isolated storage or third-party embedded solutions such as Perst.

Besides the "The cloud is the answer. What's the question?" mentality in Redmond, many (even Microsoft people) have pointed out that Win Phone 7 targets consumers more than enterprises, so there is less need of any SQL Server.

Still, considering all the integration with other Microsoft technologies such as Xbox, Office and so on, it seems strange there's no stated intention to provide SQL Server in the future, like they're doing with copy-and-paste functionality. Surely Microsoft isn't going to ignore the enterprise market, and developers in the enterprise market have clearly stated their preference. Check out these comments from the debate mentioned above on an MSDN forum:

  • No database in WM7 Phones? This is ridiculous! 
  • With this I may stick into iPhone development.
  • Without real database support, a phone is just a portal device.  It will have very little value in itself, and will be easily replaced with the next shiny new portal device with a flashy UI.
  • This is indeed a step backward from WM 6.5. Why not implement Sql CE Compact? You cannot write real business application without database support and cannot presume that we live in an always connected world. Developers need database support ... Are you really considering not to implement it?
  • This doesn't make any sense, surely it can't be a huge undertaking to incorporate SQL Server Compact with its managed wrapper into Windows Phone 7?
  • We just started our project (2 months ago) to move to WM ... THE one deciding factor was SqlCe ... with that gone we will definitely regroup and probably move to Droid or iPhone before we throw any more resources after WM with no stated intentions!
  • I concur with everyone else...developers NEED database support on Windows Phone 7!

It's pretty obvious what mobile developers want. Is Microsoft listening?

What do you think? We'd love to hear your arguments, pro and con. Has anybody seen definitive indications that SQL Server CE is coming to Windows Phone 7? Comment here or drop me a line.

Posted by David Ramel on 10/12/2010 at 1:15 PM27 comments

Using WebMatrix with PHP, OData, SQL Azure, Entity Framework and More

I've written before about Microsoft's overtures to the PHP community, with the August release of PHP Drivers for SQL Server being the latest step in an ongoing effort to provide interoperability between PHP and Microsoft technologies.

With a slew of other new products and services released (relatively) recently, such as SQL Azure, OData and WebMatrix, I decided to see if they all work together.

Amazingly, they do. Well, amazing that I got them to work, anyway. And as I've said before, if I can do it, anyone can do it. But that's the whole point: WebMatrix is targeted at noobs, and I wanted to see if a hobbyist could use it in conjunction with some other new stuff.

WebMatrix is a lightweight stack or tool that comes with stripped-down IIS and SQL Server components, packaged together so pros can do quick deployments and beginners can get started in Web development.

WebMatrix is all over PHP. It provides PHP code syntax highlighting (though not IntelliSense). It even includes a Web Gallery that lets you install popular PHP apps such as WordPress (see Ruslan Yakushev's tutorial). Doing so installs and configures PHP and the MySQL database.

I chose to install PHP myself and configure it for use in WebMatrix (see Brian Swan's tutorial).

After doing that, I tested the new PHP Drivers for SQL Server. The August release added PDO support, which allows object-oriented programming.

I used the PDO driver to access the AdventureWorksLTAZ2008R2 test database I have hosted in SQL Azure. After creating a PDO connection object, I could query the database and loop over the results in different ways, such as with the PDO FETCH_ASSOC constant:

(while $row = $sqlquery->fetch(PDO::FETCH_ASSOC) )

or with just the connection object:

foreach ($conn->query($sqlquery) as $row)

which both basically return the same results. You can see those results as a raw array on a site I created and deployed on one of the WebMatrix hosting partners, Applied Innovations, which is offering its services for free throughout the WebMatrix beta, along with several other providers. (By the way, Applied Innovations provided great service when I ran into a problem of my own making, even though the account was free.)

Having tested successfully with a regular SQL Azure database, I tried using PHP to access the same database enabled as an OData feed, courtesy of SQL Azure Labs. That eventually worked, but was a bit problematic in that this was my first exposure to PHP and I haven't worked that much with OData's Atom-based XML feed that contains namespaces, which greatly complicated things.

It was simple enough to grab the OData feed ($xml = file_get_contents ("ODataURL"), for one example), but to get down to the Customer record details buried in namespaces took a lot of investigation and resulted in ridiculous code such as this:

echo $xmlfile->entry[(int)$customerid]->children

just to display the customer's company name. I later found that registering an XPath Namespace could greatly reduce that monstrous line, but did require a couple more lines of code. There's probably a better way to do it, though, if someone in the know would care to drop me a line (see below).

Anyway, the ridiculous code worked, as you can see here.

I also checked out the OData SDK for PHP. It generates proxy classes that you can use to work with OData feeds. It worked fine on my localhost Web server, but I couldn't get it to work on my hosted site. Microsoft Developer Evangelist Jim O'Neil, who used the SDK to access the "Dallas" OData feed repository, suggested I needed "admin privileges to configure the php.ini file to add the OData directory to the include variable and configure the required extensions" on the remote host. I'm sure that could be done easily enough, but I didn't want to bother the Applied Innovations people any further about my free account.

So I accessed OData from a WebMatrix project in two different ways. But that was using PHP files. At first, I couldn't figure out how to easily display the OData feed in a regular WebMatrix (.cshtml) page. I guess I could've written a bunch of C# code to do it, but WebMatrix is supposed to shield you from having to do that. Which it does, in fact, with the OData Helper, one of several "helpers" for tasks such as using Windows Azure Storage or displaying a Twitter feed (you can see an example of the latter on my project site). You can find more helpers online.

The OData Helper made it trivial to grab the feed and display it in a WebMatrix "WebGrid" using the Razor syntax:

@using Microsoft.Samples.WebPages.Helpers
var odatafeed = OData.Get("[feedurl]");
var grid = new WebGrid(odatafeed, columnNames : new []{"CustomerID",
"CompanyName", "FirstName", "LastName"});


which results in this display.

Of course, using the built-in SQL Server Compact to access an embedded database was trivial:

var db = Database.OpenFile("MyDatabase.sdf");
var query = "SELECT * FROM Products ORDER BY Name";
var result = db.Query(query);
var grid = new WebGrid(result);

which results in this.

Finally, I tackled the Entity Framework, to see if I could do a regular old query on the SQL Azure database. I clicked the button to launch the WebMatrix project in Visual Studio and built an Entity Data Model that I used to successfully query the database with both the ObjectQuery and Iqueryable approaches. Both of the queries' code and resulting display can be seen here.

Basically everything I tried to do actually worked. You can access all the example results from my Applied Innovations guest site. By the way, it was fairly simple to deploy my project to the Applied Innovations hosting site. That kind of thing is usually complicated and frustrating for me, but the Web Deploy feature of WebMatrix really streamlined the process.

Of course, WebMatrix is in beta, and the Web Deploy quit working for me after a while. I just started FTPing all my changed files, which worked fine.

I encountered other little glitches along the way, but no showstoppers. For example, the WebMatrix default file type, .cshtml, stopped showing up as an option when creating new files. In fact, the options available for me seemed to differ greatly from those I found in various tutorials. That's quite a minor problem, but I noticed it.

As befits a beta, there are a lot of known issues, which you can see here.

Overall, (much like LightSwitch) I was impressed with WebMatrix. It allows easy ASP.NET Web development and deployment for beginners and accommodates further exploration by those with a smattering of experience.

We'd love to hear your thoughts about WebMatrix, Microsoft's embrace of PHP, or (kind of) new stuff like OData and SQL Azure in general. Comment below or drop me a line.

Posted by David Ramel on 09/30/2010 at 1:15 PM2 comments

LightSwitch: From Download to a Cloud App in 55 Minutes

You've probably heard about the uproar from professional developers about Microsoft's new direction of catering to amateurs with low-end tools like WebMatrix and Visual Studio LightSwitch, designed for quickly building data-centric apps without that pesky code-writing thing.

Some people complain that Microsoft is promoting poor programming practices; some complain that it devalues their jobs and leads to impossible expectations ("Joe in Finance did this in an hour, why can't you just flesh it out into a companywide app by the end of the day?"); some apparently just don't like opening up software development to the great unwashed masses.

From what I've read, it seems like WebMatrix is targeted to hobbyists or techies just looking to experiment with programming , possibly leading to more advanced coding and escalation of skills, while LightSwitch is designed to let non-programmers quickly get small business apps going for single or small group use.

Or, as Eric Nelson wrote in an MSDN blog: "LightSwitch is targeted at business developers and power users creating custom LOB applications leveraging data from multiple sources that can be easily deployed to the desktop or cloud."

I could fake being a business developer or power user, so I decided to find out just how easy it is to build a LightSwitch data-centric app, using a SQL Azure database in the cloud.

I started from scratch, downloading LightSwitch, installing it and building the app. The timeline went something like this:

  • 11:15 -- Search for LightSwitch; download it.
  • 11:31 -- Begin installation.
  • 11:47 -- Setup Complete, Thank You For Installing, Run The Product Now.
  • 11:48 -- Restart required to finish installation (?) but installation doesn't continue after restart.
  • 11:53 -- Start building an app, roughly following a tutorial.
  • 11:59 -- Connect to my SQL Azure database.
  • 12:10 -- Display a query-based "screen" that lets me add, edit and delete records. Like this:
Flipping LightSwitch on
Figure 1. A LightSwitch query-based 'screen' showing a SQL Azure database. [Click image for larger view.]

So, in less than an hour, with no LightSwitch experience whatsoever, I was looking at a customized pseudo-app in Visual Studio. (Of course, that doesn't include 45 minutes or so of fumbling around because I couldn't find any LightSwitch new project templates in VS until it finally dawned on me I had to target .NET 4 instead of 3.5, but that's just my usual inept Ramel-specific experience that other people don't have to go through).

Deployment is a whole other issue, and seems to be a little buggy in this beta. I couldn't get a "three-tier" app running on my hosted server with msdeploy.exe, but a less ambitious "two-tier" desktop app was easy to get going on localhost.
So the tool seems to do the job it was designed for and should get even better in final release.

I've also been tinkering with the WebMatrix beta. It has required more coding from me, but that's because I've been attempting far more complex experiments with PHP, Odata, SQL Azure and the like.

But it too seems to fulfill its promise. It combines low-end versions of IIS (Developer Express) and SQL Server (Compact, or embedded) with the ASP.NET framework that make it easy to get data-centric Web apps up and running. It provides many templates for common technologies such as WordPress, DotNetNuke, Joomla! and more. And deployment worked out much better. It has a simple "Web Deploy" (apparently a packaged msdeploy.exe) feature that allowed me to get some apps up and running on one of the suggested hosts, Applied Innovations (great service from these guys!).

I like fooling around with these tools. Quite simply, some .NET concepts (covariance, contravariance, anyone?) are beyond me and will never be mastered. The framework is just too complex. It's frustrating to muck around in C# and know there are ways to do what I want to do, but it takes endless hours of searching and blunt-force, trial-and-error drudgery to do it.

Maybe that's not an issue for professional developers who devote their working lives to learning .NET and the like, but I wonder how hard it is for some of them, too. There are a lot of experts out there, but they all seem to have their own little areas of expertise. Has anyone mastered the whole thing?

I greatly admire professional developers and the work they do. But there's a great middle ground between absolute novices and skilled pros, and Microsoft is trying to address that market. Why not?

What do you think? Comment here or drop me a line.

Posted by David Ramel on 09/22/2010 at 1:15 PM11 comments

The Future Of Data And Search--Or At Least A Fun Toy

This data stuff is getting cooler all the time.

Continuing to explore new ways of looking at data, I've been fooling around with Pivot from Microsoft Live Labs.

It takes data visualization to a spectacular new level with intriguing manipulation of images and data. It uses "Collections," composed of XML data and images, that "combine large groups of similar items on the Internet, so we can begin viewing the relationships between individual pieces of information in a new way. By visualizing hidden patterns, Pivot enables users to discover new insights while interacting with thousands of things at once."

Pivot projects can range from simple to extraordinarily complex. For a simple example, I downloaded the Excel plugin. It adds a Pivot Collections tab to the Excel ribbon where you can enter items for your collection, including image location, name, Href if applicable and description.

Entering data into Excel Pivot tool -- in the cloud.
Figure 1. Entering image information and accompanying metadata into the Excel Pivot tool. [Click image for larger view.]

It took just minutes to choose 10 photos of family visits to South Carolina beaches and enter them into Excel, with the description field indicating family members featured in each photo: a combination of David, Laura, Justin and Kristen. I could then then preview the collection and publish it.

Calling up the collection in the Pivot viewer presented all 10 photos.

Ramel pics, done.
Figure 2. The completed Ramel family beach outing collection. [Click image for larger view.]

The viewer lets me enter a keyword to find the photos with descriptions matching that keyword. So entering "David" makes the seven photos without me in them animate off the screen, leaving the three photos that include me.

Filtering for David
Figure 3. Choosing to view just photos featuring "David." [Click image for larger view.]

Entering "Justin" shows all photos with the both of us, and adding "Kristen" presents all photos that feature all three of us and so on.

I did a similar project with stock photos on my Windows 7 machine, featuring landscapes, animals and flowers. If you download the Pivot tool you can point its browser to view my project here and sort by "animal," "flower" and "earth."

Also, a Silverlight PivotViewer control lets Web devs embed Pivot into their sites; you can see the above example as a Silverlight app here (I used a SDK example, so on this page there are nav links to other collections such as new cars and AMG movies in the top right corner).

Filtering for flowers
Figure 4. The stock photo collection, narrowed down to just flowers. [Click image for larger view.]

Those two simple "Hello World"-type projects give you the basic idea, but the complexity can increase markedly, of course. There are Linked collections that can contain several thousand items and Just in Time collections that are built dynamically from user input and can be of unlimited size, with various types of selection tools, such as checkboxes and sliders to narrow results.

This enables endless possibilities. For examples, if you're into the new fantasy football season, you can use one of the collections in the Pivot gallery to view all NFL players and their stats from the 2009 season, sorting by position, team and the usual stats: touchdowns, rushing yards, passing yards and so on.

Or you can search through national parks monuments and historic places, sorting by state, type, number of annual visits, typical crowd size and more, using checkboxes and sliders to adjust different parameters.

National parks and Montana, filtered.
Figure 5. National parks and such in Montana. [Click image for larger view.]

If you haven't downloaded the Pivot viewer, you can quickly check out the functionality--and animation--by going to MSDN Magazine's Web site and clicking on the big "Launch Pivot" button. Then you can explore 10 years worth of magazine articles, sorting by popularity ("viewed often" or "viewed occasionally"), topic, issue date, author, column name and even if the article has associated downloadable source code or not. Though I must say, the logo/text images aren't nearly as spectacular as those in the national parks collection. (In the interest of full disclosure, I'm the features editor for MSDN Magazine, though not a Microsoft employee.)

There are dozens, if not hundreds, of interesting Pivot examples out there. It can also be used to find Web pages and do other cool stuff. It may just be the future of search on the Web.

If you've tried Pivot, let us know what you think about it. Or share other cool Pivot examples.

Posted by David Ramel on 09/13/2010 at 1:15 PM0 comments

SQL Azure Gets New Features -- Users Want More!

Microsoft last week updated its cloud-based SQL Azure service, but some users are still clamoring for additional features to bring it up to par with SQL Server.

Service Update 4 enables database copying, among other improvements. Several readers, however, immediately responded to the announcement by asking for more. One issue is lack of a road map of future enhancements planned for SQL Azure.

"It is great to see the SQL Azure team constantly improving the service," wrote a poster called Savstars. "I think what a lot of people would like to see a feature implementation road map from the SQL Azure teams' management. This should assist project managers figure out when would be the best time to release their projects to the SQL Azure platform, based on when the required features become available."

A reader named Niall agreed: "Yeah I have been asking for some sort of road map previously. It would really help so that we can plan on when or if we use SQL Azure for production." He also said Reporting Services was his big requirement, while another reader asked for "free text support" -- I'm thinking he might've meant "full-text search support" or "free tech support."

Other limitations of SQL Azure as compared to SQL Server are numerous, as Microsoft points out. It also lists a page full of general similarities and differences.

Michael K. Campbell earlier this year wrote that missing features such as Geography or Geometry data types, Typed XML and CLR functionality could serve as "showstoppers" for database developers considering moving to the Azure cloud.

The lack of BACKUP and RESTORE commands has long been a sore point, though, which the new copy capability addresses. Other enhancements in the new service update include more data centers for the management tool code-named Houston, which will improve performance. Also, a documentation page has been put together, though right now topics there are about just connecting to SQL Azure through various means such as ADO.NET, ASP.NET, Entity Framework and PHP.

What features would you like to see added next? Comment below or drop me a line.

Posted by David Ramel on 08/31/2010 at 1:15 PM2 comments

Try Your Own OData Feed In The Cloud--Or Not!

So, being a good Data Driver, I was all pumped up to tackle a project exploring OData in the cloud and Microsoft's new PHP drivers for SQL Server, the latest embodiments of its "We Are The World" open-source technology sing-along.

I was going to throw some other things in, too, if I could, like the Pivot data visualization tool. I literally spent days boning up on the technologies and trying different tutorials (by the way, if someone finds on the Web a tutorial on anything that actually works, please let me know about it; you wouldn't believe all the outdated, broken crap out there--some of it even coming from good ol' Redmond).

So part of the project was going to use my very own Odata feed in the cloud, hosted on SQL Azure. The boys at SQL Azure Labs worked up a portal that lets you turn your Azure-hosted database into an OData feed with a couple of clicks. It also lets you try out the Project Houston CTP 1 and SQL Azure Data Sync.

The https://www.sqlazurelabs.com/ portal states:

SQL Azure Labs provides a place where you can access incubations and early preview bits for products and enhancements to SQL Azure. The goal is to gather feedback to ensure we are providing the features you want to see in the product.

Well, I provided some feedback: It doesn't work.

Every time I clicked on the "SQL Azure OData Service" tab and checked the "Enable OData" checkbox, I got the error in Fig. 1.

Enable SQL Azure OData begets an error
Figure 1. Problems on my end when I try to get to enable the SQL Azure OData Service. [Click image for larger view.]

I figured the problem was on my end. It always is. I have an uncanny knack of failing where others succeed in anything technology-related. It's always some missed configuration or incorrect setting or wrong version or outdated software or … you get the idea. Sometimes the cause of my failure is unknown. Sometimes it's just the tech gods punishing me for something, it seems. Check out what just now happened as I was searching for some links for this blog. This is a screenshot of the search results:

Garbled message
Figure 2. Stephen Forte's blog can be difficult to read at times. But it's absolutely not his fault. [Click image for larger view.]

I mean, does this stuff happen to anyone else?

Basically, though, I'm just not that good. But hey, there are other tech dilettantes out there or beginners who like to muck around where they don't belong, so I keep trying in the hopes of learning and sharing knowledge. And, truthfully, 99 percent of the time, I persevere through sheer, stubborn, blunt force trial-and-error doggedness. But it usually takes insane amounts of time--you've no idea.

So I took my usual approach and started trying different things. Different databases to upload to Azure. Different scripts to upload these different databases. Different servers to host these different databases uploaded with different scripts. I tried combination after combination, and nothing worked. I combed forums and search engines. I found no help.

(By the way, try searching for that error message above. I can almost always find a solution to problems like this by Googling the error message. But in this case, nothing comes up except for one similar entry--but not an exact match. That is absolutely incredible. I didn't even think there were any combinations of words that didn't come up as hits in today's search engines.)

Usually, a call to tech support or a forum post is my last resort. They don't usually work, and worse, they often just serve to highlight how ignorant I am.

But, after days of trying different things, I sent a message to the Lab guys. That, after all, is the purpose for the Lab, as they stated above: feedback.

So things went something like this in my exchange with the Labs feedback machine:

Me: When I check box to enable Odata on any database, I get error:

SQL Azure Labs - OData Incubation Error Report
Error: Data at the root level is invalid. Line 1, position 1.
Page: https://www.sqlazurelabs.com:20000/ConfigOData.aspx
Time: 8/9/2010 2:56:16 PM

D., at SQL Azure Labs: Adding a couple others..
Anything change guys?

J., at SQL Azure Labs: None from me.

M., at SQL Azure Labs: I'm seeing the same error, though I haven't changed anything either.
J., can you look at the change log of the sources to see if anything changed?
D., have you published any changes in the past week?

J., at SQL Azure Labs: OK. Will have to wait until this afternoon, however.

M., at SQL Azure Labs: J.; might something have changed on the ACS side?
The error is coming from an xml reader somewhere, and occurs when the "Enable OData" checkbox is selected...

So that was a couple days ago and I'm still waiting for a fix. But at least I know it wasn't me, for a change. That's a blessed relief.

But that made me wonder: Just how many people are tinkering around with OData if this issue went unreported for some unknown amount of time, and hasn't been fixed for several days? Is it not catching on? Is no one besides me interested in this stuff? That's scary.

I'm not complaining, mind you. I was gratified to get a response, and a rapid one at that--not a common occurence with big companies. I think Microsoft in general and the Lab guys specifically are doing some great stuff. I was enthusiastic about the possibilities of OData and open government/public/private data feeds being accessible to all. And the new ways coming out to visualize data and manipulate it are cool. And a few others out there agree with me, judging from various blog entries. But now I wonder. Maybe I'm in the tiny minority.

Anyway, today I found myself at Data Driver deadline with no OData project to write about, as I had planned to. So I had to come up with something, quick. Hmmm... what to write about?

What do you think of OData? Have you messed around with it? Do you plan to? Have you ever seen a Web tutorial that works? Comment here or drop me a line.

Posted by David Ramel on 08/12/2010 at 1:15 PM1 comments

Good Deed for Those In Need

SQL Server expert and Microsoft MVP Arnie Rowland struggled with how to disperse his valuable MSDN Ultimate subscriptions a few years ago. He ended up giving them to people who pledged to code for non-profit organizations.

That worked out well, so this year he launched a program to award the subscriptions--with a retail value of about $12,000--and more goodies to unemployed and underemployed developers who contributed their talents to a non-profit organization.

Other MVPs and organizations have picked up on his initiative and it has snowballed, growing in scope seemingly by the day. Who knows where it will end up?

Here's Arnie's proposition:

We are inviting unemployed or underemployed developers to propose a software project for a non-profit agency, school, or church. The idea is that we will provide a package of the latest software, tools, and training resources to help you improve your skills, get up to date with current technologies, gain practical experience, potentially earn a recommendation for your efforts, and in general, enjoy the feeling of accomplishing something useful for others. We are not giving out a ‘free lunch', just supporting your efforts to personally gain from your own ‘sweat equity'.

He started out small, with four other MVPs joining him. Also, several companies offered training, books and other software. He planned on selecting one qualifying project each month.

Recently, his blog listed 15 MVPs who have joined him, along with several more companies. The number of projects jumped to two and then three per month.

"I come to you humbled..." Arnie titled a recent post on his "Ramblings of a Harried Technogeek" blog on SQLblog.com. "I didn't anticipate the level of resonance this has received in the development community," he said. Readers have responded with offers of help and the project may well keep growing. Arnie may have to give up his day job.

Project criteria is listed as:

  • Client is a USA IRS 503(c)3 non-profit, school, or church, OR a Canadian CRA registered charity
  • Solves a problem or satisfies a need for the client
  • Client desires the project and is supportive
  • Uses any combination of .NET 4.0, Windows Server 2008, SQL Server 2008, or Windows Phone 7
  • May be a new software solution, or an upgrade to an existing software solution.

Developers can submit proposals here.

Non-profits can submit projects here.

His original post is here.

Share your thoughts in the comment section or drop me a line.

Posted by David Ramel on 07/28/2010 at 1:15 PM1 comments

Microsoft Tool Eases Management of Cloud Databases

Microsoft yesterday released a rough-around-the-edges CTP of a SQL Azure database management tool code-named "Houston," designed to let Web devs easily create and manipulate data-driven apps in the cloud.

"Project 'Houston' provides a Web-based database management tool for basic database management tasks like authoring and executing queries, designing and editing a database schema and editing table data," said Microsoft's David Robinson in the Azure Team Blog announcing the release.

Users can go to SQL Azure Labs to access the CTP of the Sliverlight-based tool, previewed at PDC09 and updated at MIX in April.

If you do, however, be prepared to deal with the usual hiccups in a Community Technology Preview. Robinson listed 19 "issues" with the CTP, ranging from not being able to reopen the Start page to zoom-related browser display problems.

Other bugs and suggestions have been submitted to the feedback page, including one complaining that the keyboard shortcuts don't behave as they do in SQL Server Management Studio, the tool previously used to manage databases in Microsoft's cloud (though the poster did say, "I understand that it's beta, so won't complain too much").

SQL Azure team member Liam Cavanagh, though, sees Houston as a great improvement over SSMS in regard to Data Sync Management. He said that prior to Houston, if he wanted to work with a customer who wanted to try Data Sync Management, the user had to install SSMS. "Now with Microsoft Project Code-Named 'Houston,' people can go directly to this Web-based management tool and start creating their SQL Azure databases without installing anything," he said in a blog posting.

Cavanagh expounds more on "Extending SQL Server Data to the Cloud using SQL Azure Data Sync" in a video tutorial. Other instructional videos about Houston can be viewed on TechNet.

Cavanagh also lauded the increased performance over SSMS. Because Houston is hosted on the SQL Azure data centers (just one so far), the latency is reduced from that experienced with SSMS, "which in many cases has far greater distance to communicate with my SQL Azure database," he said.

So check it out and let me know what you think. Comment here or drop me a line.

Posted by David Ramel on 07/22/2010 at 1:15 PM1 comments

Doing The News Right, And A Cool Dev Tool

Data Driver, the global leader in database-related blogging, serving a constituency of high-quality readers worldwide, and product of 1105 Media Inc., parent company of award-winning publications and Web sites such as Redmond Developer News and Visual Studio Magazine, acknowledged leaders in the Microsoft developer-related media space and universally praised as premier venues for the best tech-related advertisers to reach sophisticated enterprise decision-makers, today announced how not to write a news release.

Sorry, I'm deviating briefly here. I just can't stand it anymore--I'm constantly bombarded with news releases that start out like the above. Don't these guys get it? Who gets past an opening paragraph like that?

Just get to the news, will you? It's not like any self-respecting media outlet is going to use that crap anyway. How can they not notice that that never happens?

What finally brought this to a boil such that I absolutely had to vent is a news release from a company that actually knows how to do it right. It's such a rare gem that it gets some free publicity here (OK, it's also about a newsworthy product that data developers might find interesting).

The company is Alpha Software, and the news release announced Alpha Five Version 10.5. The release (and blog item on the company's site) was titled "What Would the Web Look Like If Everyone Could Build Their Own Web 2.0 Data-Driven Apps?" (instead of, say, "Award-Winning Leader In Web Development Announces Revolutionary New Product"). It's about a tool for do-it-yourself Web devs, though, as the company states, it's for pros, too: "Professional developers will find everything they could wish for in a robust development environment, especially the ability to build Ajax-powered, SQL database-driven Web apps without having to code."

Sounds good to me. You can try it for free and decide for yourselves. Let me know what you think.

Anyway, back to my rant: these guys are different. The release's lead paragraph framed the product in the context of how simplified blogging tools opened up the blogosphere to everyone. The company isn't even mentioned until the fourth paragraph. And the release is chock-full of links pointing to more information--and they go all over the place, not to the company's site.

I checked out other news releases and found one about training classes that actually led with a reference to The Clash's seminal album, London Calling. It links to sites about the band (which happens to be my all-time favorite), the album, Rolling Stone and the list of the top 500 greatest albums. See, you want to click that link and check out the list, don't you? Stuff like that gets your attention.

I really hope these "but-we've-always-done-it-this-way" PR flacks are paying attention. You don't have to be unimaginative, boring, plain-vanilla, run-of-the-mill, mind-bendingly dreary hacks. It's OK to be creative and interesting. Really!

Posted by David Ramel on 07/14/2010 at 1:15 PM0 comments

Simplified SQL Server Aimed At Web Devs

Microsoft yesterday introduced WebMatrix, "a new lightweight Web development tool that ... makes it even easier for people to get started with Web development using ASP.NET."

This announcement came in Scott Guthrie's blog, where he previously introduced the three main components of the new beta tool: IIS Developer Express, ASP.NET "Razor" and the new SQL Server Compact Edition, an embedded database.

While it's been around for quite a while, SQL Server CE steps up from Version 3.5 to Version 4, which has been specially designed for Web development, said Guthrie, a vice president in Microsoft's Developer Division. In response to a reader's question about how the new version differs from the old version, Guthrie said: "The biggest improvement is that it now designed and tested to work in a multi-threaded environment.  Previous releases of SQL CE only worked in client apps and would corrupt/crash in server environments.  SQL CE 4 specifically supports server scenarios." Also he said, Version 4 handles shared hosting and medium trust scenarios and is more compatible with the regular SQL Server, allowing for easier migration to the full-featured database environment.

In the meantime, with SQL Server CE, Web developers don't have to install a database in their projects. You just need to copy its binary files into a specific directory, Guthrie said. Database files are stored on disk, after which SQL Server CE runs in-memory, which allows for much faster data manipulation and is the trend of Microsoft data-intensive products such as the new PowerPivot "self-service" business intelligence tool.

Other features of SQL Server CE 4 include:

  • Visual Studio 2010 and Visual Web Developer 2010 Express Support
  • Compatibility with existing .NET Framework-based data APIs
  • Support of shared Web hosting ("medium trust")
  • Support of development and production scenarios

In response to dozens of questions from readers, Guthrie indicated future enhancements of SQL Server CE would likely include:

  • SQL CE for Silverlight clients (and Windows Phone 7)
  • Support of geographic types
  • Support for databases larger than the current limit of 4GB
  • Providers to support ASP.NET membership and profiles

The blogosphere, as usual, supplied plenty of alternative takes on the announcement. One blogger referred to SQL Server CE 4 as "Microsoft's response to SQLite." Another offered up a comparison with Firebird Embedded. Another wondered about the possibility of using SQL Server CE 4 to offload work from a main database.

The WebMatrix public beta is available as a 15MB download (50MB if you need to install .NET 4).

Posted by David Ramel on 07/07/2010 at 1:15 PM2 comments

Tool Lets SQL and NoSQL Make Nice in the Cloud

Maybe the traditionally acrimonious SQL and NoSQL camps will end up as one big happy family after all.

A new beta tool from Quest Software lets users mix and match traditional SQL data and non-relational NoSQL data in the cloud.

Toad for Cloud Databases, released in beta, aims “to put NoSQL databases within reach of traditional relational database developers,” according to a company spokesman.

CTOEdge.com said Quest seeks “to act as a peacemaker between the emerging NoSQL databases and proponents of traditional SQL database software.”

Toad uses a GUI with visual query and data access capabilities to let users “query and report on non-relational data, migrate data in both cloud and relational databases from one to the other, and create queries that combine the two,” the company said. It works with Amazon SimpleDB, Microsoft Azure Table services, Apache HBase and ODBC relational databases.

What do you think about SQL vs. NoSQL? Comment here or send me an e-mail.

Posted by David Ramel on 06/28/2010 at 1:15 PM0 comments

Security Expert Dan Kaminsky Seeks Source Code Input

“This is a little rough, but I want to get the code out there.”

That's how security expert Dan Kaminsky starts out his Install.txt file that accompanies his brand-new security tool, Interpolique, released in a hurry on Monday to fight recent SQL injection attacks such as those that compromised the Web sites of The Wall Street Journal and others.

Interpolique, available for download for examination by experts, was described Monday by DarkReading.com as “a tool for application developers that helps prevent pervasive string injection-type attacks, such as SQL injection and cross-site scripting (XSS).”

DarkReading said the tool is designed to relieve developers from much of the burden of providing security measures in their code. Kaminsky told the site: “Security development tends not to care how inconvenient it is for developers. [This is] about meeting developers halfway."

But don't try using it quite just yet -- DarkReading reported the tool was released for experts to investigate and provide feedback, and not for operational use. Kaminsky is expected to share the feedback at next month's BlackHat USA security conference in Las Vegas.

And you'd better know what you're doing if you want to fool around with Interpolique, produced by the Kaminsky-headed Recursion Ventures. The skimpy install file, which comes with a bunch of C, SQL, PHP and JavaScript files, includes directions like:

Compile the MySQL Base64 UDF with:

gcc -Wall -I/usr/include/mysql -shared lib_mysqludf_str.c -olib_mysqludf_str.so

But if you are an expert, feel free to join the fight and help. Kaminsky himself issued the invitation in the Install file: “Let's figure out what's up,” he said.

If you check out the code, let us know what you think. Comment here or send me an e-mail.

Posted by David Ramel on 06/17/2010 at 1:15 PM1 comments

.NET Insight

Sign up for our newsletter.

I agree to this site's Privacy Policy.