Dot-Net, or Not Yet?

Dot-Net, or Not Yet?

Yesterday, I was talking with one of VCDJ's frequent contributors, brainstorming about the next article he ought to write. "How about something on C#?" I asked.

"Uhh," he replied, "the fact is I haven't written a single line of C# code yet."

"OK, no sweat," I said. "Want to do a piece on Managed Code?"

"Haven't gotten to that yet."

"Fine. Interested in writing about using C++ within the .NET framework?"

"Look," he finally blurted. "I'm not even thinking about .NET yet. I've got to concern myself with writing code for products that have got to ship now. Alpha and betaware are just going to have to wait."

You've probably got a lot in common with this author. That is, like him, you've got a lot of demands on your time, and almost all of them have to do with getting your product out the door. And while your employer (whether that employer is a company or yourself) realizes you've got to stay on top of new developments, that gets ?shall we say, deprioritized in the face of looming code-complete dates.

This learn-what's-coming-up-but-use-what-you've-got dilemma is hardly new to developers. It's pretty well accepted, however, that VS.NET will cause the biggest waves in the development community since ?since ?sheesh, since ever. You can't wait 'til it ships to learn about it—there's too much there. So whatcha gonna do? Here's my advice:

Talk to your boss. Grab the last few issues of this magazine and march into your boss's office. Spread the covers on the desk, point out that they all have something to do with .NET, and explain that .NET isn't just about the way you write code, it's about fundamental changes in the way applications work, as well as how they work together. Now—before it's time to start writing code to this new paradigm—is the time to think about how your applications fit into this framework.

Make it clear that both your job satisfaction and the company's relevance are on the line. Get a budget for books. Get time allocated for studying. Get the company to send you to conferences (check out http://www.vcdc.com/). Essentially, do whatever it takes to get some time and money set aside for learning about .NET. You and the company are going to have to climb the .NET curve. Start now, or you won't have momentum when it matters.

Get the preview. The technology preview (available now) is a free download at http://msdn.microsoft.com/downloads/. Get comfortable with it.

Read this magazine. I've already mentioned that the last few covers of VCDJ have emphasized .NET. That's not going to stop any time soon. And while VCDJ shouldn't be your only source of .NET knowledge, it's a mighty fine place to start. Our .NET coverage is comprehensive, without being overwhelming. Don't worry, though, we are not—repeat, not—abandoning VS6. We'll continue covering VC++ 6 as long as you keep using it.

Experiment. True to VCDJ heritage, our .NET articles focus on how-to. Starting in this issue—and continuing through January—we're walking you through creating an e-commerce site using C# and other .NET technologies. Follow the steps, then play around with the project, adding features of your own. Let me know what you come up with: e-mail vcdjedit@fawcette.com.

Decide what matters to you. You know your business best. There may well be parts of VS.NET or Microsoft's .NET strategy you can safely ignore. Consider how—and whether—these new technologies might affect you and your company, then focus on learning what you need to. You'll get to the other stuff when you have time. One additional thought along this line, though: Just because you don't need to know C# in your current job doesn't mean you won't need to know it in your next. Stay up-to-date; you'll be glad you did.

Don't freak out. It'll be months before VS.NET ships; you've still got time to get your arms around it. Learn a little at a time. Before long, as you're writing your VC++ code for today's projects, you'll see how you'd do the same thing—but better—in VS.NET. And once again, you're ahead of the curve. Nice going.

history = model.fit( train_dataset, epochs=10, validation_data=test_dataset # 添加验证集 ) 配置改成后,正确运行, # 绘制网络结构图 plot_model(model,to_file='DeepCrossing1.png',show_shapes=True)报错 --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) File D:\anaconda3\envs\conda39\lib\site-packages\pydot\core.py:1824, in Dot.create(self, prog, format, encoding) 1823 try: -> 1824 stdout_data, stderr_data, process = call_graphviz( 1825 program=prog, 1826 arguments=arguments, 1827 working_dir=tmp_dir, 1828 ) 1829 except OSError as e: File D:\anaconda3\envs\conda39\lib\site-packages\pydot\core.py:249, in call_graphviz(program, arguments, working_dir, **kwargs) 247 program_with_args = [program] + arguments --> 249 process = subprocess.Popen( 250 program_with_args, 251 env=env, 252 cwd=working_dir, 253 shell=False, 254 stderr=subprocess.PIPE, 255 stdout=subprocess.PIPE, 256 **kwargs, 257 ) 258 stdout_data, stderr_data = process.communicate() File D:\anaconda3\envs\conda39\lib\subprocess.py:951, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask) 948 self.stderr = io.TextIOWrapper(self.stderr, 949 encoding=encoding, errors=errors) --> 951 self._execute_child(args, executable, preexec_fn, close_fds, 952 pass_fds, cwd, env, 953 startupinfo, creationflags, shell, 954 p2cread, p2cwrite, 955 c2pread, c2pwrite, 956 errread, errwrite, 957 restore_signals, 958 gid, gids, uid, umask, 959 start_new_session) 960 except: 961 # Cleanup if the child failed starting. File D:\anaconda3\envs\conda39\lib\subprocess.py:1436, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_gid, unused_gids, unused_uid, unused_umask, unused_start_new_session) 1435 try: -> 1436 hp, ht, pid, tid = _winapi.CreateProcess(executable, args, 1437 # no special security 1438 None, None, 1439 int(not close_fds), 1440 creationflags, 1441 env, 1442 cwd, 1443 startupinfo) 1444 finally: 1445 # Child is launched. Close the parent's copy of those pipe 1446 # handles that only the child should have open. You need (...) 1449 # pipe will not close when the child process exits and the 1450 # ReadFile will hang. FileNotFoundError: [WinError 2] 系统找不到指定的文件。 During handling of the above exception, another exception occurred: FileNotFoundError Traceback (most recent call last) File D:\anaconda3\envs\conda39\lib\site-packages\keras\utils\vis_utils.py:51, in check_pydot() 48 try: 49 # Attempt to create an image of a blank graph 50 # to check the pydot/graphviz installation. ---> 51 pydot.Dot.create(pydot.Dot()) 52 return True File D:\anaconda3\envs\conda39\lib\site-packages\pydot\core.py:1833, in Dot.create(self, prog, format, encoding) 1832 args[1] = f'"{prog}" not found in path.' # type: ignore -> 1833 raise OSError(*args) 1834 else: FileNotFoundError: [WinError 2] "dot" not found in path. During handling of the above exception, another exception occurred: AttributeError Traceback (most recent call last) Cell In[74], line 3 1 from tensorflow.keras.utils import plot_model 2 # 绘制网络结构图 ----> 3 plot_model(model,to_file='DeepCrossing0.png',show_shapes=True) File D:\anaconda3\envs\conda39\lib\site-packages\keras\utils\vis_utils.py:415, in plot_model(model, to_file, show_shapes, show_dtype, show_layer_names, rankdir, expand_nested, dpi, layer_range, show_layer_activations) 410 if not model.built: 411 raise ValueError('This model has not yet been built. ' 412 'Build the model first by calling `build()` or by calling ' 413 'the model on a batch of data.') --> 415 dot = model_to_dot( 416 model, 417 show_shapes=show_shapes, 418 show_dtype=show_dtype, 419 show_layer_names=show_layer_names, 420 rankdir=rankdir, 421 expand_nested=expand_nested, 422 dpi=dpi, 423 layer_range=layer_range, 424 show_layer_activations=show_layer_activations) 425 to_file = io_utils.path_to_string(to_file) 426 if dot is None: File D:\anaconda3\envs\conda39\lib\site-packages\keras\utils\vis_utils.py:151, in model_to_dot(model, show_shapes, show_dtype, show_layer_names, rankdir, expand_nested, dpi, subgraph, layer_range, show_layer_activations) 148 from keras.engine import sequential 149 from keras.engine import functional --> 151 if not check_pydot(): 152 message = ( 153 'You must install pydot (`pip install pydot`) ' 154 'and install graphviz ' 155 '(see instructions at https://graphviz.gitlab.io/download/) ' 156 'for plot_model/model_to_dot to work.') 157 if 'IPython.core.magics.namespace' in sys.modules: 158 # We don't raise an exception here in order to avoid crashing notebook 159 # tests where graphviz is not available. File D:\anaconda3\envs\conda39\lib\site-packages\keras\utils\vis_utils.py:53, in check_pydot() 51 pydot.Dot.create(pydot.Dot()) 52 return True ---> 53 except (OSError, pydot.InvocationException): 54 return False AttributeError: module 'pydot' has no attribute 'InvocationException'
最新发布
09-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值