| Ted さんのプロフィールTeds Spaceフォトブログリスト | ヘルプ |
|
|
11月26日 Moving the Blog!Well, I finally decided to take the plunge and host my own blog server. This means that I am moving this blog to a new home. I'll leave the stuff that is here, but all new posts will be at the new location: http://portal.sqltrainer.com
Hope to see you all at the new site.
7月5日 Scaling out Database SystemsI've been spending some time lately (in between traveling and playing architect dude for our AD module) researching issues around scaling database systems. I've come across a couple of really impressive articles from the SQL team on MSDN on this subject. It's nice to see some of the quality coming out of the SQL team lately, good job guys!
Here is an article on scalability with SQL 2005: http://msdn.microsoft.com/architecture/learnmore/default.aspx?pull=/library/en-us/dnbda/html/ScalOutSQL.asp
And here is an article that gets to the heart of the matter: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/dataoutsideinside.asp
6月18日 ECM wins Best of TechEd 2006Well, in all of the excitement around TechEd, I forgot one of the more personally interesting things... The product that I am principally responsible for, ECM, once again has won the Best of TechEd award.. No other product has won the award 2 years in a row, so that is just way cool!
From the announcement:
WINNER! Best of Tech Ed, Systems Management & Operations “For systems administrators who want not only complete control but also remediation capabilities, Configuresoft’s Enterprise Configuration Manager is a solution that answers the questions you don’t know to ask. This enterprise configuration management product enables cross-platform management and can monitor, manage and audit hardware and software configurations for the servers and clients in the organization.” -- Amy Eisenberg, Windows IT Pro
5月24日 Microsoft TechNet ForumsWell, I guess it had to happen sooner or later, my secret is out...
I have been nominated as a forum moderator on the TechNet beta forums.. Right now the Office 2007 forums are live, but the Vista ones will be soon... Come check out the foums at:
And if you're really brave:
5月15日 Back from MEDCSo I am back at my desk after a nice week at the MEDC conference in Vegas.. Lots of good stuff at the conference, although I spent the entire time in the Hands on Labs (HOL) area.
On a side note, I have to say that Eric E. did a fantastic job of running the HOLs. I have not been to a more organized and prepared HOL at a Microsoft Conference(Not to say that there wasn't some glitches, but all in all, they were minor and the actual labs were for the most part excellent!)
It's interesting to see the emergence of the mobile platform as a targeted app dev platform. Seems like more and more people are getting on that bandwagon and creating addons for their products that fit the smartphone/pocketPC platform.. I guess it doesn't hurt that Windows Mobile 5.0 is a pretty nice OS, and the devices themselves are getting very good. (I am about to pull the trigger on a Verizon XV6700 myself)
Anyway, enough rambling and back to work it is.... 4月30日 MEDC ConferenceToday must be my day for updating the blog..
For those interested, I will be at the Microsoft MEDC conference in Las Vegas May 8-11..
ECM wins Best of MMSWell, those of you that know me are aware of the fact that I am pretty proud of the product that my company, Configuresoft, Inc., develops. We just released version 4.8, which includes a lot of new Unix platform support, as well as some very cool new functionality for the Windows platforms. We were entered into a contest at the recent Microsoft Management Summit in San Diego, and walked away with the grand prize. This is the second "Big Show" award that we've received (TechEd 2005 was the first) and we're all very jazzed by this...
From the citation:
"At last week’s Microsoft Management Summit (MMS) Configuresoft was awarded Overall Best of MMS 2006 beating out 40 award submissions and 10 finalists. The sponsors of the award, Windows IT Media published the attached press release late last week proclaiming Configuresoft Wins the Grand Prize."
3月15日 TechEd Blog3月2日 Database Test Driven Development (TDD)I've recently had the opportunity to spend a lot of time with Test Driven Development (TDD) issues that surround database development. In searching through the information that is available "out there", I've come to the conclusion that there is no real consensus as to what exactly TDD for SQL developers really means... I've put together a presentation on this that I hope to deliver for the Rocky Mountain SQL Server Users Group and I've also submitted an abstract to the Professional Association for SQL Server for the November Summit, we'll see how it goes...
In short, TDD is an Agile method that states developers will develop unit tests first, and write just enough code to satisfy the test. Doing this requires that the developer have a full understanding of exactly how their code will be used. At first glance this seems to be a backwards way of thinking.. How many times have you written a proc where you've stubbed in the input parameters and then started piecemeal development of the proc until it is complete? Using TDD, you'd first write your test cases, and then write the proc to satisfy those cases... It's an iterative process that ultimately ends up with a fully-tested (assuming the developer understood the use-case requirements of what they were developing) piece of code that is ready to plug into the system... (I'm reminded of the time that I did NOT use TDD to develop a particularly important piece of code that was critical for our internal security model..... There was a piece of functionality that I didn't fully understand, so I blocked it out in the proc and wrote a comment along the lines of "Finish Code here"... Well, I never did make it back to that particular block of code, and the short story is that the product ended up releasing with this critical bit of code simply missing -- That was 3 years ago and it still makes for a good joke around here)
Look for more posts from me on this subject in the future..
2月19日 MSF as a methodologyThis is a very good article/blog post on MSF and Agile methodologies. (And very pertinent, considering I've spent the day working with MS Team Foundation Server!)
How to eat an elephantThis phrase is getting a bit overused I think, but I came across a very good performance modeling whitepaper today, and thought I would share it. Take a look at: How to Eat an Elephant
11月30日 Windows Services and .NET 2.0I've recently had the opportunity to work on a small project for a company that I do some volunteer work for (see http://www.hopeandhome.org) to help simplify their workflow when it comes to inprocessing. I found that in working on this small project, I learned a lot about some of the new features available in .NET 2.0, and was able to come up with what I think is a fairly "cool" use of .NET and SQL Server to solve an age-old problem..
The problem:
Hand-written documents must be scanned and saved to a processors computer, and then that processor manually enters information from the form into their application, which includes uploading a copy of the scanned form in .PDF format... This takes time, and requires that a specific person always enter each form (the person who's been trained to do it) into the application.
The solution high-level:
It turns out that the scanner being used is smart enough to be able to email scanned documents to a specific email address in the form of .PDF docs, and the email can be configured to fill out specific items from the scanned document using OCR technology...
I created a .NET application that reads the email coming from the scanner, and populates a SQL Server table with the various info from the document, as well as populating the .PDF file in the table itself. (The Database is wholly separate from the main processing database).. I then created a Windows Service that executes the application and periodically checks for new email....
Couple the above with some triggers that move the data from the temporary database into the main database, and we've got a solution that saves time and allows anyone to process incoming documents...
Assuming that there is interest, I'll post some of the guts of the solution in later entries...
10月27日 Building an Async .NET 2.0 Web Service ClientIn previous entries, I've discussed using SQL Server 2005 and the .NET Framework 2.0 to build and access a web service. One of the nice things about building web services in SQL Server is that you can truly abstract the data access from the application accessing the data... (Hmmmmmm, sounds very SOAish, doesn't it?)
At any rate, lets discuss building an Asyncronous web service client, using the design pattern discussed in my previous blog entry.
The first thing we need to do is to setup the event handler for the completion event. Using the web service discussed several entries ago, this might look something like this(notice the reference to OrdersRangeCompleted EventArgs):
void ws_OrdersRangeCompleted(object sender, RMSOctPresentation.WebService.OrdersRangeCompletedEventArgs e){ // Actually populate the DataSet with the results of the call // This is no different than what was done earlier, and frankly should be wrapped into // a single method that takes a control reference as input DataSet ds1 = (DataSet)e.Result[0]; DataTable dt = ds1.Tables[0];lstOrdersRange.DataSource = dt; lstOrdersRange.DisplayMember = "PurchaseOrderID";lstOrdersRange.Refresh(); }
Then we need to create the class that will hold the results of the Async call. We do this by deriving from the AsyncCompletedEventArgs class. This might look something like this:
public partial class OrdersRangeCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {private object[] results; internal OrdersRangeCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : base(exception, cancelled, userState) { this.results = results; } /// <remarks/> public object[] Result { get { this.RaiseExceptionIfNecessary(); return ((object[])(this.results[0])); } } }
There are a couple of interesting points here. First off, note that one of the members of the class is an object array. Basically this will be the placeholder for the results of the call to the web service method. Secondly, note how we use the base class members in the constructor. Once this is done, we can actually make the call to the method itself. private void PopulateListBoxAsync(){ // Register the event handler (and point to specific event args class) // For what it's worth, the IDE will construct this for you when you press TABws.OrdersRangeCompleted += new RMSOctPresentation.WebService.OrdersRangeCompletedEventHandler(ws_OrdersRangeCompleted); // Make the callws.OrdersRangeAsync(); }
Asyncronous DesignContinuing my discussion on the new SQL Server 2005 features, I wanted to dig a little deeper on the new "async operations" features....
Technically asyncronous operations are not a new feature in SQL 2005, but rather have some new implementations in .NET 2.0....
In order to fully understand this topic, we need to delve into the concept of Asyncronous Design patterns. Although there are a number of them out there, lets focus on the MSDN patterns and practices patterns that are found here(http://msdn2.microsoft.com/en-us/library/ms228969.aspx). Basically there are 2 patterns for async operations:
Each of these patterns has their advantages and disadvantages, but for the most part it can be said that the event-driven model is easier to implement and requires less complexity at the client. Less complex is always good...
The important thing to realize here is that the async features are really ingrained into the .NET framework, and not something that is directly attached to SQL Server.
In order to make some sense out of all of this, and to do something useful at the same time, I want to implement an event-driven client for the web service in the previous blog entry. To accomplish this, we'll need to follow these high-level steps:
Really it's pretty straightforward to do. Picking a web service client application makes perfect sense in this context, as it's always a good idea to consider working with web services in an async manner. (Although you could make a case for a syncronous model here)
I will demonstrate the actual client implementation over the next several blog entries... 9月16日 Heading homeWell, I have to admit, this year's PDC was probably the best I have ever attended, and honestly, it appears that MS is really taking the feedback from the field to heart. This has been great to see....
I don't know if I'm more excited about LINQ (For info on LINQ, see http://www.microsoft.com/presspass/features/2005/sep05/09-13NETLanguage.mspx) , WWF (See http://msdn.microsoft.com/windowsvista/building/workflow/), Expression (See http://www.microsoft.com/products/expression/en/default.aspx) or Atlas (See http://beta.asp.net/default.aspx?tabindex=7&tabid=47).. Hard to say really, which of these will have a greater impact on Software Development in general... Given that we've hitched our wagon to MS here at CSI, I would have to say that WINFX and all of it's associated parts will be a huge part of the future for us...
(Isn't it weird that a SQL guy can go to a PDC and hardly mention anything about the new SQL Server 2005? -- I think it's a given that SQL2K5 will be a huge impact on us, but frankly, it's all the stuff OUTSIDE of the DB that are of interest right now to me......)
9月15日 Virtual Earth -- Holy cowJust sat the DATL05 Virtual Earth for mobile devices session here at PDC. WOW, all I can say is that this technology is absolutely amazing.... The MS APIs and controls for Virtual Earth are pretty cool in and of themselves, but some of the stuff that they're doing for mobile devices is just out of this world...
See http://virtualearth.msn.com for the virtual earth consumer website for the basic information, and http://viavirtualearth.com/vve/Dashboard/Default.ashx for the developer portal.. Be sure to check out the application gallery, specifically check out Pocket Earth in the site gallery..
Windows Vista - WINFX and MS ExpressionSo, after 2 full days here at the PDC, it's apparent that Microsoft is very excited about the new stuff that they have coming down the pipe. I personally have not seen so much hype and utter pervasiveness of message since the Windows 95 launch (Anyone else remember that?)
The sessions here have been short of amazing. I'm not used to being part of the conference as a lowly attendee, and have to admit that it's very nice to just be able to attend sessions and not have to worry about preparing for sessions of my own...
Some things to consider about the future:
1) It really is true that MS wants to make the lives of the developer as simple as possible - WINFX is proof of this. The WPF ("Avalon") stuff is simply amazing. I cannot imagine what UIs are going to look like in a year or 2. WCF ("Indigo") is pretty amazing too. Makes it easy for just about anyone to build scalable client/server and SOA apps without a lot of thought...
2) Designers are no longer 3rd class people (Ok, so maybe that's pushing it). With the Expression suite of tools, designers now have a full "seat at the table" when it comes to application design. With the XAML-based interchange, they can now make use of a common build/project environment and easily share that through Visual Studio... This is going to be very, very interesting, especially for those of us who can't design a UI to save our lives...
3) Office has truly arrived - Office 12 looks awesome... Entirely XML based, and well integrated with everything....
4) Sharepoint --- As much as we hate it today, we need to consider the fact that it really is the future...
5) Data Access -- ADO.NET 2.0 is pretty hot, and even though it's missing some features (Like the ability to do complex SQL queries against cached datasets) the extensibility is very, very nice...
6) Longhorn - The server components for Longhorn, including IIS 7, really take us all to the next level. Finally we have module-based IIS... WOO HOO!!! |
|
|