|
|
Browse by Tags
All Tags » CLR » Software Architecture (RSS)
-
So, since I am out here in Irvine CA for our annual meeting, and I have just pushed out a Plaxo update to everyone, I guess it's time to let you all know that I have joined Neudesic as a Principal Consultant II, heading/responsible for the Connected Systems/SOA practice for the East Coast. I will have a bit more to say soon. I would expect this blog to change focus to SOA, BizTalk, WCF, WF, and all Connected Systems especially in large Enterprise accounts that is now my respoinsibility to run and enable the growth of. We have a lot of openings for experienced people with at least 7-10 years experience and I have a team to build for the East Coast so contact me if you would like to be part of it. Read More...
|
-
CLR/Tools An excellent post from Scott Hanselman on Managing Change with .NET Assembly Diff Tools . As I said , during the MVP Summit I spent time with Patrick Smachia and Scott Hanselman looking at the absolutely amazing new beta of NDepend . Microsoft/Ajax/Web 2.0 is Bull**** Ayende already took Paul Graham to task for all the flaws in Microsoft is Dead. I just really despise this notion of Ajax is the savior of mankind and that this Web 2.0 stuff is anything more than bull****. As Ayende says, " The premise that Ajax is the new OS is flawed on many levels. I am writing this on a computer with fast CPU and quite a bit of memory, and I would really like those CPU cycles to do stuff that I want, not interpreted javascript in a browser window to give me something that is similar to what I want. There is a limited class of applications where Ajax applications makes sense. Gmail has the luck to hit every point on the list. Other applications are simply not viable on the web. I can't imagine an IDE on the web offering even close to the bare-bones functionality of Visual Studio, for instance, or the ease and power of Outlook. " Agile/Extreme Programming/Continuous Design Jeremy and I were going to co-author a paper on Continuous Design and Architecture for DevTeach before I pulled out of the conference. He begins the discussion with an excellent post here . I may turn in my (former) presentation into an article on this blog I love a post that is entitled " Just Some Thoughts This Morning " that turns into pretty profound thoughts on Continuous Design from Jeremy. Best part, and what I would emphasize is, "Just really good code. If I could have anything, and only one thing, it would be well written, well factored, clean, intention revealing code . Everything else is just trying to sprinkle on some heavy spices to disguise the fact that your code smells like rotten meat." Software Architecture Nice set of 10 Links for 4/9/07 My favorite links to Prag Dave: The RADAR Architecture: Read More...
|
-
Sitting here on Saturday morning with a nice cup of Kona coffee. There just is no better coffee in the world. Strong but deceivingly smooth. I really miss our former annual trips to the Big Island that we used to take with my Father-In-Law and family before he got ill. We used to go up in the hills and buy direct from the growers. Umm, nothing better. The coffee may actually help me get over my funk morning as there is now a lot going on my personal life but you know you never get to blog what really matters Agile/Extreme Programming/Tools While Steve was off having a baby , I went back into the team pairing full time for this Iteration rather than doing do the advance work on Workflow and stuff. It felt really good and of course it was a challenge for me, as many of the particulars of the system have changed since I last paired and I had to actually relies on my pair more. What floored me, even though it shouldn't at this point, is just how good this team has gotten. Every single person on the team could explain any place in the code at any time and we were able to evolve the design and code together. It still blows me away the power of pair programming BTW, we are working on our THIRD release of our Collateral Management tools and architecture to at least two Top 50 Banks! Ayende has released Rhino Mocks 3.0 , the premier Mocking solution on .NET IMHO He was also on .NET Rocks talking about NHibernate and Rhino Mocks Since he still had time after the last two somehow, he also put out an hour long screen cast about Rhino Mocks Jeremy is Code Complete on Structure Map 2.0 Financial and Banking Mike Walker announces the OBA Reference Application Pack for Loan Origination Systems (OR-Loss ). This is a lot of great stuff here Mike is also doing a Financial Services Unwrapped IV Webcast Workflow Paul Andrews blogs about the 3rd performance paper released for WF Sylvain blogs that K2 BlackPearl Beta 1 TR2 is available. BlackPearl is the version of K2.NET built on WF CLR/C# Read More...
|
-
Smart Clients/Orcas I am extremely pleased to see the .NET Framework (and Microsoft) finally gain the offline sync services that I have been talking about for quite a few years in my work at Groove and Adesso . You will be able to do synchronization from WinForms and WPF apps that you could do from Groove apps (in my case WinForms) 4 years ago and Adesso 2-3 years ago now. OR/M Excellent introduction to NHibernate here more in a little bit Currently listening to Tarkus by Emerson, Lake & Palmer on album Tarkus Technorati Tags: .NET , Orcas , Data , OR/M , NHibernate , Software Architecture , , TDD , Agile , Agile Development , Extreme Programming , CLR , .NET Framework , Click Once , Microsoft Share this post: Email it! | bookmark it! | digg it! | reddit! | kick it! Read More...
|
-
Thank God, its Friday. Even after a full 32 ounces of strong Starbucks coffee, I still fell asleep on the train on the way in. Entity Framework/OR/M/LINQ The excellent Entity Framework discussions continue with Scott Bellware's fine Entity Framework Challenges Architecture One of my core principles of Agile Architecture that I will talk about in Monteal next month is that of Lighweight Modeling. Core to that, is what Scott Bellware said, That's "Model-Driven", not "Diagram Driven ." Like Scott says, I also put my model into the domain and evolving that model. I too don't find much use for diagrams, particuarly the waste of time Whitehorse ones or worse yet the Rational Rose ones. But, as Jeremy noted from his discussion with me , I *do* find the use of a very small subset of UML used rather precisely in drawing quick, non-durable model diagrams on the board. In fact, Jim Shore and I taught our team to do it in any part of the code base at any time. Harry channeling Nick , "Nick Malik on enterprise architecture : "Enterprise Architecture is not about 'building solutions right'. Enterprise Architecture is about 'building the right solutions'. Agile/Good Software Design Jeremy on the DRY principle and the Wormhole Anti-Pattern He also points to the great piece Top ten things ten years of professional software development has taught me . Agreed with all of it Jonathan has a niece piece that I vigorously nodded my head in agreement with, Pair Programming improves your Communication Skills .NET/CLR Scott Hanselman - A Better Way for Click Once and Firefox . Yes!! Misc I was ROTFL when I read Lazycoder's rant , "Save me from having to type more angle brackets. Please. I’m tired of $#@$@ angle brackets. My “,” and “.” keys are worn to a nub. My shift key is floppy and has no spring left.No more angle-bracket based UI. EVER." Technorati Tags: .NET , Orcas , Entity Framework , Read More...
|
-
I have been working with the Office Live Services Beta for some months now. They just went live with my site over the weekend (although I still have to work on the domain name transfer) and it looks pretty good! I have a new Header and Home Page design. I have added my How-To STS/Window Authentication with ADAM/AD, Roles in AzMan with WCF to the refurbished WCF page . I added a new Domain Driven Design page under Software Engineering . My Presentations, as always are here . Hey, what else am I going to do while I am waiting for my flight? I would like and appreciate any and all feedback as comments here. What's good? What's bad? Knowing my blog and its subjects, what would you like to see? Technorati Tags: .NET , Windows Communication Foundation , WCF , Software Architecture , INETA , MVP , .NET Framework 3 , Microsoft Share this post: Email it! | bookmark it! | digg it! | reddit! | kick it! Read More...
|
-
This says it all. Technorati Tags: .NET , Agile , Agile Development , Extreme Programming , ORM , Data , Entity Framework , ADO.NET 3.0 , Orcas , MVP , Visual Studio , VSTS , Team System , Microsoft Share this post: Email it! | bookmark it! | digg it! | reddit! | kick it! Read More...
|
-
In the last two posts 101 and 102 , I went pretty deep in some areas. I want to step back and do some more tutorial stuff. So the first question out of the gate is what is Workflow itself and where might you use it? In a nutshell, a Workflow describes and automates a Business Process. It can be described as a "reactive" program which tends to contain some traits: Workflow declared as a set of Activities Coordinates people and software Has real-world control flow Runs reliably and durably Tolerates dynamic change A Workflow is typically designed by a Process Designer using Business Process Analysis, Modeling, and Definition tools. That Process Definition is fed into a Workflow Management System. The WMS will have Users, Applications and Administrators/Supervisors. The WMS will present that Process Definition visually in some form and launch applications. From looking at workflows, we see that some challenges are present. Unlike non-reactive programs, workflows tend to be long-running and stateful. It may take 20 days for an order to be shipped for instance. There usually needs to be some controls to allow a person to override or skip a step in the workflow. Finally, we must be able to see into the workflow and see what state its in and visualizing control flow. Workflow is used in many scenarios like: Business Process Management (BPM) Document Lifecycle Management (Sharepoint, K2) BizTalk Orchestration Sales Management Line of Business Apps Many others... Enter Windows Workflow (WF). Unlike K2 and Sharepoint, WF is not a Workflow Management system or product. It is instead, a general purpose framework for building workflow into your own applications. It ships as part of the .NET Framework 3.0, and ships with both Vista and Longhorn Server. It is installable on Windows XP SP2 and Win2K3. Since WF is baked into Vista and later systems, and is a general framework, it is a single workflow execution engine for all Windows platforms. Indeed, products like K2, Sharepoint, Read More...
|
-
Still real tired from my Oklahoma trip , partying with Raymond sure is exhausting-). Agile/Development Tools On my short list for some time now, is to switch from NUnit to the definitely superior MbUnit. My friend Andrew has done some great work with this tool and he has a new release out with the beta 1 release of MbUnit 2.4. New features in this drop. I really need to switch and get my team to switch over. It's just been an inertia thing with NUNit as I knew all along MbUnit was better Testing private methods for .NET 2.0 rom Ben Hall. Database rollback support for .NET 2.0 from Cathal Connolly and Todd Menier. NUnit style explicit support from Graham Hey. Speaking of NUnit, they also have a new release, NUnit 2.4 Release Candidate (2.4.0). The Release Notes are here and include some nice features: A new syntax and internal architecture for Asserts is being introduced in this release, based on the notion of constraints found in JMock and NMock. The Assert.That method is used to make an assertion based on a constraint Assert.That( actual, constraint, message, args ); Assert.That( actual, constraint, message ); Assert.That( actual, constraint ); The constraint argument may be specified directly using one of the built-in constraint classes or a user-defined class. It may also be specified using one of the syntax helpers provided as static methods of the Is class, such as Is.Null Is.Empty Is.EqualTo( object ) Is.CollectionContaining( object ) Is.SubsetOf( collection ) SCSF is one of the most visible Microsoft projects being done in an Agile way. They are crazy as us doing one week Iterations. Blaine has some reflections on Iteration 3 . CB brother, Jeremy asks what OSS tools are you using in development? As I answered there, they include: NUnit CruiseControl.Net FitNesseDotNet RhinoMocks Subversion TortoiseSVN Ankh Wiki Speaking of tools. my good buddy Tomas (see you next week!) has a nice list of Text Editors One of the things Raymond and I discussed in Oklahoma was Read More...
|
-
So after two days of downloading at broadband speeds, I finally got all the pieces of the Orcas Mrach CTP downloaded. Doublce-clicking on Part1.exe expanded the other 8 RAR files. Once that was done, I used Virtual PC 2007 on top of my Vista Ultimate desktop OS. I left the setting at 1 GB of RAM. I then attached to the VPC image and there I was staring at a Windows Server 2003 Enterprise login. The VPC image seems to be put together well. In addition to Orcas (Visual Studio 9), both SQL Server 2005 and Visual Studio 2005 are present. A nice bonus is that TFS is fully installed saving a lot of work. So far, I have just created a Team Project in VSTS/TFS and the speeds are ok. I am going to be digging in during parts of the weekend, so I'll have more as I go along. Technorati Tags: .NET , .NET Framework 3 , Orcas , LINQ , OR/M , Windows Workflow , Windows Communication Foundation , WCF , WF , Software Architecture , Microsoft Share this post: Email it! | bookmark it! | digg it! | reddit! | kick it! Read More...
|
-
Architecture/SOA Blaine Wastell has posted that PAG planning an update of the Smart Client Software Factory to be released in late April of this year. They are encouraging feedback at http://www.codeplex.com/smartclient and enter critical items into the issue tracker ( http://www.codeplex.com/smartclient/WorkItem/List.... ). From where I sit, they have their Priority 1 stuff right with WPF Interoperability. We absolutely need to be able to move to WPF with the existing CAB/SCBAT infrastructure I have been listing posts on WS-RM and its implementation in WCF. Harry Pierson, has an autopost that builds on his recent epiphany about WCF and long running services. He speaks about his conversation with Shy and " At some point in the three years between March 2003 and February 2006, WS-RM went from being the enabler of long running services to "yet another misnamed WS-* protocol". And with it, WCF lost (never had?) the ability to support long running services (as I've written previously )." The main point is that it does not support RM-based durable messaging. As Harry says, "As I said before, lack of support for WS-RM based durable messaging isn't that big a deal. As long as you understand WCF's sweet spot - the current version's sweet spot anyway - and don't try and make it be something it's not, you should be fine. Furthermore, Shy mentions the need for an "interoperable Queued Messaging specification" and wrote that it's something he "expect that we will get to it in the near future". Here's hoping that spec is less flexible than WS-ReliableMessaging." CLR/Tools/Agile/TDD The most indispensable tool in the .NET universe, Reflector, has gone through a big update to V5! As Jamie states , "This is a significant update with lots of refinements and new features. Perhaps most significantly it includes support for C# 3.0 language features such as LINQ query expressions, lambda expressions and extension methods. See my screencast about using Reflector 5.0 from VS Orcas." He also Read More...
|
-
Completely buried with two projects and the main one is going to CTP #2 at a major back in Paris/London next week so going to scrape this together quickly. I have also been pairing with Steve back on the main project on solving performance problems - yesterday, he and I optimized a section of the system where an operation was taking 25 to 30 minutes and got it down to 30 seconds! Now that's a good boost! I have much in my head concerning where we are at and my current feelings on being agile, architecture and such but they will have to wait. I tried to blog about the Apple iPhone announcement but couldn't muster up enough interest... Architecture and SOA, Agile SOA and BI Impendence Mismatch Arnon has great comments on a presentation (via Shahid Sah's blog) by Ron Jacobs on the Software Architect's Role. he says, "In this presentation, entitled Architects and the Architecture of Software , Ron compares the architect's role to that of an explorer, advocate, and designer," and "However, I would personally replace "advocate" with "mentor", and "explorer" with a "polymath" or "Renaissance" man. I'd also add a leader and visionary (although Ron mentions that as part of the discussion on explorer)." I agree with his additions, at least how I see my role. He also has some outstanding comments on Agile Iterations and what I really want to write about (and finding) when I have time: "To me, that is just a reminder why JEDUF is important. I find that in projects that are large or overly complex "sacrificing" one, two, or even three iterations for handling technical risks and forming a candidate architecture goes a long way ( and I don't care if this makes my project not agile. I am fine if it is pliant , lagum or what-not)." I am actually finding its quite a bit more than 1-3 Iterations depending on the project and environment. Actually this ties in with Jim's Design Maps . Cazz on Building Software Factories Today Richard Venyard on SOA Algebra WCF/Indigo Harry finds Indigo daunting Read More...
|
-
I am SO busy with INETA trips and tons to do at work. Here is what I have stored up for the last week or so. WCF/SOA/Workflow/WF Tomas blogs about something I face every day in WCF with WCF ServiceHost Failures and IDisposable with "The "don't call Close()/Dispose() if faulted" behavior that ServiceHost requires does not work well with IDisposable; it demands a behavior different from the standard IDisposable pattern." We're having a lot of issues with dealing with failures and what to do with them but Tomas definetly states a fundamental problem. Tomas has also WCF, WF and BizTalk Sample Posted with some interesting stuff!! MTOM Interoperability between Oracle Application Server and Windows Communication Foundation Part1: From WCF to Oracle Jesus Rodriguez as well, " I am happy to see this progress: " The Web Services Interoperability Organization (WS-I) announced the publication of three new Working Group Drafts : the Basic Profile 1.2, Basic Security Profile 1.1 and the Reliable Secure Profile 1.0 Usage Scenarios. Advancement of these documents to Working Group Draft status is an invitation to the Web services community to provide technical feedback." I could just list every single post that Mike Taulty writes on WF; they are all that good! In particular, WF and Versioning , MetaStorm and the Workflow Designer , Little Workflow Foundation Sample I could and have done the same with "Nicholas Allen's" posts on Indigo: ListenUriBindingElement , Creating Faults Part 1, and Part 2 CLR How to avoid assembly loads , and Getting the list of loaded assemblies from Richard Lander James Higgs talks about Garbage Collection and the IDisposable interface WPF/Avalon Karsten has an awesome Avalon demo - "The Woodgrove Finance Application is a great demo of how WPF can be used to create better data visualization, in this case for financial data. I've posted the source code -- there are some good nuggets in here worth exploring." Introducing the XML Assembly Generator Data V1 of Data Read More...
|
-
This is one reason why Scott Hanselman calls me an "Interop Beast" -)). We had a thorny COM Interop issue that was causing a crash in certain machine types. Every single pair on the team had worked on it for many hours this week in our Ship Cycle without success. It should have been solved since I was feeding them all the usual Marshal.ReleaseComObject crap again but it refused to be cleaned up. If you remember back from my posts in 2002 , while working with 10 million+ plus lines of COM to interoperate with while I was at Groove, I had run into many thorny lifetime issues. As a review, (for more information read my MSDN articles here and here ), the Runtime Callable Wrapper is a "bridge" between the two very different worlds of managed CLR code and unmanaged code. Its job is to hide all that ugly COM crap from the goodness that is the CLR and feel, smell and taste like any other CLR object. To do this it must perform a tough job as the COM world is completly deterministic and the CLR is completly not as the GC runs when it feels like it. The RCW (usually) has one and only one unmanaged COM reference to the underlying COM object. The problem comes that when you are done using the RCW on the CLR side, you are marking the RCW class for GC but when that GC runs is complelty non-determinstic and probably not going to happen that split second. The issue is that COM wants references cleaned up right away (ref counts-- until 0) and killing off that object or bad things happen, like crashes. So, the RCW is still holding on to that reference while waiting for GC and the underlying reference is still being held. BOOM, comes the crash in many cases, like we faced. In the case, we were trying to interoperate with some old VB6 COM objects from an old legacy previous version of our product that was being driven by a command line script. The first thing is that IDisposale was not completly implemented and so I did this: public void Dispose() { Dispose(true); GC.SuppressFinalize(this); Read More...
|
-
So, I have been writing a bunch of posts over the last 14 months, how we have been using Agile, actually full Extreme Programming practices to build a multi-million dollar Enterprise Software platform and application for the banking sector. We certainly have seriously stressed Extreme Programming/Agile techniques to their limits as this is not a small piece of software, but a large Enterprise solution that gets sold into the top banks in the world. We certainly have proven that you can use Extreme Programming/Agile techniques to build a 1.8 million dollar Enterprise product family. have talked about being an Agile Architect and why it's neccessary, how we went to CTP in July , the Process we use, our tools , and even our failings . So, after 48 Iterations we finished all the functionality we had agreed with Business was necessary for a "Phase I" delivery of our Next Generation/V5.0 product, as our Next Generation architecture will span an ambitious set of goals and products on top of this platform. Business and Development agreed together that we would stop and start a three week Iteration of fixing bugs in our backlog, testing and eating our dog food. In Extreme Programming, you are really not supposed to carry over bugs out of the Iteration but this was extremely hard with one week Iterations. We turned out very well overall as all the testing found just over 100 total bugs for 14 months work which is an order of magnitude less bugs than our previous product development techniques. In addition, we have over 1,000 unit tests and the code is well factored, clean and maintanable. The best part is the whole team understands it, not individuals. I actually haven't written about it but I have been working as Agile Architect the last few months on the next phase and not as part of the Iterations directly. These involve a whole lot of Workflow, Reporting and much more. Anyhow, I made a stand with my management the last 3 weeks and insisted that I code and Read More...
|
|
|
|